Howard,

Is there a chance that you consider making Cascade servlet-
independent? It would be great if Cascade application could be also
run, for example, directly as a grizzlet (or some other yet-to-be-
created technology). Is there an absolute need to depend on servlets
now when we have Clojure's advanced concurrent models and
immutability?


On Jul 22, 5:46 pm, Howard Lewis Ship <hls...@gmail.com> wrote:
> On Wed, Jul 22, 2009 at 8:16 AM, Stuart
>
>
>
> Sierra<the.stuart.sie...@gmail.com> wrote:
>
> > On Jul 21, 6:55 pm, Howard Lewis Ship <hls...@gmail.com> wrote:
> >> It would be nice if (gen-class), when not in compile mode, would still
> >> create a class in memory that could be referenced by class name
> >> elsewhere in Clojure.
>
> > The gen-class function does nothing unless the *compile-files* var is
> > true.  So you should be able to do:
>
> > (binding [*compile-files* true]
> >  (gen-class ...))
>
> > To generate classes at run-time.  As others have mentioned, though,
> > you can't redefine a named class in Java once it's been loaded.
>
> Actually, no.  You can't redefine a named class *in the same classloader*.
>
> However if you create a new class loader to contain the new class, you
> can make it work.
>
> Tapestry has been doing this for a few years now (it actually reads
> the bytecode for a base class then does an AOP-style transformation on
> the code before loading the transformed class into a new class
> loader).
>
> This would be both harder and easier to do in Clojure.  Because of
> Vars, its pretty easy to get rid of references to the old function,
> class and class loader.  However, because of functional closures, you
> will often be holding a reference to a function (and it's class, and
> it's class loader).
>
> Still, this may be acceptable if you consider running Clojure code
> without AOT to be "development mode" and running Clojure code with AOT
> to be "production mode".
>
> --
> Howard M. Lewis Ship
>
> Creator of Apache Tapestry
> Director of Open Source Technology at Formos

--~--~---------~--~----~------------~-------~--~----~
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