[gclist] Compiler specialized GC's

Darius Blasband darius@phidani.be
Sat, 24 Feb 1996 14:12:22 +0100 (MET)


> 
> 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.
> 
Well, we had first exactly such a scheme, which we abandonned for a 
table-driven one which allowed for more flexibility. As far as we tried
(maybe n,ot hard enough, I confess), there was simply no significant 
performance difference. Of course, this might be made possible by
the very simple allocation mechanism provided by YAFL, where each class
only needs a table of offsets as "type description" for GC.

Is you language (hence, type descriptions) more specific ?

Darius