I recently ran into an issue with AOT compilation that I'd like to 
understand better. A minimal working example (MWE) can be found here 
<https://github.com/xiongtx/lein-trampoline-aot>. 

Basically, using `:aot :all` in `project.clj` with `lein trampoline test` 
results in different classloaders for class `Foo`.  

Classloader for lein_trampoline_aot.core.Foo:  
#object[clojure.lang.DynamicClassLoader 
0x4982cc36 clojure.lang.DynamicClassLoader@4982cc36]
Classloader for (->Foo):  #object[sun.misc.Launcher$AppClassLoader 
0x55f96302 sun.misc.Launcher$AppClassLoader@55f96302]

While the same classloaders are used with `lein test`:

Class loader for lein_trampoline_aot.core.Foo:  
#object[sun.misc.Launcher$AppClassLoader 
0x55f96302 sun.misc.Launcher$AppClassLoader@55f96302]
Classloader for (->Foo):  #object[sun.misc.Launcher$AppClassLoader 
0x55f96302 sun.misc.Launcher$AppClassLoader@55f96302]

When is one classloader used instead of another, and why do `lein 
trampoline test` and `lein test` behave differently with `:aot :all`?

-- 
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/d/optout.

Reply via email to