You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
perry-stdlib: ReadableStream / Web Streams API not implemented #320
These are 4 FFI symbols that perry-codegen emits calls to but perry-stdlib does not provide. They correspond to the WHATWG ReadableStream constructor + controller methods.
What you expected
Either:
ImplementReadableStream in perry-stdlib (alongside fetch, URL, etc. from the WHATWG family). Effect's Stream module — and any Node 18+ code touching fetch().body — needs this.
Detect at codegen time that no implementation exists and either emit a clear "ReadableStream not yet supported" error at the call site, or fall through to a runtime stub that throws on use rather than producing a link error.
Likely fix site
Codegen emits these symbols in crates/perry-codegen/src/lower_call.rs (search for js_readable_stream_) and / or wherever ReadableStream resolves as a built-in.
Implementation belongs in crates/perry-stdlib/src/streams.rs (new file), modeled after fetch.rs / buffer.rs for the FFI shape.
Real ReadableStream implementation is non-trivial (backpressure, queuing strategies, async iteration). A minimum-viable implementation matching Node 18's node:stream/web surface is the right scope.
Activity
proggeramlug commentedon Apr 30, 2026
Tracked under umbrella #321 (Effect framework end-to-end compat).
chore(stdlib): closes PerryTS#320 — pin ReadableStream regression tes…
fix(codegen): closes #316 — accept String.slice/substring 0-arg form …
fix(codegen): closes #316 — accept String.slice/substring 0-arg form …
fix(codegen): closes #316 — accept String.slice/substring 0-arg form …
fix(codegen): closes #316 — accept String.slice/substring 0-arg form …