[ANNOUNCE] Jato v0.0.2 - a JIT-only virtual machine for Java

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.tar.bz2

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




[Index of Archives]     [Linux Kernel]     [Linux Cryptography]     [Fedora]     [Fedora Directory]     [Red Hat Development]

  Powered by Linux