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

Reply via email to