On Jul 30, 2009, at 6:51 AM, Rich Hickey wrote: > On Jul 29, 6:09 pm, Jason Wolfe <jawo...@berkeley.edu> wrote: >> Is this a bug? >> >> user> (eval `(make-array ~Byte/TYPE 2)) >> ; Evaluation aborted. (ExceptionInInitializerError) >> >> Compare: >> >> user> (eval `(make-array ~Byte 2)) >> #<Byte[] [Ljava.lang.Byte;@26fcfd5c> >> >> user> (eval `(make-array Byte/TYPE 2)) >> #<byte[] [...@1f0feb6e> >> >> user> (make-array (eval Byte/TYPE) 2) >> #<byte[] [...@7ce49289> >> >> If not, can someone please help me understand what's going on here? >> > > Yes, currently you cannot embed constants of primitive Class types. > This arises from an asymmetry in Java: > > user=> (.getName Byte) > "java.lang.Byte" > > user=> (Class/forName "java.lang.Byte") > java.lang.Byte > > user=> (.getName Byte/TYPE) > "byte" > > user=> (Class/forName "byte") > java.lang.ClassNotFoundException: byte (NO_SOURCE_FILE:0) > > A patch to support reading, and embedded constants, of primitive Class > objects would be welcome. The current print-dup support won't do it. > > If anyone is interested in contributing this patch please bring it up > on the clojure-dev group before proceeding and I can give you some > guidance as to what needs to be changed. > > Thanks for the report, > > Rich
Thanks for the clear explanation. -Jason --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---