[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