When this matters
Use this contract when a run must be compared, replayed, or audited. “Same input” is incomplete until source bytes, runtime identity, resource profile, and observed channels are all named.
Read the example
A deterministic run is not a promise to finish every program. It promises that a declared run either produces the pinned observations or reaches a clean named failure under its resource profile. Wall-clock duration is operational evidence, not a guest semantic value.
How to reason about it
- Observed axes are stdout bytes, diagnostic bytes, exit status, warning order, resource report, value projection, and artifact/provenance identity where applicable.
- Native and WASM can have different limit pins while still reporting clean profile-specific resource outcomes.
- Replay fixes source, runner identity, limits, and observation projection before comparing bytes.
Choose quickly
| Fix before comparison | Why it matters | Example observation |
|---|---|---|
| source and input bytes | text normalization would change identity | value or diagnostic bytes |
| runner and profile | limits and supported surfaces are named | exit status and resource report |
| observation projection | unobserved host details stay outside the claim | stdout and warning order |
| corpus and baseline | outcome cannot choose the test set | agree, mismatch, not-comparable |
| artifact identity where used | evidence must name what was checked | receipt or engine digest |
A common mistake
Wall-clock timeout alone is not a semantic resource report.
Current boundaries
- Agreement on a bounded campaign is not whole-language equivalence or proof of no divergence.
Keep going
Runtime Backends explains the provenance-labelled runners. Checked Surfaces shows exactly what the maintained comparisons cover.