Jato status update for August 2011
In August, people have mostly wrapped up their Google Summer of Code projects.
Ana Farcasi added a SSA-based array bound check elimination optimization. It does not work with loops so we haven't seen major speed gains. Ana is working on improving the optimization to include loops as well.
Ankit Laddha added support for more bytecodes (istore, iadd, and isub) to the ARM architecture port. Likewise, I was able to fix trampolines in the PowerPC port which now is able to successfully JIT and execute iconst and ireturn bytecodes. There's quite a bit of work to be done for both architectures, so people interested in hacking on JVM on ARM and PPC are more than welcome to join the effort.
Theo Dzierzbicki was finally able to make the verifier is fully functional. It's limited in scope but is able to detect some classfile corruption and throw VerifyError:
$ ./jato -cp test/functional corrupt/CorruptedMaxLocalVar error: corrupt/CorruptedMaxLocalVar: could not load Exception in thread "main" java.lang.VerifyError: Reference to a too high local variable at java.lang.VMClassLoader.defineClass(Native Method) at java.lang.VMClassLoader.defineClassWithTransformers(VMClassLoader.java:428) at java.lang.ClassLoader.defineClass(ClassLoader.java:471) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:83) at java.net.URLClassLoader.findClass(URLClassLoader.java:617) at java.lang.ClassLoader.loadClass(ClassLoader.java:341) at java.lang.ClassLoader$1.loadClass(ClassLoader.java:1112) at java.lang.ClassLoader.loadClass(ClassLoader.java:293)
Finally, Nikhil Sarda resumed Jato hacking after few months of silence fixing up some bugs and adding more test cases. He also announced on IRC that he's interested in hacking on our own garbage collector which hasn't seen much development in over a year.
That's it for August!