Releases: mmtk/mmtk-core
Releases · mmtk/mmtk-core
MMTk 0.32.0
0.32.0 (2026-02-04)
What's Changed
Plan
- Compressor
- Add a stop-the-world, serial Compressor by @no-defun-allowed in #1340
- Add a parallel/regional Compressor by @no-defun-allowed in #1372
- Fetch before trying to atomically mark in Compressor by @no-defun-allowed in #1438
- Concurrent Immix
Policy
- Make chunk map as global side metadata, and each space only lists its own chunks using chunk map by @qinsoon in #1304
- Allow configuring each Immix space to be non moving by @qinsoon in #1305
- Use ChunkMap in MallocSpace by @qinsoon in #1312
- LOS: Reduce is_mapped calls during VO bit scan by @wks in #1341
- Remove dead code about vm space in immortal space by @qinsoon in #1363
- Fix LargeObjectSpace::initialize_object_metadata by @wks in #1393
- Refactor Space::acquire by @wks in #1401
- Fix LOS object enumeration by @wks in #1412
- Implement debug_print_object_info for ImmortalSpace by @qinsoon in #1423
Allocator
- Minor refactor to remove duplicate code using ReservedAllocators by @qinsoon in #1309
- Add alloc_with_options by @qinsoon in #1218
Scheduler
- Minor changes to the ProcessRootNode work packet by @wks in #1327
- Rename Workbucket's active flag to open, add enable flag by @qinsoon in #1373
- Remove GCRequester, move related code to GCTrigger by @qinsoon in #1405
Documentation
- Fix typos and vague statements in weakref doc by @wks in #1329
- Wrong example in print_obj_info.md by @qinsoon in #1358
- Fix doc comments in options module by @k-sareen in #1389
- Add a debugging tip on traversing object graph by @qinsoon in #1396
- Update doc comment for Slot by @wks in #1409
- Document supported platforms by @wks in #1431
CI
- Remove V8 tests from extended tests by @qinsoon in #1313
- Bump Ruby binding test image to 24.04 by @wks in #1326
- Use canary binary by @qinsoon in #1384
- Let CI use both OpenJDK 11 and OpenJDK 21 by @wks in #1419
- Print more info for debugging in get-merged-pr by @qinsoon in #1428
- Allow retry in get-merged-pr by @qinsoon in #1427
- Use ci-perf-kit 0.8.6 (new epoch for CI runner package update on 5th Jan) by @qinsoon in #1444
Misc
- Choose Non-moving Policy based on features by @qinsoon in #1308
- Add a function to print object info from the space for debugging by @qinsoon in #1269
- Remove dead field in
VMMapby @k-sareen in #1320 - Move
inside_harnesstoGlobalStateby @k-sareen in #1321 - Remove env_var and command_line from options by @wks in #1240
- Use EnumMap::from_fn by @wks in #1323
- Remove the immix_stress_copying feature. Replace with separate options. by @qinsoon in #1324
- Make scan_non_zero_values_fast scan entirely forwards by @no-defun-allowed in #1332
- Move lint config to Cargo.toml. Adapt to Rust 1.88 by @qinsoon in #1335
- SFTSpaceMap should do range check in get_checked by @wks in #1339
- Replace FragmentedMapper with TwoLevelMmapper by @wks in #1337
- Deduplicate specs in
SideMetadataSanity::get_all_specsby @qinsoon in #1342 - Workaround eBPF errors by @wks in #1350
- Enable reference processing in the core by default by @k-sareen in #1360
- Fix Clippy 1.89 warnings by @wks in #1367
- Fix rayon-core version for MSRV by @qinsoon in #1368
- Use
bytemuck::Zeroablefor zeroable types. by @wks in #1371 - Refactor log bits by @qinsoon in #1364
- eBPF probes for finalization and reference processing by @wks in #1374
- Refactor both Mmapper impls into ChunkStateMmapper by @wks in #1369
- Remove unused methods and types related to memory mapping by @wks in #1383
- Add
AllInSetaffinity kind for pinning threads to all cores in a set by @k-sareen in #1386 - Fix Clippy 1.90 warning by @wks in #1394
- Warn the user about aliasing effect by @wks in #1392
- Remove vim modeline, move current_pause_determined to gc by @qinsoon in #1395
- Use u8 for alignment value by @qinsoon in #1399
- Use boolean allocation options by @wks in #1400
- Fix typo by @wks in #1404
- Pin the dep home to 0.5.5 by @qinsoon in #1411
- Fix Clippy 1.91 warnings. by @wks in #1413
- Pin mdbook/mdbook-admonish version by @qinsoon in #1416
- fix: do not force turn off log in release mode by @playX18 in #1415
- Fix Clippy warnings for Rust 1.92 by @wks in #1435
- Move to Rust 1.92. Bump MSRV to 1.84. by @qinsoon in #1440
- Cleaning up after bumping Rust MSRV by @wks in #1442
New Contributors
- @no-defun-allowed made their first contribution in #1332
- @playX18 made their first contribution in #1415
Full Changelog: v0.31.0...v0.32.0
MMTk 0.31.0
0.31.0 (2025-04-17)
What's Changed
Plan
- Remove dead trace_object methods. by @wks in #1277
- implement mutator builder by @tianleq in #1287
- Fix incongruent defaults for copying GCs by @k-sareen in #1296
Policy
- Clear stale line mark state by @tianleq in #1268
- Ensure log bits are correctly maintained by @k-sareen in #1169
Scheduler
- Make work packet buffer size configurable from one location by @k-sareen in #1285
- Make
EDGES_WORK_BUFFER_SIZEconstant public to bindings by @k-sareen in #1291
CI
- Fix Clippy warning in 1.84.0 by @wks in #1262
- Fix julia extended tests by @qinsoon in #1270
- Fix to bytemuck_derive 1.8.1 by @qinsoon in #1288
- Fix lychee command by @wks in #1286
- Fix clippy warnings for Rust 1.86 by @wks in #1297
- Properly handle multiple plans in GITHUB-CI in CI scripts by @qinsoon in #1301
Documentation
- Special topic chapter for finalizers and weak references by @wks in #1265
- User Guide chapter for address-based hashing by @wks in #1294
Misc
- Move to Rust 1.83 by @qinsoon in #1253
- Unique object enqueuing option by @wks in #1255
- Fix a subtraction overflow in get_free_pages. by @wks in #1261
- Force fixed heap size when using NoGC by @wks in #1264
- Make GC triggering and heap resizing consistent by @wks in #1266
- Bump MSRV to 1.74.1 by @wks in #1276
- Fix clippy warning about operator precedence by @wks in #1280
- Fixing MSRV-breaking dependencies by @wks in #1284
- Check if an object is in our heap before using VM map during counting live bytes by @qinsoon in #1289
- Aggregate live bytes info in on_gc_finished by @qinsoon in #1292
- Fix broken stats gathering code if no. of GCs >
MAX_PHASESby @k-sareen in #1295 - Fix contiguous chunk iterator in monotonic PR by @wks in #1299
Full Changelog: v0.30.0...v0.31.0
MMTk 0.30.0
0.30.0 (2024-12-20)
What's Changed
Policy
- Allow setting object metadata for VM space objects. Expose VO bit under a feature. by @qinsoon in #1248
Misc
- Fix clippy warnings for Rust 1.83 by @wks in #1242
- Annotate mmap ranges using PR_SET_VMA by @wks in #1236
- Fix warnings for lifetime in MmapAnnotation impl by @qinsoon in #1244
- Collect live bytes per space, and report by space by @qinsoon in #1238
- Minor changes for debugging. by @wks in #1245
- Use macos-15 for style check by @qinsoon in #1249
- Check the option before aggregating live bytes data. Panic if the option is enabled on malloc space. by @qinsoon in #1250
Full Changelog: v0.29.0...v0.30.0
MMTk 0.29.0
0.29.0 (2024-11-08)
What's Changed
CI
- Install cargo-msrv using stable toolchain. by @wks in #1215
- Update CI macos image by @qinsoon in #1216
- Performance history canary by @wks in #1209
- Change the default testing branch for Julia tests by @qinsoon in #1221
- Fix auto merge branches by @qinsoon in #1230
Documentation
Misc
- Fix a race between forwarding bits and VO bits. by @wks in #1214
- Remove space for nogc link by @Pat-Lafon in #1217
- Make env_logger an optional dependency by @wks in #1226
- Use modern syntax for optional dependencies by @wks in #1229
- Fix nightly build and add
inlineattributes to{un,}likelyby @k-sareen in #1228
New Contributors
- @Pat-Lafon made their first contribution in #1217
Full Changelog: v0.28.0...v0.29.0
MMTk 0.28.0
0.28.0 (2024-09-27)
What's Changed
API
- Require ObjectReference to point inside object by @wks in #1195
- Return if a GC ran or not for
handle_user_collection_requestby @k-sareen in #1205
CI
- Update ci-perf-kit to 0.7.6 by @qinsoon in #1199
- Update ci-perf-kit to plot epoch by @qinsoon in #1208
Misc
- Skip iterating through unallocated memory for
MonotonePageResourceby @k-sareen in #1189 - Fix find_last_non_zero_bit, and align metadata address before converting to data address. by @qinsoon in #1188
- Panic message and outdated comments by @wks in #1191
- Filter the result for find_prev_non_zero_value_fast to make sure it is in the search range by @qinsoon in #1192
- Assert OBJECT_REF_OFFSET_LOWER_BOUND invariant by @wks in #1194
- Minor fixes by @wks in #1196
- Add a feature immix_stress_copying by @qinsoon in #1202
- Update migration guide for #1205 by @qinsoon in #1211
Full Changelog: v0.27.0...v0.28.0
MMTk 0.27.0
0.27.0 (2024-08-09)
What's Changed
Policy
- Clear pin bits by @udesou in #1166
- Set the unlog bits for objects in the bootimage by @k-sareen in #1168
- Fix bug in line mark when
MARK_LINE_AT_SCAN_TIME=falseby @k-sareen in #1171
API
- Require object reference to be aligned by @qinsoon in #1159
- Internal pointer support by @qinsoon in #1165
- Heap traversal by @wks in #1174
CI
Misc
- Extensible eBPF timeline attributes by @wks in #1162
- Only map with executable permissions when using code space by @k-sareen in #1176
- Fix style check for Rust 1.80 by @qinsoon in #1178
- Extra assertions for mutators and epilogues by @wks in #1182
- Refactor iterate_meta_bits by @wks in #1181
Full Changelog: v0.26.0...v0.27.0
MMTk 0.26.0
0.26.0 (2024-07-01)
What's Changed
Policy
- Clear side forwarding bits properly by @wks in #1138
- Fix mark bit clearing in PrepareChunkMap by @wks in #1148
- Let MarkSweepSpace use BlockPageResource by @wks in #1150
- Add SweepChunk to native MarkSweepSpace by @wks in #1158
API
Documentation
- Fix broken link and stale descriptions in doc by @wks in #1139
- API migration guide. by @wks in #1133
- Add back
DummyVMas a part of the porting guide. Minor changes to MMTk initialization in the porting guide. by @qinsoon in #1142 - Fix broken link to mmtk.h by @wks in #1149
Misc
- Fix clippy warnings for Rust 1.79 by @wks in #1151
- Display number of slots in timeline visualization by @wks in #1154
Full Changelog: v0.25.0...v0.26.0
MMTk 0.25.0
0.25.0 (2024-05-17)
What's Changed
Plan
- Allow roots to be pinned for StickyImmix nursery collections by @k-sareen in #1108
- Check
FULL_NURSERY_GCfor StickyImmix as well by @k-sareen in #1124
Policy
Scheduler
API
- Allow nursery size to be proportional to the heap size by @qinsoon in #1087
- Remove NULL ObjectReference by @wks in #1064
- Fix write barrier parameter type by @wks in #1130
- Allow querying if the current GC may move objects. by @wks in #1128
CI
- Use host toolchain and explicit target in CI script by @wks in #1109
- Fix ignores in merge check by @qinsoon in #1117
- Fix the openjdk test name in merge check by @qinsoon in #1119
Misc
- Bump dependencies after version 0.24 by @wks in #1105
- Don't use
PROT_EXECwithmmapon macos by @eileencodes in #1110 - Rename associated types in GCWorkContext by @wks in #1116
- Add missing pinning metadata to mock_vm by @wks in #1121
- Use to_address for SFT access by @wks in #1122
- Ensure reference objects are either traced or cleared by @wks in #1126
- Dump process map on
mmapfailure and fix typos by @k-sareen in #1127 - Fix compiler errors and warnings for Rust 1.78.0 by @wks in #1132
- Remove fl_map and refactor FreeListPageResoure by @wks in #953
New Contributors
- @eileencodes made their first contribution in #1110
Full Changelog: v0.24.0...v0.25.0
MMTk 0.24.0
0.24.0 (2024-04-08)
What's Changed
Misc
- Check and fix broken links in docs by @qinsoon in #1085
- Allow binding to implement GC trigger by @qinsoon in #1083
- Resolve issues for unit tests on 32 bits by @qinsoon in #1095
- Use SFTDenseChunkMap on 64bits when vm_space is enabled by @qinsoon in #1094
- Fix warnings with the stable Rust toolchain by @wks in #1099
- Use proper logging for the treadmill by @wks in #1101
Full Changelog: v0.23.0...v0.24.0
MMTk 0.23.0
0.23.0 (2024-02-09)
What's Changed
API
CI
- Stop using the deprecated set-output in our CI configs by @qinsoon in #1059
- Rename CI tests to minimal/extended tests by @qinsoon in #1073
- Properly get PR number for merge group by @qinsoon in #1077
Misc
- MMTk Enhancement Proposal by @wks in #1056
- Timeline visualization tool by @wks in #1022
- Add a document for project principles by @qinsoon in #1069
- Fix un-cleared VO bits for contiguous monotone PR by @wks in #1071
- Use live memory to estimate collection pages in mem balancer by @qinsoon in #1050
- Fix issues in sanity GC by @qinsoon in #1079
Full Changelog: v0.22.1...v0.23.0