Sun Apr 19 11:08:25 CEST 2009

moving towards hash-less assembler

This requires the 'patterns macro to be adjusted to take names from
the module namespace instead of the hash table.  Note that this is
part of a more ambitious project of eliminating _all_ mutation of
names (also for macros) and replace them with directed acyclic name
structures (modules).

The problem here is that in a lot of places, symbols get quoted
directly, so it's a bit spread all over.

Maybe I'm not quite ready yet.  I don't completely understand _what_
an assembler should be.  This is lack of theoretical knowledge and a
good model of what I'm doing.

It is:
        - syntax to be manipulated (object language)
        - syntax to be translated to machine code
        - syntax to be interpreted (simulator)

Can we model these as functions?

        - macro : [asm] -> [asm]
        - assemble : [asm] -> [bin]
        - simulate : [asm] -> (m -> m)

Where [] = list of
      asm = assembly instructions
      bin = binary instructions (bit vectors)
      m = machine state object

There are others:
        - primitive-assemble : asm -> [bin]
        - disassemble : [bin] -> [asm]

Instead of poking around in current code, it might be wiser to start
building the core from ground up, to see what exactly can be done with