Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

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

Aperta
#1,446 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
52/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
perl

Direzione di ricerca

Inizia riproducendo la build pulita di Parse::Yapp::KeyValue e analizza MakeParser.PL, il target del Makefile generato e la gestione della build e del filesystem di PerlOnJava. Confronta i risultati dell’interprete e della JVM, quindi usa t/1pod.t e t/2keyvalue.t come suite di regressione mirata. Il lavoro è completato quando la generazione di un Parser.pm annidato riesce oppure la build fallisce immediatamente, ed entrambi i test passano su entrambi i backend.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.

Lingua principale
Perl
Stelle
64
Fork
6
Merge medio
4h 29m
PR unite (30g)
185

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di fglock/PerlOnJava

Tutte le issue di fglock/PerlOnJava

Issue simili

Altre issue su Perl

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.