From: Stefan Matthias Aust Date: 2001-04-18T07:40:09+09:00 Subject: [ruby-talk:13782] Re: Ruby on a JVM - good or bad idea? On Tue, 17 Apr 2001 07:27:54 +0900, Dave Thomas wrote: >How would you handle singleton methods efficiently: [...] I think, for the start, we should try to simply interpret Ruby code on a JVM, that is create a Ruby interpreter which sits on a JVM. This isn't very fast, but much easier to implement. That Ruby interpreter can easily implement all needed features, as it wouldn't work with java.lang.Method objects but with RubyClasses and RubyMethods. I implemented such an approach for Smalltalk (actually little Smalltalk) once and it worked surprisingly well. Later, one can study how JPython and Kawa (a Scheme, CommonLisp wannabe for the JVM) automatically generate class files. For the latter, there're ready to use classes available (with a GPL license) which help in creating class files and generating Java methods. >call have to go through a java Method? I'm not a classloader expert, >but are there also issues with things like: > > def labelIfZeroLength(param) > if param.length.zero? > def param.to_s > "zero" > end > end > end In such cases, you probably have to #perform (to use the Smalltalk terms) every method and have a combined approach of Java-compiled Ruby-methods and Java-interpreted Ruby-methods. Using advanced features of JDK 1.3 and 1.4 (which shall improve class loaders) might help here. This is another reason to delay classfile-compiling. >I agree that a Java version of Ruby would be wonderful, though. So I'm correct if I subsume the statements that a JRuby would be a good idea? Great. bye -- Stefan Matthias Aust \/ Truth Until Paradox