Sun Jan 24 14:54:37 CET 2010
More about tethering
Let's build a tethered library based only on LEAF.
Given a function from LEAF, how can EX use it? It needs to know how
many arguments to pass, and how to wrap/unwrap the arguments.
What about adding a _type function that will provide this information?
For each function defined in an .so there is an additional function
_type that will produce meta-info.
- Incremental bootstrap is messy.
- A decent self-hosting compiler is not so trivial
=> A fully bootstrapped, possibly not self-hosted compiler might
be a better approach.
- I don't understand it quite well yet. There are lots of
decisions to make when writing a VM. I'm not sure a few simple
modifications will do much good. I would like to go back to
simplicity first, then maybe speed later.
- Did some thinking about tethered development. This might be the
most viable way of moving the project forward, and take it closer to
Staapl. What I really need however is an application to drive it.
Next? Hard to say. Probably the tethered approach and simpler
wrapping. Those would be the most useful approaches. Essentially
LEAF+GC could be written in C, but the rest might be generated from
Scheme or some first-order language.