[Openmcl-devel] Announcing Erlangen: asynchronous message passing framework for CCL
David McClain
dbm at refined-audiometrics.com
Wed Dec 7 07:15:36 PST 2016
It will be interesting to see how you progress. I developed a similar thing, called Butterfly, and later abstractions called Bluebird, for Lispworks, over the course of the past decade.
I also have a version of Reppy Channels for synchronous communications with composable Events. I bounce between the two approaches in my various projects, often using both at the same time — that’s the basis of abstract unification provided by Bluebird. Same source can be executed in either fashion (Erlang / Reppy Channels), with the only difference being the kind of abstract channel chosen for the tasks at hand.
A prime example application of this in my lab is controlling radio receivers, Rb reference clocks, and signal generators over USB / Ethernet for making high-precision frequency measurements in real time. The control can be run entirely from one computer, or at the flip of a command line parameter, across multiple computers. No changes to source needed. So Erlang style comms between distributable threads, and Reppy Channels within threads to device drivers.
I will be watching with interest.
Cheers,
- DM
> On Dec 7, 2016, at 06:56, Max Rottenkolber <max at mr.gy> wrote:
>
> Hello Clozure fans! :-)
>
> I have been working on this framework for a while, and want to probe for
> interest and feedback. Excerpt from the introduction:
>
> Erlangen brings distributed, asynchronous message passing to Clozure Common
> Lisp. It orchestrates Clozure CL processes (native threads) using message
> passing, and encourages fault tolerant software architectures using
> supervison trees. It is also transparently distributed, all its features work
> seamlessly across IP networks. Thus, it can be used to build applications
> across multiple Clozure CL instances on different hosts.
>
> [...]
>
> Clozure CL processes are comparatively heavy weight, preemptively scheduled
> operating system threads, as opposed to Erlang’s cooperatively scheduled
> green threads. As such, processes are a scarce resource on Clozure CL.
> Erlangen is based on the assumption that even with only a limited capacity of
> concurrent processes, message passing and supervision trees are still
> feasible features. While Erlang’s distribution features are sometimes
> overlooked, they are meant to be a main focus of Erlangen.
>
> Erlangen’s home is here: https://github.com/eugeneia/erlangen#erlangen
>
> (There is also a Reddit thread with a tiny bit of discussion:
> https://www.reddit.com/r/Common_Lisp/comments/5gjbqd/erlangen_brings_distributed_asynchronous_message/)
>
> The project is still in its infancy, but I think its in presentable state. Now
> is a good time to get some feedback, and I am still open for drastic changes. I
> believe that some other people on this list work on similar things, so I am
> especially interested in critique from the experts. :-)
>
> As mentioned in the Reddit thread, there are no goals for cross-implementation
> portability. I want to spend as little time on portability layers as possible,
> and focus on the problems at hand. That might even mean dropping targets other
> than Linux.
>
> Again, test-spins and feedback in form of replies, direct mail, or GitHub
> issues are welcome!
>
> Cheers,
> Max
>
>
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> https://lists.clozure.com/mailman/listinfo/openmcl-devel
More information about the Openmcl-devel
mailing list