Javac + invokedynamic
Just for fun, this morning, i've patched the java compiler to be able to generate classes that use invokedynamic instead of invokevirtual/invokeinterface when invoking a method. following the JSR292 EDR
The patch is based on the source of the langtools repository of the hotspot project, so to apply the patch, first clone the repository
hg clone http://hg.openjdk.java.net/jdk7/hotspot/langtools/An then apply the following patch invokedynamic.patch then run ant in langtools/make.
Now, you have a patched javac that will insert an invokedynamic instead of an invokevirtual when calling a method tagged by @InvokeDynamic.
import java.dyn.InvokeDynamic;
public class Test {
@InvokeDynamic
public void m(String message) {
System.out.println(message);
}
public static void main(String[] args) {
// here m is invoked dynamically
new Test().m("hello invoke dynamic");
}
}
And now, how to run it.
Hum, good question, i'm afraid we have to wait the RI implementation
of JSR 292 :)
Or perhaps an enhanced version of the
IKVM Proof of Concept.
Cheers,
Rémi
- Login or register to post comments
- Printer-friendly version
- forax's blog
- 1619 reads





