[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