On Wed, Sep 4, 2013, at 09:25 AM, Zach Tellman wrote:
I'm not sure what you mean by "complete recursive expansion". Could you expand on that? Completely ;-) By complete recursive expansion I mean that you get a form that is fully reduced to the core language, i.e. it contains no more macro applications at any level. If you leave macro expansion to the compiler, it does it when it arrives at the macro during evaluation. Then it does a plain non-recursive macroexpand and goes on evaluating. Any macro thus has access to the unexpanded contents of its form, but not to what it eventually expands to. For many applications that's just fine, which is why this approach has been the default in the Lisp world for a long time. As for replicating the behavior of the compiler, I'd assert that unless &env is precisely what it would be without ahead of time macroexpansion, the compiler's behavior isn't being replicated. I agree. tools.macro predates &env, which is why it is not supported. Since I have never need &env support and nobody ever asked for it (before now), it's not there. I don't see any reason why it couldn't be supported. Konrad. -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.