Skip to content

fix(regex): advance native Joni syntax and fold parity - #1084

Merged
fglock merged 5 commits into
masterfrom
fix/phase36-extended-more-p2
Aug 19, 2026
Merged

fix(regex): advance native Joni syntax and fold parity#1084
fglock merged 5 commits into
masterfrom
fix/phase36-extended-more-p2

Conversation

@fglock

@fglock fglock commented Aug 19, 2026

Copy link
Copy Markdown
Owner

Summary

  • implement Perl /xx character-class whitespace and nested inline x/xx modes natively in the Joni fork
  • add bounded adjacent-literal reverse full-fold partitions without changing single-literal lookbehind width
  • preserve Perl's exact L_ compatibility alias as cased letters (LC)
  • report Perl-compatible diagnostics for invalid non-braced \p/\P followers
  • align the canonical Phase 36 plan with the validated successor state

Validation

  • every new Perl fixture passes system Perl first
  • new fixtures pass default/forced-Joni on JVM and interpreter
  • focused 17-task builds pass for /xx, adjacent folds, L_, and property-follower diagnostics
  • exact regexp.t differentials remove rows 1726, 1683, 2002–2004, and the /xx rows 2026–2030 with no introductions
  • case-fold focused build and existing literal/backreference fold fixture pass
  • full unfiltered make passes all 17 tasks on exact rebased head a3b84e02a

Design

See dev/design/phase36-regex-parity.md.

fglock and others added 5 commits August 19, 2026 21:16
Give forked Joni a distinct /xx option, preserve exact inline x nesting levels,
and apply horizontal-space elision inside character classes without changing
ordinary /x behavior.

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

Co-Authored-By: Codex <codex@openai.com>
Generate bounded reverse full-fold partitions across adjacent Perl literal
boundaries so equivalent multi-character fold sequences can backtrack without
changing single-literal lookbehind width behavior.

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

Co-Authored-By: Codex <codex@openai.com>
Resolve Perl's exact L_ compatibility spelling as LC before loose Unicode
property normalization, so it matches only cased letters rather than all
letters.

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

Co-Authored-By: Codex <codex@openai.com>
Record the current native extended-more, adjacent full-fold, and L_ semantic
position and order the dynamic-pattern and remaining fold work accordingly.

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

Co-Authored-By: Codex <codex@openai.com>
Distinguish bare property escapes at end of pattern from invalid non-braced
followers and emit Perl's native character-property diagnostic from Joni.

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

Co-Authored-By: Codex <codex@openai.com>
@fglock
fglock merged commit 168d560 into master Aug 19, 2026
2 checks passed
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