Skip to content

v0.3.3

Choose a tag to compare

@soothfast-bot soothfast-bot released this 26 Sep 22:31
· 5 commits to master since this release
888ff57

Overview

A pull request's gate no longer measures its merge-base from scratch when the default branch already has. With gate: true, the action now gates every push to the default branch against its parent, which stores that commit's run for the next pull request to reuse. Stored runs are keyed on the backend that actually measured and, for callgrind, on the CPU valgrind presents to the program, the libc it loads and the valgrind version, rather than the host's model name, so hosted runners of different CPU models share them. measure reuses a stored callgrind run of the same bench binary and measures only timing again. A perfcnt run is stored only when a second reading of its counters agrees with the first, so one bad reading can no longer fail every later gate that reuses it.

Upgrade notes

A workflow that already calls the action on pushes to its default branch starts recording with no change; that is one extra gate per push. For pull requests to benefit, cache .soothfast/runs in the same job on pushes and pull requests alike, and add .soothfast/ to .gitignore, since a run is stored under its commit only from a clean tree (see docs/gating.md, "Reusing a measured reference"). Runs stored by 0.3.2 and earlier are not reused: their keys named neither the backend nor the callgrind guest, so the first gate after upgrading measures in full. A bench binary built with an older harness than the CLI cannot answer the new --env probe, and the gate then runs without its cache and says so; bump soothfast in Cargo.lock along with the CLI. measure --no-reuse measures in full when a stored run should not be trusted.

✨ Features

  • Measure reuses a stored callgrind run of its binary (#212)
  • Record a reference run on default-branch pushes (#208)

🐛 Fixes

  • Store perfcnt runs only when readings agree (#213)
  • Key stored runs on the backend and guest that measured (#211)

📦 Dependencies

  • Bump syn from 3.0.4 to 3.0.5 in the all-dependencies group (#203)

🔍 API surface

# soothfast-measure
ADDED    soothfast_measure::callgrind::Guest
ADDED    soothfast_measure::callgrind::guest
ADDED    soothfast_measure::callgrind::print_guest_view
CHANGED  soothfast_measure::main (body)
CHANGED  soothfast_measure::runner::main (body)