Skip to content

Fix CPAN regressions in Test::Strict and Tree::Object::Hash#834

Merged
fglock merged 3 commits into
masterfrom
fix/test-strict-tree-object-hash
May 28, 2026
Merged

Fix CPAN regressions in Test::Strict and Tree::Object::Hash#834
fglock merged 3 commits into
masterfrom
fix/test-strict-tree-object-hash

Conversation

@fglock
Copy link
Copy Markdown
Owner

@fglock fglock commented May 28, 2026

Summary

  • Keep PerlOnJava CPAN helper metadata under blib/ so Test::Strict manifest checks do not see .perlonjava-cpan-perl5lib.
  • Fix Class::InsideOut-dependent Tree::Object::Hash failures by correcting Storable top-level blessed scalar-ref handling, typed backslash prototype checks, and two-step scalar-ref bless lifetime tracking.
  • Port the PerlOnJava3 fixes for Text::Unidecode surrogate marker regex handling and CPAN::Changes Sub::Quote/Sub::Defer metadata preservation.
  • Add regression tests for blessed scalar-ref Storable, typed backslash prototypes, bless lifetime, surrogate marker character classes, and Sub::Quote qsub metadata.

Verification

  • git diff --check
  • timeout 1200 make
  • timeout 600 ./jcpan -t Test::Strict
  • timeout 600 ./jcpan -t Tree::Object::Hash
  • timeout 900 ./jcpan -t Text::Unidecode
  • timeout 900 ./jcpan -t CPAN::Changes

fglock and others added 3 commits May 28, 2026 22:39
Keep CPAN helper metadata out of distribution roots during test runs so
manifest checks do not see PerlOnJava's temporary PERL5LIB file.

Fix Storable round-tripping for top-level blessed scalar refs, validate
typed backslash prototypes, and keep already-owned scalar refs alive when
they are blessed in a second step.

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

Co-Authored-By: Codex <codex@openai.com>
Handle PerlOnJava surrogate markers as a single logical character in
negated regex character classes so Text::Unidecode can load surrogate-bank
tables.

Preserve Sub::Quote/Sub::Defer metadata captured through deferred CODE refs
during quiet weak-ref sweeps, which keeps CPAN::Changes metadata lookups
alive at statement boundaries.

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

Co-Authored-By: Codex <codex@openai.com>
Make the Sub::Quote metadata regression test self-contained when the CPAN
module is not installed. The embedded Gradle unit runner treats
Test::More's skip_all exit as an execution failure, so the test now uses a
minimal Sub::Quote-shaped fallback instead of exiting.

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

Co-Authored-By: Codex <codex@openai.com>
@fglock fglock force-pushed the fix/test-strict-tree-object-hash branch from a9395ea to 998d6a0 Compare May 28, 2026 20:43
@fglock fglock merged commit 7a5e43f into master May 28, 2026
2 checks passed
@fglock fglock deleted the fix/test-strict-tree-object-hash branch May 28, 2026 21:28
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