polytypic / JoinCML

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

JoinCML & Reagents

kayceesrk opened this issue · comments

This is quite interesting work. Wonder if you have had a chance to see Reagents [1], a concurrency library which provides CML like disjunction as well as the proposed conjunction operation. The reagents programming model is very similar to your description of the semantics of JoinCML [2]. Hence, reagents are more powerful than CML but less powerful than TE. The paper shows that Join calculus could be encoded using reagents. And, indeed, reagents can be implemented much more efficiently than TE; all you need is a multi-word compare-and-swap operation (which could be emaulated in software). I believe JoinCML would have the same expressive power of Reagents, save for the negative acknowledgements. Thoughts?

I have an implementation of Reagents for multicore OCaml [3]. It is undocumented at this point, but there is a collection of data and synchronization structures built out of the core primitives.

[1] http://www.mpi-sws.org/~turon/reagents.pdf
[2] https://github.com/VesaKarvonen/JoinCML/blob/master/README.md
[3] https://github.com/ocamllabs/reagents