I've pretty much achieved everything I was trying to do last night: http://gist.github.com/113717 I guess the next question is: how can I avoid needing to know the target return value in invoke:
String invoke(DynamicTester tester, String extra) { return target.<String>invoke(tester, name, extra); } Ideally, I'd like to be able to do something like: Object invoke(DynamicTester tester, Object... objects) { return target.invoke(tester, name, objects); } Where the original method could be methodNotFound(name, String... name) or whatever. Again, I'm relatively new to all this, so I'm pretty sure what I want to do is either a big no-no or a no-brainer. -- Yehuda On Mon, May 18, 2009 at 5:54 PM, John Rose <john.r...@sun.com> wrote: > Excellent, thanks. Will try it ASAP (when not working on my J1 slides > which are due today). > > -- John (on my iPhone) > > On May 18, 2009, at 4:29 PM, Charles Oliver Nutter <charles.nut...@sun.com > > wrote: > > > Here you go! The details of getting it to run under mlvm are up to > > you, > > but jruby accepts options like -J-XX:+EnableInvokeDynamic, etc. > > > > git clone git://kenai.com/jruby~main jruby > > cd jruby > > git co -b invokedynamic origin/invokedynamic > > ant clean jar (with MLVM as JAVA_HOME) > > bin/jruby <important flags here> -e "code here" > > -or- > > bin/jruby <important flags here> script.rb > > > > Where important flags are: > > > > --server (-server flag to JVM, if you want it) > > -J-XX:+Enable{InvokeDynamic,MethodHandles} > > -J-Djruby.compile.invokedynamic=true > > > > Not a whole lot of logging/debugging in place at the moment, but if > > you > > also pass --bytecode to JRuby it will dump out the bytecode for the > > target script rather than run it. If it's wiring up right you'll see > > INVOKEDYNAMIC in there. > > > > - Charlie > > > > John Rose wrote: > >> My first use of git was a couple days ago, to pull jruby from kenai. > >> So I'm a git noob. (Too bad about ruby & mercurial.) > >> > >> That said, can I have a recipe (script) for pulling, building your > >> hacked version of jruby, and then for running your test case(s)? > >> (From NetBeans, if possible, so I can dive into the JRuby code and > >> start debugging?) > >> > >> Thanks; this is getting interesting! > >> > >> -- John > >> > >> On May 18, 2009, at 4:01 PM, Charles Oliver Nutter wrote: > >> > >>> I'm also seeing crashes for several scenarios. Like this loop works: > >>> > >>> a = 1; while a < 1_000_000; a += 1; end > >>> > >>> But these two crash the JVM: > >>> > >>> a = 1.0; while a < 1_000_000.0; foo(a); a += 1.0; end > >>> def foo(a); end; a = 1; while a < 1_000_000; foo(a); a += 1; end > >>> > >>> A simple fib bench also crashed. I've attached a dump from the "foo" > >>> case above, and I can provide a jruby dist to reproduce if you like. > >>> > >>> It tends to stymie further experimentation :) (no pressure, I know > >>> this stuff has just recently started to JIT). > >> > >> _______________________________________________ > >> mlvm-dev mailing list > >> mlvm-dev@openjdk.java.net > >> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev > > > > _______________________________________________ > > mlvm-dev mailing list > > mlvm-dev@openjdk.java.net > > http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev > _______________________________________________ > mlvm-dev mailing list > mlvm-dev@openjdk.java.net > http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev > -- Yehuda Katz Developer | Engine Yard (ph) 718.877.1325
_______________________________________________ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev