What's Changed
See https://github.com/microsoft/snmalloc/blob/main/docs/release/0.7/README.md for an introduction to the 0.7 release.
Optimisation
Startup time
- Startup improvements by @mjp41 in #639
- Startup speed by @mjp41 in #665
- Implement MCS Combining lock by @mjp41 in #666
- Add documentation for the combining lock by @mjp41 in #683
- implement polite waiting by @SchrodingerZhu in #685
Produce Consumer workloads (BatchIt)
- Using exclusive mode prefetch by @mjp41 in #627
- Refactorings to support BatchIt by @nwf-msr in #652
- msgpass benchmark and its refactoring dependencies by @nwf-msr in #659
- Bottom commits from BatchIt by @nwf-msr in #675
- BatchIt by @nwf in #677
Security Features
Platforms and Bindings
Libc
- Factor out libc code into a header. by @mjp41 in #624
- Remove unnecessary assertion from aligned_alloc by @mjp41 in #658
- aligned_alloc: Permit alignment values smaller than sizeof(uintptr_t) by @bsdjhb in #671
- aligned_alloc requirements update. by @devnexen in #681
Rust
Windows
- Override _msize on windows by @Naville in #633
- Disable empty static prefix for Windows. by @mjp41 in #629
- Add Windows ARM64 support by @jblazquez in #656
Haiku
NetBSD
Minor changes and refactorings
- Add a default constructor to seqset nodes. by @davidchisnall in #636
- Template construction of Pool elements by @mjp41 in #641
- NFC: sizeclass: differentiate minimum step size and minimum allocation sizes by @nwf-msr in #651
- Refactor new/delete overrides by @mjp41 in #660
- Remove the SNMALLOC_USE_CXX17 C preprocessor symbol by @nwf-msr in #667
- 0-length arrays in Buddy ranges by @nwf-msr in #672
- gcc UAF warning in test/perf/singlethread -malloc by @nwf in #679
- Remove some unneeded headers by @mjp41 in #680
- Remove unneeded template. by @mjp41 in #687
Build and CI
- Move to clang-format 15 by @mjp41 in #621
- Adding an option to enable dynamic loading by @matajoh in #632
- Add C++17 version for Mac. by @mjp41 in #635
- Workaround runner issue. by @mjp41 in #645
- FreeBSD CI. by @mjp41 in #647
- Update NetBSD runner by @mjp41 in #648
- Updated CI workaround. by @mjp41 in #650
- Rework CI by @nwf-msr in #674
- Further gcc -Werror=array-bounds fix by @nwf in #678
- Provide option to CMake for Page Size by @mjp41 in #664
- fuzzing test and detect the memmove error by @SchrodingerZhu in #688
- Add fuzz to CI by @mjp41 in #690
- clean up Result and make Result move-only by @SchrodingerZhu in #691
- Minor update to clangformat file. by @mjp41 in #694
- avoid chrono inclusion when clock_gettime is available by @SchrodingerZhu in #695
New Contributors
- @matajoh made their first contribution in #632
- @Naville made their first contribution in #633
- @jblazquez made their first contribution in #656
- @bsdjhb made their first contribution in #671
Full Changelog: 0.6.2...0.7.0