On 12/20/05, John Cowan <[EMAIL PROTECTED]> wrote:
> felix winkelmann scripsit:
>
> > The secondary
> > heap follows a normal stop-and-copy GC strategy. That's really all
> > there is to it.
>
> Tell us the details!  A single generation, or multiple generations?  Do 
> objects
> get tenured eventually?

The stack and the heap represent the first and second generation (there are no
other generations). The stack grows and grows (due to the CPS into which
the code is translated) and fills with data. Once a limit is reached,
live data,
that is, references directly or indirectly via roots or the current
continuation,
is copied into the heap (second generation). Once data is in the heap,
it is handled in a standard stop-and-copy manner with two semispaces between
which data is copied back and forth on every major collection.
One point that makes things a bit complicated is dynamic resizing of the
heap (second generation), but basically everything is just stop-and-copy.


cheers,
felix


_______________________________________________
Chicken-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to