[<<][libprim][>>][..]
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
  _contents_ differently.

* 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
of EX.

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
   code: EX

And leave it such that PF data cannot reference EX data.

The latter is problematic for code pointers.

So... pf data should be EX.




[Reply][About]
[<<][libprim][>>][..]