diff --git a/CMakeLists.txt b/CMakeLists.txt
index c58e64f8..5ce084f6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -126,7 +126,7 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(x86_64|x64|amd64|AMD64)$" OR CMAKE_GENE
set(MI_ARCH "x64")
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|arm64|armv[89].?|ARM64)$" OR CMAKE_GENERATOR_PLATFORM STREQUAL "ARM64" OR "arm64" IN_LIST CMAKE_OSX_ARCHITECTURES)
set(MI_ARCH "arm64")
-elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm|armv[34567]|ARM)$")
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm|armv[34567].?|ARM)$")
set(MI_ARCH "arm32")
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(riscv|riscv32|riscv64)$")
if(CMAKE_SIZEOF_VOID_P==4)
diff --git a/contrib/vcpkg/portfile.cmake b/contrib/vcpkg/portfile.cmake
index 2e40c70d..3768e54a 100644
--- a/contrib/vcpkg/portfile.cmake
+++ b/contrib/vcpkg/portfile.cmake
@@ -4,8 +4,8 @@ vcpkg_from_github(
HEAD_REF master
# The "REF" can be a commit hash, branch name (dev2), or a version (v2.2.1).
- # REF "v${VERSION}"
- REF e2db21e9ba9fb9172b7b0aa0fe9b8742525e8774
+ REF "v${VERSION}"
+ # REF e2db21e9ba9fb9172b7b0aa0fe9b8742525e8774
# The sha512 is the hash of the tar.gz bundle.
# (To get the sha512, run `vcpkg install mimalloc[override] --overlay-ports=
` and copy the sha from the error message.)
@@ -19,6 +19,7 @@ vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
secure MI_SECURE
override MI_OVERRIDE
optarch MI_OPT_ARCH
+ nooptarch MI_NO_OPT_ARCH
optsimd MI_OPT_SIMD
xmalloc MI_XMALLOC
asm MI_SEE_ASM
diff --git a/contrib/vcpkg/vcpkg.json b/contrib/vcpkg/vcpkg.json
index ce0c3456..42f2aa35 100644
--- a/contrib/vcpkg/vcpkg.json
+++ b/contrib/vcpkg/vcpkg.json
@@ -1,6 +1,6 @@
{
"name": "mimalloc",
- "version": "2.2.2",
+ "version": "2.2.4",
"port-version": 1,
"description": "Compact general purpose allocator with excellent performance",
"homepage": "https://github.com/microsoft/mimalloc",
@@ -35,6 +35,9 @@
"optarch": {
"description": "Use architecture specific optimizations (on x64: '-march=haswell;-mavx2', on arm64: '-march=armv8.1-a')"
},
+ "nooptarch": {
+ "description": "Do _not_ use architecture specific optimizations (on x64: '-march=haswell;-mavx2', on arm64: '-march=armv8.1-a')"
+ },
"optsimd": {
"description": "Allow use of SIMD instructions (avx2 or neon) (requires 'optarch' to be enabled)"
},
diff --git a/readme.md b/readme.md
index 601a7e24..71aaf7a2 100644
--- a/readme.md
+++ b/readme.md
@@ -12,9 +12,9 @@ is a general purpose allocator with excellent [performance](#performance) charac
Initially developed by Daan Leijen for the runtime systems of the
[Koka](https://koka-lang.github.io) and [Lean](https://github.com/leanprover/lean) languages.
-Latest release : `v3.0.3` (beta) (2025-03-28).
-Latest v2 release: `v2.2.3` (2025-03-28).
-Latest v1 release: `v1.9.3` (2024-03-28).
+Latest release : `v3.1.4` (beta) (2025-06-09).
+Latest v2 release: `v2.2.4` (2025-06-09).
+Latest v1 release: `v1.9.4` (2024-06-09).
mimalloc is a drop-in replacement for `malloc` and can be used in other programs
without code changes, for example, on dynamically linked ELF-based systems (Linux, BSD, etc.) you can use it as:
@@ -77,12 +77,16 @@ Enjoy!
* `dev2`: development branch for mimalloc v2. This branch is downstream of `dev`
(and is essentially equal to `dev` except for `src/segment.c`). Uses larger sliced segments to manage
mimalloc pages that can reduce fragmentation.
-* `dev3`: development branch for mimalloc v3-beta. This branch is downstream of `dev`. This version
- simplifies the lock-free ownership of previous versions, has no thread-local segments any more.
- This improves sharing of memory between threads, and on certain large workloads may use (much) less memory.
+* `dev3`: development branch for mimalloc v3 beta. This branch is downstream of `dev`. This version
+ simplifies the lock-free ownership of previous versions, and improves sharing of memory between
+ threads. On certain large workloads this version may use (much) less memory.
### Releases
+* 2025-06-09, `v1.9.4`, `v2.2.4`, `v3.1.4` (beta) : Some important bug fixes, including a case where OS memory
+ was not always fully released. Improved v3 performance, build on XBox, fix build on Android, support interpose
+ for older macOS versions, use MADV_FREE_REUSABLE on macOS, always check commit success, better support for Windows
+ fixed TLS offset, etc.
* 2025-03-28, `v1.9.3`, `v2.2.3`, `v3.0.3` (beta) : Various small bug and build fixes, including:
fix arm32 pre v7 builds, fix mingw build, get runtime statistics, improve statistic commit counts,
fix execution on non BMI1 x64 systems.