[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