Skip to content

v0.9.0

Pre-release
Pre-release

Choose a tag to compare

@rocketman-code rocketman-code released this 05 Mar 06:11
· 456 commits to main since this release

Piano is feature-complete. Every metric -- wall time, self time, CPU time, allocations -- is accurate across sync, threaded, and async execution models.

Added

  • Async-aware allocation tracking: allocation data survives thread migrations in async programs, so tokio::spawn and select! no longer silently drop alloc counts (#226, PR #225)

Fixed

  • Allocation data no longer silently lost when async tasks migrate threads
  • Migrated async guards report real allocations instead of zeros
  • Companion JSON merge validates run_id consistency, skipping mismatched files (#58)
  • Child exit code propagated from piano profile -- non-zero exits no longer swallowed (#93)
  • extern "Rust" fn inside macro_rules! templates now instrumented (#144)
  • Stale files removed from staging directory on rebuild
  • tempfile moved to dev-dependencies, shrinking the dependency tree for users

Changed

  • Staging directory uses a stable path (target/piano/staging/) for incremental compilation instead of a fresh tempdir per build