Skip to content

Unify CPAN regression fixes and Catalyst support foundation - #887

Merged
fglock merged 9 commits into
masterfrom
fix/cpan-compiler-regressions
Aug 4, 2026
Merged

Unify CPAN regression fixes and Catalyst support foundation#887
fglock merged 9 commits into
masterfrom
fix/cpan-compiler-regressions

Conversation

@fglock

@fglock fglock commented Aug 4, 2026

Copy link
Copy Markdown
Owner

Summary

  • fix the CPAN compiler/runtime regressions originally covered by PR 887, including CORE::GLOBAL overrides, nested caller() lines, localized @ISA, File::Spec inheritance, PadWalker closures, YAML UTF-8 decoding, and cross-script warning state
  • add isolated PERLONJAVA_HOME support across runtime @INC, CPAN state, MakeMaker install paths, launchers, preferences, patches, scripts, and integration tests
  • fix package-generation invalidation for named sub definitions so MooseX::MethodAttributes 0.32 passes all 22 files and 144 tests unchanged
  • export Socket::NI_NAMEREQD, allowing Catalyst::Request to advance to the next runtime prerequisite
  • maintain dev/design/catalyst-support.md as an operational handoff with a classified blocker table and ordered immediate next steps

Verification

  • combined branch: full make passed after integration (BUILD SUCCESSFUL, 2026-08-04)
  • isolated-home acceptance: Text::Glob 0.11 installed and loaded from a fresh temporary home; 2/2 files and 74/74 tests passed
  • MooseX::MethodAttributes 0.32: 22/22 files and 144/144 tests passed unchanged
  • Catalyst-focused MooseX tests: 13/13 and 21/21 assertions passed
  • new MRO and Socket regressions passed under standard Perl, the JVM backend, and --interpreter
  • Catalyst::Request no longer fails on Socket::NI_NAMEREQD; it now reaches the classified Stream::Buffered blocker

Catalyst status

A fresh, unforced isolated installation enumerated the full dependency graph and built Catalyst-Runtime 5.90132 before its aggregate suite reached the one-hour guard. Catalyst is not yet claimed as fully installable: Plack and the remaining runtime prerequisites are explicitly listed in dev/design/catalyst-support.md.

The next implementation order is:

  1. fix Stream::Buffered print/subclass behavior;
  2. fix WWW::Form::UrlEncoded Unicode percent encoding;
  3. rerun HTTP::Entity::Parser and Plack in a fresh isolated home;
  4. clear the remaining classified runtime prerequisites;
  5. rerun the clean Catalyst install and load gate.

Approval

Please leave this PR unmerged until CI is green and the isolated-home behavior has been tested by the user. The user can then approve the unified PR explicitly.

Generated with Codex

fglock and others added 8 commits August 4, 2026 14:27
Fix compiler and runtime semantics exercised by Test::File,
File::Copy::Recursive, Config::Multi, Template Toolkit, and their
dependencies. Add regression coverage and retire obsolete CPAN test
failure exemptions.

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

Co-Authored-By: Codex <codex@openai.com>
Do not classify pass-count deltas as compiler regressions or progress when
the two runs report different total test counts. Surface those rows as
incomparable because they can reflect a changed corpus or an early exit.

Document the comparison rule in the testing reference.

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

Co-Authored-By: Codex <codex@openai.com>
Remove the changed-total comparison classification added while investigating
the reported core-test deltas. The required newer corpus confirms that the
compiler reaches the approval baseline without suppressing those rows.

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

Co-Authored-By: Codex <codex@openai.com>
Honor PERLONJAVA_HOME across runtime include paths, Config, CPAN state,
MyConfig discovery, and MakeMaker installation directories. Add an
OS-native launcher integration test that proves the default user home is
untouched, and document the Catalyst milestone acceptance status.

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

Co-Authored-By: Codex <codex@openai.com>
Record the successful fresh-root Text::Glob installation and explain why
the bundled Try::Tiny module cannot prove CPAN isolation. Advance the active
Catalyst support work to the MooseX::MethodAttributes milestone.

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

Co-Authored-By: Codex <codex@openai.com>
Increment the defining package generation whenever the parser installs or
replaces a named subroutine. This lets Class::MOP rebuild its local method
map before namespace::autoclean and restores Catalyst method modifiers in
MooseX::MethodAttributes.

Add a system-Perl-validated package-generation regression and record the
completed Catalyst method-attributes milestone.

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

Co-Authored-By: Codex <codex@openai.com>
Add the standard getnameinfo flag constant required by Catalyst::Request,
cover it with a system-Perl-validated regression, and record the blockers
found by the first full isolated Catalyst runtime installation.

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

Co-Authored-By: Codex <codex@openai.com>
Add an ordered handoff from the current Stream::Buffered blocker through
isolated Catalyst installation, CI verification, and explicit user approval.

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

Co-Authored-By: Codex <codex@openai.com>
@fglock fglock changed the title Fix CPAN compiler regressions Unify CPAN regression fixes and Catalyst support foundation Aug 4, 2026
Use File::Spec to decompose and rebuild directory levels in File::Path so
drive-letter and UNC paths create parents before their leaves. Add portable
nested make_path regression coverage.

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

Co-Authored-By: Codex <codex@openai.com>
@fglock
fglock merged commit a6622ed into master Aug 4, 2026
2 checks passed
@fglock
fglock deleted the fix/cpan-compiler-regressions branch August 4, 2026 19:58
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