[gclist] Two conservative collectors
Simon Peyton-Jones
simonpj@microsoft.com
Fri, 19 Nov 1999 00:51:12 -0800
| I've read a paper where the authors changed their compiler to generate
| tables to allow precise marking of the stack. The tables encoded lots
| of information so that they would continue to work in the presence of
| aggressive optimization. Unfortunately I don't have the paper handy
| and I don't remember anything that would help me find it again...
Doing this kind of thing is relatively well understood, but relatively
hard to implement: it's a piece of technology well suited for
encapsulation and reuse. [shameless plug] That's the purpose of a portable
assembly language, C--, that Norman Ramsey and I have been working on
recently.
There's a paper that describes the GC aspects in PPDP'99
http://research.microsoft.com/~simonpj/papers/ppdp.ps.gz
That paper is directed mainly at accurate GC; what's been interesting
about this discussion is that accurate stack walking may also be useful
to support traceback reporting in conservative collectors. It's
really a generic run-time service.
Two caveats: a core C-- compiler exists, but the GC part is
vapourware. (Anyone care to implement it?!) The design would
benefit from being scrutinised by people on this list, however.
Secondly, the beauty of a conservative collector is that you don't
require any modifications to existing compilers. C-- requires
a new back end to your compiler --- it's a code generator, after all.
Simon