ReviewOS

home-lang/home

Native path.win32.relative: use Unicode lowercase comparison

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

Parent #66; related #898.

Native source c2e235434 is on main through 6417fa68f. Home's private native BunString bridge calls JavaScriptCore's locale-independent Unicode lowercase converter. Native relative paths compare fully lowered strings, use Node's component algorithm when lowercase expands code-unit length, and preserve original destination spelling. Resolve/device comparisons share this comparison. ASCII comparisons retain their direct path, POSIX remains case-sensitive, unpaired surrogates survive, and SDK class/global layouts remain unchanged.

Verified evidence: final native build 56/56; all 464 new actual Node v26.10.0 comparisons pass, including Latin/Greek/Cyrillic/Turkish/contextual sigma/sharp S/supplementary Deseret, UNC shares, drive roots, original spelling, surrogates, collection and long expansion. All earlier 2,601 code-unit comparisons pass. A fresh unchanged 157-file batch has 396 passing cases, 142 process checks, zero failures, 37 case skips and three skipped files; all validators pass. Dirent control, ABI 10 tests/58 assertions, Pickier and the 12,996-entry integrity audit pass.

The initial full ABI/bundler run has 154 passes and one exact-source assertion failure caused by the new private helper. Its assertion now checks both complete source bodies; the repaired case passes with 636 assertions. The initial failure and separately filtered rerun are retained. Installed Bun 1.4.2 still fails the Unicode comparison control and is not a rebuilt pinned reference.

Remaining acceptance:

  • Actual Windows execution and drive-specific environment behavior; Darwin path.win32 controls are separate host evidence.
  • Cross-platform checks with each linked SDK and a rebuilt pinned-source reference comparison, retained alongside the installed baseline.
  • The broader #66 entire feature/suite/all-platform objective remains open. Skips, filtered tests and unsupported hosts are not passing features.
8 days ago

Native path evidence retains the probe source plus actual Node, Home and separately installed Bun outputs for all six Unicode casing mismatches. The native surrogate-preservation batch is published independently on main and does not claim a repair for these results.

8 days ago

Native Unicode path checkpoint: source c2e235434 and 836 Git-verified evidence artifacts are on main through 6417fa68f. Native Windows comparisons use the engine's full locale-independent lowercase conversion and Node's component algorithm when lowercase changes length, preserving destination spelling and POSIX case sensitivity. Build 56/56; 464 new Node comparisons and all 2,601 code-unit comparisons pass. The fresh unchanged 157-file path/filesystem/FileHandle batch has 396 passing cases, 142 process checks, zero failures, 37 case skips and three skipped files; all validators pass. Dirent control, the 12,996-entry corpus audit, ABI checks and lint pass. The full guard run has 154 passes and one repaired source-provenance assertion; the repaired case passes with 636 assertions. Installed Bun 1.4.2 fails the Unicode control and remains a separate baseline. #899 retains actual Windows/platform acceptance; #898 retains drive-environment and rebuilt pinned-reference acceptance. #66 remains the entire feature/suite/all-platform objective.

Sign in to comment on this issue.