I've managed to reduce this to: (ns Clondie24.games.xx1) (def ^:const mappings-8x8 (mapv #(apply vector-of :int %) [[0 0] [1 0] [2 0]]) )
(defn translate [mappings] (let [list-loc (.indexOf mappings [0 1])] )) (translate mappings-8x8);throws ---- => (pst *e 121312) CompilerException java.lang.RuntimeException: Can't embed object in code, maybe print-dup not defined: clojure.core$reify__6186@77771028, compiling:(Clondie24\games\xx1.clj:16:1) clojure.lang.Compiler.analyzeSeq (Compiler.java:6566) clojure.lang.Compiler.analyze (Compiler.java:6360) clojure.lang.Compiler.eval (Compiler.java:6615) clojure.lang.Compiler.load (Compiler.java:7062) Clondie24.games.chess/eval19634 (NO_SOURCE_FILE:1) clojure.lang.Compiler.eval (Compiler.java:6618) clojure.lang.Compiler.eval (Compiler.java:6581) clojure.core/eval (core.clj:2852) clojure.main/repl/read-eval-print--6625 (main.clj:251) clojure.main/repl/fn--6630/fn--6631 (main.clj:269) clojure.main/repl/fn--6630 (main.clj:269) clojure.main/repl (main.clj:267) clojure.tools.nrepl.middleware.interruptible-eval/evaluate/fn--988 (interruptible_eval.clj:58) clojure.core/apply (core.clj:617) clojure.core/with-bindings* (core.clj:1788) clojure.tools.nrepl.middleware.interruptible-eval/evaluate (interruptible_eval.clj:43) clojure.tools.nrepl.middleware.interruptible-eval/interruptible-eval/fn--1029/fn--1032 (interruptible_eval.clj:173) clojure.core/comp/fn--4173 (core.clj:2330) clojure.tools.nrepl.middleware.interruptible-eval/run-next/fn--1022 (interruptible_eval.clj:140) java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1110) java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:603) java.lang.Thread.run (Thread.java:722) Caused by: RuntimeException Can't embed object in code, maybe print-dup not defined: clojure.core$reify__6186@77771028 clojure.lang.Util.runtimeException (Util.java:219) clojure.lang.Compiler$ObjExpr.emitValue (Compiler.java:4570) clojure.lang.Compiler$ObjExpr.emitValue (Compiler.java:4496) clojure.lang.Compiler$ObjExpr.emitListAsObjectArray (Compiler.java:4392) clojure.lang.Compiler$ObjExpr.emitValue (Compiler.java:4529) clojure.lang.Compiler$ObjExpr.emitConstants (Compiler.java:4609) clojure.lang.Compiler$ObjExpr.compile (Compiler.java:4072) clojure.lang.Compiler$FnExpr.parse (Compiler.java:3808) clojure.lang.Compiler.analyzeSeq (Compiler.java:6557) clojure.lang.Compiler.analyze (Compiler.java:6360) to fix this, just comment out the "^:const" part, like so: (def ;^:const now, doesn't throw. --------- ///some extra stuff(ignore this): (def xam0 (translate mappings-8x8));works (println xam0) (let [ xam (translate 1 2 mappings-8x8) ]);this one throws: can't embed even before Wrong number of args (3) ///end ignore Maybe someone can explain... This was enjoyable ;) On Mon, Jan 21, 2013 at 12:03 AM, Jim - FooBar(); <jimpil1...@gmail.com>wrote: > yes exactly! In the commit that github shows last line 238 is line 244 > in my current branch...Since you're looking into it i can commit everything > now so we're all on the same page... > > Jim > > > On 20/01/13 21:10, AtKaaZ wrote: > > is this line 244? > > https://github.com/jimpil/Clondie24/blob/master/src/Clondie24/games/chess.clj#L238 > > > On Sun, Jan 20, 2013 at 7:58 PM, Jim - FooBar(); <jimpil1...@gmail.com>wrote: > >> Hi everyone, >> >> I came back to a project of mine after a couple of months only to be >> surprised by some cryptic exception! Imagine a 2d vector: >> >> (def coords [[0 0] [0 1] [1 0] [1 1]]) ;;vector of vectors of longs >> >> ;;but let's try ints which are cached: >> >> (def coords >> (mapv #(apply vector-of :int %) [[0 0] [0 1] [1 0] [1 1]])) ;;vector >> of vectors of ints >> >> >> everything seems great right? well, now my namespaces don't even compile! >> This is my representation of the 'board' in a game which means that I'm >> only reading from this vector nothing else! I am getting CompilerException >> java.lang.RuntimeException: Can't embed object in code, maybe print-dup not >> defined: clojure.core$reify__6184@1eb42164, >> compiling:(Clondie24/games/chess.clj:244:1) where line 244 is just a 'defn' >> with its argument vector...as soon as I comment out the conversion to >> unboxed int primitives everything works again! doing (pst) does not help at >> all! Look at this: >> >> user=> (pst) >> CompilerException java.lang.RuntimeException: Can't embed object in code, >> maybe print-dup not defined: clojure.core$reify__6186@61c28cfb, >> compiling:(Clondie24/games/chess.clj:244:1) >> clojure.lang.Compiler.analyzeSeq (Compiler.java:6566) >> clojure.lang.Compiler.analyze (Compiler.java:6360) >> clojure.lang.Compiler.analyzeSeq (Compiler.java:6547) >> clojure.lang.Compiler.analyze (Compiler.java:6360) >> clojure.lang.Compiler.access$100 (Compiler.java:37) >> clojure.lang.Compiler$DefExpr$Parser.parse (Compiler.java:528) >> clojure.lang.Compiler.analyzeSeq (Compiler.java:6559) >> clojure.lang.Compiler.analyze (Compiler.java:6360) >> clojure.lang.Compiler.analyze (Compiler.java:6321) >> clojure.lang.Compiler.eval (Compiler.java:6622) >> clojure.lang.Compiler.load (Compiler.java:7062) >> clojure.lang.RT.loadResourceScript (RT.java:361) >> Caused by: >> RuntimeException Can't embed object in code, maybe print-dup not defined: >> clojure.core$reify__6186@61c28cfb >> clojure.lang.Util.runtimeException (Util.java:219) >> clojure.lang.Compiler$ObjExpr.emitValue (Compiler.java:4570) >> clojure.lang.Compiler$ObjExpr.emitValue (Compiler.java:4496) >> clojure.lang.Compiler$ObjExpr.emitListAsObjectArray >> (Compiler.java:4392) >> clojure.lang.Compiler$ObjExpr.emitValue (Compiler.java:4529) >> clojure.lang.Compiler$ObjExpr.emitConstants (Compiler.java:4609) >> clojure.lang.Compiler$ObjExpr.compile (Compiler.java:4072) >> clojure.lang.Compiler$FnExpr.parse (Compiler.java:3808) >> clojure.lang.Compiler.analyzeSeq (Compiler.java:6557) >> clojure.lang.Compiler.analyze (Compiler.java:6360) >> nil >> >> this is clearly not my code! everything is clojure.lang.Compiler related! >> what is happening exactly? can anyone explain? I'm not doing anything >> 'weird' in the function reported in the exception just reading the vector. >> >> Jim >> >> >> >> >> >> -- >> 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 >> > > > > -- > I may be wrong or incomplete. > Please express any corrections / additions, > they are encouraged and appreciated. > At least one entity is bound to be transformed if you do ;) > -- > 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 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 > -- I may be wrong or incomplete. Please express any corrections / additions, they are encouraged and appreciated. At least one entity is bound to be transformed if you do ;) -- 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