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.

Reply via email to