[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