Hi, I just cut a new release of Fibers, a concurrency library for Guile. Find it here:
https://wingolog.org/pub/fibers/fibers-0.3.0.tar.gz $ sha256sum fibers-0.3.0.tar.gz a7267b8e10229f9d7e64e1903507d9baf7c15705abb87f953d2d53c6ac6886b5 fibers-0.3.0.tar.gz Project page here: https://github.com/wingo/fibers There is a texinfo manual inside, or you can read it on the web site: https://github.com/wingo/fibers/wiki/Manual The interesting change in this release was that I rewrote the channels and timers implementation in terms of Concurrent ML-like primitives. That let me implement "select"-like functionality, where you can efficiently wait for one of a number of operations to complete. See the manual for more. There is also a new REPL integration which I just now realized that I forgot to document :) scheme@(guile-user)> (use-modules (fibers)) scheme@(guile-user)> ,help fibers Fibers Commands [abbrev]: ,scheds - Show a list of schedulers. ,spawn-sched - Create a new scheduler for fibers, and run it on a new kernel thread. ,kill-sched SCHED - Shut down a scheduler. ,fibers [SCHED] - Show a list of fibers. ,spawn-fiber EXP [SCHED] - Spawn a new fiber that runs EXP. ,kill-fiber FIBER - Shut down a fiber. I think ,kill-fiber doesn't work yet. Anyway it's a nice way to experiment. Run ,spawn-fiber (pk 'hey) to give it a go. Happy hacking, Andy