Measured in: INTERPRETER_MATRIX_2026-07-18 — digests hashed across six CPythons (3.10, 3.11, 3.12, 3.13, 3.14, 3.14t).
10 of 11 pure-Python backends produce byte-identical digests on every interpreter. The single divergence is chrome_trace's coverage_pct_of_total_duration, and it splits cleanly at the 3.11/3.12 boundary: CPython 3.12 changed the builtin sum() to use compensated (Neumaier) summation, so core/digest.py's total-duration accumulation differs in its last bits between 3.10/3.11 and 3.12+. Reproduced directly with a sum()-vs-fsum() comparison on both sides of the boundary.
This is not a bug — no metric is wrong, no absence is fabricated, and the token-cost impact is roughly one byte. It is filed because the property it breaks is worth keeping deliberately rather than by accident: a digest that is bit-identical regardless of interpreter means a cached/committed digest, a CI-produced digest, and a local digest are directly comparable artifacts, and any future diff in them means the report changed rather than the runtime.
Suggested fix: use math.fsum for the float accumulation behind coverage_pct_of_total_duration (and audit core/digest.py / core/compare.py for any other float sum() over report data). fsum is exactly-rounded and version-stable, so the property becomes guaranteed instead of incidental.
Verification: re-run workloads/interpreter_matrix.py --legs identity from the bench repo; all 11 backends should hash identically across all six interpreters.
Measured in: INTERPRETER_MATRIX_2026-07-18 — digests hashed across six CPythons (3.10, 3.11, 3.12, 3.13, 3.14, 3.14t).
10 of 11 pure-Python backends produce byte-identical digests on every interpreter. The single divergence is
chrome_trace'scoverage_pct_of_total_duration, and it splits cleanly at the 3.11/3.12 boundary: CPython 3.12 changed the builtinsum()to use compensated (Neumaier) summation, socore/digest.py's total-duration accumulation differs in its last bits between 3.10/3.11 and 3.12+. Reproduced directly with asum()-vs-fsum()comparison on both sides of the boundary.This is not a bug — no metric is wrong, no absence is fabricated, and the token-cost impact is roughly one byte. It is filed because the property it breaks is worth keeping deliberately rather than by accident: a digest that is bit-identical regardless of interpreter means a cached/committed digest, a CI-produced digest, and a local digest are directly comparable artifacts, and any future diff in them means the report changed rather than the runtime.
Suggested fix: use
math.fsumfor the float accumulation behindcoverage_pct_of_total_duration(and auditcore/digest.py/core/compare.pyfor any other floatsum()over report data).fsumis exactly-rounded and version-stable, so the property becomes guaranteed instead of incidental.Verification: re-run
workloads/interpreter_matrix.py --legs identityfrom the bench repo; all 11 backends should hash identically across all six interpreters.