Wed Jun 11 20:38:24 CEST 2008
so, maybe just hack it. whenever a name is a number, it's a permanent
org change. the obvious requirement is that it's an expression that
can be evaluated at compile time.
this is already used: if target name is a number, the current chain
will be assembled inside a code pointer push/pop.
in macro/instantiate.ss the function 'combine-if-org' is used to
combine multiple chains if the current store has an org specified, to
make sure it stays bundled.
so, what needs to be done is a simple marker in the assembly code that
sets the code pointer. that's all really.. why is this so difficult?
because it's a dirty operation, and there's no clean way to do it. it
probably needs some management at some point, i.e. to disallow it for
certain code contexts..
ORG FOR CHAINS:
* compiler uses state push/pop to control stack
* on org change: all chains are combined
* assambler recognizes org chains
* some 'magic packet' in the chain stream.
permanent org needs to terminate the current chain, but doesn't need
to link up chains.
let's just make names (org <number>) and (org! <number>)