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:
@@ -27,6 +27,17 @@ und unter `state` Swifts ganzes importiertes Modell ohne die zufälligen UUIDs
|
||||
ihren abgeleiteten IDs). Daran misst `packages/fls/test/importProject.test.ts`
|
||||
den Umbau — auf den 13 Dateien, die Swift vollständig liest.
|
||||
|
||||
## Dateisystem und Strings
|
||||
|
||||
`--vfs` spielt die Fälle aus `packages/core/test/vfs.cases.json` im
|
||||
virtuellen Dateisystem ab (jedes Ergebnis, jeder Fehler samt Werten, der
|
||||
Endzustand mit SHA-256 der Binärdaten). `--strings` misst, was Swift aus
|
||||
Strings macht, wo JavaScript abweicht: Trimmen, Kleinschreibung, Gleichheit,
|
||||
Sortierung, Base64 — und die ganzen Mengen `whitespacesAndNewlines` und
|
||||
`controlCharacters` über alle Unicode-Skalare. Grenze: Das ist Foundation
|
||||
unter Linux; ihre Steuerzeichen-Tabelle hat in Ebene 14 einen Fehler, den
|
||||
der Port nicht übernimmt.
|
||||
|
||||
## Wie es gebaut wird
|
||||
|
||||
`fetch-upstream.sh` holt `filius-ipad` am festen Stand `3b5ded0` und kopiert
|
||||
|
||||
Reference in New Issue
Block a user