Skip to content

fix(regex): complete native quantifier and control boundaries - #1083

Merged
fglock merged 6 commits into
masterfrom
fix/phase36-nested-quantifier-p2
Aug 19, 2026
Merged

fix(regex): complete native quantifier and control boundaries#1083
fglock merged 6 commits into
masterfrom
fix/phase36-nested-quantifier-p2

Conversation

@fglock

@fglock fglock commented Aug 19, 2026

Copy link
Copy Markdown
Owner

Summary

  • preserve Perl grouped nested-quantifier semantics and extended-mode modifiers in the forked Joni parser
  • carry named ACCEPT/FAIL/F control state through native bytecode without overwriting earlier named cut errors
  • permit captures and ACCEPT-aware width analysis in negative lookbehind
  • keep the Phase 36 forward plan aligned with the integrated gate

Validation

  • system-Perl focused oracles pass before PerlOnJava execution
  • default and forced-Joni JVM/interpreter focused legs pass
  • direct forked-Joni tests pass, including control-error precedence and negative-lookbehind boundaries
  • unchanged perl5_t/t/re/regexp.t exact differential removes failures with zero introductions
  • focused 17-task builds pass for every semantic slice
  • full warning-free 17-task make on exact head 5ae62c501: /tmp/make-phase36-native-quant-control-lookbehind-5ae62c501.log

Design

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

fglock and others added 6 commits August 19, 2026 20:12
Reject ungrouped redundant quantifiers with Perl diagnostics while retaining
grouped repeat boundaries and extended-mode quantifier modifiers in the
forked Joni lexer and AST.

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

Co-Authored-By: Codex <codex@openai.com>
Carry ACCEPT and explicit FAIL names through the forked Joni parser and
bytecode matcher, then publish their Perl control state through REGMARK and
REGERROR without conflating explicit FAIL with internal assertion failure.

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

Co-Authored-By: Codex <codex@openai.com>
Record the integrated native nested-quantifier and named control-verb state and
make the next ordered gate describe only forward work.

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

Co-Authored-By: Codex <codex@openai.com>
Keep an earlier named cut-verb error authoritative when a path terminates with
an unnamed FAIL, while retaining named and standalone FAIL publication.

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

Co-Authored-By: Codex <codex@openai.com>
Permit Perl capture groups in negative lookbehind and apply ACCEPT-aware width
analysis to both lookbehind polarities so native variable-width execution keeps
the correct assertion boundary.

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

Co-Authored-By: Codex <codex@openai.com>
Keep the Phase 36 execution position and immediate combined acceptance gate
aligned with the integrated native lookbehind work.

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

Co-Authored-By: Codex <codex@openai.com>
@fglock
fglock merged commit 09bf96f 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