Skip to content

docs(modules): plan for jcpan -t FormValidator::Simple::Plugin::Number::Phone::JP#590

Merged
fglock merged 1 commit intomasterfrom
docs/plan-formvalidator-number-phone-jp
Apr 28, 2026
Merged

docs(modules): plan for jcpan -t FormValidator::Simple::Plugin::Number::Phone::JP#590
fglock merged 1 commit intomasterfrom
docs/plan-formvalidator-number-phone-jp

Conversation

@fglock
Copy link
Copy Markdown
Owner

@fglock fglock commented Apr 28, 2026

Summary

Investigation + fix plan for jcpan -t FormValidator::Simple::Plugin::Number::Phone::JP. No code changes — only dev/modules/formvalidator_number_phone_jp.md (and the auto-updated Configuration.java from make).

The leaf module is trivial; the failures live in its transitive dependency chain. Two root causes identified:

  1. I18N::LangTags / I18N::LangTags::Detect not bundled. They live in perl5/dist/I18N-LangTags/lib/I18N/ and load fine under jperl, but are not copied into src/main/perl/lib/I18N/. CPAN therefore treats them as upstream-core and tries to install perl-5.42.2 itself, which fails. Cheap, low-risk fix.

  2. Data::CompactReadonly Makefile.PL gates on ~0 < 18446744073709551615 (a "is this 64-bit Perl?" check). Under jperl ~0 == 4294967295 because BitwiseOperators.bitwiseNotBinary masks to 32 bits and Config.pm reports ivsize=4 uvsize=4 use64bitint= to match. PerlOnJava actually uses Java long internally — this is a reporting choice that exists to keep bop.t-style reference output stable.

Three options laid out for #2:

  • A. Flip globally to 64-bit semantics (largest, fixes a class of modules).
  • B. Vendor a patched Data::CompactReadonly (surgical).
  • C. Hybrid — B now, A as a follow-up.

Phase 1 (bundle the I18N::LangTags pair) is low-risk and can land independently.

Test plan

  • make passes locally on this branch
  • Decide A/B/C for Phase 2 in a follow-up PR
  • After fixes, ./jcpan -t FormValidator::Simple::Plugin::Number::Phone::JP should reach the actual t/01_number_phone_jp.t instead of dying in dependency configuration

Generated with Devin

…r::Phone::JP

Investigate failures of jcpan -t FormValidator::Simple::Plugin::
Number::Phone::JP and document the two root causes:

1. I18N::LangTags / I18N::LangTags::Detect are upstream-core, so CPAN
   tries to install perl-5.42.2 itself; sources already exist in
   perl5/dist/I18N-LangTags/lib/ but are not bundled into
   src/main/perl/lib/I18N/.

2. Data::CompactReadonly's Makefile.PL gates on
   ~0 < 18446744073709551615 (a "is this 64-bit Perl?" check). Under
   jperl ~0 == 4294967295 because BitwiseOperators.bitwiseNotBinary
   masks to 32 bits and Config.pm reports ivsize=4/uvsize=4 to match.

Plan lays out three options for #2 (go 64-bit globally, vendor a
patched Data::CompactReadonly, or hybrid) and a low-risk Phase 1 to
bundle the I18N::LangTags pair.

Generated with [Devin](https://cli.devin.ai/docs)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@fglock fglock merged commit 32360b1 into master Apr 28, 2026
2 checks passed
@fglock fglock deleted the docs/plan-formvalidator-number-phone-jp branch April 28, 2026 14:16
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