Skip to content

Fix CPAN XML and AnyEvent compiler/tooling support - #942

Merged
fglock merged 1 commit into
masterfrom
fix/cpan-compiler-tooling-20260812
Aug 13, 2026
Merged

Fix CPAN XML and AnyEvent compiler/tooling support#942
fglock merged 1 commit into
masterfrom
fix/cpan-compiler-tooling-20260812

Conversation

@fglock

@fglock fglock commented Aug 12, 2026

Copy link
Copy Markdown
Owner

Summary

  • teach the bundled-provider manifest and CPAN resolver about transitive runtime requirements
  • add a JAXP-backed XML::LibXSLT provider and declare the XML provider dependency chain
  • fix managed nonblocking socket fcntl, connect completion, stream initialization, and accept behavior
  • preserve virtual descriptors for anonymous handles created into hash/array lvalues
  • retain weakly registered watcher graphs when a strong callback cycle owns the observed watcher

This unblocks Catmandu::CrossRef and AnyEvent::SMTP without new distribution preferences.

System Perl baseline

  • Catmandu::CrossRef: passes
  • AnyEvent::SMTP: passes
  • AI::Pathfinding::AStarNode: fails on system Perl 5.42 (Not a HASH reference), ignored
  • Alien::ZMQ: fails on system Perl because libzmq headers/pkg-config and its fallback download are unavailable, ignored
  • Games::Quake::Stats: fails on system Perl because GD/GD::Text/GDGraph are unavailable, ignored

Passing dependencies checked separately include Heap::Fibonacci (2473 tests) and String::ShellQuote (33 tests).

Verification

  • make — pass, 409 unit files (2 skipped)
  • ./jcpan -t Catmandu::CrossRef — pass, 2 files / 9 tests
  • ./jcpan -t AnyEvent::SMTP — pass, 11 files / 4 runnable tests; fork and author tests skipped as expected
  • system Perl validation for all new Perl behavior tests — pass
  • ./jperl src/test/resources/module/XML-LibXSLT/t/basic.t — pass, 3 tests

make test-bundled-modules includes the new XML::LibXSLT test and that test passes. The aggregate local run is currently blocked by pre-existing test-runner cwd failures: 145 tests that use require './t/...', FindBin, or sibling fixture paths cannot locate those resources. The failures are path-resolution errors rather than assertion regressions.

Add transitive bundled-provider requirements and a JAXP-backed
XML::LibXSLT provider so Catmandu::CrossRef can install without native
libxslt or distribution preferences.

Correct nonblocking socket connection handling, managed fcntl behavior,
anonymous lvalue descriptor ownership, and weakly registered watcher
cycles so AnyEvent::SMTP can complete its loopback test.

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

Co-Authored-By: Codex <codex@openai.com>
@fglock
fglock force-pushed the fix/cpan-compiler-tooling-20260812 branch from 596bc83 to 0b55ce1 Compare August 12, 2026 20:54
@fglock
fglock merged commit 2371b55 into master Aug 13, 2026
2 checks passed
@fglock
fglock deleted the fix/cpan-compiler-tooling-20260812 branch August 13, 2026 06:01
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