I just cut a new release of Fibers, a concurrency library for Guile.
Find it here:
$ sha256sum fibers-0.3.0.tar.gz
Project page here:
There is a texinfo manual inside, or you can read it on the web site:
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.