ReviewOS

home-lang/home

Native path strings: preserve UTF-16 code units through path operations

#898
Open chris opened this 8 days ago ·
8 days ago

Parent #66; follow-up #899.

Native source c9347d9db is published through main 96ded4f9f. JavaScript UTF-16 adapters and outputs now preserve lone high/low and paired surrogates across basename, dirname, extname, join, normalize, parse, format, relative, resolve and Windows namespace conversion. Mixed Latin1/UTF-16 inputs share code-unit width. Generic copies, CWD conversion and parsed-value rooting are repaired; filesystem byte conversion remains in filesystem adapters and linked SDK layouts are unchanged. Native format preserves getter order/coercion/root identity, and Windows resolve stops validation once resolved.

Retained evidence: final native build 56/56, 2,601 actual Node v26.10.0 comparisons pass, fresh unchanged 157-file regression with 396 passing cases/142 process checks/zero failures/37 case skips/three file skips, all validators passing, Dirent control passing, ABI 10 tests/58 assertions, Pickier and 12,996-entry integrity audit passing. Earlier failures and the separate installed Bun 1.4.2 baseline remain retained.

Remaining acceptance:

  • Actual Windows execution, including drive-specific environment paths; Darwin path.win32 controls are recorded separately.
  • A rebuilt pinned-source reference comparison; installed Bun 1.4.2 is not that executable.
  • Full Unicode Windows comparisons are reproduced independently and tracked in #899, including lowercase length expansion and original destination spelling.
  • The entire #66 feature/suite/all-platform objective remains open; skips and unsupported hosts are not passing features.
8 days ago

The pure-path surrogate probe and the control failure that exposed it are preserved in the native directory evidence on main. Node preserves the lone UTF-16 code unit through join/normalize/resolve; Home and installed Bun replace it with U+FFFD. #897’s directory parent builder now preserves code units independently and its Node/Home control passes. No pure-path implementation fix is claimed here; #898 remains open.

8 days ago

Published native UTF-16 and evaluation-order fixes on main through 96ded4f9f. All 2,601 Node comparisons pass; the fresh unchanged 157-file integration batch has 396 passing cases, 142 process checks, zero failures, 37 case skips and three file skips. Build, validators, Dirent control, ABI, lint and corpus audit pass. 930 verified artifacts retain earlier failures and baseline output. Actual Windows and pinned-reference acceptance remain open; #899 tracks the six Unicode casing mismatches.

8 days ago

The Unicode follow-up #899 now has a published native implementation on main through 6417fa68f: full engine lowercase conversion, component handling for expanded code units and original destination spelling. All 464 new Node comparisons plus the earlier 2,601 code-unit comparisons pass; the fresh unchanged 157-file integration batch has zero failures. 836 verified artifacts retain counts, skips and the repaired source-provenance guard. Actual Windows/drive environments and rebuilt pinned-reference acceptance remain open.

8 days ago

Follow-up #900 is published on main through ac74dd8cd. Native format now preserves JavaScript truthiness, extension index reads, coercion/getter order, raw root identity and UTF-16 ownership. All 358 new Node comparisons plus the prior 3,065 comparisons pass, and the fresh unchanged 157-file integration batch has zero failures. 841 verified artifacts retain first failures and the installed baseline separately. Actual Windows and pinned-reference acceptance remain open.

Sign in to comment on this issue.