ReviewOS

home-lang/home

Bun parity: finish native URL formatting and legacy IPv6 contracts

#458
Closed chris opened this 10 days ago ·
10 days ago

Follow-up to #66 and #456. Correct native Intl metadata now activates four previously skipped URL fixtures. domainToASCII/domainToUnicode passes; three exact fixtures expose real builtin gaps: test-url-format-whatwg.js drops user:pass and lacks WHATWG format options; test-url-format.js double-brackets hostname [::]; test-url-parse-format.js canonicalizes legacy coap IPv6 instead of preserving the expected expanded representation. These failures are now visible in the native corpus gate. Fix the Home-owned URL builtin and regenerate/link its actual internal-module source; editing a mirror alone is insufficient. Acceptance: all three exact fixtures run without skips or delegation, with focused auth/options/Unicode/IPv6 regressions and no regression in the broader native Node core audit. The generated node:url source is in InternalModuleRegistryConstants.h, compiled through InternalModuleRegistry.cpp in UnifiedSource-src_jsc_bindings-1.cpp.o. Owning that codegen/build path is part of the remaining work.

10 days ago

Implementation is in progress: Home now has an incremental builtin generator and an owned InternalModuleRegistry build path. The generator checks error-code ABI and resolves module/native factory IDs from the linked build rather than assuming the incomplete Home mirror has identical numbering. ABI regression tests pass. URL source fixes cover WHATWG format options and legacy IPv6/formatting, but native validation is still running; no parity claim yet. Tracked under #66 and #456.

10 days ago

Verified locally in commit 6562477: all three exact upstream URL fixtures pass in native Home, plus the guarded URL regression. Home now regenerates node:url and compiles its owned InternalModuleRegistry implementation; ABI mappings, ESM grammar, unchanged non-owned literals, and dynamic disk-loading rejection are tested. The 169-file Node-core audit now has 157 passing files, 12 explicitly unsupported, 0 failures (231 passing checks). Six native runtime regressions, five generator/ABI tests, and three Zig binding tests pass; unchanged builds reuse owned artifacts. Commit is authored and committed solely as Chris Breuer, with no coauthors. Push is still blocked by github.com DNS resolution, so leaving this issue open until the commit is published. Parent #66; related #456.

10 days ago

Published implementation 6562477c0 is an ancestor of current remote codex/runtime-port head e6aacc5ad. It is authored and committed solely by Chris Breuer without coauthor trailers.

Current native revalidation:

  • test-url-format-whatwg.js, test-url-format.js, and test-url-parse-format.js all pass from source byte-identical to pin 4982b91e3702094330f3be3883354c52b8c01323, without skips or delegation.
  • The surrounding intended 45-file core set is 41 executable passes / 3 explicit Node-internal skips / 1 disabled commented body / 0 failures; skips and the disabled body are not counted as passes.
  • native-url-contracts.test.mjs passes with exception checks and forced VM destruction.
  • Current owned-builtin generator gate is 3/3 with 117 assertions; native debug and cached builds are 18/18.

The source ownership/codegen acceptance and the three exposed URL contracts are complete on the published branch. Closing #458; parent #66 remains incomplete.

Sign in to comment on this issue.