|
Re: Re[2]: Questions on changing Chicken runtime and some other stuff: msg#00096lisp.scheme.chicken
On 12/20/05, John Cowan <cowan@xxxxxxxx> 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 |
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | Re: Re[2]: Questions on changing Chicken runtime and some other stuff: 00096, John Cowan |
|---|---|
| Next by Date: | Re: Re[2]: Questions on changing Chicken runtime and some other stuff: 00096, John Cowan |
| Previous by Thread: | Re: Re[2]: Questions on changing Chicken runtime and some other stuffi: 00096, John Cowan |
| Next by Thread: | Re: Re[2]: Questions on changing Chicken runtime and some other stuff: 00096, John Cowan |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |