Acogc (accurate cooperative garbage collector) is the garbage collector used for the MaLa extension langauge.
Features:
simple optimized mark is sweep (stop© without copying) see below
- can coexist with other allocation strategies, implemented on top of malloc/free
- main goal is beeing small and embeddable, not performance
- accurate collection (not conservative), might ideally lead to better performance (not proofed) but does never keep garbagge around
- 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
- swept objects are not destroyed and pooled in free-queue and for faster reallocation, real freeing is done on utilization policies.
- supports weak references
- weak references to swept but not yet freed objects can be reinstantiated for efficent caching strategies
- non-collectable objects can coexist with garbage collected objects
- collects statistics and let the GC tune itself dynamically
- Proactive collection, the user can provide callback functions which invalidate referenced objects at collect time if they are not useful anymore
description of the GC algorithm are in Acogc/Algorithm
State
useable, no documentation yet
gitweb at http://www.pipapo.org/gitweb?p=acogc
freshmeat page at http://freshmeat.net/projects/acogc/