Tue May 3 10:13:10 EDT 2011
Towards abstract code
I've got all code ops abstracted:
/* Read a number from the code stream. */
#define NEXT_NUM NPOP(c)
/* Read a structured data item from the stream: try to avoid this as
it hinders abstraction. Replace with other typed reads. */
#define NEXT_ADDR POP(c) // read abstract code address
#define NEXT_DATA POP(c) // read constant data
#define NEXT_VOID (POP(c)->atom) // read full machine address
The next step is to make representation of code addresses abstract,
i.e. in the continuation stack.
Another point of attention is whether the code itself will be GC-able.
For embedded use (when `eval' is not defined on the target) this is
probably not the case. Turning that upside down: of course it is not,
otherwise we would _have to_ use CELL representation!