Skip to content

Complete ICU-backed regex case folds - #912

Merged
fglock merged 1 commit into
masterfrom
fix/regex-fold-icu-completeness
Aug 10, 2026
Merged

Complete ICU-backed regex case folds#912
fglock merged 1 commit into
masterfrom
fix/regex-fold-icu-completeness

Conversation

@fglock

@fglock fglock commented Aug 10, 2026

Copy link
Copy Markdown
Owner

Summary

  • use ICU's Changes_When_Casemapped property as the complete, bounded candidate set for full folds
  • supplement simple fold classes that ICU knows but the current JDK Pattern Unicode tables do not
  • include every sibling code point sharing a full fold, such as U+00DF and U+1E9E
  • add system-Perl and Java-level regression coverage without distribution preferences or copied Unicode tables

Results versus merged PR #911

Test PR #911 This PR Change
re/reg_fold.t 6925/7111 7106/7111 +181 passing
re/fold_grind_u.t 66/24309 66/7297 17,012 fewer emitted failures
re/fold_grind_d.t 22/7591 22/7141 450 fewer emitted failures
re/fold_grind_a.t 26/2147 26/1697 450 fewer emitted failures
re/fold_grind_aa.t 75/22811 75/22811 unchanged
op/ref.t 421/481 421/481 unchanged

The grind tests suppress successful internal subtests but emit each failure, so lower denominators represent additional passing internal cases.

Validation

  • make — passed, all unit shards (2m36s)
  • system Perl: prove src/test/resources/unit/regex_icu_full_casefold.t — 6/6 passed
  • six-file perl_test_runner.pl comparison — no fold timeouts or incomplete fold files

Use the full ICU casemapped candidate set, supplement simple folds missing
from Java Pattern's Unicode tables, and include sibling code points sharing
the same full fold.

Generated with [Codex](https://developers.openai.com/codex/)

Co-Authored-By: Codex <codex@openai.com>
@fglock
fglock merged commit 2095f7b into master Aug 10, 2026
2 checks passed
@fglock
fglock deleted the fix/regex-fold-icu-completeness branch August 10, 2026 12:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant