Sun May 18 18:48:18 CEST 2008

Labels and code

so.. maybe it's time forget about splitting the target code into
words? is it a false abstraction?

not really.. but the current fallthrough mechanism does look a bit
clumsy. the problem wrap-macro/postponed-word solves is the creation
of wrapper macros, which is quite essential as it allows ALL names to
be handled by the PLT module + lexical scoping..

whatever the representation is of the code that generates the
assembler is moot. currently it's this:

          (#f . prelude-macro)
          (word0 . macro0)
          (word1 . macro1) ...

the macro<x> are then wrapped with a split (label) and concatenated

a different, possibly simpler implementation would be to collect all
names separately, and define a single big macro that generates the
module's code. the problem here is that inline macros need to be
handled differently...

so let's stick to the current implementation.

  * macro definitions are clearly delimited: one name for one macro,
    no multiple entry points.

  * forth definitions have multiple entry points + there's an unnamed
    prelude at the beginning of the file. (names merely interleave one
    big macro that generates the code body)