Sun Dec 6 10:22:22 CET 2009

reflection on future

Recent developments have shifted the off-clock effort from making the
Scheme VM faster to making the Scheme layer easier to eliminate,
producing readable and editable C code.

Things that seem to become more important:

  - LEAF data structures with sharing
  - Automatic wrapper generation
  - Migration from Scheme to C/LEAF code
  - Java JNI integration

In short: it should be possible to peel the EX/SC layers off more
easily, leaving just C code and the LEAF object library.

For structures with sharing, but without dependency on an asynchronous
GC, it's necessary to implement some form of reference counting.  This
can either be done inside the base object, (taking a 2nd field), or as
a subclass.

Things that are hinted at:

  - Polymorphy in LEAF
  - Implementing ex/vector in terms of leaf/tuple
  - Implementing PF's linear (data) core in terms of LEAF, with code
    execution in terms of VECTOR.

The more I think about this, the more it seems plausible to take a
closer look at the object side of the COLA architecture.  Some missing
links are it's object model, and bootstrap through the method table
cache.  From another side, CLOS and implementations might also be a
good source of information.