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;
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 



Reply via email to