Thanks, I forwarded this stuff over to Rich. We appreciate people trying it and reporting stuff!
On Wednesday, July 29, 2015 at 8:23:16 PM UTC-5, Mikera wrote: > > Hi Alex, > > 1.8.0-alpha3 is breaking core.matrix at the moment. > > Root cause appears to be related to how protocols are being handled when > used with Java arrays: > > e.g. for the protocol implementation: > (extend-protocol mp/PImplementation > (Class/forName "[Ljava.lang.Object;") > (implementation-key [m] :object-array) > (meta-info [m] > {:doc "Clojure.core.matrix implementation for Java Object arrays"}) > (new-vector [m length] (construct-object-vector (long length))) > (new-matrix [m rows columns] > (let [columns (long columns) > m (object-array rows)] > (dotimes [i rows] > (aset m i (construct-object-vector columns))) > m)) > (new-matrix-nd [m shape] > (construct-nd shape)) > (construct-matrix [m data] > (construct-object-array data)) > (supports-dimensionality? [m dims] > (>= dims 1))) > > When called as: > (clojure.core.matrix.protocols/construct-matrix (object-array 1) [1]) > > Gives exception: > VerifyError (class: clojure/core/matrix$eval10586, method: invokeStatic > signature: ()Ljava/lang/Object;) Incompatible object argument for function > call java.lang.Class.getDeclaredConstructors0 (:-2) > > On Thursday, 30 July 2015 06:51:18 UTC+8, 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.