I totally misunderstood the role of the EVAL context flag in the compile method of ObjExpr. Is there a general writeup anywhere of how the compiler works, especially the interaction of parse and emit?
On Nov 15, 4:59 pm, Ken Wesson <kwess...@gmail.com> wrote: > On Mon, Nov 15, 2010 at 4:24 PM, Alan <a...@malloys.org> wrote: > > On Nov 15, 12:12 pm, Alyssa Kwan <alyssa.c.k...@gmail.com> wrote: > >> In your example, my-generator isn't the concern. It's the call to my- > >> generator that creates functions, each of which creates bytecode, is > >> loaded as a class, then is instantiated, and finally invoked. > > > Not true. Compiling my-generator creates two classes, which at run > > time are simply instantiated as needed. > > I thought so. Now if your code has stuff like: > > (defn foo [x] > (eval `(fn [quux] blah blah blah quux blah blah ~x blah))) > > then every call to foo generates new classes and loads them at > runtime. Part of why eval should be used sparingly. :) -- 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