20,741
edits
(→Status) |
(→Status) |
||
| Line 61: | Line 61: | ||
** Patch the existing GC to allocate different pools for each generation {{Progressbar|70}} | ** Patch the existing GC to allocate different pools for each generation {{Progressbar|70}} | ||
** update mark() to increment a new gcSurvivals counter | ** update mark() to increment a new gcSurvivals counter | ||
** update reap() to detect objects that have previously survived GC | ** update reap() to detect objects that have previously survived GC using a configurable threshold (possibly per generation?) | ||
** update reap() to by default only sweep the first generation | ** update reap() to by default only sweep the first generation (generation 0) | ||
** implement a new function to promote objects from one generation to another | ** implement a new function to promote objects from one generation to another | ||
** update the naRef after moving one object to another pool (use doswap) | ** update the naRef after moving one object to another pool (use doswap), also free up dead blocks afterwards as per naGC_swapfree() | ||
* Provide readonly stats to inspect the GC {{Progressbar|10}} | * Provide readonly stats to inspect the GC {{Progressbar|10}} | ||
* Provide hooks to register custom callbacks to control GC (e.g. from FlightGear) {{Progressbar|10}} | * Provide hooks to register custom callbacks to control GC (e.g. from FlightGear) {{Progressbar|10}} | ||