• incremental collector, never pauses

  • can coexist with other allocation strategies

  • main goal is beeing small and embeddable, not performance (which is still pretty good)

  • accurate collection, only known references are scanned and marked

  • cooperative, the user has to supply custom marker functions for his objects

  • NOT intrusive the GC descriptor is opaqe in front of blocks returned by the allocator

  • can uses different allocators, malloc/free, memory pools, mmaped memory, stack …

  • non-collectable objects can coexist with garbage collected objects


Meanhile the GC got rewritten. The new code is in git under the devel branch. This new code works only for singlethreaded programs yet and will be released officially soon (currently a stabilization phase is pending). There are preparations and notes for a multithreaded GC but this is on hold until I really need it.