[MLton-devel] SmallEiffel mark-sweep GC

Stephen Weeks MLton@mlton.org
Thu, 2 May 2002 14:43:04 -0700


> I printed out tonight a paper on the SmallEiffel GC which looks interesting
> because they also do whole-program compilation and customize the GC to the
> program.  It is mark/sweep.

I just read through "Compiler Support to Customize the Mark and Sweep
Algorithm".  Is that the paper you were talking about?  

Segregating the objects by type seemed fine, although I'd only do it
in older generations, to keep allocation simple.

As to the customized GC code, I don't see the advantage of having code
that knows where the pointers are over MLton's simple approach of
keeping all the pointers together and having a for-loop walk over them
(thus having one very hot piece of very simple code).  And they showed
a pretty bad code blowup (46%) on a self compile.  I did like the idea
of using the type information to do the depth-first marking in an
intelligent order.  But, I think that was only important because they
have a separate mark stack.  The design I'm thinking of for MLton
(I'll send out a design in the next week or so) will use pointer
reversal and keep the counters in the header words, so I don't think
that hack helps here.

Most worrying was the fact that their performance numbers showed that
they were only competitive with the Boehm conservative GC, which was
pretty slow when I played around with it back in 98/99.

_______________________________________________________________

Have big pipes? SourceForge.net is looking for download mirrors. We supply
the hardware. You get the recognition. Email Us: bandwidth@sourceforge.net
_______________________________________________
MLton-devel mailing list
MLton-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlton-devel