Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Parse::Yapp::KeyValue build loses generated Parser.pm

Open
#1,446 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
52/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
perl

Research direction

Start by reproducing the clean Parse::Yapp::KeyValue build and inspect MakeParser.PL, the generated Makefile target, and PerlOnJava's build/filesystem handling. Compare the interpreter and JVM results, then use t/1pod.t and t/2keyvalue.t as the focused regression suite. Done means nested Parser.pm generation succeeds or the build fails immediately, with both tests passing on both backends.

Written by the indexing model from the issue text.

Description

area:cpan-port area:runtime bug

Summary

Parse::Yapp::KeyValue 0.1 passes its complete upstream test suite under system Perl, but PerlOnJava fails because the distribution's build-time MakeParser.PL step does not create the generated Parser.pm file.

Reproduction

CPAN random tester run: 20260918-141920-96054

Distribution: Parse::Yapp::KeyValue 0.1 (reported module version is 0.10)

The exact prerequisite distributions were installed into an isolated library for the system-Perl comparison:

  • Parse::Template 3.08
  • Parse::Lex 2.21
  • Parse::Yapp 1.21

System Perl 5.42.2:

All tests successful.
Files=2, Tests=17
Result: PASS

PerlOnJava:

Files=2, Tests=2
Result: FAIL
Failed 1/2 test programs. 1/2 subtests failed.

Failure details

The distribution's MakeParser.PL contains:

my $path = 'blib/lib/Parse/Yapp/KeyValue';
my $file = "$path/Parser.pm";
my $parser = new Parse::Yapp(inputfile => 'grammar.yp');
mkdir $path || die "could not create directory $path: $!";
open(FILE, ">$file") || die "unable to open $file: $!";

On PerlOnJava, make invokes this generator and reports:

unable to open blib/lib/Parse/Yapp/KeyValue/Parser.pm: No such file or directory at MakeParser.PL line 10.
make: [pl_files] Error 2 (ignored)

The generated file is absent afterward. The make target nevertheless reports a successful build because the generator error is ignored. The subsequent test failure is:

Can't locate Parse/Yapp/KeyValue/Parser.pm in @INC

and t/2keyvalue.t cannot load Parse::Yapp::KeyValue.

The other test file, t/1pod.t, passes.

Scope and diagnosis

This is reproducible on the current PerlOnJava build with a clean extracted distribution. It is not caused by Parse::Yapp's grammar generation: running the same MakeParser.PL with the interpreter backend succeeds when the destination parent directory is pre-created and produces Parser.pm correctly.

The failure is therefore in PerlOnJava's build/filesystem handling for the nested generated-file destination, or in the interaction between that handling and the generated Makefile target. The ignored generator error also allows an incomplete build to proceed to testing.

Expected behavior

make should generate blib/lib/Parse/Yapp/KeyValue/Parser.pm successfully, or fail the build immediately if generation fails. After generation, both t/1pod.t and t/2keyvalue.t should pass on the JVM and interpreter backends.

Please add a focused regression test for nested directory creation/generated-file output and verify the full Parse::Yapp::KeyValue suite after the fix.

Dominant language
Perl
Stars
64
Forks
6
Avg merge
5h 11m
Merged PRs (30d)
168

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from fglock/PerlOnJava

All issues in fglock/PerlOnJava

Similar issues

More Perl issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.