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

Reply via email to