Skip to content

Complete threads API and add fresh runtime reset - #956

Merged
fglock merged 5 commits into
masterfrom
feature/perl-threads-final-delivery
Aug 15, 2026
Merged

Complete threads API and add fresh runtime reset#956
fglock merged 5 commits into
masterfrom
feature/perl-threads-final-delivery

Conversation

@fglock

@fglock fglock commented Aug 14, 2026

Copy link
Copy Markdown
Owner

Summary

  • complete runtime-owned lexical regex debug teardown and recover direct/thread DATA inheritance
  • fix regex parser handling of code-block-shaped text inside \Q...\E
  • advertise and validate the complete public threads 2.43 method surface
  • add an exclusive fresh-equivalent PerlRuntime.reset() lifecycle with quiescence checks, END/destruction draining, state replacement, IO reconstruction, and failure poisoning
  • update the concurrency and pooling reset plans through Phase 41

Validation

  • make — PASS after the final commit
  • re/stclass_threads.t — 6/6
  • direct and threaded re/reg_email.t — 13/13 on JVM and interpreter
  • op/threads.t — 30/30
  • public threads API oracle — 23/23 on system Perl, JVM, and interpreter
  • ./jcpan --jobs 8 -t DBIx::Class — 325 files, 42,671 assertions, PASS

Remaining planned work

  • arbitrary match-time (?{...}) execution and the remaining direct Phase 36 regex-language gaps
  • Phase 39b nested shared proxies/destruction and exact destructive share semantics
  • Phase 42 pooling remains disabled until checkout stress, collectability, and performance gates pass

fglock and others added 5 commits August 14, 2026 20:49
Emit lexical regex release diagnostics after END in each owning runtime so
direct and child debug traces have identical lifecycle boundaries. Model DATA
as the source stream positioned after its marker and clone named handles
through the established thread resource policies.

This completes the Phase 35 stclass gate and restores direct and threaded
reg_email coverage on both execution backends.

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

Co-Authored-By: Codex <codex@openai.com>
Treat (?{ and (??{ as literal text while a regex is inside a lexical
\Q...\E region. This restores pat_re_eval parsing without changing genuine
embedded-code handling outside quoted regions.

Record the remaining match-time regex-code blocker in the concurrency plan.

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

Co-Authored-By: Codex <codex@openai.com>
Advertise the implemented threads 2.43 API after validating its full public
method inventory on system Perl and both PerlOnJava backends. Record Phase 40
completion and retain op/threads.t at 30/30.

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

Co-Authored-By: Codex <codex@openai.com>
Introduce an exclusive reset lifecycle distinct from terminal close. Reject active
bindings, compilation, children, shared locks, and waiters; drain END and
destruction work; replace every runtime-owned state domain; rebuild standard IO
and core globals; and poison the runtime after partial failure.

Add JVM/interpreter freshness differentials and lifecycle rejection coverage,
and advance the concurrency plan through Phase 41.

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

Co-Authored-By: Codex <codex@openai.com>
Run regexp_qr_embed_thr in the resource-sensitive serial lane with a
600-second minimum deadline. Avoid quadratic ithread graph growth by cloning
only observable named IO handles, while leaving inert parser glob placeholders
to be vivified on demand in each child runtime.

Add coverage that open named handle aliases still inherit with independent
wrapper state while undef placeholders do not inflate snapshots.

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

Co-Authored-By: Codex <codex@openai.com>
@fglock
fglock merged commit 1be14c0 into master Aug 15, 2026
2 checks passed
@fglock
fglock deleted the feature/perl-threads-final-delivery branch August 15, 2026 06:36
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