Skip to content

fix(runtime): complete RegExp test262 worklist - #8667

Open
proggeramlug wants to merge 2 commits into
PerryTS:mainfrom
proggeramlug:fix/5897-regexp-complete
Open

fix(runtime): complete RegExp test262 worklist#8667
proggeramlug wants to merge 2 commits into
PerryTS:mainfrom
proggeramlug:fix/5897-regexp-complete

Conversation

@proggeramlug

Copy link
Copy Markdown
Contributor

Summary

  • Fixes test262 built-ins/RegExp — 89 (self-contained worklist) #5897 in full: every one of the 89 listed test262 RegExp cases passes.
  • Add a narrowly selected ECMAScript backtracking fallback for quantified-group capture reset/retry semantics and lookaround backreferences, while keeping the existing linear and fancy engines as the common paths.
  • Match and replace lone-surrogate JavaScript strings as UTF-16 code units and preserve WTF-8 storage.
  • Add focused runtime regressions for every repaired semantic root cause. No version bump.

Validation

  • Real scripts/test262_subset.py runner over the exact 89 issue paths at test262 4249661388e5d3f92a85186213da140a6481490f: 89 pass, 0 diff, 0 runtime-fail, 0 compile-fail, 0 skip. The exact list was run in eight disjoint shards to bound temporary compiler storage; reconciliation found 89 issue paths, 89 runner paths, 0 missing, and 0 extra.
  • cargo test -p perry-runtime --lib: 2,649 passed, 0 failed, 4 ignored.
  • CI-derived static lint tier: all 53 commands passed, including cargo fmt --all -- --check, the 2,000-line file-size cap, runtime GC-holder custody, raw-handle debt, unrooted-local shape, parity, and merge-base ratchets.
  • git diff --check.

No tests from the issue worklist are excluded or structurally impossible.

@coderabbitai

coderabbitai Bot commented Aug 23, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 7 minutes.

View limit details

Limit details: You’ve used all 8 included reviews currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 73528f92-19b0-4b1f-924b-12b9f2b447fe

📥 Commits

Reviewing files that changed from the base of the PR and between 2382a9f and 55a5d03.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (9)
  • changelog.d/8667-regexp-repeat-matcher.md
  • crates/perry-runtime/Cargo.toml
  • crates/perry-runtime/src/regex.rs
  • crates/perry-runtime/src/regex/compile.rs
  • crates/perry-runtime/src/regex/exec.rs
  • crates/perry-runtime/src/regex/exec_array.rs
  • crates/perry-runtime/src/regex/match_string.rs
  • crates/perry-runtime/src/regex/repeat_matcher.rs
  • crates/perry-runtime/src/regex/tests.rs

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@proggeramlug
proggeramlug marked this pull request as ready for review August 23, 2026 21:13
@proggeramlug

Copy link
Copy Markdown
Contributor Author

Needs a rebase onto current main (7ad718ab4) — conflicts now, so I can't land it as-is.

The collision came from f5739b532 (the #8661 / #8656 / #8666 / #8662 / #8660 batch), which reworked the regex module, which I merged while this PR was open. Conflicting files:

  • crates/perry-runtime/Cargo.toml
  • crates/perry-runtime/src/regex.rs
  • crates/perry-runtime/src/regex/exec.rs
  • crates/perry-runtime/src/regex/match_string.rs
  • crates/perry-runtime/src/regex/repeat_matcher.rs

The Cargo.toml conflict is worth a careful look rather than a mechanical union — if both sides moved a dependency, taking either side alone drops the other's.

Everything else in the PR auto-merges, so this should be a contained rebase. Ping me when it's pushed and I'll re-run the batch validation (9 ratchet gates + cargo fmt --check, perry-codegen --lib, perry-runtime --lib at RUST_TEST_THREADS=1) and land it.

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.

test262 built-ins/RegExp — 89 (self-contained worklist)

1 participant