Our great sponsors
-
cl-gserver
Sento - Actor framework featuring actors and agents for easy access to state and asynchronous operations.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
You'll find more, I suppose, "traditional" concurrency control constructs like locks and mailboxes used. But actors aren't an uncommon convention in CL, though I don't know of any actor libraries that I like; they just kinda happen when I write programs. I also started writing a supervisor tree library with the idea of integrating with the condition system and shared state, the latter of which is a funny optimisation of an actor that multiple other actors message, if you squint far too hard.
You might be interested in cl-gserver0.
There are very, very competent concurrency libraries already. I pointed you to them already. They serve as primitives to roll your own solutions -- You can get most of the functionality of Erlang actors (and virtually all of the important parts regarding concurrency) with threading (green or OS), CSP channels, and writing a few macros. Go look at a lot of the actor libraries you mentioned that are "long dead" and you'll notice they do A LOT with just a few hundred lines of code. This one gets basic functionality with just straight threading primitives in 131 lines.
David McClain has product level Lisp-Actors, if you use LispWorks.
Related posts
- Sento: Actor Framework for Common Lisp
- Sento actor framework 3.0 released - no new features, many API changes: cleanups, obstacles removed, and hopefully a more consistent way of doing things.
- New version of the Sento Actor Framework released with a few new goodies in future handling. Nicer syntax and futures can now be mapped.
- Low weight timeouts async `ask` operations
- CL hash-table thread-safety