Problem
PerlOnJava imports current Perl Unicode data, but several generated tables expose only the subset required for direct property lookup. Callers that need value enumeration, especially \p{Property=:\A...\z:} wildcards, can fall back to ICU aliases. ICU may be older than the imported Perl UCD and does not necessarily contain Perl's complete short-alias surface.
The recent Block failures demonstrate the gap: Bengali_Sup, Misc_Arrows_Ext, and Music_Sup are current Perl PropValueAliases.txt aliases, but wildcard matching did not consistently enumerate them.
Proposed work
- Make each generated enumerated-property table expose canonical values and every Perl value alias from the same source data.
- Generate wildcard candidate lists from those aliases, and route wildcard resolution through them ahead of ICU.
- Add generator validation that every accepted alias reaches a generated value set and that aliases are unambiguous.
- Add focused generated-data tests for direct aliases, loose aliases, and anchored wildcards.
- Record which Perl-specific behavior remains handwritten: property grammar, warning categories and wording, case-fold policy, and diagnostics.
Acceptance criteria
- No UCD-version-dependent property lookup or wildcard path uses ICU as its authority when an imported Perl table is available.
- Refreshing imported Unicode data updates value aliases and wildcard coverage without hand-maintained lists.
- Generator checks fail clearly on missing, duplicate, or unreachable aliases.
- The Unicode property UAT remains green for generated direct and wildcard aliases.
Problem
PerlOnJava imports current Perl Unicode data, but several generated tables expose only the subset required for direct property lookup. Callers that need value enumeration, especially
\p{Property=:\A...\z:}wildcards, can fall back to ICU aliases. ICU may be older than the imported Perl UCD and does not necessarily contain Perl's complete short-alias surface.The recent Block failures demonstrate the gap:
Bengali_Sup,Misc_Arrows_Ext, andMusic_Supare current PerlPropValueAliases.txtaliases, but wildcard matching did not consistently enumerate them.Proposed work
Acceptance criteria