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

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

 



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

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

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

  Powered by Linux