I have previously sent out links to this paper: Fergus Henderson, Accurate Garbage Collection in an Uncooperative Environment
This morning, I stumbled across a successor paper: J. Baker *et al.*, Accurate Garbage Collection in Uncooperative Environments Revisited <http://www.cs.purdue.edu/homes/jv/pubs/ccpe09.pdf> Citeseer is down at the moment, so you'll have to google for the first one later; the second link is from Purdue. The main new technique in the second paper is lazy saving of pointers for GC, which is done using a *disgusting* trick that involves copying the stack to the side and returning up the stack *twice* to exploit a guard that saves object references only when needed. The result is much less conservative about safe points, offers better register allocation and retention than Ferguson's technique, and has a much higher code size (17%). Offhand, it seems like a difficult convention to code by hand if one wanted to do so. But the important thing to note about this paper is that it is *not* friendly to concurrent collection. Offhand, it seems to me that the Henderson technique can be extended with a (manual) stack barrier to get on-the-fly collection as well.
_______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
