2 ms·
The coloring of go functions is actually seen in the FFI. Go functions have a special calling convention so FFI is annoying. This is similar to Cilk back in 19
by mratsim 3y ago
The coloring of go functions is actually seen in the FFI. Go functions have a special calling convention so FFI is annoying.
This is similar to Cilk back in 1995 with their continuation-stealing work-stealing scheduler.
The C++ committee made an in-depth review of fibers (stackful coroutines that install their own stack).
Regarding scheme, the issue is that they have multishot undelimited continuations, which let to several debates. Delimited continuations are enough to express everything but non-determinism (which causes the lifetime issues, i.e. you can enter a room once and exit twice), in practice you allow continuations to be moved (on different executors like a state machine, threadpool or actors) but not copied.
Cilk: http://supertech.csail.mit.edu/papers/PPoPP95.pdf http://supertech.csail.mit.edu/papers/PPoPP95.pdf
Fibers under magnifying glass: https://open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1364r0.pdf https://open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1364r0...
on Scheme undelimited continuations: https://okmij.org/ftp/continuations/against-callcc.html#dynamic_wind https://okmij.org/ftp/continuations/against-callcc.html#dyna...
In general, I've collected experiments and criticisms from many many language on continuations, coroutines, fibers, cancellation here: https://github.com/mratsim/weave-io-research/blob/master/research/README.md https://github.com/mratsim/weave-io-research/blob/master/res...