compat.mimalloc
#includemimalloc — compact general-purpose allocator with excellent performance
#include <mimalloc.h>
mcpp add compat.mimalloc@3.4.5
Usage
From this repository's own test project — built and run by CI, not written for the website.
// compat.mimalloc — assert the allocator is real, not just that it links.
//
// Every check below can fail: mi_usable_size reports what mimalloc actually
// reserved (so it proves the pointer came from mimalloc's own bookkeeping and
// not from a fallback), mi_zalloc must return zeroed memory, and a private
// heap must be able to hand out and destroy blocks independently of the
// default heap.
#include <mimalloc.h>
import std;
int main() {
bool ok = true;
auto check = [&](bool cond, std::string_view what) {
if (!cond) {
std::println("FAIL: {}", what);
ok = false;
}
};
// 1. Basic allocation, and mimalloc knows the block's real size.
void* p = mi_malloc(1024);
// …
tests/examples/mimalloc/tests/alloc.cpp · project tests/examples/mimalloc
openkal
| target | result | environment | test project | first diagnostic |
|---|---|---|---|---|
| x86_64-linux-gnu | runs | posix | mimalloc | |
| x86_64-windows-musl | builds | mimalloc | alloc ... FAIL (exit 1, 2.03s) |
How this was measured
Measured 2026-09-23 by tests/openkal/compat.py with openkal-llvm-runtime 0.15.1, llvm@22.1.8, mcpp 2026.9.21.3. The test project selects no platform dependency of its own. The badge above is a summary of the strictest measured target -- the table above states each target's own environment.
Build
- targets
mimalloc (lib)- language
c++23- C standard
c11- import std
- no
- include dirs
*/include
Sources (18)
*/src/alloc.c*/src/alloc-aligned.c*/src/alloc-posix.c*/src/arena.c*/src/arena-meta.c*/src/bitmap.c*/src/heap.c*/src/init.c*/src/libc.c*/src/options.c*/src/os.c*/src/page.c*/src/page-map.c*/src/random.c*/src/stats.c*/src/theap.c*/src/threadlocal.c*/src/prim/prim.c