Skip to content

WIP: continue Phase 36 regex diagnostics and Joni retirement - #1079

Merged
fglock merged 8 commits into
masterfrom
integration/phase36-native-syntax-v8
Aug 19, 2026
Merged

WIP: continue Phase 36 regex diagnostics and Joni retirement#1079
fglock merged 8 commits into
masterfrom
integration/phase36-native-syntax-v8

Conversation

@fglock

@fglock fglock commented Aug 19, 2026

Copy link
Copy Markdown
Owner

Summary

  • continue Phase 36 from the exact PR 1078 review head without changing the
    commit currently under Ubuntu/Windows CI
  • complete malformed, unknown, and empty named-character diagnostics across
    strings, regexes, ordinary classes, and extended classes
  • compile (?(DEFINE)...) containers natively in the PerlOnJava Joni fork
  • route ordinary positive/negative lookbehind through Joni by default
  • route branch-reset groups and their subroutine calls through Joni, deleting
    the temporary capture-map adapter
  • implement Perl's plain \N non-newline escape natively, including interval
    quantifiers and /s-independent behavior
  • retire the corresponding temporary Java-routing assertions

This batch removes approximately 580 lines of temporary Java-side regex
adaptation while retaining explicit Java mode for differential diagnosis.

Validation

  • every new Perl fixture was frozen against system Perl before product use
  • named-character fixtures: malformed 8/8 and unknown/empty 16/16 in JVM,
    interpreter, and forced-Joni modes
  • DEFINE: focused system/forced fixture 14/14; nine related families 97/97;
    34-row differential matrix with no introductions
  • ordinary lookbehind: focused suites 5/5, 18/18, 5/5, and 5/5; direct and
    forced backend checks green, including the 255/256 boundary case
  • branch reset: system fixtures 21/21 and 14/14; forced-Joni fixtures 21/21,
    10/10, 3/3, and 10/10
  • plain \N: new system-Perl contract 19/19; direct Joni unit coverage for
    interval and option behavior
  • combined full make before rebase at 93008e559: all 17 tasks green in
    5m12s (/tmp/make-phase36-v8-controlflow-plain-n-rerun.log)
  • rebased full make at aff2c868e: all 17 tasks green in 3m36s
    (/tmp/make-pr1079-rebased-aff2c868e.log)

Stack and next gate

PR 1078 passed Ubuntu and Windows CI and merged as e44ece2b5. This PR has been
rebased and retargeted to master; all seven successor commits remain, while
the already-upstream Windows correction was correctly skipped. The PR remains
draft until CI on the rebased head is green.

The next independent implementation lanes remain byte/Unicode fold provenance,
native dynamic-pattern execution, runtime diagnostic retirement, and the
four-leg forced-backend corpus differential.

fglock and others added 7 commits August 19, 2026 17:06
Match Perl's fatal diagnostic and source context for malformed U+ forms in
strings, regexes, ordinary character classes, and extended classes.

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

Co-Authored-By: Codex <codex@openai.com>
Match Perl's fatal diagnostics for unknown and empty character names in
strings, regexes, ordinary character classes, and extended classes.

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

Co-Authored-By: Codex <codex@openai.com>
Parse and compile Perl (?(DEFINE)...) containers directly in Joni, preserving
lexical group numbering, callable definitions, recursion, and Perl diagnostics.
Remove the runtime adapter lowering and preserve enclosing captures across
completed DEFINE calls.

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

Co-Authored-By: Codex <codex@openai.com>
Use the existing syntax-aware route scanner for real positive and negative
lookbehind assertions, and retire the unreachable Java lookbehind validator.
Keep escape, class, quoted, and comment lookalikes on the normal path.

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

Co-Authored-By: Codex <codex@openai.com>
Route syntactically real branch-reset groups through native Joni and remove
the unreachable Java branch-reset rewrite and capture-map state.

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

Co-Authored-By: Codex <codex@openai.com>
Preserve regex-only plain \\N and its interval forms through frontend parsing,
compile it natively as a negated line-feed class, and retain named-character
handling and Perl's character-class diagnostic.

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

Co-Authored-By: Codex <codex@openai.com>
Expect default and auto routing to select Joni for ordinary lookbehind and
branch-reset subroutine calls now that their native implementations are in the
combined Phase 36 integration branch.

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

Co-Authored-By: OpenAI Codex <codex@openai.com>
@fglock
fglock force-pushed the integration/phase36-native-syntax-v8 branch from 93008e5 to aff2c86 Compare August 19, 2026 15:11
@fglock
fglock changed the base branch from integration/phase36-native-syntax-v6 to master August 19, 2026 15:12
@fglock
fglock marked this pull request as ready for review August 19, 2026 15:13
The validated tree was force-pushed while the pull request still targeted its
merged prerequisite branch. Add an empty synchronization commit after changing
the base to master so the master-targeted pull_request workflow runs.

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

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