

A couple GC algorithms in more detail - silentbicycle
http://useless-factor.blogspot.com/2008/05/couple-gc-algorithms-in-more-detail.html

======
jey
There's one question that's puzzled me for a long time: Why aren't there many
(any) precise compacting GCs out there, at least in F/OSS software? Do these
generally turn out to be a bad idea or something? The only one I've found so
far is Mono's experimental GC.

~~~
zenspider
It is really hard to write a generic precise GC (knows and follows object
structure) that you can open source because every project that would want to
use it has a different object structure. So pretty much every one has to be
written from scratch. It is cheap and easy to throw in a conservative GC. It
just isn't as good.

Squeak and the other smalltalks pretty much all have precise GCs. I'm not as
familiar with the GC systems in the lisps, but I'd guess that they're all
precise because the memory structures are so damn simple/clean. It is the
scripting languages that start to fall down. Perl used reference counting for
years, prolly still does; same with python. Ruby has a mark/sweep
conservative. But hey, they work well enough. _shrug_

~~~
jey
Hmm, I don't think it would be that hard to design a flexible yet efficient
interface for specifying object and vtable layouts. Yes, it would create some
restrictions on the clients of the GC, but I don't think they'd have to be
particularly severe.

