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
macOS arm64 0.5.1220: any program importing node:http fails to link — 17 undefined _js_*http* symbols from libperry_stdlib.a #8907
All referenced from perry_stdlib::common::dispatch_http::* inside libperry_stdlib.a, e.g.
"_js_http_response_trailers", referenced from:
perry_stdlib::common::dispatch_http::dispatch_client_incoming_property::h6300abf73b28a348
in libperry_stdlib.a[260](perry_stdlib-….rcgu.o)
The _js_ext_http_* names suggest libperry_ext_http.a should be supplying them and is not reaching the link line; the bare _js_node_http_* and _js_http_* ones look like they should come from the runtime.
Notes
Identical with and without PERRY_NO_AUTO_OPTIMIZE=1 — the prebuilt-stdlib path and the default path both fail the same way, and neither triggers a rebuild (it fails in ~2 s).
#8587 looks like the same shape but is scoped to native Linux and is closed; this is macOS arm64 on the current release, so filing separately rather than commenting there. Close as a duplicate if one fix covers both.
Not a perry doctor skew case (#8752): a clean install of 0.5.1220 reproduces it, and non-HTTP programs link and run normally from the same toolchain.
Impact
This is what stops an HTTP server compiling at all, so it blocks the whole server side of our project rather than one feature — nine of eighteen tests in our compatibility suite die here, and they are the ones covering the database driver, the router, WebSockets, migrations, multipart upload, file streaming and long-run stability. Everything that does not touch node:http compiles and runs correctly, including some fairly demanding things (zod, vips via child_process, a 1 s scheduler tick with clean SIGTERM).
Fixed by #9770, landed on main via merge train #9804. The train merged as its own branch, so the close-keyword in #9770 never fired — closing manually. Verified the fix is on main by patch-id (git cherry), not just by the PR being closed.
Activity
steinybot commentedon Aug 30, 2026
It looks like this might have been fixed on main already? I tried reproducing there and wasn't able to.
steinybot commentedon Aug 31, 2026
Claude with
git bisectsays that the root cause was #5831 and fixed in v0.5.1239 by #5983.docs(changelog): fragment for PerryTS#9243 (PerryTS#8907 ext-http/cgu…
test(link): regression guard for PerryTS#8907 — full-stdlib links wit…
test(link): regression guard for PerryTS#8907 — full-stdlib links wit…
test(link): regression guard for #8907 — full-stdlib links without th…
proggeramlug commentedon Sep 5, 2026
Fixed by #9770, landed on
mainvia merge train #9804. The train merged as its own branch, so the close-keyword in #9770 never fired — closing manually. Verified the fix is onmainby patch-id (git cherry), not just by the PR being closed.WebReflection commentedon Sep 10, 2026
has this landed on brew and others? I still see this:
proggeramlug commentedon Sep 10, 2026
landing on brew shortly @WebReflection