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

Reply via email to