This is slightly OT ... but I'm trying to write a scheme -> C compiler, in gambit, so forgive me. :-)

What are good papers / tutorials on _real world_ garbage collectors? I'm interested in things slightly more complicated than the Mark & Sweep / Copying garbage collectors found in SICP. Generational / soft real time seem more interesting to me; but I'm rather than reading academic papers or some guy's rant, I'd like something along the lines of "I built _popular system X_; and here's the GC we used; these are the tradeoffs we made; and this is why we made them."

Thanks!