Skip to content

fix(bench): regenerate the public Node/Bun baseline, and register the batch kernel (#7257) - #7285

Merged
proggeramlug merged 1 commit into
mainfrom
fix/7257-regenerate-public-baseline
Aug 3, 2026
Merged

fix(bench): regenerate the public Node/Bun baseline, and register the batch kernel (#7257)#7285
proggeramlug merged 1 commit into
mainfrom
fix/7257-regenerate-public-baseline

Conversation

@proggeramlug

@proggeramlug proggeramlug commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Closes #7257.

Regenerates benchmarks/results/public-node-bun-v1.json, stale for 40+ commits, and fixes the manifest bug that made regenerating it impossible.

Why this mattered more than a stale file

The freshness check is lint's step 9. Steps run in order and stop at the first failure, so while it failed, steps 10–13 never executed in CI at all:

step gate status while step 9 failed
9 Public benchmark evidence freshness
10 File size limit never ran
12 GC store-site inventory never ran
13 Address-classification audit never ran
#7253's gate-wiring check (added into lint) never ran

All four had to be reproduced locally to even be seen (#7256, #7273). And because lint is a required check, every merge went through --admin bypass — branch protection was theatre. A permanently-red required gate does not protect anything.

The manifest bug (#7037)

EXPECTED_WORKLOADS["app_patterns"] never gained the batch kernel that #7037 added to benchmarks/app-patterns/kernels/. So #7037 both invalidated the artifact (kernels are in SOURCE_PATHS) and made regenerating it impossible: assembly aborts with extra=['batch'] after all five measurement legs have already run — two hours in. Adding a kernel must add it here in the same commit.

⚠️ The measurement host changed — numbers are not comparable across this commit

before after
CPU Apple M1 Pro Apple M1 Max
RAM 16 GB 64 GB
generated 2026-07-13 2026-08-03

The original host (Sergi.local) belongs to another maintainer and was unavailable. Regenerating on this machine was a deliberate call by the maintainer, accepting a documented discontinuity rather than leaving the artifact stale indefinitely.

Node, Bun and Zig are held at their original pins (v22.23.1, 1.3.14, 0.15.2) even though the harness allows overriding them — so the discontinuity is one variable, not three. Anyone reading a step in the series at this commit should attribute it to hardware, not to Perry.

What the run covers

All five legs, on a quiet host, in one coherent run at defa4d601: suite, polyglot, json_polyglot, app-patterns, honest_bench. honest_bench --strict-output passed — all rows matched the Bun reference, which was not a given on a faster host, since that reference was calibrated on the slower one.

The json_polyglot leg was impossible until today. It aborts on a cross-runtime checksum mismatch, and Perry was producing a wrong answer — #7264, a JSON.stringify data-loss bug fixed by #7265. This artifact is the first to include that leg since.

Deliberately not included

No README change. render writes a generated table into README.md, but the public-node-bun:start/end markers were deleted by #6736's landing-page rewrite, and the freshness gate treats the embedded table as optional. Restoring them would publish a fresh comparison table mid-optimization-cycle; the maintainer's call is to update the README once the current performance work concludes. Tracked separately.

Verified

  • benchmarks/ci_public_baseline_check.pypublic baseline freshness OK (the exact lint step 9 command)
  • public_baseline.py assemble / render / check all succeed
  • Artifact's internal generated_at is 2026-08-03T05:53:58Z — verified by reading the field, never by file mtime (git worktree add rewrites mtimes and has produced a false "complete" report on this task before)

Summary by CodeRabbit

  • Benchmark Updates

    • Refreshed performance measurements across suite, application-pattern, JSON, and honest-benchmark workloads.
    • Added coverage for the batch workload.
    • Updated runtime comparisons, memory usage, metadata, and hardware/toolchain details.
    • Confirmed benchmark correctness and output validation remain passing.
    • Revised summary results to reflect updated performance wins, losses, and mixed outcomes.
  • Documentation

    • Added notes describing the regenerated public baseline and benchmark comparability.
    • Added historical context for prior benchmark results.

@proggeramlug
proggeramlug merged commit 6eddf8f into main Aug 3, 2026
29 of 39 checks passed
@proggeramlug
proggeramlug deleted the fix/7257-regenerate-public-baseline branch August 3, 2026 06:30
@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 0f7963f0-43c7-4f24-bda1-5753440bcb2a

📥 Commits

Reviewing files that changed from the base of the PR and between 97c6921 and 76a5c41.

📒 Files selected for processing (11)
  • benchmarks/app-patterns/results/matrix-20260803-072044.md
  • benchmarks/honest_bench/REPORT.md
  • benchmarks/honest_bench/results/metadata.json
  • benchmarks/honest_bench/results/results.json
  • benchmarks/honest_bench/results/summary.txt
  • benchmarks/json_polyglot/RESULTS.md
  • benchmarks/polyglot/RESULTS_AUTO.md
  • benchmarks/public_baseline.py
  • benchmarks/results/public-node-bun-v1.json
  • benchmarks/suite/results/RESULTS.md
  • changelog.d/7283-regenerate-public-baseline.md

📝 Walkthrough

Walkthrough

The PR regenerates benchmark measurements and reports for the 2026-08-03 sweep. It refreshes honest-bench data, comparison tables, runtime metadata, the public baseline, app-pattern registration, and the related changelog entry.

Changes

Benchmark regeneration

Layer / File(s) Summary
Honest benchmark sweep
benchmarks/honest_bench/...
Refreshes benchmark provenance, commands, runtime measurements, memory values, and report tables while retaining successful output validation.
Comparison reports
benchmarks/app-patterns/..., benchmarks/json_polyglot/..., benchmarks/polyglot/..., benchmarks/suite/...
Updates benchmark hardware, runtime results, performance classifications, aggregate counts, and historical notes.
Public baseline regeneration
benchmarks/public_baseline.py, benchmarks/results/public-node-bun-v1.json, changelog.d/7283-regenerate-public-baseline.md
Registers the batch app-pattern workload, refreshes the public artifact, and documents the regeneration conditions.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Possibly related issues

Possibly related PRs

  • PerryTS/perry#6810 — Updates the same public benchmark artifact metadata and fingerprint fields.

Suggested labels: performance

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/7257-regenerate-public-baseline

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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.

lint: the public-baseline freshness gate has been failing for 40+ commits, making every later lint step unreachable

1 participant