4 ms·
Just a small "ackchyually": Go is basically a modern Limbo which is itself based on Alef and there was an official "Alef for C" thing in Plan 9 in libthread (ht
by BoingBoomTschak 3mo ago
Just a small "ackchyually": Go is basically a modern Limbo which is itself based on Alef and there was an official "Alef for C" thing in Plan 9 in libthread (https://9p.io/magic/man2html/2/thread https://9p.io/magic/man2html/2/thread)
EDIT: looks like it was ported on UNIX as part of Plan9Port (https://github.com/9fans/plan9port/blob/master/src/libthread/thread.c https://github.com/9fans/plan9port/blob/master/src/libthread...)
- bitwize 3mo agoAs I recall, Bell Labs actually abandoned Alef on Plan 9 because the concurrency primitives they wanted were doable in C so they just went with that.
- pjmlp 3mo agoNope, they abandoned it because the language design was unsound, and in retrospective a GC was a critical missing piece. "Alef appeared in the first and second editions of Plan 9, but was abandoned during development of the third edition.[1][2] Rob Pike later explained Alef's demise by pointing to its lack of automatic memory management, despite Pike's and other people's urging Winterbottom to add garbage collection to the language;[3] also, in a February 2000 slideshow, Pike noted: "…although Alef was a fruitful language, it proved too difficult to maintain a variant language across multiple architectures, so we took what we learned from it and built the thread library for C." https://en.wikipedia.org/wiki/Alef_(programming_language) https://en.wikipedia.org/wiki/Alef_(programming_language) "Problem: with C's memory model in a concurrent world, hard to know when to free items. All the other languages in this talk are garbage-collected, which is essential to easy concurrent programming" http://go-lang.cat-v.org/talks/slides/emerging-languages-camp-2010.pdf http://go-lang.cat-v.org/talks/slides/emerging-languages-cam..., slide 19
- MarkSweep 3mo agoRuss Cox created libtask, a similar library that runs on multiple UNIXes (UNIXEN?). Based on the COPYRIGHT file, it may be based on libthread. https://swtch.com/libtask/ https://swtch.com/libtask/ It’s a great little library. Very easy to read and understand.
- pjmlp 3mo agoAnd some Oberon-2 in the mix as well, method syntax and unsafe package.