[Haskell-cafe] HANSEI in Haskell?

Chung-chieh Shan ccshan at cs.rutgers.edu
Thu Feb 24 19:57:23 CET 2011

Arnaud Clère <arnaud.clere at free.fr> wrote in article <ik64e9$j6a$1 at dough.gmane.org> in gmane.comp.lang.haskell.cafe:
> On 24/02/2011 09:30, oleg at okmij.org wrote:
> > The sort of laziness needed for non-deterministic programming calls
> > for first-class store.  It can be emulated, albeit *imperfectly*,
>  > for example, as was described in the ICFP09 paper.
> What do you mean by "imperfectly"?

I think Oleg meant that, because the garbage collector only understands
the native store and not our emulation of first-class stores, cells of
a first-class store that are no longer referenced will nevertheless not
be garbage-collected until the store itself is garbage-collected.  What
we need is a way to tell the garbage collector that the store reference
and the cell reference are both needed to access the data so the data
can be garbage-collected as soon as *either* the store reference *or
the cell reference* is.  (Analogy from the capabilities literature:
the key and the lock are both needed to open the door so the door can
be garbage-collected as soon as either the key or the lock is.)  Any
thoughts on how to achieve that?

> Do you think implementing 'probM' with 'share' would lead to the same 
> performance problems you experienced in probM.hs?

No, implementing probM with share would be like what OCaml HANSEI
currently does, except in monadic notation rather than direct style.

Edit this signature at http://www.digitas.harvard.edu/cgi-bin/ken/sig
1st graffitiist: QUESTION AUTHORITY!
2nd graffitiist: Why?

More information about the Haskell-Cafe mailing list