Skip to content

Releases: zackees/mimalloc-pprof

mimalloc-pprof v1.1.0

Choose a tag to compare

@github-actions github-actions released this 01 Oct 04:37
80a513d

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

Choose a tag to compare

@github-actions github-actions released this 28 Sep 19:15
97f1c10

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...
Read more

mimalloc-pprof v1.0.0

Choose a tag to compare

@github-actions github-actions released this 21 Sep 21:10
v1.0.0
ca55042
Release 1.0.0

mimalloc-pprof v0.11.1

Choose a tag to compare

@github-actions github-actions released this 14 Sep 15:03
c4a1d34
Release 0.11.1

mimalloc-pprof v0.11.0

Choose a tag to compare

@github-actions github-actions released this 07 Sep 17:25
c85631f
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

Choose a tag to compare

@github-actions github-actions released this 04 Sep 02:40
6397aad
mimalloc-pprof 0.10.0

mimalloc-pprof 0.9.5

Choose a tag to compare

@zackees zackees released this 27 Aug 08:47
cfc6a39

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

Choose a tag to compare

@github-actions github-actions released this 23 Aug 21:59
39a1a25

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

Choose a tag to compare

@github-actions github-actions released this 21 Aug 07:04
6fcb196
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

Choose a tag to compare

@github-actions github-actions released this 01 Aug 04:26
6ad84e4
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.