Why GC

An essay concerning why garbage collection is essential to the Tunes project:

Garbage collection is just needed in a dynamical system (like for instance a distributed multi-user multi-tasking interactive development system). You can't escape it because there's no way to manually or statically determining when an arbitrary word will no longer be used. Surely on a non-interactive, non-development single-threaded embedded system, GC can be done manually and statically. This is just not the general case, that TUNES claims to handle. The Tunes compiler should be able to strip down GC when producing standalone code that does not need it; but the "main" reflexive development system just has to implement it.

See the GC FAQ or the GC introduction text from Smalltalk/X for more insight.

It's important to realize that GC exists independently from the way it is implemented:

Qualities of a GC:

The main GC techniques: