Sat Oct 31 19:04:50 EDT 2015
The point of LIN
* The linear machine's data tree is visible by the main GC, meaning
that it can contain references to nonlinear data. This is useful.
* The linear machine manages its own cons cells in a free list. These
are regular GC objects, but are tagged differently to manage the
* Leaf objects that are moved around in the linear tree use refcounted
copy. The consequence of this, is that _if_ the nonlinear tree does
not have a reference to data that is contained in the linear tree,
the free operation is instantaneous.
There needs to be a way to distinguish between objects that are
linear, and objects that are nonlinear. By removing the RC wrapper,
this has become impossible.
Which means that all objects need to be treated as linear, which
completely removes the need for implementing the linear cells as part
The latter might be the most important part: pf needs its own cons
cells, separate from vectors. The proper way to structure this is:
PF data: LEAF + LCONS
And leave it such that PF data cannot reference EX data.
The latter is problematic for code pointers.
So... pf data should be EX.