Jato 0.0.2 released
[Posted January 11, 2010 by cook]
| From: |
| Pekka Enberg <penberg-AT-cs.helsinki.fi> |
| To: |
| classpath-AT-gnu.org, jatovm-AT-googlegroups.com |
| Subject: |
| [ANNOUNCE] Jato v0.0.2 - a JIT-only virtual machine for Java |
| Date: |
| Sat, 09 Jan 2010 19:55:37 +0200 |
| Message-ID: |
| <1263059737.20279.3.camel@penberg-laptop> |
| Archive-link: |
| Article, Thread
|
Hi all!
I'm proud to announce the release 0.0.2 of Jato!
Jato is a JIT-only virtual machine for Java that can run some Java applications
under GNU/Linux on modern 32-bit x86 CPUs that support the SSE2 instruction
set. A port to the x86-64 machine architecture is currently being developed.
Jato depends on GNU Classpath to provide core Java runtime classes. The VM is
licensed under the GPLv2 with GNU Classpath linking exception.
You can download the full source distribution at at the following location:
http://www.kernel.org/pub/software/java/jato/jato-0.0.2.t...
or fetch the latest sources from the git repository:
git clone git://git.kernel.org/pub/scm/java/jato/jato.git
This release has bunch of fixes to make some new programs run under Jato:
- Java Tris: http://bit.ly/7wrE4H
- Clojure REPL: http://clojure.org/
- DaCapo: http://www.dacapobench.org/
There's also lots of infrastructure work for garbage collection (not functional
yet) and fixes to the x86-64 port (also not fully functional).
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 refer to Jato home page at:
http://www.jatovm.org/
Pekka
---
Changes from v0.0.1 to v0.0.2:
------------------------------
Arthur HUILLET (1):
Added dependencies installation instructions for Arch Linux
Eduard - Gabriel Munteanu (16):
vm: record type information in args_map
x86-64: move received parameters to non-fixed registers
x86-64: make EXPR_LOCAL use the non-fixed registers
x86-64: don't propagate fixed register in EXPR_ARG_THIS
x86-64: implement INSN_MOV_REG_MEMINDEX
x86-64: handle %r13 properly in indirect calls
x86-64: implement STMT_ARRAY_CHECK(array_check) properly
x86-64: implement STMT_ARRAY_STORE_CHECK(reg, reg) properly
x86-64: define all XMM registers
x86-64: add XMM register encodings
buffer: introduce buffer_append_str()
x86-64: add long (multi-byte) opcode variant of __emit_reg_reg()
x86-64: XMM args register assignment
x86-64: emitter for XMM to XMM move
x86-64: parse method arguments by accessing the linked-list
x86-64: implement exception_check()
Pekka Enberg (86):
Use gzip in scripts/make-release
Add include/vm/version.h to .gitignore
x86: Kill useless get_greg() wrapper
x86: Register state saving
x86-64: Register state saving
gc: Pass register state to gc_start() and gc_safepoint()
gc: Remove dead code
Fix JAR file loading error message
Bump up java.version to 1.6
Implement Method.getModifiersInternal()
vm: Sort natives table
Implement AtomicLong.VMSupportsCS8()
x86: Separate 32 and 64-bit atomic.h
Implement Unsafe.compareAndSwapLong()
regression: Move reflection API tests to new package
Move LICENSE to top level
jit: rename subroutines_should_not_occure() to fail_subroutine_bc()
jit: Move reference to header of jit/subroutine.c
jit: clean up includes in jit/subroutine.c
Update README
Fix typo in README
x86: Fix instruction selector deadlock in invoke()
mmix: Fix native call function signatures
Move reflection.c and unsafe.c to runtime directory
runtime: Extract stack walker implementation
runtime: Move unsafe.h to include/runtime
runtime: Move VM runtime implementation to runtime.c
runtime: Move VM class implementation to class.c
runtime: Implement Field.getLong()
Move cafebabe to proper top-level directories
x86: Cleanup emit-code.c
runtime: Rename to_primitive_value() to to_jlong_value()
x86: Use lookup table for register numbers
x86-64: Use lookup table for register numbers
x86: Unify __encode_reg() implementations
x86: Unify x86 XMM register names
x86: Unify general purpose register numbers
x86: Fix register encoding function names
x86: Mark object allocation points as safepoints
x86: Make non-globally used function static
x86: Introduce ->flags to struct insn
x86: Shrink struct insn to 128 bytes
x86: Use uint32_t for offsets and reoder struct members
x86-64: Fix native_call() signature
x86: Use 16 bits for bytecode offsets
jit: Add ->flags member in struct live_interval
vm: Fix preload error messages
x86: Fix up SSE class field fixup problem
Remove generated source file from the tree
Fix BUILD_ARCH on OpenSolaris 10
Add OpenSolaris 10 dependencies to README
Fix gitignore file
x86: Move fixup_static() next to fixup_static_at()
x86: Fix fixup_static() for REX prefixed SSE instructions
x86: Improve SSE instruction detection
x86-64: Fix emit-code.c compilation
jit: Remove gc_map_init() function
arch: Introduce NR_GP_REGISTERS constant
vm: Add DIV_ROUND_UP helper macro
jit: Add a struct for register maps
x86,ppc: Remove obsolete throw_exception_from_signal()
gc: Make gc_start() a static function
vm: Cleanups to vm/thread.c
Add deadlock debugging instructions to README
jit: Fix GC_REGISTER_MAP_SIZE to use BITS_PER_LONG
x86: Cleanup use-def bitmask definitions
x86: Use "unsigned long" for instruction flags
x86: Merge use-def.c into instruction.c
x86: Use instruction flags for insn_is_branch() and insn_is_call()
x86: Coding style cleanups to instruction.c
x86: Uninline some functions from arch/instruction.h
x86: Fix MAX_REG_OPERANDS definition
x86-64: Fix native_call_gp() clobber list
vm: Add support for GNU Classpath 0.98
x86: Remove unused INSN_MOV_IP_THREAD_LOCAL_MEMBASE type
x86: Remove unused INSN_PUSH_MEMBASE type
x86: Remove unused INSN_XOR_IMM_REG type
x86: Remove unused INSN_MOV_IP_REG type
x86: Unify single operand emitter function signatures
x86: Don't wrap function signature on multiple lines
x86: Fix more wrapped function signatures
x86: Fix some single operand emitters
x86: Fix emit_test_imm_memdisp() argument names
Makefile: Remove unnecessary definitions
vm: Add missing include to vm/gc.h
Jato v0.0.2
Tomek Grabiec (51):
README: fix package dependencies for Ubuntu
vm: parse method and field type on initialization
vm: implement java/lang/reflect/Method.getReturnType()
vm: fix parse_method_type()
vm: move monitor operations to vm/monitor.c
vm: unify code in vm_monitor_wait() and vm_monitor_timedwait()
vm: implement thread interruption operations.
x86: introduce valgrind workaround for exception guards.
vm: fix vm_jni_get_static_double_field()
vm: fix vm_jni_set_static_*()
vm: implement all GetStatic*Field() JNI functions
vm: fix vm_jni_new_object_a()
vm: fix pack_args()
cafebabe: fix bug in cafebabe_stream_close()
vm: fix call_virtual_method()
vm: fix unwrap_and_set_field()
vm: rename unwrap_and_set_field() to unwrap()
vm: do not return <init> and <clinit> methods in native_vmclass_get_declared_methods()
jit: fix bug in spill_interval()
jit: skip conversion of unreachable basic blocks
vm: change call result return method for vm_call_method_*() so that it can handle any type
vm: implement unwrap() for J_LONG and J_DOUBLE
vm: rename encapsulate_value() to wrap()
vm: fix call_static_method() and call_virtual_method()
vm: fix native_vmclass_get_declared_methods()
regression: fix TestCase.assertObjectEquals()
x86: make native_call() hard crash for not implemented types.
regression: add regression test for method invokation via reflection
vm: fix bug in native_field_get()
jit: fix print_exception_table()
jit: handle exception handlers covering subroutines in subroutine inlining.
vm: do not return jboolean from VM natives.
runtime: move VMClassLoader natives to runtime/classloader.c
vm: fix loading of array classes.
vm: make class cache recognize different classloaders.
vm: implement VMClassLoader.defineClass()
x86: cleanup in call.c
x86, vm: implement support for invoking methods with J_LONG return type in reflection.
mmix: fix compilation error on make check
jit: fix conversion of dup_x2 when second value is J_LONG or J_DOUBLE
x86: Add missing result conversion after native method invocations.
jit: fix get_reload_before_insn()
jit: fix dead code in __insert_spill_reload_insn()
jit: make API to insert_reload_insn() the same as for insert_spill_insn()
jit: set bytecode offset of spill/reload instructions properly
jit: cleanup in spill-reload.c
x86: fix is_sse_insn()
vm: fix init_stack_trace_elem_current()
x86: make all safepoint instructions do a safepoint poll before.
gc: rewrite GC stop-the-world algorithm.
gc: Fix stop-the-world on SMP
(
Log in to post comments)