Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,34 @@
0.18.0 (2023-04-03)
===

Plan
---
* Add a new plan, `StickyImmix`. This is an variant of immix using a sticky mark bit. This plan allows generational behaviors without using a compulsory copying nursery.
* Side log bits in generational plans are now set using relaxed store for the entire byte as an optimization.

Policy
---
* Add constants `STRESS_DEFRAG` and `DEFRAG_EVERY_BLOCK` to allow immix to stress defrag copying for debugging.

API
---
* Add a new write barrier method `object_probable_write`. The method can be called before the fields of an object may get updated without a normal write barrier.
* Add a feature `immix_non_moving` to replace the current `immix_no_defrag` feature. This is only intended for debugging uses to rule out issues from copying.

Misc
---
* Refactor `Mmapper` and `VMMap`. Their implementation is now chosen dynamically, rather than statically based on the pointer size of the architecture. This allows
us to use a more appropriate implementation to support compressed pointers.
* Revert changes in d341506 about forwarding bits, and bulk zero side forward bits for defrag source blocks.
* Fix a bug in the scheduler where a worker may spuriously wake up and attempt to open new buckets while the coordinator is executing a coordinator work packet,
which would result in an assertion failure.
* Fix a bug in the mem balancer where subtraction may silently overflow and cause unexpected statistics to be used for computing new heap sizes.
* Fix a bug where `ScanObjectsWork` does not properly set the worker when it internally uses `ProcessEdgesWork`.
* Fix a bug where nodes pushed during root scanning were not cached for sanity GC.
* Fix a bug where `harness_begin` does not force a full heap GC for generational plans.
* Add info-level logging for each GC to show the memory usage before and after the GC, and elapsed time for the GC.


0.17.0 (2023-02-17)
===

Expand Down
4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "mmtk"
version = "0.17.0"
version = "0.18.0"
authors = ["The MMTk Developers <>"]
edition = "2021"
license = "MIT OR Apache-2.0"
Expand All @@ -20,7 +20,7 @@ doctest = false

[dependencies]
# MMTk macros
mmtk-macros = { version = "0.17.0", path = "macros/" }
mmtk-macros = { version = "0.18.0", path = "macros/" }

libc = "0.2"
jemalloc-sys = { version = "0.5.3", features = ["disable_initial_exec_tls"], optional = true }
Expand Down
2 changes: 1 addition & 1 deletion macros/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "mmtk-macros"
# the macro crate uses the same version as mmtk-core
version = "0.17.0"
version = "0.18.0"
edition = "2021"
license = "MIT OR Apache-2.0"
description = "MMTk macros provides procedural macros used by mmtk-core."
Expand Down