5 ms·
I also suggest libtask from Russ Cox http://swtch.com/libtask/ http://swtch.com/libtask/
by eaxitect 13y ago
I also suggest libtask from Russ Cox http://swtch.com/libtask/ http://swtch.com/libtask/
- xal 13y agoThat's really interesting how much Go can be traced back to this library.
- eaxitect 13y agoYes, actually check http://swtch.com/~rsc/thread/ http://swtch.com/~rsc/thread/ to trace back. It all starts with CSP from Hoare.
- rubiquity 13y agoWow, excellent link. Thank you for sharing.
- mturmon 13y agoIn that link, I learned: In 1980, barely two years after Hoare's paper, Gerard Holzmann and Rob Pike created a protocol analyzer called pan that takes a CSP dialect as input. [...] Holzmann reports that “Pan found its first error in a Bell Labs data-switch control protocol on 21 November 1980.” That dialect may well have been the first CSP language at Bell Labs, and it certainly provided Pike with experience using and implementing a CSP-like language, his first of many. [...] Holzmann's protocol analyzer developed into the Spin model checker and its Promela language. How cool. Gerard (http://gerard.holzmann.usesthis.com http://gerard.holzmann.usesthis.com) is now using Spin and several other verification tools to improve source code quality for space missions at JPL. I did not know about this connection of his work to CSP and, indirectly, to Go.
- beagle3 13y agoIf I am not mistaken, libtask emulates Plan9/Inferno/Limbo, and so does Go.
- deleted 13y ago[deleted]
- fintler 13y agoIf you plan on implementing anything with libtask, take a look at the version with epoll support. https://github.com/jamwt/libtask https://github.com/jamwt/libtask Mongrel2 is also an excellent example of how libtask can be used. On another note, alts and chans are underrated in libtask -- I wish the documentation promoted them more. To get an idea of what alts look like when used with a few chans, take a look at keyboardthread() from acme: http://plan9.bell-labs.com/sources/plan9/sys/src/cmd/acme/acme.c http://plan9.bell-labs.com/sources/plan9/sys/src/cmd/acme/ac... It's just... beautiful.