Skip to content

Fix compiler and runtime issues in CPAN module workflows - #945

Open
fglock wants to merge 4 commits into
masterfrom
fix/jcpan-tooling-modules
Open

Fix compiler and runtime issues in CPAN module workflows#945
fglock wants to merge 4 commits into
masterfrom
fix/jcpan-tooling-modules

Conversation

@fglock

@fglock fglock commented Aug 13, 2026

Copy link
Copy Markdown
Owner

Summary

  • implement runtime-scoped B::SV::object_2svref round trips used by Type::Tiny/Moo
  • preserve tied scalar backing values during STORE and defer readonly lvalue errors until a short-circuit assignment writes
  • parse numeric captures before literal underscores in interpolated strings and regex replacements
  • scalarize list-valued interpreter operands for compound addition

CPAN validation

  • ./jcpan -t Map::Tube::Leipzig: PASS (2 files, 7 tests)
  • ./jcpan -t Net::UploadMirror: PASS (1 file, 93 tests; builds Net::MirrorDir)
  • Telegram::JsonAPI ignored: system Perl cannot build without TDLib headers
  • C3000 ignored: system Perl reports the OS is unsupported
  • Audio::XMMSClient ignored: system Perl cannot configure without ExtUtils::PkgConfig/XMMS development tooling
  • Tie::Array::Atomic ignored: its Devel::Malloc dependency fails to build with system Perl on this platform

The optional strict dependency run reaches additional upstream dependency suites, but currently fails in unrelated XML::Twig split/merge tooling and missing optional Text::LineFold. The requested default jcpan -t dependency build chains pass.

Tests

  • make
  • all four new regression tests validated with stock Perl before PerlOnJava
  • interpreter-specific compound-assignment regression test

Generated with Codex

Implement B::SV object_2svref round trips, preserve tied scalar backing
values during STORE, defer readonly lvalue errors until assignment, parse
capture variables before literal underscores, and scalarize list-valued
compound-assignment operands in the interpreter.

These fixes allow Map::Tube::Leipzig and Net::UploadMirror to complete
their jcpan test workflows without distribution-specific preferences.

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

Co-Authored-By: Codex <codex@openai.com>
@fglock
fglock force-pushed the fix/jcpan-tooling-modules branch from 1eb748b to 08a5775 Compare August 13, 2026 08:02
fglock and others added 3 commits August 13, 2026 11:45
Fingerprint test corpora in perl_test_runner output and teach the log
comparator not to classify timeouts, runner errors, missing rows, or changed
test plans as pass-count regressions.

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

Co-Authored-By: Codex <codex@openai.com>
Resolve user Unicode property references with comments, numeric exclusions,
and InBlock aliases. Preserve the exact position of regex \G assertions,
hide their internal marker from captures, enforce readonly capture arrays,
and copy ordinary delete rvalues in both compiler backends.

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

Co-Authored-By: Codex <codex@openai.com>
Move Perl's do-block result copying out of the delete operator so direct
delete remains lvalue-capable in both compiler backends. Preserve partial
TAP counts when a test times out, and extend deadlines for the reported
CPU-heavy regex and taint tests, including their internal watchdogs.

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

Co-Authored-By: Codex <codex@openai.com>
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