Stefan Monnier wrote: > I meant *compiled* application code, of course. I.e. you can't change the > GC after compilation. Admittedly, the VCGC algorithm is sufficiently > non-intrusive on the mutator that it might be OK to pay its cost even > when not using the VCGC algorithm. Well, any garbage collection algorithm that requires read or write barriers on the mutator (not just concurrent algorithms I believe) would need such changes. The VCGC algorithm has a write barrier used only when references are changed, and given that most Ocaml code (like SML code) is written in a functional style where references are seldom used, it seems that it could be an excellent algorithm. On the other hand, if you're talking about byte-compiled code, it might be possible to insert any required write or read barriers in the virtual machine itself. For Limbo this only required Winterbottom and Huelsbergen to change the Dis virtual machine; all previously compiled Limbo code ran properly without change once they replaced the older mark and sweep collector with it. -- We must remember that we have more power than our enemies to worsen our fate. http://stormwyrm.blogspot.com/