- Update mmtk-core to v0.29.0
Full Changelog: https://github.com/mmtk/mmtk-openjdk/compare/v0.28.0...v0.29.0
- Require ObjectReference to point inside object by @wks in #286
- Bump the version of action/download-artifact by @wks in #287
- Bump version of action/upload-artifact by @qinsoon in #288
- Generational code cache roots by @wks in #282
Full Changelog: https://github.com/mmtk/mmtk-openjdk/compare/v0.27.0...v0.28.0
- Update to MMTK core PR #1159 by @qinsoon in #283
Full Changelog: https://github.com/mmtk/mmtk-openjdk/compare/v0.26.0...v0.27.0
- Rename edge to slot by @wks in #274
- Fix deadlock related to safepoint sync. by @wks in #279
- Add option to put forwarding bits on the side by @wks in #277
Full Changelog: https://github.com/mmtk/mmtk-openjdk/compare/v0.25.0...v0.26.0
- Update mmtk-core to v0.25.0.
- Remove the coordinator thread by @wks in #268
- Use to_address for SFT access by @wks in #272
- Remove NULL ObjectReference by @wks in #265
- Fix write barrier parameter type by @wks in #273
Full Changelog: https://github.com/mmtk/mmtk-openjdk/compare/v0.24.0...v0.25.0
- Update mmtk-core to v0.24.0.
- Update Rust toolchain to 1.77.0.
Full Changelog: https://github.com/mmtk/mmtk-openjdk/compare/v0.23.0...v0.24.0
- Refactor CI test scripts by @qinsoon in #263
- Expose test scripts for minimal/extended tests for mmtk-core by @qinsoon in #266
- Add tests for sanity GC in ci-test-extended by @qinsoon in #267
Full Changelog: https://github.com/mmtk/mmtk-openjdk/compare/v0.22.0...v0.23.0
- Change README to make images target the default build command by @angussidney in #253
- Add Java-specific constants from MMTk by @qinsoon in #258
- Post-release dependency version bump for v0.21.0 by @wks in #259
- @angussidney made their first contribution in #253
Full Changelog: https://github.com/mmtk/mmtk-openjdk/compare/v0.21.0...v0.22.0
Full Changelog: https://github.com/mmtk/mmtk-openjdk/compare/v0.20.0...v0.21.0
- Updating code to reflect API change by @udesou in #238
- Fix Cargo.lock by @wenyuzhao in #239
- Update tests to use dacapo-23.9-RC3-chopin by @qinsoon in #241
- Check results for new CI, allow some benchmarks to fail by @qinsoon in #211
- Fix ignored env var options by @wks in #244
- Update pgo-build script to use the pinned Rust toolchain by @caizixian in #236
- Compressed Oops Support by @wenyuzhao in #235
- @udesou made their first contribution in #238
Full Changelog: https://github.com/mmtk/mmtk-openjdk/compare/v0.19.0...v0.20.0
- Rename alloc bit to valid object bit (VO bit) by @wks in #214
- Fix invalid register values in
arraycopy_epilogue
barrier by @wenyuzhao in #216 - Remove deprecated const. by @wks in #217
- Update MMTk core PR #817 (alternative approach) by @wks in #220
- Update to mmtk-core PR #838 by @qinsoon in #221
- Rename ambiguous
scan_thread_root{,s}
functions by @k-sareen in #222 - Update to MMTk core PR #875 by @qinsoon in #225
- Show the version after cd by @wks in #227
- Add features for genimmix and stickyimmix by @qinsoon in #228
- Pass hotspot command line flags to mmtk-core by @wenyuzhao in #229
- Fix unaligned edge access by @wks in #232
Full Changelog: https://github.com/mmtk/mmtk-openjdk/compare/v0.18.0...v0.19.0
- Support the
StickyImmix
plan. - 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_write
to 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
Xmx
andXms
values 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
arraycopy
barriers. - 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_*_roots
functions. - Optimize
CodeCache
roots scanning. - Fix a bug that
mmtk_start_the_world_count
may be incorrect. - Update documentation about evaluation builds.
- Inlucde
Cargo.lock
in 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_types
tofalse
to 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_begin
call 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_alignment
fromOpenJDK_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
MarkCompact
plan. - 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_STW
tofalse
. 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
GenImmix
plan. - Supports the
global_alloc_bit
feature 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
Immix
plan. - 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
PageProtect
plan, added to help debugging. - Updates
ObjectModel
to 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
marksweep
plan 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
gencopy
plan 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