Skip to content

Commit 09a2709

Browse files
authored
Merge pull request #1103 from microsoft/daanx-patch-v3.1.5
Update readme.md for v3.1.5
2 parents 886957a + d21e2b8 commit 09a2709

File tree

1 file changed

+46
-43
lines changed

1 file changed

+46
-43
lines changed

readme.md

Lines changed: 46 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ is a general purpose allocator with excellent [performance](#performance) charac
1212
Initially developed by Daan Leijen for the runtime systems of the
1313
[Koka](https://koka-lang.github.io) and [Lean](https://github.com/leanprover/lean) languages.
1414

15-
Latest release : `v3.1.4` (beta) (2025-06-09).
15+
Latest release : `v3.1.5` (beta) (2025-06-13).
1616
Latest v2 release: `v2.2.4` (2025-06-09).
1717
Latest v1 release: `v1.9.4` (2024-06-09).
1818

@@ -83,6 +83,7 @@ Enjoy!
8383

8484
### Releases
8585

86+
* 2025-06-13, `v3.1.5`: Bug fix release where memory was not always correctly committed (issue #1098).
8687
* 2025-06-09, `v1.9.4`, `v2.2.4`, `v3.1.4` (beta) : Some important bug fixes, including a case where OS memory
8788
was not always fully released. Improved v3 performance, build on XBox, fix build on Android, support interpose
8889
for older macOS versions, use MADV_FREE_REUSABLE on macOS, always check commit success, better support for Windows
@@ -103,53 +104,13 @@ Enjoy!
103104
add 0-byte to canary; upstream CPython fixes; reduce .bss size; allow fixed TLS slot on Windows for improved performance.
104105
* 2024-05-21, `v1.8.7`, `v2.1.7`: Fix build issues on less common platforms. Started upstreaming patches
105106
from the CPython [integration](https://github.com/python/cpython/issues/113141#issuecomment-2119255217). Upstream `vcpkg` patches.
106-
* 2024-05-13, `v1.8.6`, `v2.1.6`: Fix build errors on various (older) platforms. Refactored aligned allocation.
107-
* 2024-04-22, `v1.8.4`, `v2.1.4`: Fixes various bugs and build issues. Add `MI_LIBC_MUSL` cmake flag for musl builds.
108-
Free-ing code is refactored into a separate module (`free.c`). Mimalloc page info is simplified with the block size
109-
directly available (and new `block_size_shift` to improve aligned block free-ing).
110-
New approach to collection of abandoned segments: When
111-
a thread terminates the segments it owns are abandoned (containing still live objects) and these can be
112-
reclaimed by other threads. We no longer use a list of abandoned segments but this is now done using bitmaps in arena's
113-
which is more concurrent (and more aggressive). Abandoned memory can now also be reclaimed if a thread frees an object in
114-
an abandoned page (which can be disabled using `mi_option_abandoned_reclaim_on_free`). The option `mi_option_max_segment_reclaim`
115-
gives a maximum percentage of abandoned segments that can be reclaimed per try (=10%).
116-
117-
* 2023-04-24, `v1.8.2`, `v2.1.2`: Fixes build issues on freeBSD, musl, and C17 (UE 5.1.1). Reduce code size/complexity
118-
by removing regions and segment-cache's and only use arenas with improved memory purging -- this may improve memory
119-
usage as well for larger services. Renamed options for consistency. Improved Valgrind and ASAN checking.
120-
121-
* 2023-04-03, `v1.8.1`, `v2.1.1`: Fixes build issues on some platforms.
122-
123-
* 2023-03-29, `v1.8.0`, `v2.1.0`: Improved support dynamic overriding on Windows 11. Improved tracing precision
124-
with [asan](#asan) and [Valgrind](#valgrind), and added Windows event tracing [ETW](#ETW) (contributed by Xinglong He). Created an OS
125-
abstraction layer to make it easier to port and separate platform dependent code (in `src/prim`). Fixed C++ STL compilation on older Microsoft C++ compilers, and various small bug fixes.
126-
127-
* 2022-12-23, `v1.7.9`, `v2.0.9`: Supports building with [asan](#asan) and improved [Valgrind](#valgrind) support.
128-
Support arbitrary large alignments (in particular for `std::pmr` pools).
129-
Added C++ STL allocators attached to a specific heap (thanks @vmarkovtsev).
130-
Heap walks now visit all object (including huge objects). Support Windows nano server containers (by Johannes Schindelin,@dscho).
131-
Various small bug fixes.
132-
133-
* 2022-11-03, `v1.7.7`, `v2.0.7`: Initial support for [Valgrind](#valgrind) for leak testing and heap block overflow
134-
detection. Initial
135-
support for attaching heaps to a specific memory area (only in v2). Fix `realloc` behavior for zero size blocks, remove restriction to integral multiple of the alignment in `alloc_align`, improved aligned allocation performance, reduced contention with many threads on few processors (thank you @dposluns!), vs2022 support, support `pkg-config`, .
136-
137-
* 2022-04-14, `v1.7.6`, `v2.0.6`: fix fallback path for aligned OS allocation on Windows, improve Windows aligned allocation
138-
even when compiling with older SDK's, fix dynamic overriding on macOS Monterey, fix MSVC C++ dynamic overriding, fix
139-
warnings under Clang 14, improve performance if many OS threads are created and destroyed, fix statistics for large object
140-
allocations, using MIMALLOC_VERBOSE=1 has no maximum on the number of error messages, various small fixes.
141-
142-
* 2022-02-14, `v1.7.5`, `v2.0.5` (alpha): fix malloc override on
143-
Windows 11, fix compilation with musl, potentially reduced
144-
committed memory, add `bin/minject` for Windows,
145-
improved wasm support, faster aligned allocation,
146-
various small fixes.
147107

148108
* [Older release notes](#older-release-notes)
149109

150110
Special thanks to:
151111

152-
* [David Carlier](https://devnexen.blogspot.com/) (@devnexen) for his many contributions, and making
112+
* Sergiy Kuryata for his contributions on reducing memory commit -- especially on Windows with the Windows thread pool (now implemented in v3).
113+
* [David Carlier](https://devnexen.blogspot.com/) (@devnexen) for his _many_ contributions, and making
153114
mimalloc work better on many less common operating systems, like Haiku, Dragonfly, etc.
154115
* Mary Feofanova (@mary3000), Evgeniy Moiseenko, and Manuel Pöter (@mpoeter) for making mimalloc TSAN checkable, and finding
155116
memory model bugs using the [genMC] model checker.
@@ -904,6 +865,48 @@ provided by the bot. You will only need to do this once across all repos using o
904865

905866
# Older Release Notes
906867

868+
* 2024-05-13, `v1.8.6`, `v2.1.6`: Fix build errors on various (older) platforms. Refactored aligned allocation.
869+
* 2024-04-22, `v1.8.4`, `v2.1.4`: Fixes various bugs and build issues. Add `MI_LIBC_MUSL` cmake flag for musl builds.
870+
Free-ing code is refactored into a separate module (`free.c`). Mimalloc page info is simplified with the block size
871+
directly available (and new `block_size_shift` to improve aligned block free-ing).
872+
New approach to collection of abandoned segments: When
873+
a thread terminates the segments it owns are abandoned (containing still live objects) and these can be
874+
reclaimed by other threads. We no longer use a list of abandoned segments but this is now done using bitmaps in arena's
875+
which is more concurrent (and more aggressive). Abandoned memory can now also be reclaimed if a thread frees an object in
876+
an abandoned page (which can be disabled using `mi_option_abandoned_reclaim_on_free`). The option `mi_option_max_segment_reclaim`
877+
gives a maximum percentage of abandoned segments that can be reclaimed per try (=10%).
878+
879+
* 2023-04-24, `v1.8.2`, `v2.1.2`: Fixes build issues on freeBSD, musl, and C17 (UE 5.1.1). Reduce code size/complexity
880+
by removing regions and segment-cache's and only use arenas with improved memory purging -- this may improve memory
881+
usage as well for larger services. Renamed options for consistency. Improved Valgrind and ASAN checking.
882+
883+
* 2023-04-03, `v1.8.1`, `v2.1.1`: Fixes build issues on some platforms.
884+
885+
* 2023-03-29, `v1.8.0`, `v2.1.0`: Improved support dynamic overriding on Windows 11. Improved tracing precision
886+
with [asan](#asan) and [Valgrind](#valgrind), and added Windows event tracing [ETW](#ETW) (contributed by Xinglong He). Created an OS
887+
abstraction layer to make it easier to port and separate platform dependent code (in `src/prim`). Fixed C++ STL compilation on older Microsoft C++ compilers, and various small bug fixes.
888+
889+
* 2022-12-23, `v1.7.9`, `v2.0.9`: Supports building with [asan](#asan) and improved [Valgrind](#valgrind) support.
890+
Support arbitrary large alignments (in particular for `std::pmr` pools).
891+
Added C++ STL allocators attached to a specific heap (thanks @vmarkovtsev).
892+
Heap walks now visit all object (including huge objects). Support Windows nano server containers (by Johannes Schindelin,@dscho).
893+
Various small bug fixes.
894+
895+
* 2022-11-03, `v1.7.7`, `v2.0.7`: Initial support for [Valgrind](#valgrind) for leak testing and heap block overflow
896+
detection. Initial
897+
support for attaching heaps to a specific memory area (only in v2). Fix `realloc` behavior for zero size blocks, remove restriction to integral multiple of the alignment in `alloc_align`, improved aligned allocation performance, reduced contention with many threads on few processors (thank you @dposluns!), vs2022 support, support `pkg-config`, .
898+
899+
* 2022-04-14, `v1.7.6`, `v2.0.6`: fix fallback path for aligned OS allocation on Windows, improve Windows aligned allocation
900+
even when compiling with older SDK's, fix dynamic overriding on macOS Monterey, fix MSVC C++ dynamic overriding, fix
901+
warnings under Clang 14, improve performance if many OS threads are created and destroyed, fix statistics for large object
902+
allocations, using MIMALLOC_VERBOSE=1 has no maximum on the number of error messages, various small fixes.
903+
904+
* 2022-02-14, `v1.7.5`, `v2.0.5` (alpha): fix malloc override on
905+
Windows 11, fix compilation with musl, potentially reduced
906+
committed memory, add `bin/minject` for Windows,
907+
improved wasm support, faster aligned allocation,
908+
various small fixes.
909+
907910
* 2021-11-14, `v1.7.3`, `v2.0.3` (beta): improved WASM support, improved macOS support and performance (including
908911
M1), improved performance for v2 for large objects, Python integration improvements, more standard
909912
installation directories, various small fixes.

0 commit comments

Comments
 (0)