Greetings, all! I'm pleased to announce 8sync 0.3! 8sync is a library for GNU Guile which provides an asynchronous event loop and which uses the actor model as its primary concurrency synchronization mechanism.
This release brings some major changes and improvements. The 8sync 0.2 release announcement (less than two weeks ago!) anticipated some of these changes. In summary:
- 8sync is now Guile 2.2 only, in order to support...
- Suspendable ports! Writing networked code is considerably simpler in 8sync 0.3. Using Guile 2.2's suspendable ports tooling, when reading and writing from ports that are set to be nonblocking, 8sync's scheduler will automatically suspend to the scheduler and resume your code when network data is ready to be handled.
- Actors now have an "actions" slot which is automatically inheritable.
- "define-mhandler" is deprecated. Instead, message handlers are simple procedures, and a message's body can be any sort of Guile procedure argument list.
And more! See the NEWS file for full details.
What's next? If all goes well, 8sync 0.4 should be around the corner soon as well. You can expect the actor system to be moved to take center stage in the application and (finally!) some decent documentation.
Happy hacking!