Nasal GC Musings: Difference between revisions

Jump to navigation Jump to search
Line 58: Line 58:
* Introduce garbage collection {{Progressbar|60}}
* Introduce garbage collection {{Progressbar|60}}
* Document the existing GC {{Progressbar|50}}
* Document the existing GC {{Progressbar|50}}
** Prototype a simple gen GC scheme by:
** Prototype a simple gen GC scheme:
** 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
** 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)
* 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}}

Navigation menu