Actually, it's even simpler:
(def ^:const
mappings-8x8
  (mapv #(apply vector-of :int %)
        [[0 0] [1 0] [2 0]])
  )

(class mappings-8x8) ;throws
CompilerException java.lang.RuntimeException: Can't embed object in code,
maybe print-dup not defined: clojure.core$reify__6186@77771028, compiling:


On Mon, Jan 21, 2013 at 1:17 AM, AtKaaZ <atk...@gmail.com> wrote:

> 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 ;)
>



-- 
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