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 [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/d/optout.