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.
- Release: ftp://ftp.gnu.org/gnu/8sync/8sync-0.4.0.tar.gz - Announcement: https://www.gnu.org/software/8sync/news/8sync-0-4-released.html - Website: https://www.gnu.org/software/8sync/ Some highlights: - Most excitingly, we now have some decent documentation! https://www.gnu.org/software/8sync/manual/html_node/index.html Or at the very least, we finally have a tutorial (API documentation is still on its way). The tutorial walks from extending an existing actor by writing an irc bot, to writing your own basic actors, to writing network actors. You *know* you always wanted your very own IRC bot, so give it a try! https://www.gnu.org/software/8sync/manual/html_node/Tutorial.html - Actors are now "center stage". You can now import a toplevel (8sync) module, and this module includes the full actor model system. The actor model is now *the* way to handle concurrent synchronization in 8sync. So, 8sync is officially less about its event loop, and more about the actor model. (It is even possible that in the future, 8sync's actor model will be able to run on another event loop.) - Actors now also have implicitly run *init* and *cleanup* message handlers. Setting up actors now involves a lot less boilerplate, since most actors do have some sort of initialization method anyway. The *cleanup* message handler allows actors to clean up after themselves when they shut down, by closing a socket, deleting temporary files, save their current state to a database, or whatever. - Sending messages has become slightly easier, as the from-actor field is now implicit, set as a parameter by the actor's hive. And more! See the NEWS file for full details. Happy hacking! -- If you have a working or partly working program that you'd like to offer to the GNU project as a GNU package, see https://www.gnu.org/help/evaluation.html.