ReleaseMicrosoftMicrosoftpublished Nov 28, 2024seen 1d

microsoft/snmalloc 0.7.0

microsoft/snmalloc

Open original ↗

Captured source

source ↗
published Nov 28, 2024seen 1dcaptured 13hhttp 200method plain

0.7.0

Repository: microsoft/snmalloc

Tag: 0.7.0

Published: 2024-11-28T14:44:12Z

Prerelease: no

Release notes:

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 https://github.com/microsoft/snmalloc/pull/639
  • Startup speed by @mjp41 in https://github.com/microsoft/snmalloc/pull/665
  • Implement MCS Combining lock by @mjp41 in https://github.com/microsoft/snmalloc/pull/666
  • Add documentation for the combining lock by @mjp41 in https://github.com/microsoft/snmalloc/pull/683
  • implement polite waiting by @SchrodingerZhu in https://github.com/microsoft/snmalloc/pull/685

Produce Consumer workloads (BatchIt)

  • Using exclusive mode prefetch by @mjp41 in https://github.com/microsoft/snmalloc/pull/627
  • Refactorings to support BatchIt by @nwf-msr in https://github.com/microsoft/snmalloc/pull/652
  • msgpass benchmark and its refactoring dependencies by @nwf-msr in https://github.com/microsoft/snmalloc/pull/659
  • Bottom commits from BatchIt by @nwf-msr in https://github.com/microsoft/snmalloc/pull/675
  • BatchIt by @nwf in https://github.com/microsoft/snmalloc/pull/677

Security Features

  • Configurable client meta-data by @mjp41 in https://github.com/microsoft/snmalloc/pull/662

Platforms and Bindings

Libc

  • Factor out libc code into a header. by @mjp41 in https://github.com/microsoft/snmalloc/pull/624
  • Remove unnecessary assertion from aligned_alloc by @mjp41 in https://github.com/microsoft/snmalloc/pull/658
  • aligned_alloc: Permit alignment values smaller than sizeof(uintptr_t) by @bsdjhb in https://github.com/microsoft/snmalloc/pull/671
  • aligned_alloc requirements update. by @devnexen in https://github.com/microsoft/snmalloc/pull/681

Rust

  • export snmalloc::alloc_size to rust wrappers. by @devnexen in https://github.com/microsoft/snmalloc/pull/676

Windows

  • Override _msize on windows by @Naville in https://github.com/microsoft/snmalloc/pull/633
  • Disable empty static prefix for Windows. by @mjp41 in https://github.com/microsoft/snmalloc/pull/629
  • Add Windows ARM64 support by @jblazquez in https://github.com/microsoft/snmalloc/pull/656

Haiku

  • PAL::haiku finally supports getentropy. by @devnexen in https://github.com/microsoft/snmalloc/pull/684

NetBSD

  • neasing netbsd build. by @devnexen in https://github.com/microsoft/snmalloc/pull/696

Minor changes and refactorings

  • Add a default constructor to seqset nodes. by @davidchisnall in https://github.com/microsoft/snmalloc/pull/636
  • Template construction of Pool elements by @mjp41 in https://github.com/microsoft/snmalloc/pull/641
  • NFC: sizeclass: differentiate minimum step size and minimum allocation sizes by @nwf-msr in https://github.com/microsoft/snmalloc/pull/651
  • Refactor new/delete overrides by @mjp41 in https://github.com/microsoft/snmalloc/pull/660
  • Remove the SNMALLOC_USE_CXX17 C preprocessor symbol by @nwf-msr in https://github.com/microsoft/snmalloc/pull/667
  • 0-length arrays in Buddy ranges by @nwf-msr in https://github.com/microsoft/snmalloc/pull/672
  • gcc UAF warning in test/perf/singlethread -malloc by @nwf in https://github.com/microsoft/snmalloc/pull/679
  • Remove some unneeded headers by @mjp41 in https://github.com/microsoft/snmalloc/pull/680
  • Remove unneeded template. by @mjp41 in https://github.com/microsoft/snmalloc/pull/687

Build and CI

  • Move to clang-format 15 by @mjp41 in https://github.com/microsoft/snmalloc/pull/621
  • Adding an option to enable dynamic loading by @matajoh in https://github.com/microsoft/snmalloc/pull/632
  • Add C++17 version for Mac. by @mjp41 in https://github.com/microsoft/snmalloc/pull/635
  • Workaround runner issue. by @mjp41 in https://github.com/microsoft/snmalloc/pull/645
  • FreeBSD CI. by @mjp41 in https://github.com/microsoft/snmalloc/pull/647
  • Update NetBSD runner by @mjp41 in https://github.com/microsoft/snmalloc/pull/648
  • Updated CI workaround. by @mjp41 in https://github.com/microsoft/snmalloc/pull/650
  • Rework CI by @nwf-msr in https://github.com/microsoft/snmalloc/pull/674
  • Further gcc -Werror=array-bounds fix by @nwf in https://github.com/microsoft/snmalloc/pull/678
  • Provide option to CMake for Page Size by @mjp41 in https://github.com/microsoft/snmalloc/pull/664
  • fuzzing test and detect the memmove error by @SchrodingerZhu in https://github.com/microsoft/snmalloc/pull/688
  • Add fuzz to CI by @mjp41 in https://github.com/microsoft/snmalloc/pull/690
  • clean up Result and make Result move-only by @SchrodingerZhu in https://github.com/microsoft/snmalloc/pull/691
  • Minor update to clangformat file. by @mjp41 in https://github.com/microsoft/snmalloc/pull/694
  • avoid chrono inclusion when clock_gettime is available by @SchrodingerZhu in https://github.com/microsoft/snmalloc/pull/695

New Contributors

  • @matajoh made their first contribution in https://github.com/microsoft/snmalloc/pull/632
  • @Naville made their first contribution in https://github.com/microsoft/snmalloc/pull/633
  • @jblazquez made their first contribution in https://github.com/microsoft/snmalloc/pull/656
  • @bsdjhb made their first contribution in https://github.com/microsoft/snmalloc/pull/671

Full Changelog: https://github.com/microsoft/snmalloc/compare/0.6.2...0.7.0