Antony Lee writes:
> In my latest commit *ns* is now a regular Var (in clojure.core) set by
> compiler.executeCode before each eval().
Thanks, this lets me continue to work on macroexpand!
> This works well in general, I think (e.g. it easily solves #101);
> however I am not sure executeCode is the best place to set *ns*
> because (if I understand well) we are not always going to go
> through executeCode (for example in the case of
> interop... e.g. tests). Please have a look and tell me what you
> think! Antony
After fixing macroexpand to use *ns*, it works fine... *except* in a
test, as you supposed.
Basically, *ns* matters only for code that does namespace lookup.
That's the compiler, behind the scenes, plus eval and macroexpand.
Interop is a special situation because we'd have to decide on what *ns*
is supposed to be in code called from Python. It may be more pragmatic
to fix the testing framework (where this matters most right now) and
see if other problematic situations arise.
Konrad.