Thanks Nicolas, may be you are right, and I'll end up with Kawa or Bigloo. I just evaluate Clojure, trying to find out if it fits to my goals.
On Monday, November 5, 2012 1:40:10 PM UTC+4, Nicolas Oury wrote: > > I am not sure it will help, but have you tried Kawa? > It is a Scheme compiling to the JVM, with support for macro as well and > seems to be lower level than Clojure, which might help with your task. > > > I know. I used Kawa back in 2004. I even mentioned in the Kawa acknowledgements http://www.gnu.org/software/kawa/Acknowledgements.html :-) On Mon, Nov 5, 2012 at 9:07 AM, Vladimir Tsichevski <tsich...@gmail.com<javascript:> > > wrote: > >> >> Hi Stuart. >> >> thank you for pointing me to my 'cloSure' misspelling. Have lived in the >> Scheme world for too long :-) >> >> As to Java classes generation, IMHO it is more save to generate Java >> bytecode directly instead of using intermediate Java sources. This is how I >> create classes now using a generator written in Java. Now I have to >> re-write this generator in CloJure. >> >> Regards, >> Vladimir >> >> On Monday, November 5, 2012 1:09:11 AM UTC+4, Stuart Sierra wrote: >>> >>> Hello, >>> >>> Clojure (by the way, it is not spelled "closure") is not really designed >>> to generate pure-Java classes. `gen-class` is slightly more flexible than >>> `deftype`, but it will still generate references to Clojure classes. >>> >>> If the structure of your Java classes is defined by interfaces, >>> `deftype` can implement those interfaces. But if the structure of the Java >>> classes is very regular, you may find it easier to generate Java source >>> code as strings. That's how all the primitive interfaces in >>> clojure.lang.IFn were created. >>> >>> -S >>> >>> >>> >>> On Sunday, November 4, 2012 4:43:59 AM UTC-5, Vladimir Tsichevski wrote: >>>> >>>> Thank you Stephen, >>>> >>>> the problem is that it is impossible to create create a Java class >>>> using closure with the following characteristics: >>>> >>>> 1) all methods must match given Java signature. For example, if I need >>>> a method >>>> >>>> public String getSomeString(); >>>> >>>> all I get is >>>> >>>> public Object getSomeString(); >>>> >>>> closure ignores my String hints and always uses Object instead. >>>> >>>> 2) must be no references to any closure classes. Now the closure >>>> compiler unconditionally creates at least one extra method >>>> >>>> public static IPersistentVector getBasis() >>>> >>>> which references several classes from closure runtime. >>>> >>>> Regards, >>>> Vladimir >>>> >>>> On Sat, 2012-11-03 at 13:57 -0700, Vladimir Tsichevski wrote: >>>>> > In one of my purely Java project I have to create hundreds of java >>>>> classes >>>>> > with repeatable structure, so the task is an excellent candidate for >>>>> > automation. I hoped I will be able to create these classes with the >>>>> latest >>>>> > closure, using the 'deftype' construct. >>>>> >>>>> If you know all the details of classes to create at compile time, you >>>>> can use macros instead, which are perfectly well able to output >>>>> deftype >>>>> forms. Untested: >>>>> >>>>> (defmacro defrefs >>>>> "Make a bunch of :x boxes." >>>>> [& names] >>>>> `(do ~@(map (fn [name] `(defrecord ~name [~'x])) names))) >>>>> >>>>> ;; makes classes foo, bar, baz, qux, quux, all with the :x field. >>>>> (defrefs foo bar baz qux quux) >>>>> >>>>> -- >>>>> Stephen Compall >>>>> ^aCollection allSatisfy: [:each|aCondition]: less is better >>>>> >>>>> >>>>> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to clo...@googlegroups.com<javascript:> >> Note that posts from new members are moderated - please be patient with >> your first post. >> To unsubscribe from this group, send email to >> clojure+u...@googlegroups.com <javascript:> >> For more options, visit this group at >> http://groups.google.com/group/clojure?hl=en >> > > > > -- > Sent from an IBM Model M, 15 August 1989. > -- 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