ReviewOS

home-lang/home

Native subprocess: verify spawn and extra-stdio parity on Linux and Windows

#678
Open chris opened this 9 days ago ·
9 days ago

Follow-up to #493, #495, #497, #499, and #66 after their implementation commits reached main.

Current Darwin arm64 ReleaseFast evidence on main:

  • Complete unchanged node child_process file: 32 pass / 1 Windows-only skip / 1 upstream TODO / 0 fail / 72 assertions.
  • Complete unchanged Bun spawn file: 126 pass / 5 existing skips / 0 fail / 5,484 assertions, including its original 1,000-iteration lifecycle workload.
  • Focused extra-pipe GC workload: 1 pass / 1 assertion with all 20 rounds and GC timing unchanged.
  • Focused extra-stdio input selection: 16 pass / 24 assertions.
  • Complete Node timers file: 20 pass / 31 assertions, plus the standalone immediate fixture.
  • Fresh ReleaseFast aggregate build succeeds.

Remaining scope is execution and any required native corrections on Linux and Windows:

  • Linux: direct POSIX errno, invalid file-action failures, pidfd/waiter-thread ownership, package-script stdio passthrough, extra stdio pipe/socket-fd ownership, and Blob/stream rejection cleanup.
  • Windows: libuv extra-stdio mapping, platform-specific rejected slots, package-script descriptor inheritance, and the currently platform-skipped cases that are applicable.
  • Preserve all original workloads, skips, TODOs, deadlines, descriptor checks, memory bounds, and native execution. Do not count cross-compilation alone as runtime verification.
  • Any discovered platform failure must be fixed in the native implementation, not hidden with new skips, relaxed assertions, or fixture rewrites.

This issue owns platform execution only. The corresponding Darwin implementation issues can close now that their commits are ancestors of main; whole-suite parity remains #66.

9 days ago

The documentation integration checkpoint is now on main in 2d2dab2. It records the exact Darwin ReleaseFast baselines that Linux and Windows must preserve: child_process 32 runnable passes / 72 assertions / 0 failures, spawn 126 passes / 5,484 assertions / 0 failures, focused extra-pipe 1/1, extra-stdio 16/16 / 24 assertions, and timers 20/20 / 31 assertions. Existing skips and TODOs remain explicitly excluded from completion.

Sign in to comment on this issue.