feat(core): virtual file system and Swift string semantics

The core gains Swift's virtual file system (paths, case-insensitive
lookup that keeps the spelling, quotas, atomic changes, the defaults of
a new device) and the string behaviour the ported code relies on without
saying so. Both are measured in the Swift oracle: 11 file system cases
(the three Swift tests among them) step by step, and trimming, lower
case, equality, ordering and Base64 case by case — whitespace and control
characters over all of Unicode.

Found by measuring:
- Swift trims NEL and ZERO WIDTH SPACE, not the BOM; JS trim() does the
  opposite. The .fls import now trims with swiftTrim.
- lowercased() maps scalar by scalar: a word-final sigma stays σ.
- Foundation decodes "====" and "Y===" as empty data.
- Foundation on Linux counts 24,735 plane-14 scalars as control
  characters, a table artefact; the port keeps Unicode Cc+Cf.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-29 21:23:45 +00:00
co-authored by Claude Opus 5.5
parent 51a83ea68d
commit a198d10b4a
15 changed files with 5247 additions and 18 deletions
+2
View File
@@ -4,6 +4,7 @@ export * from './model/documentation.js';
export * from './model/graph.js';
export * from './model/link.js';
export * from './model/node.js';
export * from './model/virtualFileSystem.js';
export * from './runtime/config.js';
export * from './runtime/engine.js';
export * from './runtime/ipv4.js';
@@ -14,3 +15,4 @@ export * from './runtime/snapshot.js';
export * from './runtime/speed.js';
export * from './runtime/trace.js';
export * from './util/equal.js';
export * from './util/swiftString.js';