Repository navigation
Releases: zackees/mimalloc-pprof
Release list
mimalloc-pprof v1.1.0
What's Changed
- fix(ci): find draft releases through the list endpoint (#444) by @zackees in #562
- docs(rust): record the 1.0.1 changelog section (#444) by @zackees in #563
- fix(ci): resume after a release freeze with the frozen archive bytes (#564) by @zackees in #565
- fix: keep the caller's thread locals when destroying another sub-process (#554) by @zackees in #566
- ci: save setup-soldr caches fully under act (local bosn runs) by @zackees in #567
- docs: perf accounting rule — memory buys CPU at 3:1 (#422) by @zackees in #568
- perf: publish retired large pages without reading the clock (#544) by @zackees in #570
- perf: reclaim a large page on its owner's free (#544) by @zackees in #569
- ci: float setup-soldr at v0 (v0.9.82 Dylint cache fixes) by @zackees in #571
- perf: repurpose a retired large page for another bin (#530) by @zackees in #572
- fix(bench): RSS-floor validation tolerates measurement noise (unblocks benchmark publishing) by @zackees in #574
- ci: perf-ab sanity gate, stats replay, page-map check; fix a page-map slice under-count (#573) by @zackees in #576
- ci: perf-ab ledger, honest intervals, null arm, variants, adaptive reps, dispatch wrapper, stress lane (#573) by @zackees in #577
- feat: event counters, measured residency, assertion backtraces, USDT probes, one writer of page geometry (#573) by @zackees in #578
- ci: alert on failed scheduled scaling runs, split allocator caches, 15-block diagnostics, RSS-floor contract, stress on PRs (#573) by @zackees in #579
- test: fix test-resident-first-churn's ASan flake; make verify_local match CI (#573) by @zackees in #581
- perf: fungible large-bin pages, 1 MiB span cap + repurpose budget (#575) by @zackees in #584
- docs: #575 perf campaign retrospective (method, rejected list, tooling traps) by @zackees in #586
- docs: restyle benchmark scaling charts by @zackees in #587
- chore(release): prepare mimalloc-pprof v1.1.0 by @zackees in #588
- ci: skip soldr cook in cross and macos rust builds (#590) by @zackees in #591
- ci: restore soldr cook on cross/macos rust builds, pin soldr 0.9.27 (#590) by @zackees in #592
Full Changelog: v1.0.1...v1.1.0
mimalloc-pprof v1.0.1
What's Changed
- docs: clarify compile-time and runtime enablement by @zackees in #423
- feat: add deterministic large-size scaling benchmarks by @zackees in #426
- docs: require Actions approval for every external contributor by @zackees in #431
- ci: publish to crates.io with trusted identity by @zackees in #433
- Feat/arena reclaim resubmit by @han1548772930 in #432
- perf: measure opt-in arena reclamation and document tradeoffs by @zackees in #439
- docs: fix broken scaling links and evaluate publication by @zackees in #441
- ci: shard scaling collection on one Linux host and merge reports by @zackees in #442
- ci: opt-in native Mac full validation and fail-closed release gate by @zackees in #445
- ci: select minimal, ci-test, and ci-full across split workflows by @zackees in #446
- ci: add issue-driven release preflight front door (#444) by @zackees in #447
- chore(release): prepare mimalloc-pprof v1.0.1 (#444) by @zackees in #448
- docs: show working Pages deployment status by @zackees in #451
- fix: allow newer scaling reports without rewriting history by @zackees in #452
- docs: link the published full scaling reports by @zackees in #453
- ci: publish frozen release bytes through issue-gated worker by @zackees in #449
- ci: land issue-gated release publisher on main (#444) by @zackees in #454
- fix: accept canonical release tar roots and symlinks by @zackees in #456
- fix: privilege remote macOS release introspection test by @zackees in #459
- fix: smoke complete Windows release DLL closure by @zackees in #460
- fix: isolate Windows release smoke extraction by @zackees in #461
- fix: retry malformed release issue reads by @zackees in #462
- fix(release): accept flat GitHub comment pages by @zackees in #464
- fix(release): parse paginated comments as JSON lines by @zackees in #468
- ci: require full test lanes for external contributor PRs by @zackees in #466
- test: allow pytest without type stubs by @zackees in #469
- fix(release): force compact paginated comment pages by @zackees in #470
- Fix live release metadata parsing after Soldr telemetry by @zackees in #471
- Retry malformed GitHub destination reads before release freeze by @zackees in #472
- Retry malformed GitHub release frontdoor reads by @zackees in #473
- Parse decorated GitHub release JSON safely by @zackees in #474
- test: calibrate observer scaling sample duration by @zackees in #475
- fix: accept unambiguous inline-decorated GitHub JSON by @zackees in #476
- feat(benchmarks): chart long- vs short-lived-thread large-class workloads (#478) by @zackees in #480
- fix: never orphan the subproc arena purge deadline (#457) by @zackees in #481
- perf: release large-page holes while busy and at thread exit (#477) by @zackees in #482
- perf: do not retire large pages, so idle threads return them (#483) by @zackees in #488
- chore: per-function MI_DECL_MAYBE_UNUSED instead of a file-wide -Wunused-function pragma; lint it and upper-case macros by @zackees in #490
- ci: perf-ab reports worker cpu, minor faults and a profiler-on row (#493) by @zackees in #494
- fix: an aged purge run that is partly young again still purges its other part (#497) by @zackees in #498
- perf: reserve a finished thread's empty large pages for the next thread (#493 strategy 5, #484) by @zackees in #496
- perf: one release bound, polled by the tests and held by perf-ab, ratcheted down to 1.5 s (#491) by @zackees in #499
- perf: retain freed arena memory for 400-800 ms before release (#486) by @zackees in #500
- ci: perf-ab measures the README charts' build and names the runner CPU (#478) by @zackees in #502
- perf: claim retained (still resident) free slices first (#493 strategy 9) by @zackees in #501
- perf: a new thread's first busy tick starts its clock instead of sweeping (#478) by @zackees in #504
- chore: git-ignore .clud/ except .clud/settings.json by @zackees in #512
- chore: git-ignore only .clud/grind/ by @zackees in #515
- ci: large-buffer RSS attribution tool and #422 findings/proposal (#425) by @zackees in #516
- fix: limit resident-first claiming to large claims (#517) by @zackees in #520
- feat(bench): overlay every allocator's median on one scaling chart (#507) by @zackees in #513
- fix: hold owner gate during abandoned-hole purge by @zackees in #455
- perf: ratchet the release bound 1.5 s -> 1.3 s (#509) by @zackees in #521
- ci: run the memory gate on every PR touching src/include/CMakeLists (#518) by @zackees in #522
- feat: arena layout walk in mi_purge_holes_report (#519) by @zackees in #523
- feat(bench): thread-churn chart, RSS after the work stops (#508) by @zackees in #524
- ci(perf-ab): larson rows and head-only allocator options (#506) by @zackees in #525
- perf: short arena retention for small/medium pages and outgrown realloc buffers (#506) by @zackees in #526
- ci(perf-ab): head_cppdefs input and #422 diagnostic rows (#527) by @zackees in #535
- ci(benchmark-scaling): diagnostic mode with pprof-only env/cppdefs, phase-marked RSS (#528) by @zackees in #536
- ci(perf-ab): holes-report snapshot, fixed-budget rows, VmHWM peak (#529) by @zackees in #537
- feat(benchmarks): theoretical-minimum RSS floor on the scaling memory charts (#534) by @zackees in #539
- feat(benchmarks): live-data floor on the memory RSS timeline (#534) by @zackees in #540
- feat(benchmarks): theoretical-minimum floor on the README idle charts (#534) by @zackees in #541
- fix(benchmarks): floor in the allocator legend as "theoretical minimum" (#534) by @zackees in #542
- perf: size large-page spans from per-bin demand accounting (#532) by @zackees in #538
- feat: add phase-aligned large-span diagnostics (#543) by @zackees in #545
- fix: run #543 latency diagnostic independently by @zackees in #546
- fix: permit diagnostic eight-worker replay on smaller hosts by @zackees in #547
- fix: run stateful latency diagnostic without prefix warmup by @zackees in #548
- fix: forget a destroyed heap's profiler sample records (#550) by @Nosenzor in #555
- ci: enable private process-scoped perf diagnostics by @zackees in #557
- fix: honor MIMALLOC_DHAT and MIMALLOC_PROF_DUMP_FORMAT (#549) by @Nosenzor in #553
- docs: internals docs for the fork-owned C subsystems by @Nosenzor in #552
- fix(dhat): complete ftbl, count every refused event, reset fork-child state (#551) by @Nosenzor in #558
- fix: heap snapshot covers every sub-process with a consistent arena count; dump never waits for fork orphans by @Nosenzor in #559
- fix(ci): run release gh calls withou...
mimalloc-pprof v1.0.0
mimalloc-pprof v0.11.1
mimalloc-pprof v0.11.0
mimalloc-pprof 0.11.0 Multithreaded allocation is fast again (observer fast path, #371/#372/#387: 83/53/56 -> 373/1196/1985 Mops/s at 1/4/8 threads), process-wide eager purge (#366), Bun's heap-snapshot format (#338), zero-tracking restored (#337), and a macOS malloc zone that leaks/vmmap can walk (#339/#349).
mimalloc-pprof v0.10.0
mimalloc-pprof 0.10.0
mimalloc-pprof 0.9.5
Rust consumers can compile sampled pprof hooks out with default-features = false while retaining the mimalloc allocator, linkable sampled-profiler stubs, and internal exact DHAT. Published crates.io checksum: 9143eb24178e618a9671d22074e2e64badd61454a1ae5c042325daf8238f5407. Implementation: #240. Package verification: #243.
mimalloc-pprof 0.9.4
mimalloc-pprof 0.9.4 — published to crates.io as 0.9.4.
Built from 39a1a25b (#232).
What changed
Detect C11 atomics instead of allowlisting one target (#230, #231).
include/mimalloc/atomic.h selected the hand-rolled MSVC atomics wrapper on defined(_MSC_VER) — which means "claims MSVC source compatibility", not "lacks C11 atomics". clang-cl defines it while being clang, so it took the wrapper and reached for __ldar64/__stlr64, Interlocked intrinsics it does not declare on ARM64.
The wrapper is now gated on MI_HAS_C11_ATOMICS, derived from the standard capability test __STDC_VERSION__ >= 201112L && !defined(__STDC_NO_ATOMICS__).
0.9.3 fixed this from the Rust build script as a one-triple allowlist, which only ever reached consumers building through the crate — CMake, src/static.c, and direct-vendoring consumers still selected the broken path. The detection now lives in the header, so every consumer gets it.
Real MSVC is unaffected: it omits __STDC_VERSION__ without /std:c11, and under /std:c11 defines __STDC_NO_ATOMICS__ unless /experimental:c11atomics is also passed.
Full notes: rust/mimalloc-pprof/CHANGELOG.md
Tag is manual-39a1a25 because the release was cut via workflow_dispatch; the workflow only derives a vX.Y.Z tag from a tag push. The published crate version is 0.9.4.
mimalloc-pprof v0.9.3
release: mimalloc-pprof 0.9.3 Fixes the aarch64-pc-windows-msvc build by selecting clang's C11 stdatomic implementation for that target in build.rs (#223, #224), and documents the cross-compilation contract in both READMEs (#228).
mimalloc-pprof v0.9.2
mimalloc-pprof 0.9.2 Seeded sampling is now actually reproducible (#91). Until this version, mi_prof_start_seeded and MIMALLOC_PROF_SEED mixed the ASLR-randomised address of the thread's allocator state into the PRNG seed, so pinning a seed did not give a repeatable profile despite the docs promising one. Validated before tagging: 17/17 PR checks; auto-release dry run green on ubuntu/macos/windows; test-prof-seed-determinism verified to fail without the fix on Linux and macOS.