Skip to content

fix: jperldoc now finds perlfunc, perlop and other core documentation#395

Merged
fglock merged 3 commits into
masterfrom
fix/jperldoc-perlfunc
Mar 28, 2026
Merged

fix: jperldoc now finds perlfunc, perlop and other core documentation#395
fglock merged 3 commits into
masterfrom
fix/jperldoc-perlfunc

Conversation

@fglock
Copy link
Copy Markdown
Owner

@fglock fglock commented Mar 28, 2026

Summary

  • Import Perl 5 core pod documentation (perlfunc.pod, perlop.pod, perlre.pod, etc.) into the bundled JAR
  • Update build.gradle to include .pod files as resources
  • Fix Pod::Perldoc to search both pod/ and Pod/ directories (JAR paths are case-sensitive)
  • Add pod directory to the import-perl5 sync configuration

Problem

jperldoc perlfunc and jperldoc perlop were returning "No documentation found" because:

  1. The pod files weren't bundled in the JAR
  2. Even when bundled, JAR paths are case-sensitive and Perl's perldoc searches for pod/ (lowercase) while macOS creates Pod/ (capitalized)

Solution

  1. Added **/*.pod pattern to build.gradle resource configuration
  2. Modified Pod::Perldoc.pm searchfor function to also try Pod/ (capitalized) directory
  3. Imported ~190 pod documentation files from perl5/pod

Testing

# Before fix:
./jperldoc perlfunc
# -> No documentation found for "perlfunc".

# After fix:
./jperldoc perlfunc
# -> Shows perlfunc documentation

./jperldoc perlop
# -> Shows perlop documentation

./jperldoc perlre
# -> Shows perlre documentation

./jperldoc File::Basename
# -> Module documentation still works

Test plan

  • make passes (builds and runs unit tests)
  • ./jperldoc perlfunc shows documentation
  • ./jperldoc perlop shows documentation
  • ./jperldoc File::Basename still works (module docs)

Generated with Devin

fglock and others added 2 commits March 28, 2026 09:45
…navailable

When fork support is not available (d_fork is undef), the Process
iterator falls back to using open($out, "$command|") instead of
IPC::Open3. In this mode, the handle does not have a valid fileno
and cannot be used with IO::Select.

Previously, get_select_handles would return these unusable handles,
causing the TAP::Parser::Multiplexer to silently fail when trying
to add them to IO::Select. This resulted in jprove reporting
Files=0, Tests=0 even when test files existed.

The fix checks if {sel} is defined before returning handles. When
{sel} is undef, we are using the simple open() fallback which
does not support select-based reading.

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

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- Import Perl 5 core pod documentation (perlfunc.pod, perlop.pod, etc.)
  into src/main/perl/lib/Pod/ directory
- Update build.gradle to include .pod files in the JAR
- Update Pod::Perldoc to search both pod/ and Pod/ directories since
  JAR paths are case-sensitive
- Add pod import configuration to dev/import-perl5/config.yaml

The pod files are now bundled in the JAR and jperldoc can find them.

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

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@fglock fglock force-pushed the fix/jperldoc-perlfunc branch from 6331b93 to e0338d0 Compare March 28, 2026 09:25
Add **/*.pod include pattern to pom.xml resources to match the
build.gradle configuration, ensuring jperldoc works when building
with Maven.

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 9eef523 into master Mar 28, 2026
2 checks passed
@fglock fglock deleted the fix/jperldoc-perlfunc branch March 28, 2026 09:37
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