- Support the
StickyImmixplan. - Fix a bug in the C2 compiler where we may update an object without any write barrier if C2 performs deoptimization and
triggers a GC in deoptimization. We use
object_probable_writeto properly log the object. - Update to OpenJDK 11.0.19+1 (
jdk-11.0.19+1-mmtk). - Update to mmtk-core 0.18.0.
- MMTk OpenJDK binding now uses Rust 1.66.1 and MSRV is 1.61.0.
- Support dynamic heap resizing (enabled when
XmxandXmsvalues are different). - Remove all inline directives. We rely on Rust compiler and PGO for inline decisions. Add provide a PGO guide.
- Fix a crash caused by null pointer access if the VM calls
CollectedHeap::soft_ref_policy(). - Update to mmtk-core 0.17.0.
- MMTk OpenJDK binding now uses Rust edition 2021.
- Support MMTk's native mark sweep plan.
- Rename a few functions so they have consistent names across Rust and C++.
- Fix a compilation error when barrier fast path is disabled.
- Fix the wrong function pointer type in Rust that refers to a native function pointer.
- Update to mmtk-core 0.16.0.
- Add MMTk build info to
-Xinternalversion. - Implement
arraycopybarriers. - Update to mmtk-core 0.15.0.
- Fix a bug that MMTk gets initialized even when we are not using MMTk's GC.
- Remove incorrect
MMTkRootScanWorkScope. - Remove unused
compute_*_rootsfunctions. - Optimize
CodeCacheroots scanning. - Fix a bug that
mmtk_start_the_world_countmay be incorrect. - Update documentation about evaluation builds.
- Inlucde
Cargo.lockin the repository. - Update to mmtk-core 0.14.0.
- Fixes a bug that may cause programs to hang in stop-the-world synchronization.
- Updates to mmtk-core 0.13.0.
- Adds a few missing includes.
- Adds weak reference support (It is disabled by default. Set MMTk option
no_reference_typestofalseto enable it). - Fixes a bug in C2 allocation fastpath generation for mark compact which caused significant slowdown for mark compact allocation.
- Fixes a bug in transitioning thread state for the
harness_begincall which may cause a 'deadlock in safepoint code' error. - Updates the OpenJDK version to 11.0.15+8.
- Updates to mmtk-core 0.12.0.
- The OpenJDK submodule is removed from the repo. We now record the VM version
in
[package.metadata.openjdk]in the Cargo manifestCargo.toml. - The OpenJDK binding now builds with stable Rust toolchains.
- Removes
object_alignmentfromOpenJDK_Upcalls. - Implements
ObjectModel::get_reference_when_copied_to(). - Updates to mmtk-core 0.11.0.
- Implements a fastpath for
ObjectModel::get_current_size()in Rust. - Supports setting MMTk options by
-XX:THIRD_PARTY_HEAP_OPTIONS= - Supports proper OutOfMemory exceptions.
- Updates to mmtk-core 0.10.0.
- Supports the
MarkCompactplan. - Updates to mmtk-core 0.9.0.
- Introduces A VM companion thread to trigger safe point synchronisation. This fixed a bug that
MMTk's call to
SafePointerSynchronize::begin()may race with the OpenJDK's VM thread. - Changes
COORDINATOR_ONLY_STWtofalse. Stopping and resuming mutators are done by the companion thread, amd it is no longer a requirement for them to be done by the same GC thread. - Fixes a bug that for some allocations, both fastpath and slowpath were invoked.
- Fixes a bug in generating code to set the alloc bit in C1 compiler.
- Fixes a bug that some derived pointers were missing as roots.
- Updates to mmtk-core 0.8.0.
- Supports the
GenImmixplan. - Supports the
global_alloc_bitfeature in mmtk-core. - Fixes monitor misuse in the finalizer thread.
- Fixes style for C++ code to match OpenJDK style guidelines.
- Updates to mmtk-core 0.7.0.
- Supports the
Immixplan. - Uses side mark bit by default. Adds a feature 'mark_bit_in_header' to switch to in-header mark bit.
- Adds a size check for allocation so over-sized objects will be allocated to large object space.
- Updates to mmtk-core 0.6.0.
- Supports the new
PageProtectplan, added to help debugging. - Updates
ObjectModelto support the new metadata structure, where the bindings decide whether to put each per-object metadata on side or in object header. - Updates to mmtk-core 0.5.0.
- Fixes a bug where benchmarks failed randomly due to duplicate edges
- Switches to our new OpenJDK fork (
11.0.11+6-mmtk) which is based-on OpenJDK-11 update repo - Adds style checks
- Cleans up some unused code
- Updates to mmtk-core 0.4.0
- Supports the
marksweepplan in mmtk-core. - Supports fastpath for object barrier (used in
gencopy). - Supports finalization
- Supports runtime plan selection (through the environment variable
MMTK_PLAN) - Updates to mmtk-core 0.3.0
- Supports the
gencopyplan in mmtk-core. - Fixes a bug for incorrect heap boundary check.
- Updated to mmtk-core 0.2.0.
- Supports the following plans from mmtk-core:
- NoGC
- SemiSpace