Skip to content

Commit 269408b

Browse files
authored
Bump version to v0.19 (#908)
This PR bumps MMTk core to v0.19. It updates the pinned Rust version to 1.71.1, and MSRV to 1.66.
1 parent 9175e68 commit 269408b

File tree

6 files changed

+94
-33
lines changed

6 files changed

+94
-33
lines changed

CHANGELOG.md

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,83 @@
1+
0.19.0 (2023-08-18)
2+
===
3+
4+
## What's Changed
5+
6+
### Plan
7+
* Remove a warning in sticky immix trace_object_nursery by @qinsoon in https://github.com/mmtk/mmtk-core/pull/815
8+
* Change default plan to GenImmix by @qinsoon in https://github.com/mmtk/mmtk-core/pull/819
9+
10+
### Policy
11+
* Remove redundant clear_nursery() by @tianleq in https://github.com/mmtk/mmtk-core/pull/799
12+
* Introduce VMSpace, and allow VMSpace to be set lazily by @qinsoon in https://github.com/mmtk/mmtk-core/pull/802
13+
* 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
14+
* Remove some uses of mem::transmute in marksweep block by @qinsoon in https://github.com/mmtk/mmtk-core/pull/826
15+
* Fix `is_live` for ImmixSpace by @wks in https://github.com/mmtk/mmtk-core/pull/842
16+
* Sweep abandoned blocks in eager sweeping by @qinsoon in https://github.com/mmtk/mmtk-core/pull/830
17+
* Fix VO bits for Immix by @wks in https://github.com/mmtk/mmtk-core/pull/849
18+
* Fix unaligned access by @wks in https://github.com/mmtk/mmtk-core/pull/887
19+
20+
### Scheduler
21+
* Let the coordinator thread open buckets by @wks in https://github.com/mmtk/mmtk-core/pull/782
22+
* No coordinator work by @wks in https://github.com/mmtk/mmtk-core/pull/794
23+
24+
### Misc
25+
* Rename "alloc bit" to "valid-object bit" (VO bit), the second attempt. by @wks in https://github.com/mmtk/mmtk-core/pull/791
26+
* Add MarkState. Use MarkState for ImmortalSpace. by @qinsoon in https://github.com/mmtk/mmtk-core/pull/796
27+
* Change info logging to debug in ImmortalSpace by @qinsoon in https://github.com/mmtk/mmtk-core/pull/801
28+
* Reset nursery_index in finalizable processor if we remove objects from candidates by @qinsoon in https://github.com/mmtk/mmtk-core/pull/807
29+
* Allow bulk set side metadata by @qinsoon in https://github.com/mmtk/mmtk-core/pull/808
30+
* Some fixes for sanity GC by @qinsoon in https://github.com/mmtk/mmtk-core/pull/806
31+
* Use extreme assertion for metadata mapped assert by @wks in https://github.com/mmtk/mmtk-core/pull/812
32+
* Install the missing deps for i686 CI tests by @qinsoon in https://github.com/mmtk/mmtk-core/pull/816
33+
* Use min nursery as mem balancer's extra memory by @qinsoon in https://github.com/mmtk/mmtk-core/pull/820
34+
* Sort dependencies in alphabetical order by @k-sareen in https://github.com/mmtk/mmtk-core/pull/822
35+
* Use sysinfo instead of sys-info-rs by @k-sareen in https://github.com/mmtk/mmtk-core/pull/827
36+
* Let sysinfo only load memory-related info by @wks in https://github.com/mmtk/mmtk-core/pull/836
37+
* Add extreme assertion for barrier slow path calls by @ArberSephirotheca in https://github.com/mmtk/mmtk-core/pull/833
38+
* Refactor: Use `Atomic<Address>` where appropriate by @ClSlaid in https://github.com/mmtk/mmtk-core/pull/843
39+
* Update porting guide by @k-sareen in https://github.com/mmtk/mmtk-core/pull/857
40+
* Fix typo in doc comment by @k-sareen in https://github.com/mmtk/mmtk-core/pull/859
41+
* Replace debug_assert in side_after with assert by @qinsoon in https://github.com/mmtk/mmtk-core/pull/873
42+
* Work around stack overflow in array_from_fn by @wks in https://github.com/mmtk/mmtk-core/pull/876
43+
* Let ObjectReference implement Ord by @wks in https://github.com/mmtk/mmtk-core/pull/870
44+
* Add USDT tracepoints for key GC activities by @caizixian in https://github.com/mmtk/mmtk-core/pull/883
45+
* Fix UB in SFTMap implementations by @playXE in https://github.com/mmtk/mmtk-core/pull/879
46+
* Run CI build/unit test with latest stable Rust toolchain by @qinsoon in https://github.com/mmtk/mmtk-core/pull/885
47+
* Document MSRV policy by @wks in https://github.com/mmtk/mmtk-core/pull/881
48+
* Fix performance regression test scripts by @qinsoon in https://github.com/mmtk/mmtk-core/pull/892
49+
* Run V8 binding tests on GitHub hosted runner by @caizixian in https://github.com/mmtk/mmtk-core/pull/900
50+
* Add tracing tools and documentation by @caizixian in https://github.com/mmtk/mmtk-core/pull/898
51+
* Run benchmarks for more plans on OpenJDK by @qinsoon in https://github.com/mmtk/mmtk-core/pull/901
52+
* Apply style check on auxiliary crates (macros and dummyvm) by @caizixian in https://github.com/mmtk/mmtk-core/pull/913
53+
* 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
54+
* Add a unit test for comma-separated bulk option parsing by @caizixian in https://github.com/mmtk/mmtk-core/pull/911
55+
* Merge tutorial and porting guide into user guide by @qinsoon in https://github.com/mmtk/mmtk-core/pull/907
56+
* Fix broken links in README and cargo doc warnings by @caizixian in https://github.com/mmtk/mmtk-core/pull/912
57+
58+
### API
59+
* Add object() in MemorySlice by @qinsoon in https://github.com/mmtk/mmtk-core/pull/798
60+
* Remove Collection::COORDINATOR_ONLY_STW by @ArberSephirotheca in https://github.com/mmtk/mmtk-core/pull/814
61+
* Refactor: Change `ActivePlan::mutators()`'s return type by @ArberSephirotheca in https://github.com/mmtk/mmtk-core/pull/817
62+
* Replace alloc-related `offset` type to `usize` instead `isize` by @fepicture in https://github.com/mmtk/mmtk-core/pull/838
63+
* Rename ambiguous `scan_thread_root{,s}` functions by @k-sareen in https://github.com/mmtk/mmtk-core/pull/846
64+
* Update comments on bind_mutator by @qinsoon in https://github.com/mmtk/mmtk-core/pull/854
65+
* Counting VM-allocated pages into heap size. by @wks in https://github.com/mmtk/mmtk-core/pull/866
66+
* Expose Allocators type to public API by @playXE in https://github.com/mmtk/mmtk-core/pull/880
67+
* Collect live bytes during GC by @qinsoon in https://github.com/mmtk/mmtk-core/pull/768
68+
* Tidy up mutator scan API by @qinsoon in https://github.com/mmtk/mmtk-core/pull/875
69+
* Implement transparent hugepage support by @caizixian in https://github.com/mmtk/mmtk-core/pull/905
70+
* Implement AllocatorInfo by @playXE in https://github.com/mmtk/mmtk-core/pull/889
71+
* Add comma as an alternative options string separator by @wenyuzhao in https://github.com/mmtk/mmtk-core/pull/909
72+
73+
## New Contributors
74+
* @ArberSephirotheca made their first contribution in https://github.com/mmtk/mmtk-core/pull/814
75+
* @fepicture made their first contribution in https://github.com/mmtk/mmtk-core/pull/838
76+
* @ClSlaid made their first contribution in https://github.com/mmtk/mmtk-core/pull/843
77+
* @playXE made their first contribution in https://github.com/mmtk/mmtk-core/pull/880
78+
79+
**Full Changelog**: https://github.com/mmtk/mmtk-core/compare/v0.18.0...v0.19.0
80+
181
0.18.0 (2023-04-03)
282
===
383

Cargo.toml

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "mmtk"
3-
version = "0.18.0"
3+
version = "0.19.0"
44
authors = ["The MMTk Developers <>"]
55
edition = "2021"
66
license = "MIT OR Apache-2.0"
@@ -10,7 +10,7 @@ repository = "https://github.com/mmtk/mmtk-core"
1010
readme = "README.md"
1111
categories = ["memory-management"]
1212
keywords = ["gc", "garbage", "collection", "garbage-collection", "allocation"]
13-
rust-version = "1.61.0"
13+
rust-version = "1.66.0"
1414
build = "build.rs"
1515

1616
[lib]
@@ -28,9 +28,7 @@ delegate = "0.9.0"
2828
downcast-rs = "1.1.1"
2929
enum-map = "2.4.2"
3030
env_logger = "0.10.0"
31-
# 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.
32-
# So we fix on 0.4.7 here. Once we bump our MSRV, we can remove this.
33-
is-terminal = "=0.4.7"
31+
is-terminal = "0.4.7"
3432
itertools = "0.10.5"
3533
jemalloc-sys = { version = "0.5.3", features = ["disable_initial_exec_tls"], optional = true }
3634
lazy_static = "1.1"
@@ -39,19 +37,17 @@ log = { version = "0.4", features = ["max_level_trace", "release_max_level_off"]
3937
memoffset = "0.9"
4038
mimalloc-sys = { version = "0.1.6", optional = true }
4139
# MMTk macros
42-
mmtk-macros = { version = "0.18.0", path = "macros/" }
40+
mmtk-macros = { version = "0.19.0", path = "macros/" }
4341
num_cpus = "1.8"
4442
num-traits = "0.2"
4543
pfm = { version = "0.1.0-beta.3", optional = true }
46-
# 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)
47-
probe = "0.3"
44+
probe = "0.5"
4845
regex = "1.7.0"
4946
spin = "0.9.5"
5047
static_assertions = "1.1.0"
5148
strum = "0.24"
5249
strum_macros = "0.24"
53-
# Fix on 0.29.5 so we have MSRV 1.61. Remove this when we update MSRV
54-
sysinfo = "=0.29.5"
50+
sysinfo = "0.29"
5551

5652
[dev-dependencies]
5753
paste = "1.0.8"

macros/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "mmtk-macros"
33
# the macro crate uses the same version as mmtk-core
4-
version = "0.18.0"
4+
version = "0.19.0"
55
edition = "2021"
66
license = "MIT OR Apache-2.0"
77
description = "MMTk macros provides procedural macros used by mmtk-core."

rust-toolchain

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.66.1
1+
1.71.1

src/util/alloc/allocators.rs

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -163,40 +163,30 @@ impl<VM: VMBinding> Allocators<VM> {
163163
// LargeObject,
164164
// }
165165
#[repr(C, u8)]
166-
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
166+
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, Default)]
167167
pub enum AllocatorSelector {
168168
BumpPointer(u8),
169169
LargeObject(u8),
170170
Malloc(u8),
171171
Immix(u8),
172172
MarkCompact(u8),
173173
FreeList(u8),
174+
#[default]
174175
None,
175176
}
176177

177-
impl Default for AllocatorSelector {
178-
fn default() -> Self {
179-
AllocatorSelector::None
180-
}
181-
}
182-
183178
/// This type describes allocator information. It is used to
184179
/// generate fast paths for the GC. All offset fields are relative to [`Mutator`](crate::Mutator).
185180
#[repr(C, u8)]
186-
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
181+
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, Default)]
187182
pub enum AllocatorInfo {
188183
BumpPointer { bump_pointer_offset: usize },
189184
// FIXME: Add free-list fast-path
190185
Unimplemented,
186+
#[default]
191187
None,
192188
}
193189

194-
impl Default for AllocatorInfo {
195-
fn default() -> Self {
196-
AllocatorInfo::None
197-
}
198-
}
199-
200190
impl AllocatorInfo {
201191
/// Return an AllocatorInfo for the given allocator selector. This method is provided
202192
/// so that VM compilers may generate allocator fast-path and load fields for the fast-path.

src/util/copy/mod.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -253,16 +253,11 @@ impl CopySemantics {
253253
}
254254

255255
#[repr(C, u8)]
256-
#[derive(Copy, Clone, Debug)]
256+
#[derive(Copy, Clone, Debug, Default)]
257257
pub enum CopySelector {
258258
CopySpace(u8),
259259
Immix(u8),
260260
ImmixHybrid(u8),
261+
#[default]
261262
Unused,
262263
}
263-
264-
impl std::default::Default for CopySelector {
265-
fn default() -> Self {
266-
CopySelector::Unused
267-
}
268-
}

0 commit comments

Comments
 (0)