I can see how laziness works against this, and agree it's probably not suitable for most lazy code. Generational GC does sound much more appropriate.
But fair chunks of Haskell code can be known to be strict. Either from analysis of the code, or explicit instruction by the programmer. (I also have nested data parallelism in the back of my mind for some reason.) I'd risk a bet that these areas of code are probably your 'inner loops' and hence areas a programmer wouldn't want allocation/deallocation to occur unless absolutely necessary. Isn't region inference an attractive option for these situations? Cheers, Sam -----Original Message----- From: Simon Peyton-Jones [mailto:[email protected]] Sent: 06 August 2009 08:23 To: Simon Marlow; Sam Martin Cc: Colin Runciman; [email protected] Subject: RE: [Haskell] memory management Also region inference is likely to be much less effective in a lazy language, because (I think that) data escapes the lifetime of its allocating procedure much more often. I don't know of any work that has even tried it. Simon | -----Original Message----- | From: [email protected] [mailto:[email protected]] On | Behalf Of Simon Marlow | Sent: 04 August 2009 14:50 | To: Sam Martin | Cc: Colin Runciman; [email protected] | Subject: Re: [Haskell] memory management | | On 04/08/2009 13:33, Sam Martin wrote: | >> Sounds like region inference to me. | >> (https://secure.wikimedia.org/wikipedia/en/wiki/Region_inference) | > | > Thanks, yes, that's exactly what I had in mind. | > | > Is anything like this is done in GHC? | | Not at the moment, no. | | Bear in mind that with generational GC, allocating memory that quickly | becomes garbage is quite cheap. | | Cheers, | Simon | _______________________________________________ | Haskell mailing list | [email protected] | http://www.haskell.org/mailman/listinfo/haskell
_______________________________________________ Haskell mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell
