This release fixes issues for SREs watching stability and regressions.
✓ No known CVEs patched in this version
Topics
+5 more
Summary
AI summaryRestored missing js_node_system_error_value symbol to fix compilation of http/net extensions.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Bugfix | Medium |
Restores missing `js_node_system_error_value` symbol for http/net extension linking. Restores missing `js_node_system_error_value` symbol for http/net extension linking. Source: llm_adapter@2026-06-14 Confidence: low |
— |
Full changelog
v0.5.1167 — fix(runtime): relink node:http/net — restore js_node_system_error_value (#5124)
Release-blocking regression fix folded in via #5124. PR #5112 (Next.js
standalone walls) refactored crates/perry-runtime/src/error.rs and dropped the
#[no_mangle] pub unsafe extern "C" fn js_node_system_error_value definition
and its #[used] KEEP_JS_NODE_SYSTEM_ERROR_VALUE anchor, while perry-ffi's
error::system_error_value still calls that symbol. The result: compiling any
program that links the http/net extension archive failed at the link step with
undefined reference to 'js_node_system_error_value' (collect2: ld returned 1).
It went unseen because perry-runtime's own cargo test builds with the full
feature set, so the symbol was present there — only the auto-optimize compile
path (minimal feature set, extension archives linked after LTO) hit it. The
issue_4903_listen_callback_deferred integration tests, which actually run
perry compile on a net program, are what surfaced it on the v0.5.1166 release
tag (whose cargo-test gate failed for this reason). The symbol + keepalive anchor
are restored verbatim (same construct as the three sibling KEEP_JS_* FFI
entries). Added in #5078, dropped by #5112, restored by #5124.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About perry
A native TypeScript compiler written in Rust. Compiles TypeScript directly to executables using SWC and LLVM.
Related context
Related tools
Earlier breaking changes
- v0.5.1158 `cluster` workers share a listening port using SO_REUSEPORT and IPC round‑trip.
- v0.5.1158 Streams now support BYOB readers and real `ByteLengthQueuingStrategy` accounting.
- v0.5.1158 `Atomics.wait`, `notify`, and `waitAsync` now block and wake across agents using a shared `SharedArrayBuffer`.
- v0.5.1158 `node:dns` and `node:dgram` perform real network I/O instead of stub behavior.
- v0.5.1158 `AsyncLocalStorage` and `async_hooks` now propagate context across await, microtasks, timers, and `process.nextTick`.
Beta — feedback welcome: [email protected]