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.
gitweb at http://git.pipapo.org/?p=acogc
freshmeat page at http://freshmeat.net/projects/acogc/