The latest release Jato 0.3 is now available.
The release tarball can be found here:
http://www.kernel.org/pub/software/java/jato/jato-0.3.tar.bz2
The Git repository can be found here:
https://github.com/penberg/jato
About Jato
==
Jato is an open source, JIT-only virtual machine for Java that aims to support
the latest JVM specification. It can currently run many Java applications such
as JRuby, Clojure, and Eclipse on 32-bit x86 Linux machines. Ports to x86-64,
ARM, and PPC32 CPUs and Darwin OS are currently under development.
Release Notes
=
Applications
* JRuby and Jython are now supported.
- GNU Classpath CVS HEAD is required.
[ See below for details how to download and install it. ]
Performance
---
* VM startup speed has improved by 25%.
* DaCapo benchmark results have improved across the board.
- See the following URL for DaCapo results:
http://i.imgur.com/eorgM.png
JIT
---
* The JIT compiler is now able to optimize code before execution.
- Transformation of the IR to SSA form and out of SSA form.
[ SSA form is not enabled by default. Use '-Xssa' command line option to
enable it. ]
- Dead code elimination optimization (requires SSA).
- Array bounds check elimination (requires SSA).
- Inline caching optimization is used on i386 architecture.
* The JIT compiler has limited support for ARM and PPC32 architectures.
- Don't expect to run real applications on them, though.
* The JIT compiler support on the x86-64 architecture has improved
significantly.
- Not as mature as i386 architecture.
VM
--
* The VM has a classfile verifier.
- It is able to detect classfile corruption and many semantic problems in
bytecode.
* The VM supports most of the JNI API.
GNU Classpath
=
Please use GNU Classpath CVS HEAD with Jato 0.3 for best performance and
compatibility.
You can use the following Git mirror to fetch the sources:
git://icedtea.classpath.org/mirror/git/classpath/classpath
See the README file in Jato's source tree for details on how to install GNU
Classpath on your machine.
Support
===
If you have questions, comments, or suggestions, feel free to drop by at #jato
on irc.freenode.net or send an email to our mailing list at:
http://groups.google.com/group/jatovm?hl=en
You can also report problems on Github:
https://github.com/penberg/jato/issues
For more information, please check out the Jato home page:
http://www.jatovm.org/
---
Changes from v0.2 to v0.3
=
The following changes since commit 08c53b4aab143072eb77c505ad90a3dcdf501b9c:
Jato 0.2 (2011-05-24 23:06:27 +0300)
are available in the git repository at:
g...@github.com:penberg/jato.git master
Ana Farcasi (51):
Fix differently spelled name
jit: Fix convert_tableswitch and convert_lookupswitch
test/unit: Add test for switch-bc
jit: Make sure entry basic block is accounted in compute_dfns()
x86: Added INSN_PHI
jit: Add SSA optimization infrastructure
jit: Fix bugs in ssa.c
jit: Added renaming of variables for exception handler basic blocks
jit: Fix bug for insn_use_def in ssa.c
jit: Fix bug in ssa.c
jit: Fix bug in insert_empty_bb
jit: Initialize vregs before inserting phi insns
jit: Fix bb successors list for tableswitch
jit: Fix init of J_DOUBLE and J_FLOAT in SSA
jit: Cumulate fixed virtual regesiters in SSA
jit: Add support for switch instructions in SSA
jit: All virtual regs are defined before they are used
jit: Fix bug in resolve data flow
x86: Replace if statement with switch in ssa functions
jit: Fix exception handler basic block renaming
jit: Delete extra empty line in ssa.c
jit: Implement insn_add_ons with hash_map
test/unit: Add new test for tableswitch
jit: Add dead code elimination optimization
x86: Fix push_memlocal and pop_memlocal print
x86: Fix bug in insert_copy_slot_64_insns
jit: Fix bytecode offset of new basic blocks in ssa
jit: Optimize resolve_data_flow
jit: Replace minimal SSA with pruned SSA
jit: Fix bug in control flow graph
jit: Add copy folding for SSA form
test/unit: Add test in cfg-analyzer-test.c
jit: Delete useless computations in ssa
jit: Remove useless flags
jit: Free worklist
jit: Reposition ssa main functions
jit: Reduce number of new basic blocks in ssa
jit: Improve traversal of a bitset
test/unit: Add test for bitset_ffs_from
Makefile: Link tcmalloc if present in the system
jit: Add imm_copy_propagation
jit: Replace doubly-linked lists with simply-linked lists in ssa
jit: Fix bb successors list for lookupswitch
jit: Resolve warning in SSA
test/jit: Fix bug in switch-bc-test
test/jit: Add test for lookupswitch
jit: Add