[gclist] Compiler specialized GC's

Charles Fiterman cef@geode.geodesic.com
Mon, 26 Feb 1996 08:32:02 -0600


> Our GC generates a marking routine for each type in the system rather than 
> interpreting a type description during GC. Makes for quite a fast traversal. 
> You don't need to lose any modularity though - each module generates its 
> sufficient set of marking routines (those not already provided for by another
> compilation) and the sufficient set of these are pulled in when the
> program is composed. We then use a table to indirect through to find the 
> routine to mark a root pointer - all subsequent pointer following can be done 
> directly. Only worth it in a predominantly statically typed language of course.

Do you allow user defined mark functions. We have found those very useful. The
classic example is the stack where the mark function should only look in the
live section. I have a good compiler hash table example where the table's
mark function is normal in phase 1 and null in phase 2.