Hey guys, I'm getting this compiler error after upgrading to alpha3, I assume it has something to do with the direct linking changes?
I think it's related to clj-ssh library, and this method specifically: (defn- ^{:tag (Class/forName "[B")} as-bytes "Return arg as a byte array. arg must be a string or a byte array." [arg] (if (string? arg) (.getBytes ^String arg ascii) arg)) The exception is below: #error { :cause Unable to resolve classname: (Class/forName "[B") :via [{:type clojure.lang.Compiler$CompilerException :message java.lang.IllegalArgumentException: Unable to resolve classname: (Class/forName "[B"), compiling:(clj_ssh/ssh.clj:94:1) :at [clojure.lang.Compiler analyzeSeq Compiler.java 6891]} {:type java.lang.IllegalArgumentException :message Unable to resolve classname: (Class/forName "[B") :at [clojure.lang.Compiler$HostExpr tagToClass Compiler.java 1132]}] :trace [[clojure.lang.Compiler$HostExpr tagToClass Compiler.java 1132] [clojure.lang.Compiler tagClass Compiler.java 8384] [clojure.lang.Compiler$FnMethod parse Compiler.java 5309] [clojure.lang.Compiler$FnExpr parse Compiler.java 3977] [clojure.lang.Compiler analyzeSeq Compiler.java 6882] [clojure.lang.Compiler analyze Compiler.java 6685] [clojure.lang.Compiler analyzeSeq Compiler.java 6872] [clojure.lang.Compiler analyze Compiler.java 6685] [clojure.lang.Compiler access$300 Compiler.java 38] [clojure.lang.Compiler$DefExpr$Parser parse Compiler.java 593] [clojure.lang.Compiler analyzeSeq Compiler.java 6884] [clojure.lang.Compiler analyze Compiler.java 6685] [clojure.lang.Compiler analyze Compiler.java 6646] [clojure.lang.Compiler eval Compiler.java 6947] [clojure.lang.Compiler load Compiler.java 7390] [clojure.lang.RT loadResourceScript RT.java 372] [clojure.lang.RT loadResourceScript RT.java 363] [clojure.lang.RT load RT.java 453] [clojure.lang.RT load RT.java 419] [clojure.core$load$fn__5436 invoke core.clj 5869] [clojure.core$load invokeStatic core.clj 5868] [clojure.core$load_one invokeStatic core.clj 5669] [clojure.core$load_one invoke core.clj -1] [clojure.core$load_lib$fn__5385 invoke core.clj 5714] [clojure.core$load_lib invokeStatic core.clj 5713] [clojure.core$load_lib doInvoke core.clj -1] [clojure.lang.RestFn applyTo RestFn.java 142] [clojure.core$apply invokeStatic core.clj 635] [clojure.core$load_libs invokeStatic core.clj 5751] [clojure.core$load_libs doInvoke core.clj -1] [clojure.lang.RestFn applyTo RestFn.java 137] [clojure.core$apply invokeStatic core.clj 635] [clojure.core$require invokeStatic core.clj 5773] [clojure.core$require doInvoke core.clj -1] [clojure.lang.RestFn invoke RestFn.java 930] [cloud_monkey.ssh$eval21511$loading__5328__auto____21512 invoke ssh.clj 1] [cloud_monkey.ssh$eval21511 invokeStatic ssh.clj 1] [cloud_monkey.ssh$eval21511 invoke ssh.clj -1] [clojure.lang.Compiler eval Compiler.java 6943] [clojure.lang.Compiler eval Compiler.java 6932] [clojure.lang.Compiler load Compiler.java 7390] [clojure.lang.RT loadResourceScript RT.java 372] [clojure.lang.RT loadResourceScript RT.java 363] [clojure.lang.RT load RT.java 453] [clojure.lang.RT load RT.java 419] [clojure.core$load$fn__5436 invoke core.clj 5869] [clojure.core$load invokeStatic core.clj 5868] [clojure.core$load_one invokeStatic core.clj 5669] [clojure.core$load_one invoke core.clj -1] [clojure.core$load_lib$fn__5385 invoke core.clj 5714] [clojure.core$load_lib invokeStatic core.clj 5713] [clojure.core$load_lib doInvoke core.clj -1] [clojure.lang.RestFn applyTo RestFn.java 142] [clojure.core$apply invokeStatic core.clj 635] [clojure.core$load_libs invokeStatic core.clj 5751] [clojure.core$load_libs doInvoke core.clj -1] [clojure.lang.RestFn applyTo RestFn.java 137] [clojure.core$apply invokeStatic core.clj 635] [clojure.core$require invokeStatic core.clj 5773] [clojure.core$require doInvoke core.clj -1] [clojure.lang.RestFn invoke RestFn.java 1289] [cloud_monkey.execution_pipeline$eval21505$loading__5328__auto____21506 invoke execution_pipeline.clj 1] [cloud_monkey.execution_pipeline$eval21505 invokeStatic execution_pipeline.clj 1] [cloud_monkey.execution_pipeline$eval21505 invoke execution_pipeline.clj -1] [clojure.lang.Compiler eval Compiler.java 6943] [clojure.lang.Compiler eval Compiler.java 6932] [clojure.lang.Compiler load Compiler.java 7390] [clojure.lang.RT loadResourceScript RT.java 372] [clojure.lang.RT loadResourceScript RT.java 363] [clojure.lang.RT load RT.java 453] [clojure.lang.RT load RT.java 419] [clojure.core$load$fn__5436 invoke core.clj 5869] [clojure.core$load invokeStatic core.clj 5868] [clojure.core$load_one invokeStatic core.clj 5669] [clojure.core$load_one invoke core.clj -1] [clojure.core$load_lib$fn__5385 invoke core.clj 5714] [clojure.core$load_lib invokeStatic core.clj 5713] [clojure.core$load_lib doInvoke core.clj -1] [clojure.lang.RestFn applyTo RestFn.java 142] [clojure.core$apply invokeStatic core.clj 635] [clojure.core$load_libs invokeStatic core.clj 5751] [clojure.core$load_libs doInvoke core.clj -1] [clojure.lang.RestFn applyTo RestFn.java 137] [clojure.core$apply invokeStatic core.clj 635] [clojure.core$require invokeStatic core.clj 5773] [clojure.core$require doInvoke core.clj -1] [clojure.lang.RestFn invoke RestFn.java 1523] [cloud_monkey.events$eval21499$loading__5328__auto____21500 invoke events.clj 1] [cloud_monkey.events$eval21499 invokeStatic events.clj 1] [cloud_monkey.events$eval21499 invoke events.clj -1] [clojure.lang.Compiler eval Compiler.java 6943] [clojure.lang.Compiler eval Compiler.java 6932] [clojure.lang.Compiler load Compiler.java 7390] [clojure.lang.RT loadResourceScript RT.java 372] [clojure.lang.RT loadResourceScript RT.java 363] [clojure.lang.RT load RT.java 453] [clojure.lang.RT load RT.java 419] [clojure.core$load$fn__5436 invoke core.clj 5869] [clojure.core$load invokeStatic core.clj 5868] [clojure.core$load_one invokeStatic core.clj 5669] [clojure.core$load_one invoke core.clj -1] [clojure.core$load_lib$fn__5385 invoke core.clj 5714] [clojure.core$load_lib invokeStatic core.clj 5713] [clojure.core$load_lib doInvoke core.clj -1] [clojure.lang.RestFn applyTo RestFn.java 142] [clojure.core$apply invokeStatic core.clj 635] [clojure.core$load_libs invokeStatic core.clj 5751] [clojure.core$load_libs doInvoke core.clj -1] [clojure.lang.RestFn applyTo RestFn.java 137] [clojure.core$apply invokeStatic core.clj 635] [clojure.core$require invokeStatic core.clj 5773] [clojure.core$require doInvoke core.clj -1] [clojure.lang.RestFn invoke RestFn.java 1789] [cloud_monkey.aleph_netty$eval1588$loading__5328__auto____1589 invoke aleph_netty.clj 1] [cloud_monkey.aleph_netty$eval1588 invokeStatic aleph_netty.clj 1] [cloud_monkey.aleph_netty$eval1588 invoke aleph_netty.clj -1] [clojure.lang.Compiler eval Compiler.java 6943] [clojure.lang.Compiler eval Compiler.java 6932] [clojure.lang.Compiler load Compiler.java 7390] [clojure.lang.RT loadResourceScript RT.java 372] [clojure.lang.RT loadResourceScript RT.java 363] [clojure.lang.RT load RT.java 453] [clojure.lang.RT load RT.java 419] [clojure.core$load$fn__5436 invoke core.clj 5869] [clojure.core$load invokeStatic core.clj 5868] [clojure.core$load_one invokeStatic core.clj 5669] [clojure.core$load_one invoke core.clj -1] [clojure.core$load_lib$fn__5385 invoke core.clj 5714] [clojure.core$load_lib invokeStatic core.clj 5713] [clojure.core$load_lib doInvoke core.clj -1] [clojure.lang.RestFn applyTo RestFn.java 142] [clojure.core$apply invokeStatic core.clj 635] [clojure.core$load_libs invokeStatic core.clj 5751] [clojure.core$load_libs doInvoke core.clj -1] [clojure.lang.RestFn applyTo RestFn.java 137] [clojure.core$apply invokeStatic core.clj 635] [clojure.core$require invokeStatic core.clj 5773] [clojure.core$require doInvoke core.clj -1] [clojure.lang.RestFn invoke RestFn.java 512] [cloud_monkey.core$eval14$loading__5328__auto____15 invoke core.clj 1] [cloud_monkey.core$eval14 invokeStatic core.clj 1] [cloud_monkey.core$eval14 invoke core.clj -1] [clojure.lang.Compiler eval Compiler.java 6943] [clojure.lang.Compiler eval Compiler.java 6932] [clojure.lang.Compiler load Compiler.java 7390] [clojure.lang.RT loadResourceScript RT.java 372] [clojure.lang.RT loadResourceScript RT.java 363] [clojure.lang.RT load RT.java 453] [clojure.lang.RT load RT.java 419] [clojure.core$load$fn__5436 invoke core.clj 5869] [clojure.core$load invokeStatic core.clj 5868] [clojure.core$load_one invokeStatic core.clj 5669] [clojure.core$load_one invoke core.clj -1] [clojure.core$load_lib$fn__5385 invoke core.clj 5714] [clojure.core$load_lib invokeStatic core.clj 5713] [clojure.core$load_lib doInvoke core.clj -1] [clojure.lang.RestFn applyTo RestFn.java 142] [clojure.core$apply invokeStatic core.clj 635] [clojure.core$load_libs invokeStatic core.clj 5751] [clojure.core$load_libs doInvoke core.clj -1] [clojure.lang.RestFn applyTo RestFn.java 137] [clojure.core$apply invokeStatic core.clj 635] [clojure.core$require invokeStatic core.clj 5773] [clojure.core$require doInvoke core.clj -1] [clojure.lang.RestFn invoke RestFn.java 408] [user$eval5 invokeStatic form-init3436449082767268851.clj 1] [user$eval5 invoke form-init3436449082767268851.clj -1] [clojure.lang.Compiler eval Compiler.java 6943] [clojure.lang.Compiler eval Compiler.java 6932] [clojure.lang.Compiler eval Compiler.java 6932] [clojure.lang.Compiler load Compiler.java 7390] [clojure.lang.Compiler loadFile Compiler.java 7328] [clojure.main$load_script invokeStatic main.clj 275] [clojure.main$init_opt invokeStatic main.clj 277] [clojure.main$init_opt invoke main.clj -1] [clojure.main$initialize invokeStatic main.clj 308] [clojure.main$null_opt invokeStatic main.clj 342] [clojure.main$null_opt invoke main.clj -1] [clojure.main$main invokeStatic main.clj 421] [clojure.main$main doInvoke main.clj -1] [clojure.lang.RestFn invoke RestFn.java 421] [clojure.lang.Var invoke Var.java 383] [clojure.lang.AFn applyToHelper AFn.java 156] [clojure.lang.Var applyTo Var.java 700] [clojure.main main main.java 37]]} On Wednesday, July 29, 2015 at 3:51:18 PM UTC-7, Alex Miller wrote: > > Clojure 1.8.0-alpha3 is now available. > > Try it via > - Download: > https://repo1.maven.org/maven2/org/clojure/clojure/1.8.0-alpha3 > - Leiningen: [org.clojure/clojure "1.8.0-alpha3"] > > Tuples have been disabled after further analysis of performance impacts. > > This alpha has initial support for direct linking which you can enable > with -Dclojure.compiler.direct-linking=true > > Direct linking allows functions compiled with direct linking on to make > direct static method calls to most other functions, instead of going > through the var and the Fn object. This can enable further optimization by > the jit, at a cost in dynamism. In particular, directly-linked calls will > not see redefinitions. > > In alpha3, clojure.core is compiled with direct linking by default and > therefore other namespaces cannot redefine core fns and have those > redefinitions seen by core code. > > Functions declared as dynamic will never be linked to directly. > > As with all alphas, this represents ongoing work-in-progress that is > subject to change. > -- 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.