and I wish you the best of luck! I particularly like your (.bar.baz foo) syntax.Thanks!
And good on you for moving away from bytecode generation; I also found that to be a dead end.
Glad to hear I'm not the only one. :-)
So what are your plans for macros+namespaces? Will macros from imports live in the same namespace?
Actually, I hadn't thought about it--I haven't gotten to the point of being able to write modules in Adder. I think I see what you mean, though: any module has to be a Python module, so macros would have to be expressed as functions.
Strawman: the module could contain a variable listing the macros. When compiling an (import) form, the Adder compiler would check the imported module for that list, and update its internal structures accordingly.
And what did you mean by "Python supports only two levels of lexical scope"
That was a mistake; I've removed it. I think maybe I just didn't figure out how to generate bytecode for a triply nested function.
Of course, there is the remaining problem that Python can't define a scope without defining a function. I didn't want to use the standard tactic for turning (let) into a nested function (I don't trust Python functions to be fast enough), so the current compiler uses name mangling, tagging each variable with the scope depth. (Global variables are untagged, so that they can be accessed cleanly by Python modules.)