What's Changed
Secondary Allocator
Thanks to @SchrodingerZhu for allowing snmalloc to support a secondary allocator, such as GWP-Asan.
This feature allows snmalloc to pass some allocation and their corresponding deallocation to another allocator.
This can be used for a GWP-Asan integration, and will be used to enable detours on Windows to override the default allocator.
- Enable a secondary allocator support (e.g. GWP-Asan) by @SchrodingerZhu in #737
- Fix test when using GWP-Asan by @mjp41 in #758
- Make Secondary Allocator a template parameter by @mjp41 in #774
The next major release will build more on this feature.
Platforms
Windows support
Thanks to @NeilMonday for the Windows support improvements in particular the ability to unload snmalloc without leaking the memory associated with snmalloc.
- Windows: Remove exception handler for pagemap on unloading by @NeilMonday in #746
- Release all reservations at the very end of the program or DLL by @NeilMonday in #773
Rust
Libc support
- Protection against fork by @mjp41 in #735
- Update realloc(p,0) semantics. by @mjp41 in #753
- Prevent internal errno setting escaping to the client. by @mjp41 in #754
C++ support
CI and build
- Mistaken commit of message_once by @mjp41 in #741
- cmake: Fix HAS_EXCEPTION on Windows. by @mjp41 in #743
- CI: Refresh Targets by @mjp41 in #748
- build: Fix nothrow include. by @mjp41 in #749
- CI: Cancel inflight checks on a new push. by @mjp41 in #760
- Header-only build fix for WIN32_LEAN_AND_MEAN redefinition by @sooknarine in #764
- Remove 20.04 from CI by @mjp41 in #768
- Drop Win2019 from CI by @mjp41 in #778
- Update minimum CMake version #793
Bazel
Thanks to @jayakasadev for adding Bazel support to snmallocs build.
- feat: add support for bazel by @jayakasadev in #759
- Add build platform and type to Bazel cache key by @mjp41 in #779
Refactor and minor bugs fixes
- Refactor: Remove unused features and functions, and move most allocator operations to a global namespace. by @mjp41 in #750
- Bug fixes by @mjp41 in #752
- Fixed pagemap reservations for a fixed-region use-case using the default PAL by @Trithek in #757
- Refactor check_bounds by @mjp41 in #756
- Refactor representation of thread local state. by @mjp41 in #751
- Fix bug in pool sort by @mjp41 in #765
- Reentrancy init by @mjp41 in #767
- Fix CI by @mjp41 in #776
- Remove tests for experimental jemalloc ABIs by @markjdb in #770
- Adjust func-memory test to be shorter. by @mjp41 in #780
- Improve sizeclass calculation by @mjp41 in #777
- Pass continuations for success and failure cases by @mjp41 in #788
- Fallible notify using by @mjp41 in #790
- Code Quality - inlining and reduce PreventFork usage by @mjp41 in #792
New Contributors
- @Trithek made their first contribution in #757
- @sooknarine made their first contribution in #764
- @wpbrown made their first contribution in #763
- @jayakasadev made their first contribution in #759
- @markjdb made their first contribution in #770
Full Changelog: 0.7.1...0.7.2