threads::shared 1.24 (phase 2)
[p5sagit/p5-mst-13.2.git] / ext / Devel / PPPort / PPPort_pm.PL
index f0b4416..5a8c227 100644 (file)
@@ -4,13 +4,13 @@
 #
 ################################################################################
 #
-#  $Revision: 44 $
+#  $Revision: 59 $
 #  $Author: mhx $
-#  $Date: 2006/05/22 20:28:47 +0200 $
+#  $Date: 2008/01/04 10:47:38 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2006, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -27,7 +27,7 @@ my $INCLUDE = 'parts/inc';
 my $DPPP = 'DPPP_';
 
 my %embed = map { ( $_->{name} => $_ ) }
-            parse_embed(qw(parts/embed.fnc parts/apidoc.fnc));
+            parse_embed(qw(parts/embed.fnc parts/apidoc.fnc parts/ppport.fnc));
 
 my(%provides, %prototypes, %explicit);
 
@@ -68,7 +68,7 @@ for (keys %raw_todo) {
 
 # check consistency
 for (@api) {
-  if (exists $raw_todo{$_}) {
+  if (exists $raw_todo{$_} and exists $raw_base{$_}) {
     if ($raw_base{$_} eq $raw_todo{$_}) {
       warn "$INCLUDE/$provides{$_} provides $_, which is still marked "
            . "todo for " . format_version($raw_todo{$_}) . "\n";
@@ -82,6 +82,7 @@ for (@api) {
 
 my @perl_api;
 for (keys %provides) {
+  next if /^Perl_(.*)/ && exists $embed{$1};
   next if exists $embed{$_};
   push @perl_api, $_;
   check(2, "No API definition for provided element $_ found.");
@@ -125,7 +126,7 @@ $data =~ s{^__UNSUPPORTED_API__(\s*?)^}
           {join "\n", @todo}gem;
 
 $data =~ s{__MIN_PERL__}{5.003}g;
-$data =~ s{__MAX_PERL__}{5.9.4}g;
+$data =~ s{__MAX_PERL__}{5.10.0}g;
 
 open FH, ">PPPort.pm" or die "PPPort.pm: $!\n";
 print FH $data;
@@ -284,6 +285,7 @@ sub make_embed
   my $f = shift;
   my $n = $f->{name};
   my $a = do { my $x = 'a'; join ',', map { $x++ } 1 .. @{$f->{args}} };
+  my $lastarg = ${$f->{args}}[-1];
 
   if ($f->{flags}{n}) {
     if ($f->{flags}{p}) {
@@ -304,6 +306,10 @@ UNDEF
       if ($f->{flags}{f}) {
         return "#define Perl_$n $DPPP(my_$n)";
       }
+      elsif (@$lastarg && $lastarg->[0] =~ /\.\.\./) {
+        return $undef . "#define $n $DPPP(my_$n)\n" .
+                        "#define Perl_$n $DPPP(my_$n)";
+      }
       else {
         return $undef . "#define $n($a) $DPPP(my_$n)(aTHX_ $a)\n" .
                         "#define Perl_$n $DPPP(my_$n)";
@@ -329,19 +335,23 @@ __DATA__
 #
 #  !!!!! Do NOT edit this file directly! -- Edit PPPort_pm.PL instead. !!!!!
 #
+#  This file was automatically generated from the definition files in the
+#  parts/inc/ subdirectory by PPPort_pm.PL. To learn more about how all this
+#  works, please read the F<HACKERS> file that came with this distribution.
+#
 ################################################################################
 #
 #  Perl/Pollution/Portability
 #
 ################################################################################
 #
-#  $Revision: 44 $
+#  $Revision: 59 $
 #  $Author: mhx $
-#  $Date: 2006/05/22 20:28:47 +0200 $
+#  $Date: 2008/01/04 10:47:38 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2006, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -478,7 +488,7 @@ Version 3.x was ported back to CPAN by Marcus Holland-Moritz.
 
 =head1 COPYRIGHT
 
-Version 3.x, Copyright (C) 2004-2006, Marcus Holland-Moritz.
+Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 
 Version 2.x, Copyright (C) 2001, Paul Marquess.
 
@@ -495,24 +505,17 @@ See L<h2xs>, L<ppport.h>.
 
 package Devel::PPPort;
 
-require DynaLoader;
 use strict;
-use vars qw($VERSION @ISA $data);
-
-$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.08_03 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
+use vars qw($VERSION $data);
 
-@ISA = qw(DynaLoader);
-
-bootstrap Devel::PPPort;
+$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.14 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
 
 sub _init_data
 {
   $data = do { local $/; <DATA> };
-  my $now = localtime;
   my $pkg = 'Devel::PPPort';
   $data =~ s/__PERL_VERSION__/$]/g;
   $data =~ s/__VERSION__/$VERSION/g;
-  $data =~ s/__DATE__/$now/g;
   $data =~ s/__PKG__/$pkg/g;
   $data =~ s/^\|>//gm;
 }
@@ -542,8 +545,7 @@ __DATA__
 
     ppport.h -- Perl/Pollution/Portability Version __VERSION__
 
-    Automatically created by __PKG__ running under
-    perl __PERL_VERSION__ on __DATE__.
+    Automatically created by __PKG__ running under perl __PERL_VERSION__.
 
     Do NOT edit this file directly! -- Edit PPPort_pm.PL and the
     includes in parts/inc/ instead.
@@ -599,12 +601,16 @@ __DATA__
 
 %include SvREFCNT
 
+%include newSVpv
+
 %include SvPV
 
 %include Sv_set
 
 %include sv_xpvf
 
+%include shared_pv
+
 %include warn
 
 %include pvs
@@ -619,6 +625,8 @@ __DATA__
 
 %include exception
 
+%include strlfuncs
+
 #endif /* _P_P_PORTABILITY_H_ */
 
 /* End of File ppport.h */