our happiness was short-lived...I still get the aformentioned jvm error
even with the latest jdk/jre and 'COMPRESSED-OPS' flag, when using
^:const. This is new - I don't remember having this a month ago...it is
definitely new and I'm thinking it's the rc1 version of clojure...
At the moment to avoid any problems I *have to* remove the ^:const flag
completely. Then and only then it works as expected regardless of
whether the numbers inside are unboxed ints or boxed longs.
Jim
On 21/01/13 17:26, AtKaaZ wrote:
Very nice find! Thank you for that!
I'm thinking maybe it has something to do with lazy or delayed
evaluation. I don't really understand most clojure things but I
imagine if the call to mapv would not be evaluated right when the def
is read but instead only when the mappings-8x8 is first being used
(sort of like a `delay` or lazy init) then it would make some sense
why ^:const would fail however this theory doesn't seem to hold when
using something like (def ^:const mappings-8x8 ((fn [] [[0 0] [1 0]]))
because it would have to act like the call to mapv does, unless
there's something extra introduced by mapv but the returned class
seems to be the same that PersistenVector - anyway I'm just guessing
around, doesn't help :)
On Mon, Jan 21, 2013 at 6:17 PM, Jim - FooBar(); <jimpil1...@gmail.com
<mailto:jimpil1...@gmail.com>> wrote:
On 21/01/13 17:07, Jim - FooBar(); wrote:
On 21/01/13 16:47, AtKaaZ wrote:
Could you retry using this
-XX:-UseCompressedOops
surprisingly this worked! I don't get that error anymore... I
used to have it but i thought it was completely
unnecessary...I don't understand how this affects the runtime
of my program!
About that, I find these a useful read:
http://javarevisited.blogspot.hu/2011/11/hotspot-jvm-options-java-examples.html
http://javarevisited.blogspot.hu/2012/06/what-is-xxusecompressedoops-in-64-bit.html
Jim
also I Just tried eval-ing the call to mapv and it compiles and
runs just fine!!!! I'm totally baffled...
So to sum up:
this fails:
(def ^:const mappings-8x8
(mapv #(apply vector-of :int %) [[0 0] [1 0] [2 0]]))
this succeeds:
(def ^:const mappings-8x8
(eval (mapv #(apply vector-of :int %) [[0 0] [1 0] [2 0]])))
this is beyond me!
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
<mailto: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
<mailto:clojure%2bunsubscr...@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