View Source

h1. The Maxine Project: Implementation Topics

This page indexes a number of short articles about various aspects of the Maxine VM's design. Some are just place holders.

* [Actors]: VM objects that represent and implement the behavior of language entities such as classes, fields, and methods.
* [Assembler]: the Maxwell Assembler System and its uses for code generation (by [CPS]) and disassembly (by the VM runtime and the [Inspector|The Maxine Inspector]).
* [Boot Image]: how the VM boot image is generated and can be extended.
* [C1X]: Maxine's optimizing compiler, derived from the HotSpot Client compiler (C1).
* [Code Dependencies]: management of dependencies in compiled code
* [Code Eviction]: code cache management in the VM.
* [CompilationBroker]: subclassable class that manages compilation and recompilation in the VM.
* [CPS]: the original compiler for the VM, replaced by [C1X].
* [Inspector-VM Interaction]: how the Inspector manages and communicates with the VM.
* [JDK]: techniques needed to interoperate dynamically with an unmodified JDK: aliases, field injection, method substitution.
* [JIT]: Maxine's original template-based baseline compiler, replace by [T1X].
* [Logging and Tracing]: how to do logging in the VM.
* [Memory Management]: the current semi-space collector, and progress toward an experimental framework for region-based heaps.
* [Objects]: how objects in the heap are represented in memory.
* [ReferenceMapInterpreter]: performs iterative data flow analysis via abstract interpretation.
* [Schemes]: significant subsystems of the VM (e.g. Heap, Compilation, Object Layout, References, etc.) that are implemented behind interfaces and are subject to alternate implementations.
* [Snippets]: pieces of Java source code that express the (partial) semantics and implementation of a bytecode instruction, used to provide a clean separation between the VM runtime and compiler.
* [Stack Walking]: how and why Maxine stacks are walked.
* [T1X]: Maxine's template-based baseline compiler, using templates compiled by [C1X].
* [Target Methods]: the runtime representation of a method compilation in the VM.
* [Threads]: thread representation and management in the VM, including thread-local storage, safepoints, stack overflow detection, and thread-local allocation.
* [VM Operation]: operations on safely frozen threads.
* [VMOptions]: an extensible mechanism for defining command-line options for the VM.
* [XIR]: an experimental machine-independent assembly-level language for implementing Java bytecodes in the backend of the [C1X] compiler.