Mon Aug 13 15:56:35 CEST 2007
name space trick doesnt work
the problem seems to be that data constructed using the struct from
rep.ss is different from data constructed using run time evaluation in
the separate namespace..
i need a different approach. first to identify the problem:
- mzscheme has strict phase separation
- "(eval '(macro: ,@src))" works when the runtime name space, the
current one when that code is executed, has that macro available.
- somehow, the 'rep.ss' gets loaded twice, since i run into
now, why is it loaded twice?
one thing i could eliminate was a for-syntax dependency on rep.ss, so
the messages are a bit less confusing now.
it looks like the namespace trick creates a new instance. that's where
my trouble is.
let's simplify it a bit. the only thing that really needs dynamic
compilation is 'macro:'. so i'm going to put that dependency in the
code itself. but this should be independent of the problem, so i leave
it like it is.
i found a solution: just make sure the current namespace has the right
symbols. there's no other way. currently i just dynamic-require them
in, but i dont know if this is better than just requiring them at load
time, or namespace creation time..
it does feel a bit dirty though.. why use modules if they start
injecting stuff in your namespace? Maybe i should just pass the macros