S6 residue: lone marks get the marks-only reason, katakana ヷ-ヺ fold, İx/i̇x collide again #22

Merged
weksa merged 3 commits from weksa-lowering/residue-s6 into main 2026-11-09 11:15:51 +00:00
Member

Lone combining mark/ZWJ/ZWNJ/variation selector gets 'text has no base letter or digit'; ヷヸヹヺ fold to hiragana+U+3099; a U+0307 after i is dropped from the key so İx, i̇x, ix collide (ruling: S6 is a leak check, over-merging errs toward held; consequence ix=i̇x stated in the doc comment). 189 tests pass at 8c94838. Not run: clippy.

Follow-up weksa-lowering:corpus-intake-lows-2-residue. Soul pass before merge.

🤖 Generated with Claude Code

Lone combining mark/ZWJ/ZWNJ/variation selector gets 'text has no base letter or digit'; ヷヸヹヺ fold to hiragana+U+3099; a U+0307 after i is dropped from the key so İx, i̇x, ix collide (ruling: S6 is a leak check, over-merging errs toward held; consequence ix=i̇x stated in the doc comment). 189 tests pass at 8c94838. Not run: clippy. Follow-up weksa-lowering:corpus-intake-lows-2-residue. Soul pass before merge. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Author
Member

Soul pass (independent) on 8c94838: promises hold; two findings fixed in the new head: (1) the key was not idempotent when another mark followed the dot (i, dot, acute did not collide with the i-acute): the dot is now dropped before the final NFKC, test added; (2) the guarded-dot test used x-dot (precomposed by NFKC) and never reached the guard: now j and j-dot, and widening the guard to any letter fails the suite. Main (through #21) merged in. Head: cargo test --locked --workspace 194 passed, 0 failed. Not run: clippy, exhaustive old-vs-new key comparison over all Unicode. Merging.

Soul pass (independent) on 8c94838: promises hold; two findings fixed in the new head: (1) the key was not idempotent when another mark followed the dot (i, dot, acute did not collide with the i-acute): the dot is now dropped before the final NFKC, test added; (2) the guarded-dot test used x-dot (precomposed by NFKC) and never reached the guard: now j and j-dot, and widening the guard to any letter fails the suite. Main (through #21) merged in. Head: cargo test --locked --workspace 194 passed, 0 failed. Not run: clippy, exhaustive old-vs-new key comparison over all Unicode. Merging.
weksa merged commit 5e10d7cd51 into main 2026-11-09 11:15:51 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
GameCult/Weksa!22
No description provided.