ReleaseMicrosoftMicrosoftpublished Aug 5, 2025seen 1d

microsoft/snmalloc 0.7.2

microsoft/snmalloc

Open original ↗

Captured source

source ↗
published Aug 5, 2025seen 1dcaptured 9hhttp 200method plain

0.7.2

Repository: microsoft/snmalloc

Tag: 0.7.2

Published: 2025-08-05T10:30:38Z

Prerelease: no

Release notes:

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 https://github.com/microsoft/snmalloc/pull/737
  • Fix test when using GWP-Asan by @mjp41 in https://github.com/microsoft/snmalloc/pull/758
  • Make Secondary Allocator a template parameter by @mjp41 in https://github.com/microsoft/snmalloc/pull/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 https://github.com/microsoft/snmalloc/pull/746
  • Release all reservations at the very end of the program or DLL by @NeilMonday in https://github.com/microsoft/snmalloc/pull/773

Rust

  • [Rust] add support for optionally compiling libc functions by @wpbrown in https://github.com/microsoft/snmalloc/pull/763

Libc support

  • Protection against fork by @mjp41 in https://github.com/microsoft/snmalloc/pull/735
  • Update realloc(p,0) semantics. by @mjp41 in https://github.com/microsoft/snmalloc/pull/753
  • Prevent internal errno setting escaping to the client. by @mjp41 in https://github.com/microsoft/snmalloc/pull/754

C++ support

  • Add exception handling for new operator by @mjp41 in https://github.com/microsoft/snmalloc/pull/791

CI and build

  • Mistaken commit of message_once by @mjp41 in https://github.com/microsoft/snmalloc/pull/741
  • cmake: Fix HAS_EXCEPTION on Windows. by @mjp41 in https://github.com/microsoft/snmalloc/pull/743
  • CI: Refresh Targets by @mjp41 in https://github.com/microsoft/snmalloc/pull/748
  • build: Fix nothrow include. by @mjp41 in https://github.com/microsoft/snmalloc/pull/749
  • CI: Cancel inflight checks on a new push. by @mjp41 in https://github.com/microsoft/snmalloc/pull/760
  • Header-only build fix for WIN32_LEAN_AND_MEAN redefinition by @sooknarine in https://github.com/microsoft/snmalloc/pull/764
  • Remove 20.04 from CI by @mjp41 in https://github.com/microsoft/snmalloc/pull/768
  • Drop Win2019 from CI by @mjp41 in https://github.com/microsoft/snmalloc/pull/778
  • Update minimum CMake version https://github.com/microsoft/snmalloc/pull/793

Bazel

Thanks to @jayakasadev for adding Bazel support to snmallocs build.

  • feat: add support for bazel by @jayakasadev in https://github.com/microsoft/snmalloc/pull/759
  • Add build platform and type to Bazel cache key by @mjp41 in https://github.com/microsoft/snmalloc/pull/779

Refactor and minor bugs fixes

  • Refactor: Remove unused features and functions, and move most allocator operations to a global namespace. by @mjp41 in https://github.com/microsoft/snmalloc/pull/750
  • Bug fixes by @mjp41 in https://github.com/microsoft/snmalloc/pull/752
  • Fixed pagemap reservations for a fixed-region use-case using the default PAL by @Trithek in https://github.com/microsoft/snmalloc/pull/757
  • Refactor check_bounds by @mjp41 in https://github.com/microsoft/snmalloc/pull/756
  • Refactor representation of thread local state. by @mjp41 in https://github.com/microsoft/snmalloc/pull/751
  • Fix bug in pool sort by @mjp41 in https://github.com/microsoft/snmalloc/pull/765
  • Reentrancy init by @mjp41 in https://github.com/microsoft/snmalloc/pull/767
  • Fix CI by @mjp41 in https://github.com/microsoft/snmalloc/pull/776
  • Remove tests for experimental jemalloc ABIs by @markjdb in https://github.com/microsoft/snmalloc/pull/770
  • Adjust func-memory test to be shorter. by @mjp41 in https://github.com/microsoft/snmalloc/pull/780
  • Improve sizeclass calculation by @mjp41 in https://github.com/microsoft/snmalloc/pull/777
  • Pass continuations for success and failure cases by @mjp41 in https://github.com/microsoft/snmalloc/pull/788
  • Fallible notify using by @mjp41 in https://github.com/microsoft/snmalloc/pull/790
  • Code Quality - inlining and reduce PreventFork usage by @mjp41 in https://github.com/microsoft/snmalloc/pull/792

New Contributors

  • @Trithek made their first contribution in https://github.com/microsoft/snmalloc/pull/757
  • @sooknarine made their first contribution in https://github.com/microsoft/snmalloc/pull/764
  • @wpbrown made their first contribution in https://github.com/microsoft/snmalloc/pull/763
  • @jayakasadev made their first contribution in https://github.com/microsoft/snmalloc/pull/759
  • @markjdb made their first contribution in https://github.com/microsoft/snmalloc/pull/770

Full Changelog: https://github.com/microsoft/snmalloc/compare/0.7.1...0.7.2