Maxine VM: A meta-circular research VM
Clone or download
Latest commit 1d8805e Aug 27, 2018
Failed to load latest commit information. [fix][aarch64][refactor] Fix assertion in T1XCompilation Aug 24, 2018 [dbg] Enrich text output for `Unimplemented` exceptions May 17, 2018 [fix] Utils.last for empty list Feb 9, 2018 [refactor][aarch64] Delete obsolete methods Aug 21, 2018 [fix][c1x] invokeDynamic support Jul 10, 2018 [style] Mostly redundant modifiers and indentation Jul 19, 2017 [fix] Symboltable access in inspector Jun 27, 2018 removed dependence on String internals in HexCodeFile Aug 21, 2012 [style] Mostly redundant modifiers and indentation Jul 19, 2017 [cleanup] Remove .project files May 4, 2017 [fix] fall through Jul 27, 2017 Inspector: Documentation: (1) add documentation to the package-info.j… Aug 23, 2012 [fix] Make TeleInterfaceMethodActor inherit from TeleClassMethodActor Jul 10, 2018 [test][refactor] Create jsr292 test harness and vm config Sep 15, 2017 [test] Add an extra param to BigDoubleParams02 (=> 2 stacked doubles) Jun 7, 2018 tools: wikidoc fixes and improvements Aug 7, 2012 integrated mx tool changes from Graal project May 11, 2012 [dbg][fix] typos in error messages Nov 17, 2017 [license] add Andrey Rodchenko Mar 31, 2017 [doc] Typos in comments Nov 17, 2017 [osx][jdk8] Port to OSX High Sierra and jdk1.8.0_151 Nov 30, 2017 [feat][aarch64] Implement returnAddressPointer for aarch64 Aug 21, 2018 [fix][aarch64][refactor] Fix assertion in T1XCompilation Aug 24, 2018 [test] Suppress warning about overriding deprecated finalize() Nov 17, 2017 [fix][aarch64] Flush icache on code modification Jun 1, 2018 [riscv] revision in itype Jul 10, 2018 [version] Bump version to v2.5.0 and update changelog in README Aug 27, 2018 [fix] VMA (VM advise) support Nov 17, 2017 [style] Mostly redundant modifiers and indentation Jul 19, 2017
docs [version][doc] Bump version Aug 27, 2018
git [repo] Add pre-push hook Nov 20, 2017
lib [Fix] Update ASM to make jtt tests work Feb 15, 2018
maxine-tester/junit-tests [fix][test][aarch64] Make gcc save registers in c_entry Mar 8, 2018
mxmaxine [fix] Fix inspector to work with JDK 8 Jul 10, 2018 [refactor][test] Use JUnit annotations Dec 13, 2017
.gitignore [doc] Ignore docs/_build directory Jul 11, 2018
.graalvmrevision Clean up NewMultiArrayNode. Nov 21, 2011
Jenkinsfile [test][risc-v] Enable assembler testing with gnu-as Jul 10, 2018
LICENSE [license] Add GPLv2 LICENSE to root directory Nov 25, 2017 [version] Bump version to v2.5.0 and update changelog in README Aug 27, 2018
java.header [style] Support for year ranges in copyright notice Feb 21, 2018

Maxine VM: A Metacircular VM for Java in Java


  • 2018-08-27: Maxine VM 2.5.0 Release
    • jsr292 support on C1X
    • Parallel and asynchronous JIT compilation
    • Deoptimization in AArch64
    • New way to test cross-isa assemblers
    • Inspector fix to work with Java 8
    • Bug and stability fixes
  • 2018-06-26: Maxine VM 2.4.2 Release
    • Fix checkstyle url
  • 2018-06-14: Maxine VM 2.4.1 Release
    • Bug fix that enables the c1xgraal configuration
  • 2018-05-31: Maxine VM 2.4.0 Release
    • Initial port to AArch64 (runs Hello World)
    • Implemented AArch64 C1X port
    • Implemented first RISC-V instructions
    • Bug and stability fixes
    • Code refactoring and cleanup
  • 2018-03-09: Maxine VM 2.3.0 Release
    • Implemented AArch64 Assembler
    • Implemented AArch64 T1X port, Adapters
    • Ported Cross-ISA testing infrastructure to RISC-V
    • Bug and stability fixes
    • Code refactoring and cleanup
  • 2017-11-23: Maxine VM 2.2.0 Release
    • Build against OpenJDK8u151-b12
    • Support invokedynamic
    • Support lambdas (Only on JDK8 builds)
    • Support default methods (Only on JDK8 builds)
    • End support for JDK6
    • Bug and stability fixes
  • 2017-10-13: Maxine VM 2.1.2 Release
    • Support method handles
    • Bug and stability fixes
  • 2017-05-31: Maxine VM 2.1.1 Release
    • Port to latest OpenJDK 7 (u131)
  • 2017-04-18: Maxine VM 2.1.0 Release
    • Enable profile-guided optimizations in Graal (T1X profiling info added)
    • Bug and stability fixes
    • ARMv7 execution (T1X, C1X)


Maxine VM's roadmap can be found in the wiki.


For the original Maxine VM please cite:
C. Wimmer et al, “Maxine: An approachable virtual machine for, and in, java”, In ACM TACO 2013.

For Maxine VM >= v2.1 please cite:
Christos Kotselidis, et al. Heterogeneous Managed Runtime Systems: A Computer Vision Case Study. In 13th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments (VEE), 2017.


This work in Maxine VM is partially supported by EPSRC grants Anyscale EP/L000725/1, PAMELA EP/K008730/1, DOME EP/J016330/1, and EU Horizon 2020 ACTiCLOUD 732366 grant.

Users Mailing list

A mailing list is also available to discuss topics related to Maxine VM.


We welcome collaborations! Please contact Christos Kotselidis for external collaborations.

Relevant Projects

MaxSim: A simulation platform for Managed Applications, Andrey Rodchenko


For more information please visit the Maxine VM's wiki