This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Was able to move $Packid into $self.
authorJames E. Keenan <jkeenan@cpan.org>
Sat, 10 Apr 2010 14:24:00 +0000 (10:24 -0400)
committerSteffen Mueller <smueller@cpan.org>
Tue, 12 Jul 2011 18:53:56 +0000 (20:53 +0200)
Note that I got build failures when I attempted to pull $Package into $self.

The distributions below because during various 'eval EXPR'
statements, I got a 'Global variable $Package ...' error.

cut -d '/' -f 7,8,9,10,11 research/problematic.builds.20100410.txt
D/DB/DBURDICK/BoostGraph/Boost-Graph-1.4.tar.gz
D/DE/DEEMON/Crypt-OpenSSL-SMIME-0.02.tar.gz
D/DL/DLOWE/Text-Tmpl-0.33.tar.gz
D/DM/DMAKI/Data-Valve-0.00010.tar.gz
D/DO/DORMANDO/Perlbal-XS-HTTPHeaders-0.20.tar.gz
E/ED/EDPRATOMO/Algorithm-Permute-0.12.tar.gz
J/JH/JHI/String-Approx-3.26.tar.gz
K/KA/KARMAN/Search-Tools-0.45.tar.gz
K/KI/KILINRAX/HTML-Strip-1.06.tar.gz
L/LA/LAIRDM/Algorithm-SVM-0.13.tar.gz
M/MA/MARKSMITH/HTTP-HeaderParser-XS-0.20.tar.gz
M/MC/MCEGLOWS/Search-ContextGraph-0.15.tar.gz
M/MH/MHX/Convert-Binary-C-0.74.tar.gz
M/MH/MHX/Tie-Hash-Indexed-0.05.tar.gz
M/MI/MIKEWONG/Table-ParentChild-0.05.tar.gz
M/MS/MSERGEANT/CDB_File-0.96.tar.gz
M/MS/MSERGEANT/IO-KQueue-0.34.tar.gz
P/PA/PAJAS/XML-LibXML-1.70.tar.gz
P/PM/PMQS/Filter-1.37.tar.gz
S/SA/SALVA/Compress-PPMd-0.11.tar.gz
S/SA/SAPER/Net-Pcap-0.16.tar.gz
S/SA/SAPER/Net-RawIP-0.25.tar.gz
S/SG/SGOELDNER/MonetDB-CLI-MapiXS-0.03.tar.gz
S/SM/SMUELLER/Math-SymbolicX-FastEvaluator-0.01.tar.gz
S/SM/SMUELLER/Parse-ExuberantCTags-1.01.tar.gz
S/SP/SPIDB/Net-ext-1.011.tar.gz
T/TJ/TJMATHER/Crypt-OpenSSL-DSA-0.13.tar.gz

dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm

index c283155..d65051e 100644 (file)
@@ -37,7 +37,7 @@ $VERSION = eval $VERSION if $VERSION =~ /_/;
 # them into $self led to build problems.  In most cases, strings being
 # 'eval'-ed contain the variables' names hard-coded.
 our (
-  $FH, $Package, $func_name, $Full_func_name, $Packid, $pname, $ALIAS,
+  $FH, $Package, $func_name, $Full_func_name, $pname, $ALIAS,
 );
 
 our $self = {};
@@ -350,7 +350,7 @@ EOM
     ($pname = $func_name) =~ s/^($self->{Prefix})?/$self->{Packprefix}/;
     my $clean_func_name;
     ($clean_func_name = $func_name) =~ s/^$self->{Prefix}//;
-    $Full_func_name = "${Packid}_$clean_func_name";
+    $Full_func_name = "$self->{Packid}_$clean_func_name";
     if ($Is_VMS) {
       $Full_func_name = $SymSet->addsym($Full_func_name);
     }
@@ -872,8 +872,8 @@ EOF
 
   if ($self->{Overload}) { # make it findable with fetchmethod
     print Q(<<"EOF");
-#XS(XS_${Packid}_nil); /* prototype to pass -Wmissing-prototypes */
-#XS(XS_${Packid}_nil)
+#XS(XS_$self->{Packid}_nil); /* prototype to pass -Wmissing-prototypes */
+#XS(XS_$self->{Packid}_nil)
 #{
 #   dXSARGS;
 #   XSRETURN_EMPTY;
@@ -884,7 +884,7 @@ EOF
     /* Making a sub named "${Package}::()" allows the package */
     /* to be findable via fetchmethod(), and causes */
     /* overload::Overloaded("${Package}") to return true. */
-    (void)$self->{newXS}("${Package}::()", XS_${Packid}_nil, file$self->{proto});
+    (void)$self->{newXS}("${Package}::()", XS_$self->{Packid}_nil, file$self->{proto});
 MAKE_FETCHMETHOD_WORK
   }
 
@@ -1572,7 +1572,6 @@ sub check_cpp {
   }
 }
 
-
 sub Q {
   my($text) = @_;
   $text =~ s/^#//gm;
@@ -1597,7 +1596,7 @@ sub fetch_para {
     $self->{Prefix}  = defined($3) ? $3 : ''; # keep -w happy
     $self->{Prefix} = quotemeta $self->{Prefix};
     ($self->{Module_cname} = $Module) =~ s/\W/_/g;
-    ($Packid = $Package) =~ tr/:/_/;
+    ($self->{Packid} = $Package) =~ tr/:/_/;
     $self->{Packprefix} = $Package;
     $self->{Packprefix} .= "::" if $self->{Packprefix} ne "";
     $self->{lastline} = "";