Today I successfully executed an invokedynamic call on SPARC for the first time. Excellent!

$ bin/jruby.gamma -J-XX:+UseSerialGC -J-Djruby.compile.invokedynamic=true -J-Xint -J-XX:+UnlockExperimentalVMOptions -J-XX:+EnableMethodHandles -J-XX:+EnableInvokeDynamic bench/bench_fib_recursive.rb OpenJDK Server VM (17.0-b08-internal-jvmg) for solaris-sparc JRE (1.7.0), built on Feb 25 2010 04:35:47 by "ct232829" with Workshop 5.9VM option '+UseSerialGC'VM option '+UnlockExperimentalVMOptions'VM option '+EnableMethodHandles'VM option '+EnableInvokeDynamic' 52.813000 0.000000 52.813000 ( 52.296000) 52.824000 0.000000 52.824000 ( 52.823000) 51.808000 0.000000 51.808000 ( 51.808000) 49.740000 0.000000 49.740000 ( 49.740000) 49.450000 0.000000 49.450000 ( 49.450000) MethodHandle calls already work since a couple of days and I can run the JDK MethodHandlesTest without any errors:

$ gamma -XinternalversionOpenJDK Server VM (17.0-b08-internal-jvmg) for solaris-sparc JRE (1.7.0), built on Feb 25 2010 04:35:47 by "ct232829" with Workshop 5.9$ gamma -Xint -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -classpath /java/devtools/share/junit/latest/junit.jar:. org.junit.runner.JUnitCore MethodHandlesTestVM option '+UnlockExperimentalVMOptions'VM option '+EnableMethodHandles'JUnit version 4.4OpenJDK Server VM warning: JSR 292 invokedynamic is disabled in this JVM. Use -XX:+UnlockExperimentalVMOptions -XX:+EnableInvokeDynamic to enable..IIIIII.findStatic:::::::::::.findVirtual:: :::::::::::::.findSpecial::.bind:::::::::::::::::: ::::.unreflect::::::::::::::::::::::::I.unreflectG etter.unreflectSetter.arrayElementGetter.arrayElem entSetter.convertArguments::::::.permuteArguments. spreadArguments.collectArguments.insertArguments.f ilterArguments.foldArguments.dropArguments.exactIn voker, genericInvoker, varargsInvoker, dynamicInvoker.guardWithTest.catchException.throwE xception.testCastFailureTime: 7.984OK (23 tests) JSR 292 SPARC support is on its way...




More...