On Tue, Aug 4, 2009 at 2:49 PM, Simon Marlow <marlo...@gmail.com> wrote:
> 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. > Speculation time... I have no real basis for this, and I'm quite possibly overlooking a lot of details... There may be other benefits to doing this kind of escape-analysis, aside from making short-lived allocations cheaper (which are indeed already quite cheap)... If you can associate a bunch of allocations with a point in the stack, even if it's very low in the stack (and thus long-lived), there's a lot less work that the GC needs to do to track all the other allocations (in the global heap), since there's just fewer of them. Also, each stack is associated with a specific thread, so it sort of brings you half-way to per-thread GC, in the sense that all the stack-based resource management is per-thread. -- Sebastian Sylvan +44(0)7857-300802 UIN: 44640862
_______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell