Implementer Lore About Garbage Collection - oils-for-unix/oils GitHub Wiki
"Implementer lore" means "programming techniques that are only in a few experienced people's heads!"
It's not in textbooks. I've found that there is a lot of it with respect to implementing garbage collectors. The algorithms are one thing, but there are many nontrivial problems in the implementation. It interacts with the host language a lot, which is usually C, C++, or Assembly.
This page is freely editable.
- Mozilla SpiderMonkey: Clawing Our Way Back to Precision (2013)
- v8 Blog: High-performance garbage collection for C++ (May 2020)
- HHVM: On Garbage Collection (2012)
- The second, more serious problem that we run into here is root-finding. In my description above, I made HHVM’s root set sound simple (stack, locals, globals) but the reality is quite a bit more complicated than that.
- Implementing a Garbage Collector in C++ -- about mjs, a JavaScript interpreter
- Lock-free Concurrent Garbage Collector for C++
- High Performance Garbage Collection in Rust from Elliot Slaughter
Lore on another topic: Implementing Debuggers