ReviewOS

home-lang/home

Native body corpus: activate full stream matrices and remove clone substitutes

#699
Closed chris opened this 9 days ago ·
9 days ago

Published resolution

Published 04644b2d0 to origin/main, authored and committed by Chris Breuer without coauthors.

  • All seven unchanged body/stream files now execute in native Home. The ordinary grouped command reports 9,467 passes / four upstream skips / zero failures / zero unsupported cases, including the full 9,086-case stream matrix. The existing summary represents those skips in its TODO counter. This is per-file isolated native execution, not a single-VM full-suite aggregate.
  • Removed fabricated clone subprocess output, filename-specific chunk deduplication and special clone stream handling, including both helper definitions and all call sites. Original child processes, allocation/GC workloads, assertions, deadlines and skips remain intact.
  • Final build: 46/46 steps. Focused harness: 23/23 steps / 4/4 tests, with independent metadata confirming the three named regressions and registration guard. Adjacent Headers/Response passes 170/170, bootstrap FormData 5/5 and microtasks 2/2.
  • The adjacent Request directory failed its original deadline. The final clone case took 5,899.42 ms against 5,000 ms; its native file reports 11 passes / one failure / 12 assertions. One later diagnostic run each in Bun, previous Home and current Home passes, but does not erase or explain the failed ordinary run. This remains open in #701. No retry policy, extra warm-up, deadline increase or reduced workload was added.
  • Final corpus audit: 12,990 identical regular files, five identical symlinks, one historical expectations-file difference, zero missing paths. Formatting, documentation Pickier and whitespace checks pass.

#699 is complete for native body activation and clone-substitute removal. Full parity, aggregate execution, remaining adapters/build ownership and the Request/Chrome deadline failures remain incomplete under #66/#202/#701/#694. The next Blob activation/removal batch is #700, with separate native Home/Bun baselines of 65 passes / 215 assertions / four original snapshots per runtime.

Verified Home binary SHA-256: 68fcba6aed61397b1fe94fe1c2e4291644e68324c6ee4097f2a9f5adfabc181f.

Implementation and evidence.


Part of #66 and #202; follows the Headers/Response launch-context repair in #698.

Seven unchanged upstream files under test/js/web/fetch already pass when run directly through the real native runtime. Their ordinary corpus routes still need migration, and body-clone-specific bootstrap substitutions must be removed.

Reproduced baseline

Pinned Bun source: 4982b91e3702094330f3be3883354c52b8c01323. Home baseline commit: 5e45c58a37b45a075c244f93f8ac504cdae8ccd6; binary SHA-256 acc4837aed857184e7b3d1107e48126c1c0d819e8ae85ff2a61ddb6215ea567f. Both runtimes ran from the mirrored project root packages/runtime/test, with the original files and startup internal-testing/GC environment. Home used HOME_NATIVE_VM=1 HOME_CORPUS_FULL_VM=1. Each file was executed once per runtime, without retries or workload changes.

Original fileHome passesBun passesUpstream skips eachAssertions each
body-async-iterator.test.ts2204
body-clone.test.ts2525069
body-mixin-errors.test.ts2206
body-stream-excess.test.ts4408
body-stream.test.ts9,0869,0860135,984
body.test.ts3463464604
request-cyclic-reference.test.ts2202

Total per runtime: 9,467 passes / four upstream skips / zero failures / 136,677 assertions. These are per-file strict-native baselines, not ordinary-route activation or a single-process aggregate. The HTTP/3 matrix ran as written. Existing upstream skips do not count as implemented coverage.

Inspection found a fixture-specific __home_spawn_fetch_body_clone_fixture that fabricates successful subprocess output, plus filename-conditioned chunk/ReadableStream handling for body-clone.test.ts, in packages/home_test/src/corpus_runner.zig. Native execution makes these substitutes unnecessary; remove their definitions/call sites and migrate associated regression coverage to actual execution. Do not preserve them as fallback success paths.

