Cloud Haskell

From HaskellWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Cloud Haskell is a domain-specific language for developing programs for a distributed computing environment. Implemented as a shallow embedding in Haskell, it provides a message passing communication model, inspired by Erlang, without introducing incompatibility with Haskell’s established shared-memory concurrency.

Availability

Cloud Haskell is available from Hackage as distributed-process. You might also want to install distributed-process-simplelocalnet. The cutting edge development version is on github.

There is also the older prototype implementation remote (also available from github).

Documentation

For an overview of Cloud Haskell it's probably a good idea to read Towards Haskell in the Cloud (details below). The relevant documentation (in order of importance is)

and

If you want to know more details about Closure or Static (without the Template Haskell magic on top) you might want to read

Blog Posts

Cloud Haskell intros

Alen Ribic has a series of blog posts about (Cloud) Haskell on the Raspberry Pi

Papers

Other Useful Packages

Serializable

A core concept in Cloud Haskell is that of serializable values. The Serialziable type class combines Typeable and Binary. ghc can automatically derive Typeable instances for custom data types, but you need a package to derive Binary. There are various packages available that assist with this:

binary-generic has been confirmed to work with Cloud Haskell; the status of the other packages is unknown -- YMMV (please feel free to update this wiki page if you have more information).