From e272e96b69f7d37ba2f886150807c2b36222d7a3 Mon Sep 17 00:00:00 2001 From: Yi Lin Date: Mon, 3 Apr 2023 01:25:57 +0000 Subject: [PATCH 1/2] Bump version to v0.18 --- CHANGELOG.md | 31 +++++++++++++++++++++++++++++++ Cargo.toml | 4 ++-- macros/Cargo.toml | 2 +- 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 362b9fdf4d..6905a245b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 generatinoal 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) === diff --git a/Cargo.toml b/Cargo.toml index 7055e178d4..9096425241 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -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" @@ -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 } diff --git a/macros/Cargo.toml b/macros/Cargo.toml index 2aea31b291..76b7cc57d6 100644 --- a/macros/Cargo.toml +++ b/macros/Cargo.toml @@ -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." From 20a79777daaad1eacc37c0df96a72932611a33da Mon Sep 17 00:00:00 2001 From: Yi Lin Date: Tue, 11 Apr 2023 04:24:21 +0000 Subject: [PATCH 2/2] typo --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6905a245b1..551bbdc3be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ Plan --- -* Add a new plan, `StickyImmix`. This is an variant of immix using a sticky mark bit. This plan allows generatinoal behaviors without using a compulsory copying nursery. +* 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