Views

HaskellImplementorsWorkshop/2012/deVries

From HaskellWiki

Cloud Haskell 2.0

Cloud Haskell brings Erlang-style concurrency to Haskell. It was
introduced in "Towards Haskell in the Cloud" by Epstein et al. in
2011, and comes with a prototype implementation.

Well-Typed are working on a reimplementation of Cloud Haskell. The
main motivation is a split between the Cloud Haskell layer proper, the
underlying network layer, and a backend providing initialization, peer
discovery, node creation, etc. The separate network layer makes it
possible to run Cloud Haskell over TCP, UDP, CCI or other protocol
simply by swapping the network layer, and is reusable in other
projects.

We describe the reorganization of the Cloud Haskell infrastructure,
the new Network.Transport package, and various improvements that we
have made to the Cloud Haskell layer itself, in particular:

A precise semantics of message passing and reliability guarantees, with special attention to reconnects.

Support for closure combinators. This greatly improves expressiveness; for instance, it becomes possible to define "call" ("run this process over there and send its result back to me") in terms of spawn ("run this process over there").

We also discuss a limitation of new type construct "static" (proposed
in the original Cloud Haskell paper) and a potential solution.