Skip to content

node:child_process — ChildProcess / Stream named exports unimplemented (#463 guard blocks gap-test compile) #1856

Closed

Description

@proggeramlug

Summary

node:child_process now ships a real streaming spawn() ChildProcess plus execFile/execFileSync (#1780 / PR pending). The two remaining lines of the test_parity_child_process gap test are the named exports:

console.log("child_process.ChildProcess:", child_process.ChildProcess); // Node: [Function: ChildProcess]
console.log("child_process.Stream:", child_process.Stream);             // Node: undefined

Today a value-form reference to child_process.ChildProcess (i.e. read, not called) hits the #463 unimplemented-surface guard at compile time:

Error: `child_process.ChildProcess` is not implemented in Perry — see
`perry --print-api-manifest` ... (#463)

This blocks test_parity_child_process.ts from compiling at all, so the gap test can't be flipped even though the spawn/exec/execFile/sync surface it exercises now works.

What to do

  • Expose child_process.ChildProcess as a callable/constructor value that prints [Function: ChildProcess] (a named function value is enough for the typeof/inspect probes; a working new ChildProcess() is a larger follow-up).
  • child_process.Stream should resolve to undefined (Node does not export it).
  • Together with # this is what's left to flip the test_parity_child_process gap test green.

Parent: #1780. perry 0.5.x.

Activity

  1. added
    bugConfirmed defect or regression
    parityCompatibility gap with Node.js, ECMAScript, or the supported ecosystem
    on May 26, 2026
  2. proggeramlug commented on May 27, 2026

    @proggeramlug
    ContributorAuthor

    Done — shipped in PR #1861 (merged). child_process.ChildProcess now reads as [Function: ChildProcess] (registered in the api-manifest so the #463 value-read guard no longer fires at compile time, and as a callable native export at runtime), and child_process.Stream resolves to undefined (Node does not export it).

    Verified on main: test_parity_child_process.ts is byte-identical to node --experimental-strip-types and has been removed from test-parity/known_failures.json. The relevant lines:

    child_process.ChildProcess: [Function: ChildProcess]
    child_process.Stream: undefined
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugConfirmed defect or regressionparityCompatibility gap with Node.js, ECMAScript, or the supported ecosystem

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions