Releases: mmtk/mmtk-core
Releases · mmtk/mmtk-core
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=false
by @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
DummyVM
as 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_GC
for 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_EXEC
withmmap
on 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
mmap
failure 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
MMTk 0.22.1
MMTk 0.22.0
0.22.0 (2023-12-21)
What's Changed
API
- Flush mutator buffers in
destroy_mutator
by @k-sareen in #1045 - NULL and movement check in process_edge by @wks in #1032
Documentation
- Mention revoking TLABs of all mutators after a GC by @k-sareen in #1018
- Add missing docs for the vm module by @qinsoon in #1021
- Add missing docs for some util modules by @qinsoon in #1024
- Add missing docs for the rest of the util module by @qinsoon in #1026
- Add missing docs for the rest of the code base (merge after #1026) by @qinsoon in #1028
- Update some stale comments by @k-sareen in #1036
CI
- Use new running scripts in ci-perf-kit by @qinsoon in #1005
- Upload perf build and log as artifacts (merge after #1005) by @qinsoon in #1011
- Fix multiple issues in recent CI changes by @qinsoon in #1014
- Fix CI for OpenJDK nogc config by @qinsoon in #1019
- Use ci-perf-kit 0.7.4: ignore runs with unmatched key/value in the logs. by @qinsoon in #1025
- Fix Ruby binding test repo checkout by @wks in #1048
Misc
- Post-release dependency version bump for v0.21.0 by @wks in #1013
- Introduce MockVM by @qinsoon in #1049
Full Changelog: v0.21.0...v0.22.0
MMTk 0.21.0
0.21.0 (2023-11-03)
What's Changed
Plan
- Move some states from BasePlan to GlobalState by @qinsoon in #949
- Extract set_collection_kind and set_gc_status by @qinsoon in #957
- Expose
is_emergency_collection
to VM bindings by @wks in #997
Policy
- Clear all side forwarding bits by @wks in #974
- Stop using the name "ForwardingWord" by @wks in #976
- Implement get_gc_trigger() for LockFreeImmortalSpace by @qinsoon in #1003
API
- Expose alloc_slow. Add a section in user guide about allocation optimization by @qinsoon in #967
- Use BumpPointer::default() by @qinsoon in #993
- Fix mention of
to_object_reference()
in comment by @k-sareen in #998
Documentation
- Fix rustdoc warnings in Rust 1.73 by @qinsoon in #978
- Add a section about debugging tips in user guide by @qinsoon in #987
- Update doc comments by @wks in #1000
- Add document for release by @qinsoon in #1007
- Move constants and add comments for stress copying by @wks in #1008
- Update bibtex of the tracing paper to include the DOI by @caizixian in #1009
CI
- Fix performance baseline workflow by @qinsoon in #971
- Allow auto merge binding PRs by @qinsoon in #988
- Apply a delay before we enable auto merge on a PR by @qinsoon in #992
- Use
cargo generate-lockfile
to update JikesRVM's Cargo.lock by @qinsoon in #996
Misc
Full Changelog: v0.20.0...v0.21.0
MMTk 0.20.0
What's Changed
Plan
- Refactor derive macros and add HasSpaces trait by @wks in #934
- Make MarkCompact LOS support 2nd transitive closure by @wenyuzhao in #944
- Disabling PrepareMutator from PlanConstraints by @wks in #964
Policy
- Add ExternalPageResource and allow discontiguous VM space by @qinsoon in #864
- Discontiguous mark compact space support by @wenyuzhao in #939
- Discontiguous PageProtect GC support by @wenyuzhao in #946
- Fix vo-bit reset for discontiguous space by @wenyuzhao in #948
API
- Boot-time configurable heap constants by @wenyuzhao in #899
- This PR enables transitively pinning (TP) objects from particular roots for Immix/StickyImmix by @udesou in #897
- Let VM control when or if to read env var options by @wks in #955
Misc
- Update doc comment of Scanning::process_weak_refs by @wks in #919
- Binding test for Ruby by @wks in #916
- Fix api-check CI by @wks in #923
- Fix default value for RUBY_BINDING_REPO by @qinsoon in #926
- Add a ready-to-merge check by @qinsoon in #910
- Run ready to merge check for PRs by @qinsoon in #928
- Remove cast ref to mut everywhere by @playXE in #893
- Benchmark Rust code by @qinsoon in #933
- Fix broken links in the tutorial by @caizixian in #936
- Update doc to add a section for LTO by @qinsoon in #937
- Add CARGO_INCREMENTAL=0 to work around clippy 1.72 bug by @qinsoon in #938
- Fix issues for cargo fmt in 1.72 by @qinsoon in #940
- Use atomic operations for SFT map and remove unsafe code by @qinsoon in #931
- Fix outdated Rust version in README by @qinsoon in #942
- Fix length of Map64::descriptor_map by @wks in #956
Full Changelog: v0.19.0...v0.20.0
MMTk 0.19.0
0.19.0 (2023-08-18)
What's Changed
Plan
- Remove a warning in sticky immix trace_object_nursery by @qinsoon in #815
- Change default plan to GenImmix by @qinsoon in #819
Policy
- Remove redundant clear_nursery() by @tianleq in #799
- Introduce VMSpace, and allow VMSpace to be set lazily by @qinsoon in #802
- Fix an issue that the aligned VM space may not match the original location by @qinsoon in #809
- Remove some uses of mem::transmute in marksweep block by @qinsoon in #826
- Fix
is_live
for ImmixSpace by @wks in #842 - Sweep abandoned blocks in eager sweeping by @qinsoon in #830
- Fix VO bits for Immix by @wks in #849
- Fix unaligned access by @wks in #887
Scheduler
Misc
- Rename "alloc bit" to "valid-object bit" (VO bit), the second attempt. by @wks in #791
- Add MarkState. Use MarkState for ImmortalSpace. by @qinsoon in #796
- Change info logging to debug in ImmortalSpace by @qinsoon in #801
- Reset nursery_index in finalizable processor if we remove objects from candidates by @qinsoon in #807
- Allow bulk set side metadata by @qinsoon in #808
- Some fixes for sanity GC by @qinsoon in #806
- Use extreme assertion for metadata mapped assert by @wks in #812
- Install the missing deps for i686 CI tests by @qinsoon in #816
- Use min nursery as mem balancer's extra memory by @qinsoon in #820
- Sort dependencies in alphabetical order by @k-sareen in #822
- Use sysinfo instead of sys-info-rs by @k-sareen in #827
- Let sysinfo only load memory-related info by @wks in #836
- Add extreme assertion for barrier slow path calls by @ArberSephirotheca in #833
- Refactor: Use
Atomic<Address>
where appropriate by @ClSlaid in #843 - Update porting guide by @k-sareen in #857
- Fix typo in doc comment by @k-sareen in #859
- Replace debug_assert in side_after with assert by @qinsoon in #873
- Work around stack overflow in array_from_fn by @wks in #876
- Let ObjectReference implement Ord by @wks in #870
- Add USDT tracepoints for key GC activities by @caizixian in #883
- Fix UB in SFTMap implementations by @playXE in #879
- Run CI build/unit test with latest stable Rust toolchain by @qinsoon in #885
- Document MSRV policy by @wks in #881
- Fix performance regression test scripts by @qinsoon in #892
- Run V8 binding tests on GitHub hosted runner by @caizixian in #900
- Add tracing tools and documentation by @caizixian in #898
- Run benchmarks for more plans on OpenJDK by @qinsoon in #901
- Apply style check on auxiliary crates (macros and dummyvm) by @caizixian in #913
- Call Collection::out_of_memory if the allocation size is larger than max heap size by @qinsoon in #896
- Add a unit test for comma-separated bulk option parsing by @caizixian in #911
- Merge tutorial and porting guide into user guide by @qinsoon in #907
- Fix broken links in README and cargo doc warnings by @caizixian in #912
API
- Add object() in MemorySlice by @qinsoon in #798
- Remove Collection::COORDINATOR_ONLY_STW by @ArberSephirotheca in #814
- Refactor: Change
ActivePlan::mutators()
's return type by @ArberSephirotheca in #817 - Replace alloc-related
offset
type tousize
insteadisize
by @fepicture in #838 - Rename ambiguous
scan_thread_root{,s}
functions by @k-sareen in #846 - Update comments on bind_mutator by @qinsoon in #854
- Counting VM-allocated pages into heap size. by @wks in #866
- Expose Allocators type to public API by @playXE in #880
- Collect live bytes during GC by @qinsoon in #768
- Tidy up mutator scan API by @qinsoon in #875
- Implement transparent hugepage support by @caizixian in #905
- Implement AllocatorInfo by @playXE in #889
- Add comma as an alternative options string separator by @wenyuzhao in #909
New Contributors
- @ArberSephirotheca made their first contribution in #814
- @fepicture made their first contribution in #838
- @ClSlaid made their first contribution in #843
- @playXE made their first contribution in #880
Full Changelog: v0.18.0...v0.19.0