Acceptance

  • Activate all seven original files in the ordinary native corpus routes using #698's launch context.
  • Remove body-clone-specific fake subprocess output and filename-conditioned stream substitutions; preserve unrelated adapter behavior until its own migration.
  • Execute the full original matrices, actual child processes, GC workloads, limits, failures and all four upstream skips without snapshot edits, retries, warm-ups, timeout increases or reductions.
  • Add focused harness execution coverage with independently verified test discovery, then verify ordinary routes and adjacent Request/Headers/Response coverage.
  • Re-audit the pinned corpus bytes and publish the implementation, exact evidence and remaining limitations to origin/main; update #66 and #202.

Local baseline evidence: /tmp/home-698-body-baseline.log, /tmp/home-698-body-baseline.json, /tmp/home-698-body-results/.

9 days ago

#698 is now published on origin/main in 649c3c48f. All six original Headers/Response files pass through ordinary native Home routes: 170 passes, no failures/TODOs/unsupported cases. The native launch context and absolute-path VM rewrite now preserve the mirrored Bun project root; a source link exposes Home's real runtime source to unchanged repository-relative shell commands.

Final build is 46/46; focused harness is 6/6 with independently verified test names. Request, shell, WebKit, native Node script, bootstrap microtasks and expected-failure accounting remain passing. #66 is updated and #698 is closed. The next concrete activation/removal work is #699; the remaining bootstrap adapters and full aggregate/parity are still incomplete.

9 days ago

The seven-file native route and all three clone-substitute removals are implemented together. The focused matrix now executes all original files with exact pass/skip accounting; source checks retain every original stream transport/conversion dimension and the child-process, GC, allocation and ownership workloads. This includes the original body's own WARM=50 phase; no extra warm-up, retry, assertion or timeout change was added.

The optimized build and focused tests are running. Adjacent Blob baselines are now tracked in #700: six unchanged files pass in both native Home and pinned Bun, 65 passes / 215 assertions / four snapshots per runtime. That issue includes removal of the remaining Blob UTF-16 child interception and filename-specific array-prototype descriptor substitute.

9 days ago

Published 04644b2d0 to origin/main, authored and committed by Chris Breuer without coauthors.

  • All seven unchanged body/stream files now execute in native Home. The ordinary grouped command reports 9,467 passes / four upstream skips / zero failures / zero unsupported cases, including the full 9,086-case stream matrix. The existing summary represents those skips in its TODO counter. This is per-file isolated native execution, not a single-VM full-suite aggregate.
  • Removed fabricated clone subprocess output, filename-specific chunk deduplication and special clone stream handling, including both helper definitions and all call sites. Original child processes, allocation/GC workloads, assertions, deadlines and skips remain intact.
  • Final build: 46/46 steps. Focused harness: 23/23 steps / 4/4 tests, with independent metadata confirming the three named regressions and registration guard. Adjacent Headers/Response passes 170/170, bootstrap FormData 5/5 and microtasks 2/2.
  • The adjacent Request directory failed its original deadline. The final clone case took 5,899.42 ms against 5,000 ms; its native file reports 11 passes / one failure / 12 assertions. One later diagnostic run each in Bun, previous Home and current Home passes, but does not erase or explain the failed ordinary run. This remains open in #701. No retry policy, extra warm-up, deadline increase or reduced workload was added.
  • Final corpus audit: 12,990 identical regular files, five identical symlinks, one historical expectations-file difference, zero missing paths. Formatting, documentation Pickier and whitespace checks pass.

#699 is complete for native body activation and clone-substitute removal. Full parity, aggregate execution, remaining adapters/build ownership and the Request/Chrome deadline failures remain incomplete under #66/#202/#701/#694. The next Blob activation/removal batch is #700, with separate native Home/Bun baselines of 65 passes / 215 assertions / four original snapshots per runtime.

Verified Home binary SHA-256: 68fcba6aed61397b1fe94fe1c2e4291644e68324c6ee4097f2a9f5adfabc181f.

Implementation and evidence.

Sign in to comment on this issue.