The type-hint on init-state is wrong. It has to be either
(defn {:tag 'longs} init-state [] (long-array 1)) or (preferred) (defn init-state ^longs [] (long-array 1)) shlomivak...@gmail.com writes: > I tried playing around with the new primitive type hints and got the > following weird behavior on [org.clojure/clojure "1.7.0-beta2"]: > > (defn ^longs init-state [] (long-array 1)) > > (defn ^long store-state [^longs c ^long a] (aset c 0 a)) > > running the following line resulted in an exception: > > (let [x (init-state)] > (store-state x 5)) > > 1. Caused by java.lang.VerifyError > (class: clojure_7/core$eval13270, method: invoke signature: > ()Ljava/lang/Object;) Unable to pop operand off an empty stack > > Class.java: -2 > java.lang.Class/getDeclaredConstructors0 > Class.java: 2671 > java.lang.Class/privateGetDeclaredConstructors > Class.java: 3075 java.lang.Class/getConstructor0 > Class.java: 412 java.lang.Class/newInstance > Compiler.java: 4843 clojure.lang.Compiler$ObjExpr/eval > Compiler.java: 6791 clojure.lang.Compiler/eval > Compiler.java: 7237 clojure.lang.Compiler/load > REPL: 1 reverse-index.main/eval13258 > Compiler.java: 6792 clojure.lang.Compiler/eval > Compiler.java: 6755 clojure.lang.Compiler/eval > core.clj: 3079 clojure.core/eval > main.clj: 240 clojure.main/repl/read-eval-print/fn > main.clj: 240 clojure.main/repl/read-eval-print > main.clj: 258 clojure.main/repl/fn > main.clj: 258 clojure.main/repl > RestFn.java: 1523 clojure.lang.RestFn/invoke > interruptible_eval.clj: 58 > clojure.tools.nrepl.middleware.interruptible-eval/evaluate/fn > AFn.java: 152 clojure.lang.AFn/applyToHelper > AFn.java: 144 clojure.lang.AFn/applyTo > core.clj: 628 clojure.core/apply > core.clj: 1866 clojure.core/with-bindings* > RestFn.java: 425 clojure.lang.RestFn/invoke > interruptible_eval.clj: 56 > clojure.tools.nrepl.middleware.interruptible-eval/evaluate > interruptible_eval.clj: 188 > clojure.tools.nrepl.middleware.interruptible-eval/interruptible-eval/fn/fn > interruptible_eval.clj: 157 > clojure.tools.nrepl.middleware.interruptible-eval/run-next/fn > AFn.java: 22 clojure.lang.AFn/run > ThreadPoolExecutor.java: 1142 > java.util.concurrent.ThreadPoolExecutor/runWorker > ThreadPoolExecutor.java: 617 > java.util.concurrent.ThreadPoolExecutor$Worker/run > Thread.java: 745 java.lang.Thread/run > > while the following line worked just fine: > > (store-state (init-state) 5) > > and also this works fine: > > (def a (init-state)) > (store-state a 5) > > (aget a 0) ;; 5 > > What do you think? > > On Friday, April 24, 2015 at 11:27:40 AM UTC-7, Alex Miller wrote: >> >> Clojure 1.7.0-beta2 is now available. >> >> Try it via >> - Download: >> https://repo1.maven.org/maven2/org/clojure/clojure/1.7.0-beta2/ >> - Leiningen: [org.clojure/clojure "1.7.0-beta2"] >> >> Regression fixes since 1.7.0-beta1: >> >> 1) CLJ-1711 - structmap iterator broken >> 2) CLJ-1709 - range wrong for step != 1 >> 3) CLJ-1713 - range chunks are not serializable >> 4) CLJ-1698 - fix reader conditional bugs >> >> Additional enhancements to new features since 1.7.0-beta1: >> >> 1) CLJ-1703 - Pretty print #error and new public function Throwable->map >> 2) CLJ-1700 - Reader conditionals now allowed in the REPL >> 3) CLJ-1699 - Allow data_readers.cljc as well as data_readers.clj >> >> For a full list of changes since 1.6.0, see: >> https://github.com/clojure/clojure/blob/master/changes.md >> >> Please give it a try and let us know if things are working (or not)! >> >> - 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.