Parent: #461\nMotivated by: #772\n\n## Problem\n\ntools/exact-parent-regression.ts can attach native Context allocation replay only when the attribution invocation is VM-only: zero tree-walker entries, nonzero VM execution, and zero native-tier publication. That is correct for required-bytecode profiles but rejects ordinary representative workloads whose frozen execution boundary intentionally mixes the tree-walker and VM.\n\nThe #772 DateTimeFormat reflection row preserves an exact mixed-tier signature across parent and candidate (84,001 tree-walker entries, 2 VM entries, 1,932,823 VM dispatches, and 89,600 Shape transition requests), yet the optional allocation replay fails before recording its exact allocation delta. The allocation evidence therefore had to remain a separate three-replay native-attribution result rather than a measured field in the generated exact-parent artifact.\n\n## Scope\n\n- Version the exact-parent allocation-replay contract so each supported row declares its required execution/admission/native-tier signature instead of inheriting one VM-only predicate.\n- Validate the full invocation-phase signature and checksum for every replay, including tree-walker, VM, quick-kernel, baseline, optimizer, deoptimization, runtime, host callback, Wasm, admission, generated-code, and Shape counters relevant to the row.\n- Require parent and candidate signatures to remain logically equivalent while retaining exact raw counts; do not normalize a tier change away.\n- Preserve exact allocation-request and byte replay across every sample and fail closed on partial telemetry, binary/source/revision drift, or a competing process.\n- Publish the schema/matrix change as a new representative version; historical artifacts and VM-only profiles remain unchanged.\n\n## No-workaround rules\n\n- Do not merely allow nonzero tree-walker entries, omit tier fields, weaken admission checks, change workload source to fit the tool, or infer allocation deltas from wall/RSS.\n- Do not add benchmark recognition, row-name special cases, hidden warmups, source transforms, unavailable-as-zero metrics, or unbounded caches.\n- No stacks, queues, jobs, Promise/microtask, Worker lifecycle, or Map/Set iterator implementation changes.\n\n## Acceptance\n\n- [ ] A frozen mixed-tier execution-signature contract is machine-readable and versioned.\n- [ ] #772's exact parent/candidate pair produces one generated artifact with allocation and byte metrics measured, identical checksum/execution/Shape signatures, and exact repeated replay.\n- [ ] Existing VM-only, required-bytecode, frontend, batch, schema-v2 direct-binary, and schema-v3 overlay fixtures remain fail-closed and green.\n- [ ] Mutations of every required tier/admission/native/Shape field, replay allocation value, identity, or sample fail validation.\n- [ ] Full benchmark harness self-tests, representative matrix validation, docs generation, and focused Home tests pass.\n
Perf: support mixed-tier allocation replay in exact-parent A/Bs
#775The versioned contract and validator are now on main: 2f90e31f.
Representative matrix v28 pins the real #772 signature (84,001 tree-walker entries, 2 VM entries, 1,932,823 VM dispatches, 208,000 quick-kernel hits, 89,600 Shape requests/hits, and exact admission/native inventories). The focused exact-parent self-test and 65/65 matrix mutation gate pass. I am collecting the seven-pair #772 artifact next; the issue remains open until the measured allocation evidence and full harness/docs gates land.
Documentation gate update:
b9d9570eregenerates the BunPress output manifest for the #775 benchmark documentation.- The owned renderer rebuilt 50 pages and the checked manifest passed; only
benchmarks/index.htmlandsearch-index.jsonchanged. - Mixed-tier replay evidence remains intentionally open: the collector has rejected multiple attempts when unrelated Zig/Home jobs appeared during a pair, so no contaminated or partial artifact has been published.
The fresh seven-pair collection reached the late tail, then correctly refused before the next invocation when unrelated Home and Bun builds appeared (Home ReleaseFast home-tsc plus a Bun-linked focused Zig test). The collector exited nonzero and created neither requested JSON nor Markdown artifact. No partial sample, allocation delta, or timing result is retained or used. The preserved exact parent/candidate runners remain staged for a genuinely quiet serial window.
Harness follow-up landed in 8351bd21: bounded zig version/zig --version identity probes no longer masquerade as compiler work, while every other Zig subcommand remains fail-closed. Exact-parent and build-feedback structural self-tests both pass; flips 0 Test262 cases. Full worktree revisions are parent dcee39153fcb8ff7ebec7a28f3a26027c2d5bec9, candidate 66c150fd0afe8806380a6d295e8ab3cca9b7da61; copied binaries retain SHA-256 8cf77a807257ba3a4b284dd269faa16667d84b967c82ffc2820cba047f8caf00 and 08197b5072af36d5988cc98993041f740dbc6bbf7bc03950f1f84db852b879b7. The next corrected seven-repeat replay was later rejected by a real concurrent Bun-linked zig test (PID 68451), so no partial artifact or performance claim is published. I am retaining the verified binaries in /tmp and will retry only in an uninterrupted window.
CI follow-up: 2cbb776c freezes representative matrix V29 after the bounded Zig identity-probe classifier change. This addresses the fail-closed V28 exact-parent integration changed without a matrix version bump failure in run 33071676798 without changing any scored workload, checksum, timing, occupancy, provenance, allocation-replay, or publication contract. The V29 structural matrix test passed; flips 0 Test262 cases.
Docs follow-up: 4419d169 records the intentional V29 benchmark-page and search-index bytes. bun run docs:build now renders and verifies all 50 pages against the updated manifest; flips 0 Test262 cases.
Completed and pushed in 42dd7f52 (bench(intl): publish mixed-tier allocation replay (#775)).
The guarded seven-pair run produced one complete artifact under the frozen mixed-tier signature contract:
Every replay retained checksum 705814248 and the exact frozen execution, quickening, admission, Shape, native-code, publication, and generated-code signature. Parent/candidate allocation replay is exact across all seven samples per variant: 1,428,928 -> 1,417,728 Context backing allocations and 209,090,873 -> 209,057,273 backing bytes for 12,800 fresh results. The artifact is diagnostic and makes no throughput claim.
Validation:
- performance-attribution schema-v2 validation passed
- benchmark harness 18/18; representative-matrix mutations 65/65
- docs-link-check 309/309; BunPress 50-page manifest build passed
- Test262 flips: 0
Fixes #775 is in the commit body.
Sign in to comment on this issue.