Linux SoftwareProgrammingInterpretersJamVM 1.3.1

JamVM 1.3.1


JamVM is a new Java Virtual Machine which conforms to the JVM specification version 2 (blue book)
Developer:   Rob Lougher
      more software by author →
Price:  0.00
License:   GPL (GNU General Public License)
File size:   0K
Language:   
OS:   
Rating:   0 /5 (0 votes)
Your vote:  
enlarge screenshot


JamVM is a new Java Virtual Machine which conforms to the JVM specification version 2 (blue book). In comparison to most other VM's (free and commercial) it is extremely small, with a stripped executable on PowerPC of only ~130K, and Intel 100K.

However, unlike other small VMs (e.g. KVM) it is designed to support the full specification, and includes support for object finalisation, the Java Native Interface (JNI) and the Reflection API.

Here are some key features of "JamVM":
  • Uses native threading (posix threads). Full thread implementation including Thread.interrupt()
  • Object references are direct pointers (i.e. no handles)
  • Supports class loaders
  • Efficient thin locks for fast locking in uncontended cases (the majority of locking) without using spin-locking
  • Two word object header to minimise heap overhead (lock word and class pointer)
  • Execution engine supports basic switched interpreter and threaded interpreter, to minimise dispatch overhead (requires gcc value labels)
  • Stop-the-world mark and sweep garbage collector
  • Thread suspension uses signals to reduce suspend latency and improve performance (no suspension checks during normal execution)
  • Full object finalisation support within the garbage collector (with finaliser thread)
  • Garbage collector can run synchronously or asynchronously within its own thread
  • String constants within class files are stored in hash table to minimise class data overhead (string constants shared between all classes)
  • Supports JNI and dynamic loading for use with standard libraries
  • Uses its own lightweight native interface for internal native methods without overhead of JNI
  • JamVM is written in C, with a small amount of platform dependent assembler, and is easily portable to other architectures.


    What's New in This Release:
  • Re-worked thread suspension enable/disable code
  • implemented a fast enable/disable suspend mechanism for critical code sections, which is now used in hash table access and heap allocation :
  • much faster object allocation
  • much faster primitive array allocation
  • faster string interning
  • removed some minor potential (as yet unseen) race conditions
  • Integrated all outstanding patches
  • generics branch patch, implementing VMClass.isEnum(), isAnnotation() and isSynthetic()
  • Boot library path patch (support for system property gnu.classpath.boot.library.path)
  • Enabled different min/max heap values for each architecture
  • ARM values are back to the defaults for JamVM 1.2.5. Default max heap of 128Mb is too large for typical embedded ARM systems.
  • Fixed the new compiler warnings from gcc-4.0 (under Mac OS X) related to char/signed char usage.
  • Fixed compiler error on gcc-4.0 under Mac OS X 10.4 (duplicate definitions of wait).
  • Fixed rare, potential dead-lock in direct.c when preparing methods
  • Fixed a bug in VMClassLoader.defineClass(), where offset or length is wrong.
  • Fixed bug in DCONST_1 on mixed-endian ARM architectures (this bug was fixed in JamVM 1.2.2 but it crept back in, due to the new interpreter in JamVM 1.2.5).
  • Improved thread dump (produced via SIGQUIT, or ctrl-).
  • Several other minor bug-fixes, and code tidy-ups.
    tags garbage collector  boot library  much faster  allocation much  library path  enable disable  the new  max heap  under mac  hash table  native interface  object finalisation  jni and  

    Download JamVM 1.3.1


     http://prdownloads.sourceforge.net/jamvm/jamvm-1.3.1.tar.gz?use_mirror=citkit
     http://prdownloads.sourceforge.net/jamvm/jamvm-1.3.1.tar.gz?use_mirror=switch
     http://prdownloads.sourceforge.net/jamvm/jamvm-1.3.1.tar.gz?use_mirror=umn


    Authors software

    JamVM 1.3.1 (by Rob Lougher)
    JamVM is a new Java Virtual Machine which conforms to the JVM specification version 2 (blue book)


    Similar software

    JamVM 1.3.1 (by Rob Lougher)
    JamVM is a new Java Virtual Machine which conforms to the JVM specification version 2 (blue book)

    Boehm-Demers-Weiser Conservative Garbage Collector 6.8 (by Hans-J. Boehm)
    The Boehm-Demers-Weiser conservative garbage collector can be used as a garbage collecting replacement for C malloc or C++ new.

    Bo

    More for C++ 1.0 (by Thorsten Goertz)
    More for C++ is a class library that provides some features usually not common for C++

    More for C++ includes a mark-sweep garbage

    DM1 Threads Library 1.0.5 (by Dibyendu Majumdar)
    DM1 Thread Library is part of the DM1 project

    libcontain 0.2 Alpha1 (by Ronald Landheer-Cieslak)
    libcontain library provides a large and growing number of fast and thread-safe containter objects written in C and C++.

    The libconta

    RT-Thread 0.2.1 (by Midnight Xiong)
    RT-Thread is a real-time operating system

    joeq virtual machine 20030812 (by John Whaley)
    Joeq is a virtual machine and compiler infrastructure designed to facilitate research in virtual machine technologies such as Just-In

    jclasslib bytecode viewer 3.0 (by Ingo Kegel)
    JProfiler is an award-winning all-in-one Java profiler

    x10 0.3.2 (by Christian Grothoff)
    X10 project is a new object-oriented, type-safe programming language for programming the next generation of high performance systems

    Ovm 03.11.10 (by Christian Grothoff)
    Ovm is a tool for generating virtual machines


    Other software in this category

    ScummVM 0.9.1 (by James Brown)
    ScummVM project is a 'virtual machine' for several classic graphical point-and-click adventure games.

    It is designed to

    Funkee 0.9 (by Joshua Turner)
    Funkee is a cross-platform scripting host built on top of the Java Virtual Machine and the Groovy scripting language

    Perl 5.8.8 (by The Perl Foundation)
    Perl is a stable, cross platform programming language

    Python 2.5 (by Guido van Rossum)
    Python is an interpreted, interactive, object-oriented programming language

    Tcl/Tk 8.5a5 (by Tcl Core Team)
    Tcl provides a portable scripting environment for Unix, Windows, and Macintosh that supports string processing and pattern matching,

  •     search


    Featured Software

    jEdit 4.3 pre8
    jEdit is an Open Source text editor written in Java

    Opera 9.02
    Surf the Internet in a safer, faster, and easier way with Opera browser

    GNU Aspell 0.60.4
    GNU Aspell is a Free and Open Source spell checker designed to eventually replace Ispell


    Subscribe in Rojo
    Google Reader
    Add to My Yahoo!

    Add to My AOL
    Subscribe with Bloglines
    Subscribe in NewsGator Online
    Add 'nixbit linux software' to Newsburst from CNET News.com
    del.icio.us nixbit linux software


    Top tags