ReviewOS

home-lang/home

Complete native ICU process binding and platform coverage

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

Native ICU streaming / public transcode checkpoint (2026-10-09): source and verified evidence are on origin/main. Native ICU now owns stateful converter creation/decode, transcode, error names and Unicode width alongside ToASCII/ToUnicode/discovery. Branded GC-owned holders release ICU state; environment-free native finalizers execute instead of being dropped. Decode handles split UTF-8/UTF-16, BOM policy, fatal errors, flush/reset, shared/detached buffers and output growth. Public buffer.transcode replaces its parked factory method with native conversion and input/error handling. Factory headers resolve through the selected module-unity source rather than an assumed checkout layout. Native controls cover these operations, 1,024 converter holders and the existing 13 IPC controls. 60 original suites validate 1,610 registered passes, 13 process checks, zero failures, three original skips and three TODOs. Debug 33/33; native objects 27/27; ABI 63 tests / 954 assertions; supervised peak 5,651 MB under 8,192 MB. All 820 committed archives verify and all 60 final reports restore/validate. The first public transcode failure is retained without passing credit. Portable checks reproduce the compiled factory headers/unity wrapper; differing constants bytes are disclosed. #862 remains open for complete argument/lifetime stress and platform/ICU-data/Release/ASAN verification. Other registry/native dependencies and whole-Bun parity remain incomplete; skips/TODOs receive no passing credit.

Remaining work under #66:

  • Complete argument and error-behavior coverage, including converter alias/type boundaries and failed conversion lifetime stress.
  • Cross-realm/worker ownership, repeated GC and reentrant input transitions across all native operations.
  • Release/ASAN and Linux/Windows verification, including ICU data/version differences.
  • Complete imported ICU/encoding corpus coverage. Original skips/TODOs are not passing features.

Stateful converter creation/decode, native transcode/error names/width and public buffer.transcode are implemented. The current native/corpus evidence is bounded and does not establish complete platform or full-suite parity.

Sign in to comment on this issue.