Jato v0.1.0 released
[Posted May 12, 2010 by corbet]
| From: |
| Pekka J Enberg <penberg-AT-cs.helsinki.fi> |
| To: |
| classpath-AT-gnu.org, jatovm-AT-googlegroups.com |
| Subject: |
| [ANNOUNCE] Jato v0.1.0 - a JIT-only virtual machine for Java
Options |
| Date: |
| Sat, 8 May 2010 17:07:39 +0300 (EEST) |
| Message-ID: |
| <alpine.DEB.2.00.1005081706570.21293@melkki.cs.helsinki.fi> |
| Cc: |
| lwn-AT-lwn.net |
| Archive-link: |
| Article, Thread
|
Hi all!
I'm happy to announce the release 0.1.0 of Jato!
Jato is an open source, JIT-only virtual machine for Java that aims to support
the JVM specification version 2 including 1.5 amendments. It is not complete
but you can run some Java applications with it on 32-bit x86 Linux machines.
Jato uses Boehm GC as its garbage collector and GNU Classpath to provide
essential Java run-time libraries. A port to the x86-64 architecture is
currently ongoing.
Highlights of this release:
- Boehm GC integrated to the VM (Tomek, Pekka)
- Fixes to make Eclipse Java compiler (ECJ) work (Tomek)
- Lots of fixes to the x86-64 port (Eduard-Gabriel)
You can download the full source distribution here:
http://www.kernel.org/pub/software/java/jato/jato-0.1.0.t...
or fetch the latest sources from the git repository:
git clone git://git.kernel.org/pub/scm/java/jato/jato.git
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
For more information, please check out the Jato home page at:
http://www.jatovm.org/
Pekka
---
Changes from v0.0.2 to v0.1.0:
------------------------------
Eduard - Gabriel Munteanu (46):
x86-64: use 2 slots for J_LONG and J_DOUBLE
x86-64: add lopc variants of membase emitters
x86-64: implement INSN_MOV_MEMLOCAL_REG for XMM registers
vm: true conversion of double to uint64_t
x86-64: implement EXPR_FVALUE
x86-64: handle float/double distinction in is_64bit_reg()
x86-64: implement INSN_MOV_REG_MEMBASE for XMM registers
x86-64: proper handling of float args in insn selector
x86-64: implement FP conversions
x86-64: implement float/double comparison
x86-64: can't push 64-bit imm
jit: assign correct vm_types to FP fixed registers
x86-64: fix float temporary store
x86-64: fix EXPR_LOCAL store
x86-64: implement float instance field store
x86-64: ifdef l2d/d2l conversion constants
x86-64: implement float and integer register multiplication
x86-64: reverse argument passing order in EXPR_NEWARRAY
x86-64: refactor and fix memindex emitters
x86: use offsetof() instead of sizeof() in array_deref
Preliminary GDB support
x86-64: save and change %rbp before saving other registers
Provide annotations for asm functions.
x86-64: fix throw_from_trampoline()
x86-64: fix native_call_gp() according to args map changes
x86-64: save and restore XMM registers
x86-64: REX comes after legacy prefixes
x86: move lopc helpers into x86-64 code
x86-64: fix operands order for XMM movs
Add myself to AUTHORS
x86-64: add FIXME concerning the changes to the stack frame
x86-64: ifdef encode_reg()
x86-64: implement INSN_DIV_REG_REG
x86-64: implement INSN_NEG_REG
x86-64: make EXPR_LOCAL stores work on register arguments
x86-64: remove obsolete fields from stack frame
jit: don't allocate space in stack frame for register arguments
x86-64: handle %r13 correctly in memindex emitters
x86-64: correct handling of instance field expressions
x86-64: don't set reg2 in insn-selector where it isn't needed
x86-64: implement STMT_CHECKCAST
x86-64: implement array_deref stores
x86-64: fix operand order in conversion emitters
x86-64: implement EXPR_INSTANCEOF
x86-64: implement INSN_MOVZX_16_REG_REG
Fix CFLAGS in BoehmGC makefile
Pekka Enberg (90):
x86: Pass insn to operand emitters
x86: Pass insn to single operand emitters
x86: Pass insn to two operand emitters
x86: Unify NO_OPERANDS, SINGLE_OPERAND, and TWO_OPERAND emission
x86: Move emitter data types to emit-code.c
x86: Unify BRANCH instruction emission
regression: Fix DupTest on HotSpot
regression: Partial fix for SubroutineTest on HotSpot
regression: Fix WideTest on HotSpot
regression: Fix InvokeTest on HotSpot
regression: Fix PopTest on HotSpot
x86: Don't pass "regs" to gc_start()
gc: Unify gc_jit_safepoint() and gc_signal_safepoint()
gc: Look up compilation unit for root set scanning
gc: Add copyright banner to vm/gc.c
vm: Remove use of NOT_IMPLEMENTED from vm/method.c
gc: Simplify gc_scan_rootset()
regression: Run tests that verify VM startup first
x86-64: Fix emit-code.c build breakage
Makefile: Fix monoburg directory for "clean" target
x86-64: Fix count_java_arguments() parameter in pack_args()
vm: Fix assertion in stack_trace_elem_type_name()
vm: Remove JamVM compat macros
x86-64: ifdef unused code in emit-code.c
vm: Fix test breakage
x86-64: Fix test breakage caused by uninitialized ->args_map
x86-64: Fix liveness-test.c
x86-64: Fix "make test"
Fix up .gitignore
x86-64: Fix args.h breakage
vm: Introduce "-Xmaps" command line options
jit: Shrink basic blocks in shrink_compilation_unit()
jit: Fix memory leak in inline_subroutines()
jit: Fix memory leak in allocate_registers()
jit: Don't use "struct insn" for fixups
jit: Free LIR data structures in shrink_basic_block()
jit: NOT_IMPLEMENTED removal from load-store-bc.c
Fix "job server not available" error for -jN builds
Add Clojure to torture tests
Add Scimark to torture tests
Add JUnit to torture tests
vm: NOT_IMPLEMENTED removal from class.c
monoburg: Make makefile more distcc friendly
vm: Remove unused resolve.c
vm: Remove NOT_IMPLEMENTED from jni.c
vm: Use warn() instead of NOT_IMPLEMENTED in preload.c
runtime: Throw OutOfMemoryError instead of using NOT_IMPLEMENTED
vm: Introduce VM error helper functions
vm: Convert class.c to use VM error helpers
cafebabe: Add missing include to header file
vm: Convert classloader.c to use VM error helpers
vm: Convert string.c to use VM error helpers
runtime: Convert reflection.c to use VM error helpers
regression: Use @SuppressWarnings to silence unnecessary warnings
regression: Paramterize Class type to reduce build noise
vm: Code cleanups to vm/object.c
x86: Fix native call clobber lists
x86: Unify native_call_eax() and native_call_long()
x86: Clean up do_native_call()
x86-64: Fix native_call_gp() return value
jit: Improve compile error message
gc: Import Boehm GC sources to the tree
vm: Wire up Boehm GC to our GC infrastructure
boehmgc: Remove unused Makefiles
boehmgc: Use separate Makefile for boehmgc
runtime: Implement VMRuntime.gc()
vm: Print out better error message for unrecognized commands
Makefile: Only build program for 'make'
vm: '-XmxSIZE' command line option for maximum heap size
runtime: Fix Field.get() et al for instance fields
regression: Replace assertObjectEquals() with assertEquals()
regression: Fix compilation warnings in some of the tests
runtime: Implement VMRuntime.availableProcessors()
scripts: Add script to run ECJ under Jato
vm: Introduce -Xnogc command line option
vm: Add signal handler for SIGILL
vm: Bump up default heap size to 128 MB
gc: Flush stderr immediately for GC debug printouts
vm: Enable GC by default
Makefile: Add 'make torture' target
vm: Merge bytecodes.c to bytecode.c
test/x86: Remove useless tests
test/jit: Remove unused test cases
Revert "gc: Flush stderr immediately for GC debug printouts"
vm: Make get_vmtype_size() a static inline function
jit: Fix typo in jit/trampoline.c
jit: Convert compilation unit mutex to spinlock
Revert "jit: Convert compilation unit mutex to spinlock"
jit: Use optimistic checking for ->is_compiled
jit: Clean up jit/trampoline.c
Tomek Grabiec (16):
x86: improve backtrace printing
vm: fix boehmgc integration with jato
vm: check for exception after calling getSystemClassLoader()
runtime: fix native_vmclass_get_declared_methods()
jit: fix tableswitch/lookupswitch support in subroutine inlining
vm: do not print native symbol for JIT stack trace elements
vm: implement JNI handler for CallVoidMethodA()
vm: fix main thread creation
runtime: implement VMThread.yield()
jit: print PC of failing instruction during conversion
x86: use error() rather than die()
jit: do not push expressions of type byte, char and short onto mimic stack
jit: mark EXPR_*_INSTANCE_FIELD as not always pure.
jit: remove explicit type checking in convert_array_load()
jit: remove unnecessary locking on fixup_site
vm: use vm_free() to free bucket's fields
(
Log in to post comments)