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
