Skip to content

[codex] Honor well-known archives in no-auto links#4242

Merged
proggeramlug merged 1 commit into
PerryTS:mainfrom
andrewtdiz:codex/node-http-validation-tail
Jun 3, 2026
Merged

[codex] Honor well-known archives in no-auto links#4242
proggeramlug merged 1 commit into
PerryTS:mainfrom
andrewtdiz:codex/node-http-validation-tail

Conversation

@andrewtdiz
Copy link
Copy Markdown
Contributor

Addresses #3954.

Summary

  • Make the --no-auto-optimize compile path still resolve prebuilt well-known wrapper archives from the finalized native-module import set.
  • Keep the PERRY_NO_AUTO_OPTIMIZE=1 optimized-lib branch on the same no-auto resolver so env and CLI behavior match.
  • Route HTTP upgrade WebSocket helper FFIs (js_ws_*_client_i64) to the ws well-known wrapper owner.
  • Add focused coverage for no-auto archive resolution and HTTP-suite FFI owner routing.

Root Cause

Current main no longer has the HTTP owner-table gap fixed by #4216, but the compile driver still returned OptimizedLibs::empty() whenever no-auto optimization was enabled. That skipped the prebuilt perry-ext-http, perry-ext-net, and perry-ext-ws archives even when codegen had recorded wrapper-owned FFI symbols after module collection.

Non-Goals

This does not change HTTP response/body behavior or request validation semantics. The HTTP parity suite still has runtime/output mismatches; this cut is limited to eliminating the no-auto compile/link failure tail.

Validation

  • CARGO_TARGET_DIR=/root/perry-worktrees/perry-node-http-validation-tail/target cargo build --release --quiet -p perry -p perry-runtime -p perry-stdlib -p perry-ext-http -p perry-ext-net -p perry-ext-ws passed with existing warnings.
  • CARGO_TARGET_DIR=/root/perry-worktrees/perry-node-http-validation-tail/target cargo check -p perry -p perry-codegen passed with existing warnings.
  • CARGO_TARGET_DIR=/root/perry-worktrees/perry-node-http-validation-tail/target cargo test -p perry no_auto_still_resolves_prebuilt_well_known_archives -- --nocapture passed.
  • CARGO_TARGET_DIR=/root/perry-worktrees/perry-node-http-validation-tail/target cargo test -p perry-codegen emitted_http_suite_external_symbols_route_to_owners -- --nocapture passed.
  • cargo fmt --all -- --check passed.
  • git diff --check passed.
  • ./scripts/check_file_size.sh passed.
  • PERRY_NO_AUTO_OPTIMIZE=1 CARGO_TARGET_DIR=/root/perry-worktrees/perry-node-http-validation-tail/target npm exec --yes --package=node@26 -- bash -lc "node --version; ./run_parity_tests.sh --suite node-suite --module http --filter header-state-controls" ran on Node v26.3.0 with Compile Fail: 0; it exits non-zero due the existing header-method output mismatch.
  • PERRY_NO_AUTO_OPTIMIZE=1 CARGO_TARGET_DIR=/root/perry-worktrees/perry-node-http-validation-tail/target npm exec --yes --package=node@26 -- bash -lc "node --version; ./run_parity_tests.sh --suite node-suite --module http" ran on Node v26.3.0 with Parity Pass: 5, Parity Fail: 12, Compile Fail: 0, Skipped: 0; it exits non-zero due existing HTTP runtime/output mismatches.

@proggeramlug proggeramlug marked this pull request as ready for review June 3, 2026 11:52
@proggeramlug proggeramlug merged commit 994b9ec into PerryTS:main Jun 3, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants