Skip to content

Generate complete Perl Unicode aliases and wildcard candidates #1487

Description

@fglock

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions