Skip to content

Commit

Permalink
Bump version to v0.19 (#908)
Browse files Browse the repository at this point in the history
This PR bumps MMTk core to v0.19. It updates the pinned Rust version to
1.71.1, and MSRV to 1.66.
  • Loading branch information
qinsoon authored Aug 24, 2023
1 parent 9175e68 commit 269408b
Show file tree
Hide file tree
Showing 6 changed files with 94 additions and 33 deletions.
80 changes: 80 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,83 @@
0.19.0 (2023-08-18)
===

## What's Changed

### Plan
* Remove a warning in sticky immix trace_object_nursery by @qinsoon in https://github.com/mmtk/mmtk-core/pull/815
* Change default plan to GenImmix by @qinsoon in https://github.com/mmtk/mmtk-core/pull/819

### Policy
* Remove redundant clear_nursery() by @tianleq in https://github.com/mmtk/mmtk-core/pull/799
* Introduce VMSpace, and allow VMSpace to be set lazily by @qinsoon in https://github.com/mmtk/mmtk-core/pull/802
* Fix an issue that the aligned VM space may not match the original location by @qinsoon in https://github.com/mmtk/mmtk-core/pull/809
* Remove some uses of mem::transmute in marksweep block by @qinsoon in https://github.com/mmtk/mmtk-core/pull/826
* Fix `is_live` for ImmixSpace by @wks in https://github.com/mmtk/mmtk-core/pull/842
* Sweep abandoned blocks in eager sweeping by @qinsoon in https://github.com/mmtk/mmtk-core/pull/830
* Fix VO bits for Immix by @wks in https://github.com/mmtk/mmtk-core/pull/849
* Fix unaligned access by @wks in https://github.com/mmtk/mmtk-core/pull/887

### Scheduler
* Let the coordinator thread open buckets by @wks in https://github.com/mmtk/mmtk-core/pull/782
* No coordinator work by @wks in https://github.com/mmtk/mmtk-core/pull/794

### Misc
* Rename "alloc bit" to "valid-object bit" (VO bit), the second attempt. by @wks in https://github.com/mmtk/mmtk-core/pull/791
* Add MarkState. Use MarkState for ImmortalSpace. by @qinsoon in https://github.com/mmtk/mmtk-core/pull/796
* Change info logging to debug in ImmortalSpace by @qinsoon in https://github.com/mmtk/mmtk-core/pull/801
* Reset nursery_index in finalizable processor if we remove objects from candidates by @qinsoon in https://github.com/mmtk/mmtk-core/pull/807
* Allow bulk set side metadata by @qinsoon in https://github.com/mmtk/mmtk-core/pull/808
* Some fixes for sanity GC by @qinsoon in https://github.com/mmtk/mmtk-core/pull/806
* Use extreme assertion for metadata mapped assert by @wks in https://github.com/mmtk/mmtk-core/pull/812
* Install the missing deps for i686 CI tests by @qinsoon in https://github.com/mmtk/mmtk-core/pull/816
* Use min nursery as mem balancer's extra memory by @qinsoon in https://github.com/mmtk/mmtk-core/pull/820
* Sort dependencies in alphabetical order by @k-sareen in https://github.com/mmtk/mmtk-core/pull/822
* Use sysinfo instead of sys-info-rs by @k-sareen in https://github.com/mmtk/mmtk-core/pull/827
* Let sysinfo only load memory-related info by @wks in https://github.com/mmtk/mmtk-core/pull/836
* Add extreme assertion for barrier slow path calls by @ArberSephirotheca in https://github.com/mmtk/mmtk-core/pull/833
* Refactor: Use `Atomic<Address>` where appropriate by @ClSlaid in https://github.com/mmtk/mmtk-core/pull/843
* Update porting guide by @k-sareen in https://github.com/mmtk/mmtk-core/pull/857
* Fix typo in doc comment by @k-sareen in https://github.com/mmtk/mmtk-core/pull/859
* Replace debug_assert in side_after with assert by @qinsoon in https://github.com/mmtk/mmtk-core/pull/873
* Work around stack overflow in array_from_fn by @wks in https://github.com/mmtk/mmtk-core/pull/876
* Let ObjectReference implement Ord by @wks in https://github.com/mmtk/mmtk-core/pull/870
* Add USDT tracepoints for key GC activities by @caizixian in https://github.com/mmtk/mmtk-core/pull/883
* Fix UB in SFTMap implementations by @playXE in https://github.com/mmtk/mmtk-core/pull/879
* Run CI build/unit test with latest stable Rust toolchain by @qinsoon in https://github.com/mmtk/mmtk-core/pull/885
* Document MSRV policy by @wks in https://github.com/mmtk/mmtk-core/pull/881
* Fix performance regression test scripts by @qinsoon in https://github.com/mmtk/mmtk-core/pull/892
* Run V8 binding tests on GitHub hosted runner by @caizixian in https://github.com/mmtk/mmtk-core/pull/900
* Add tracing tools and documentation by @caizixian in https://github.com/mmtk/mmtk-core/pull/898
* Run benchmarks for more plans on OpenJDK by @qinsoon in https://github.com/mmtk/mmtk-core/pull/901
* Apply style check on auxiliary crates (macros and dummyvm) by @caizixian in https://github.com/mmtk/mmtk-core/pull/913
* Call Collection::out_of_memory if the allocation size is larger than max heap size by @qinsoon in https://github.com/mmtk/mmtk-core/pull/896
* Add a unit test for comma-separated bulk option parsing by @caizixian in https://github.com/mmtk/mmtk-core/pull/911
* Merge tutorial and porting guide into user guide by @qinsoon in https://github.com/mmtk/mmtk-core/pull/907
* Fix broken links in README and cargo doc warnings by @caizixian in https://github.com/mmtk/mmtk-core/pull/912

### API
* Add object() in MemorySlice by @qinsoon in https://github.com/mmtk/mmtk-core/pull/798
* Remove Collection::COORDINATOR_ONLY_STW by @ArberSephirotheca in https://github.com/mmtk/mmtk-core/pull/814
* Refactor: Change `ActivePlan::mutators()`'s return type by @ArberSephirotheca in https://github.com/mmtk/mmtk-core/pull/817
* Replace alloc-related `offset` type to `usize` instead `isize` by @fepicture in https://github.com/mmtk/mmtk-core/pull/838
* Rename ambiguous `scan_thread_root{,s}` functions by @k-sareen in https://github.com/mmtk/mmtk-core/pull/846
* Update comments on bind_mutator by @qinsoon in https://github.com/mmtk/mmtk-core/pull/854
* Counting VM-allocated pages into heap size. by @wks in https://github.com/mmtk/mmtk-core/pull/866
* Expose Allocators type to public API by @playXE in https://github.com/mmtk/mmtk-core/pull/880
* Collect live bytes during GC by @qinsoon in https://github.com/mmtk/mmtk-core/pull/768
* Tidy up mutator scan API by @qinsoon in https://github.com/mmtk/mmtk-core/pull/875
* Implement transparent hugepage support by @caizixian in https://github.com/mmtk/mmtk-core/pull/905
* Implement AllocatorInfo by @playXE in https://github.com/mmtk/mmtk-core/pull/889
* Add comma as an alternative options string separator by @wenyuzhao in https://github.com/mmtk/mmtk-core/pull/909

## New Contributors
* @ArberSephirotheca made their first contribution in https://github.com/mmtk/mmtk-core/pull/814
* @fepicture made their first contribution in https://github.com/mmtk/mmtk-core/pull/838
* @ClSlaid made their first contribution in https://github.com/mmtk/mmtk-core/pull/843
* @playXE made their first contribution in https://github.com/mmtk/mmtk-core/pull/880

**Full Changelog**: https://github.com/mmtk/mmtk-core/compare/v0.18.0...v0.19.0

0.18.0 (2023-04-03)
===

Expand Down
16 changes: 6 additions & 10 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "mmtk"
version = "0.18.0"
version = "0.19.0"
authors = ["The MMTk Developers <>"]
edition = "2021"
license = "MIT OR Apache-2.0"
Expand All @@ -10,7 +10,7 @@ repository = "https://github.com/mmtk/mmtk-core"
readme = "README.md"
categories = ["memory-management"]
keywords = ["gc", "garbage", "collection", "garbage-collection", "allocation"]
rust-version = "1.61.0"
rust-version = "1.66.0"
build = "build.rs"

[lib]
Expand All @@ -28,9 +28,7 @@ delegate = "0.9.0"
downcast-rs = "1.1.1"
enum-map = "2.4.2"
env_logger = "0.10.0"
# We do not use this crate, but env_logger uses it. env_logger uses is_terminal 0.4.0. However, since 0.4.8, is_terminal requires Rust 1.63.
# So we fix on 0.4.7 here. Once we bump our MSRV, we can remove this.
is-terminal = "=0.4.7"
is-terminal = "0.4.7"
itertools = "0.10.5"
jemalloc-sys = { version = "0.5.3", features = ["disable_initial_exec_tls"], optional = true }
lazy_static = "1.1"
Expand All @@ -39,19 +37,17 @@ log = { version = "0.4", features = ["max_level_trace", "release_max_level_off"]
memoffset = "0.9"
mimalloc-sys = { version = "0.1.6", optional = true }
# MMTk macros
mmtk-macros = { version = "0.18.0", path = "macros/" }
mmtk-macros = { version = "0.19.0", path = "macros/" }
num_cpus = "1.8"
num-traits = "0.2"
pfm = { version = "0.1.0-beta.3", optional = true }
# Pin to <0.4.0 until we have MSRV >= 1.66, then we can bump to 0.5 (0.4 forces lazy evaluation https://github.com/cuviper/probe-rs/issues/19)
probe = "0.3"
probe = "0.5"
regex = "1.7.0"
spin = "0.9.5"
static_assertions = "1.1.0"
strum = "0.24"
strum_macros = "0.24"
# Fix on 0.29.5 so we have MSRV 1.61. Remove this when we update MSRV
sysinfo = "=0.29.5"
sysinfo = "0.29"

[dev-dependencies]
paste = "1.0.8"
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.18.0"
version = "0.19.0"
edition = "2021"
license = "MIT OR Apache-2.0"
description = "MMTk macros provides procedural macros used by mmtk-core."
Expand Down
2 changes: 1 addition & 1 deletion rust-toolchain
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.66.1
1.71.1
18 changes: 4 additions & 14 deletions src/util/alloc/allocators.rs
Original file line number Diff line number Diff line change
Expand Up @@ -163,40 +163,30 @@ impl<VM: VMBinding> Allocators<VM> {
// LargeObject,
// }
#[repr(C, u8)]
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, Default)]
pub enum AllocatorSelector {
BumpPointer(u8),
LargeObject(u8),
Malloc(u8),
Immix(u8),
MarkCompact(u8),
FreeList(u8),
#[default]
None,
}

impl Default for AllocatorSelector {
fn default() -> Self {
AllocatorSelector::None
}
}

/// This type describes allocator information. It is used to
/// generate fast paths for the GC. All offset fields are relative to [`Mutator`](crate::Mutator).
#[repr(C, u8)]
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, Default)]
pub enum AllocatorInfo {
BumpPointer { bump_pointer_offset: usize },
// FIXME: Add free-list fast-path
Unimplemented,
#[default]
None,
}

impl Default for AllocatorInfo {
fn default() -> Self {
AllocatorInfo::None
}
}

impl AllocatorInfo {
/// Return an AllocatorInfo for the given allocator selector. This method is provided
/// so that VM compilers may generate allocator fast-path and load fields for the fast-path.
Expand Down
9 changes: 2 additions & 7 deletions src/util/copy/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -253,16 +253,11 @@ impl CopySemantics {
}

#[repr(C, u8)]
#[derive(Copy, Clone, Debug)]
#[derive(Copy, Clone, Debug, Default)]
pub enum CopySelector {
CopySpace(u8),
Immix(u8),
ImmixHybrid(u8),
#[default]
Unused,
}

impl std::default::Default for CopySelector {
fn default() -> Self {
CopySelector::Unused
}
}

0 comments on commit 269408b

Please sign in to comment.