Skip to content

[Performance #727] Add local-only, parity-gated per-workload scorecards - #1473

Merged
godofecht merged 8 commits into
mainfrom
feat/727-local-performance-scorecard
Oct 11, 2026
Merged

godofecht merged 8 commits into
mainfrom
feat/727-local-performance-scorecard

Conversation

@godofecht

Copy link
Copy Markdown
Contributor

Scope

Partial implementation of #727, not a closeout of the epic. Replaces the empty tools/perf_scorecard/main.flow stub with a classifier for existing local bench_harness JSON results.

It enforces verified semantic parity, timing scope, minimum repetition count and dispersion bounds before scoring. Speed wins need a >=1.05x advantage; equal-performance memory wins use a >=5% lower RSS threshold. Flow/native tax is separately retained rather than averaged away. Missing CPython baselines, noisy data, unresolved parity and empty reports never become benchmark wins. A strict mode returns nonzero for any loss, tax or unscored row.

Includes synthetic local tool tests and documentation: tests/scripts/perf_scorecard.flow, docs/project/performance-scorecards.md.

Validation

Static structure inspection: delimiters and string literal pairing passed for both Flow files. Tool execution and end-to-end compiler tests not run (local checkout/toolchain unavailable in this session). This PR is intentionally draft until local gates run.

Run locally:

./flow tool tests/scripts/perf_scorecard.flow
./flow tool bench_harness --smoke --out build/perf-measurements.json
./flow tool perf_scorecard build/perf-measurements.json --strict
./flow test-scripts

As required by #727, no hosted workflows/CI were inspected or relied upon. No performance speedup is claimed. Other #727 tasks (and #736/#766/#679/#665/#666) are not implemented by this PR.

@godofecht
godofecht marked this pull request as ready for review October 11, 2026 08:13
@godofecht
godofecht added this pull request to the merge queue Oct 11, 2026
Merged via the queue into main with commit d6d69ab Oct 11, 2026
29 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant