I built a garbage collector for a language that doesn’t need one
Always remember: a garbage collector is a theorem prover that proves that objects are unreachable, over and over, so that they can be destroyed.It is in general undecidable whether an object is unreachable, but we can get good performance with heuristics.