Wed Jan 27 14:59:36 2016: Request 111455 was acted upon. Transaction: Correspondence added by SLAFFAN Queue: PAR-Packer Subject: unable to use -x and -u with pp Broken in: (no value) Severity: (no value) Owner: Nobody Requestors: slaf...@cpan.org Status: open Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=111455 >
Thanks Roderich, The patch makes the failure go away. The used once warnings still remain, but they appear harmless. Someone at a later date might use -M and want all the associated dependencies, but that could lead to all sorts of issues in itself. Maybe something can be added to the documentation for -M to clarify its interaction with -x? Regards, Shawn. On Wed Jan 27 08:38:40 2016, RSCHUPP wrote: > On 2016-01-27 01:39:00, SLAFFAN wrote: > > Running pp with both the -u and -x options fails. It appears that some > > of the text files under the unicore directory are being executed by > > Module::ScanDeps. See code and results below. > > Yeah, "pp -u ..." is just short for "pp -M utf8_heavy.pl ..." so combining > this with "-x" gets the same result :( In fact, "pp -x -M Foo::Bar ..." with > a Foo::Bar that has a %Preload rule in Module/ScanDeps.pm that adds anything > NOT perlish will provoke the same problem. Other examples are charnames or > LWP::MediaTypes. > > Turns out that "pp -x" - counter to what I would expect - does not only > execute the actual input file(s), but also every module added with -M and > everything it "depends" on according to the %Preload rules. The problem > has been lurking for ages, but - since running "perl /path/to/module.pm" > usually doesn't generate an error - nobody noticed. > > BTW, adding dependencies from "-M" arguments to the list of input files > affects not only "-x", but the default use case as well. > This behaviour also explains what's going on in #110480: > try "pp -M utf8_heavy.pl ..." (no "-x") and look at the contents of the > generated exe (as a zip file). It contains every non-pm file, e.g. 1000.pl, > below the "unicore" directory TWICE, once as "lib/unicore/lib/Nv/1000.pl" > (correct) and also as "lib/1000.pl". > > Can you try the patch below? > > Cheers, Roderich > > > Index: lib/PAR/Packer.pm > =================================================================== > --- lib/PAR/Packer.pm (revision 1642) > +++ lib/PAR/Packer.pm (working copy) > @@ -737,7 +737,6 @@ > skip => \%skip, > # warn_missing => $args->{warn_missing}, > ); > - push @files, map {&$inc_find($_)} @preload; > } > push @files, @$input; > > > > > > > > > >