Caused by:
RuntimeException Can't embed object in code, maybe print-dup not defined:
clojure.core$reify__6186@4e5db277
    clojure.lang.Util.runtimeException (Util.java:223)
    clojure.lang.Compiler$ObjExpr.emitValue (Compiler.java:4571)
    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:4610)
    clojure.lang.Compiler$ObjExpr.compile (Compiler.java:4072)
    clojure.lang.Compiler$FnExpr.parse (Compiler.java:3808)
    clojure.lang.Compiler.analyzeSeq (Compiler.java:6558)
    clojure.lang.Compiler.analyze (Compiler.java:6361)
Caused by:
IllegalArgumentException *No method in multimethod 'print-dup' for dispatch
value: class clojure.core$reify__6186*
    clojure.lang.MultiFn.getFn (MultiFn.java:160)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core/pr-on (core.clj:3321)
    clojure.lang.Var.invoke (Var.java:419)
    clojure.lang.RT.print (RT.java:1739)
    clojure.lang.RT.printString (RT.java:1718)
    clojure.lang.Compiler$ObjExpr.emitValue (Compiler.java:4566)

to see this I had to edit clojure code
/clojure/src/jvm/clojure/lang/Compiler.java line 4571
by adding the cause to the throw (that ",e"):
throw Util.runtimeException(
                        "Can't embed object in code, maybe print-dup not
defined: " +
                        value,e);

any reason why that isn't there already?(I guess this was added later: the
ability to pass the cause)




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

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



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