Understanding the Ruby Garbage Collector
omniref.com
omniref.com
Of course, the library should take a couple of parameters (such as the primitives to use for memory barriers, multithreading parameters etc.) I know of the Boehm collector, but it is conservative, so not appropriate for many projects.
Also, I'd expect to find garbage collection (or supporting constructs) in the C++ standard by now, actually.