[Haskell] ANNOUNCE: Sessions 2008.5.2

Matthew Sackman matthew at wellquite.org
Tue May 6 08:04:51 EDT 2008


Howdy,

I'm pleased to announce the general availability of Session Types for
Haskell, version 2008.5.2. It is available from my website[0],
Hackage[1][2] and I've just updated the online tutorial[3] to take into
account the recent changes and new features.

[0] http://wellquite.org/non-blog/sessions-2008.5.2.tar.gz
[1] http://hackage.haskell.org/cgi-bin/hackage-scripts/package/sessions-2008.5.2
[2] http://hackage.haskell.org/
[3] http://wellquite.org/sessions/tutorial_1.html

Session types are a means of describing communication between multiple
threads, and statically verifying that the communication being performed
is safe and conforms to the specification. The library supports
multiple, concurrent channels being open and actions upon those channels
being interleaved; forking new threads; the communication of process
IDs, allowing threads to establish new channels between each other;
higher-order channels, allowing an established channel to be sent over a
channel to another process; and many other features common to session
type systems.

The significant new changes in this version are:

 a) an entirely new means to specify session types. This removes the old
absolute indexing, is composeable and far more flexible and powerful
than the old system.

 b) support for higher-order channels and session types allowing channels
to be sent and received. This permits additional communication patterns
such as two threads which are otherwise unaware of each other being able
to communicate with one another by sending and receiving a channel via
a common third party - delegation.

Tests[4] and an example application[5] are available which should, in
combination with the tutorial[6], explain how session types can be used.
As ever, any feedback is very gratefully received.

[4] http://wellquite.org/non-blog/sessions-browseable/Control/Concurrent/Session/Tests.hs
[5] http://wellquite.org/non-blog/sessions-browseable/Control/Concurrent/Session/Queens.hs
[6] http://wellquite.org/sessions/tutorial_1.html

Matthew


More information about the Haskell mailing list