Skip to content

Fix CPAN compiler, runtime, and jcpan tooling blockers - #964

Merged
fglock merged 9 commits into
masterfrom
fix/jcpan-compiler-tooling-modules-20260815
Aug 16, 2026
Merged

Fix CPAN compiler, runtime, and jcpan tooling blockers#964
fglock merged 9 commits into
masterfrom
fix/jcpan-compiler-tooling-modules-20260815

Conversation

@fglock

@fglock fglock commented Aug 15, 2026

Copy link
Copy Markdown
Owner

Unified review

This PR contains all commits from #963 plus the jcpan module fixes originally developed here. It is the single branch for joint testing and approval; #963 is superseded by this combined review.

Compiler, runtime, and tooling fixes

  • close child stdin for non-interactive subprocess capture and parse escaped quoted hash keys in interpolated strings
  • harden MakeMaker AutoSplit/executable staging, including Windows interpreter paths
  • preserve PVLV filehandle semantics and streaming Compress::Zlib scalar/list context
  • restore the YAML::PP object API and blessed scalar-reference serialization
  • preserve native-class field context in method signature defaults and provide a bundled core-syntax Object::Pad compatibility layer
  • report gzip EOF correctly for CPAN single-file distributions and retry TAP-indented missing prerequisites
  • replace deprecated Sereal Zstd frame sizing calls with the supported API and reject invalid/unknown sizes

Java-backed module support

  • Text::QRCode using ZXing with libqrencode-compatible byte-mode behavior
  • Math::Cephes distribution functions needed by statistics modules
  • existing earlier shared tooling support remains based on the project’s loaded Java libraries, including Bouncy Castle/JCA, Sereal, Jing, Snappy, and Zstandard

Verified CPAN outcomes

  • Pegex::JSON: PASS — 4 files, 21 tests
  • Music::Factory: PASS — 5 files, 20 tests
  • App::Chained: PASS — installs undeclared List::MoreUtils, then 2 files and 9 tests pass
  • Queue: PASS — single-file distribution extracts and tests successfully
  • Plack::App::dbi2http: PASS
  • Vector::QRCode::IntoPDF and upstream Text::QRCode matrices: PASS
  • Statistics::ANOVA::Page: PASS
  • Image::Size: PASS — 2 files, 24 tests
  • Chart::Graph, Tk::CheckbuttonGroup, and Net::Flickr::Geo reach only system/external dependency limitations documented in Fix CPAN compiler and tooling blockers #963

System Perl exclusions

  • Bio::Data::Plasmid::CloningVector: Bio-MCPrimers ships no Makefile.PL and fails system-Perl configuration
  • Catalyst::Engine::HTTP::POE::YieldCC: its distribution requires but neither ships nor declares Restarter::Watcher; system Perl reproduces the failure
  • other platform/upstream exclusions and their system-Perl evidence are documented in dev/design/jcpan-compiler-tooling-followup.md

Verification

Detailed progress and limitations are recorded in:

  • dev/design/jcpan-compiler-tooling-followup.md
  • dev/design/jcpan-compiler-tooling-modules.md

Generated with Codex

fglock and others added 4 commits August 15, 2026 19:49
Close subprocess stdin pipes, support escaped hash keys in interpolation,
and harden MakeMaker script and AutoSplit staging. Add Java-backed
Text::QRCode and Math::Cephes compatibility plus correct Compress::Zlib
streaming context behavior.

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

Co-Authored-By: Codex <codex@openai.com>
Normalize native Windows separators before writing the Perl executable into
POSIX-shell Makefile recipes. This prevents Bash from consuming backslashes
as escapes when MakeMaker stages AutoLoader modules.

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

Co-Authored-By: Codex <codex@openai.com>
Replace deprecated decompressedSize calls in the imported Sereal decoders with
getFrameContentSize. Reject unknown or invalid frame sizes before allocating
decoder buffers, and remove the compile-time deprecation warnings.

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

Co-Authored-By: Codex <codex@openai.com>
Restore YAML::PP object and scalar-reference serialization, route
Object::Pad core syntax through native classes, preserve field context in
method signatures, fix gzip EOF status for single-file CPAN distributions,
and retry TAP-indented missing prerequisites.

This unblocks Pegex::JSON, Music::Factory, App::Chained, and Queue without
distribution preferences. Bio-MCPrimers and Catalyst Engine HTTP POE remain
excluded because their distributions fail under system Perl.

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

Co-Authored-By: Codex <158243242+openai-codex@users.noreply.github.com>
@fglock
fglock force-pushed the fix/jcpan-compiler-tooling-modules-20260815 branch from a5bb762 to 916adfe Compare August 15, 2026 19:02
fglock and others added 4 commits August 15, 2026 21:21
Mark the implementation phase complete after Ubuntu and Windows CI passed
on PR #964.

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

Co-Authored-By: Codex <158243242+openai-codex@users.noreply.github.com>
Resolve file tests through the IO slot carried by a glob instead of its
stringified name, and retain PVLV glob names in unopened-close warnings.

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

Co-Authored-By: Codex <codex@openai.com>
Generated with [Codex](https://openai.com/codex/)

Co-Authored-By: Codex <codex@openai.com>
Combine the CPAN compiler, subprocess, MakeMaker, native-module, Zstd, and
filehandle fixes from PR #963 with the jcpan module tooling fixes in PR #964
so they can be tested and approved together.

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

Co-Authored-By: Codex <158243242+openai-codex@users.noreply.github.com>
@fglock fglock changed the title Fix jcpan compiler and tooling module support Fix CPAN compiler, runtime, and jcpan tooling blockers Aug 15, 2026
Record the passing Ubuntu and Windows results for the combined PR #963 and
PR #964 review branch.

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

Co-Authored-By: Codex <158243242+openai-codex@users.noreply.github.com>
@fglock
fglock merged commit c8182f2 into master Aug 16, 2026
2 checks passed
@fglock
fglock deleted the fix/jcpan-compiler-tooling-modules-20260815 branch August 16, 2026 01:56
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