Just to follow up, doing the obvious (though perhaps naïve) fix of changing forName to forNameNonLoading in the referenced maybeClass does seem to fix the issue and I can now AOT compile my application without needing the binaries for this machine. I don't know whether this change would have any other repercussions though.
On Thu Jan 22 2015 at 17:49:37 Adam Clements <adam.cleme...@gmail.com> wrote: > I think I am seeing static initialisers being run at AOT time when the > class is used as a type hint tag. This isn't a regression from previous > versions of clojure, but with the forNameNonLoading changes that have gone > in recently I was under the impression that this shouldn't be a problem any > more. > > My specific case has a static initialiser which loads a native library > (and I don't have the appropriate binary architecture for the machine doing > the compilation). > > The function definition > (defn some-function [^com.my_class.ExampleWhichLoadsNative x] ...) > > fails at AOT compile time with the (abridged) stack trace containing: > ... > at clojure.lang.Compiler.analyzeSeq(Compiler.java:6715) > at clojure.lang.Compiler.analyze(Compiler.java:6499) > at clojure.lang.Compiler.analyzeSeq(Compiler.java:6696) > at clojure.lang.Compiler.analyze(Compiler.java:6499) > at clojure.lang.Compiler.access$200(Compiler.java:38) > at clojure.lang.Compiler$DefExpr$Parser.parse(Compiler.java:560) > at clojure.lang.Compiler.analyzeSeq(Compiler.java:6708) > at clojure.lang.Compiler.analyze(Compiler.java:6499) > at clojure.lang.Compiler.analyze(Compiler.java:6460) > at clojure.lang.Compiler.compile1(Compiler.java:7285) > at clojure.lang.Compiler.compile(Compiler.java:7356) > at clojure.lang.RT.compile(RT.java:406) > ... > Caused by: > ... > <my class clinit> > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:274) > at clojure.lang.RT.classForName(RT.java:2127) > at clojure.lang.RT.classForName(RT.java:2136) > at clojure.lang.Compiler$HostExpr.maybeClass(Compiler.java:1000) > at clojure.lang.Compiler$HostExpr.tagToClass(Compiler.java:1092) > at clojure.lang.Compiler.tagClass(Compiler.java:8187) > at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5218) > at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3900) > at clojure.lang.Compiler.analyzeSeq(Compiler.java:6706) > ... > > On Wed Jan 21 2015 at 23:58:28 Alan Moore <kahunamo...@gmail.com> wrote: > >> Sweet - thanks for the reply. I hope I didn't sound impatient... I'm very >> grateful for your hard work on it. I'd offer to help but I'm sure it is >> beyond me and my crazy-mad Clojure skillz(tm). I think I'll leave the hard >> stuff to the real experts :-) >> >> Alan >> >> >> On Wednesday, January 21, 2015 at 6:07:13 AM UTC-8, Alex Miller wrote: >>> >>> I am actively working on an updated set of patches, hopefully for >>> inclusion in the next alpha. >>> >>> Alex >> >> -- >> 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. >> > -- 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.