benchmark stand · nightly

Every benchmark. Every night. Over every commit.

One box checks out master each night, builds it, and runs every [benchmark] file in the repository in the interpreter, JIT and AOT lanes. Each arm becomes a point on its own chart, with a band for the night's spread. Nothing here is curated — what failed and what moved is on the page, and every point links to the run record behind it.

One box, one binary per night, one record behind every point.

the point
One arm of a dastest --bench run, reduced over the night's repeats as the stand's data model defines the recorded value and its spread. The band around the line is that spread, so a wide band is a noisy night, not a slow one.
the lanes
interp is the interpreter, jit the LLVM JIT, aot the linked ahead-of-time build. A lane a file does not run in is listed as skipped with its reason - a skip is visible debt, never a silent gap.
the verdict
The stand publishes the series and leaves the judgement to a person. The record behind each night carries the commit, the machine, the build, and every file's exit and log tail; benchctl compare answers whether two commits differ, with a Welch test over the samples.

The whole stand is utils/internal/bench-stand in the repository: the runner, the report, and this viewer. A new benchmark joins the night by living under benchmarks/.