ReviewOS

zig-utils/zig-js

bench: attest explicit dependency and runner provenance

#1000
Closed glennmichael123 opened this 9 days ago ·
9 days ago

Problem

Representative benchmark binaries may be built against a clean non-default zig-gc checkout, but the publication metadata always reads ../zig-gc. On machines where that sibling is an inert compatibility stub, a valid real-GC run would record the wrong dependency revision. The direct report also omits the hashes of its zig-js and JavaScriptCore runner binaries.

Scope

  • allow the representative collector to name explicit clean zig-gc and zig-regex repositories;
  • retain the existing sibling paths as defaults;
  • fail closed when a selected repository is not a Git checkout or has tracked changes;
  • record SHA-256 for both runner binaries and the frozen workload source;
  • expose the repository overrides through build options;
  • document the non-default-checkout workflow and cover it structurally.

Done when

A focused #473 JSON publication can prove the exact real-GC dependency revision, runner bytes, frozen workload bytes, and clean-tree status without changing benchmark behavior or source. Tooling/docs only; no performance result is claimed by this issue.

Parent: #473.

9 days ago

Landed on main in 224cd484.

The representative collector now accepts explicit clean dependency repositories, replaces the default sibling metadata with those exact revisions, and fails closed on a non-repository or tracked dirty state. Reports preserve SHA-256 identities for the zig-js runner, JavaScriptCore runner, and frozen workload source. The hash-pinned tools/benchmark-comparison.ts remains byte-identical at 8d353d8c....

Validation: representative harness self-test including invalid-repository and exact-file-identity cases; zig fmt --check build.zig; docs link check (343 files); BunPress manifest regeneration and checked 51-page build. Tooling/docs only; flips 0 test262 cases.

Sign in to comment on this issue.