Upgrade to Devel::PPPort 3.04
Marcus Holland-Moritz [Wed, 29 Dec 2004 13:46:36 +0000 (13:46 +0000)]
p4raw-id: //depot/perl@23700

ext/Devel/PPPort/Changes
ext/Devel/PPPort/META.yml
ext/Devel/PPPort/PPPort.pm
ext/Devel/PPPort/PPPort_pm.PL
ext/Devel/PPPort/TODO
ext/Devel/PPPort/parts/inc/SvPV
ext/Devel/PPPort/parts/inc/ppphbin
ext/Devel/PPPort/parts/inc/ppphdoc
ext/Devel/PPPort/parts/inc/ppphtest

index e1addf8..a21b120 100755 (executable)
@@ -1,3 +1,10 @@
+3.04 - 2004-12-29
+
+    * fix a hint for sv_pvn_force
+    * fix VMS problem with unquoted command line arguments
+      not preserving case (perl change #23367)
+    * add --api-info switch for ppport.h
+
 3.03 - 2004-09-08
 
     * MY_CXT_CLONE was broken
index c0e2f44..c18fa4f 100644 (file)
@@ -1,7 +1,7 @@
 # http://module-build.sourceforge.net/META-spec.html
 #XXXXXXX This is a prototype!!!  It will change in the future!!! XXXXX#
 name:         Devel-PPPort
-version:      3.03
+version:      3.04
 version_from: PPPort_pm.PL
 installdirs:  perl
 requires:
index 073f34e..514cbf5 100644 (file)
@@ -873,7 +873,7 @@ require DynaLoader;
 use strict;
 use vars qw($VERSION @ISA $data);
 
-$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.03 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
+$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.04 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
 
 @ISA = qw(DynaLoader);
 
@@ -952,6 +952,7 @@ POD   --nochanges                 don't suggest changes
 POD 
 POD   --list-provided             list provided API
 POD   --list-unsupported          list unsupported API
+POD   --api-info=name             show Perl API portability information
 POD 
 POD =head1 COMPATIBILITY
 POD 
@@ -1032,6 +1033,11 @@ POD Lists the API elements that are known not to be supported by
 POD F<ppport.h> and below which version of Perl they probably
 POD won't be available or work.
 POD 
+POD =head2 --api-info=I<name>
+POD 
+POD Show portability information for API elements matching I<name>.
+POD I<name> is treated as a Perl regular expression.
+POD 
 POD =head1 DESCRIPTION
 POD 
 POD In order for a Perl extension (XS) module to be as portable as possible
@@ -1222,7 +1228,7 @@ eval {
   Getopt::Long::GetOptions(\%opt, qw(
     help quiet diag! hints! changes! cplusplus
     patch=s copy=s diff=s compat-version=s
-    list-provided list-unsupported
+    list-provided list-unsupported api-info=s
   )) or usage();
 };
 
@@ -2893,6 +2899,40 @@ while (<DATA>) {
   $need{$1} = 1 if m{^#if\s+defined\(NEED_(\w+)(?:_GLOBAL)?\)};
 }
 
+if (exists $opt{'api-info'}) {
+  my $f;
+  my $count = 0;
+  for $f (sort { lc $a cmp lc $b } keys %API) {
+    next unless $f =~ /$opt{'api-info'}/;
+    print "\n=== $f ===\n\n";
+    my $info = 0;
+    if ($API{$f}{base} || $API{$f}{todo}) {
+      my $base = format_version($API{$f}{base} || $API{$f}{todo});
+      print "May not be supported below perl-$base.\n";
+      $info++;
+    }
+    if ($API{$f}{provided}) {
+      my $todo = $API{$f}{todo} ? format_version($API{$f}{todo}) : "5.003";
+      print "Support by $ppport provided down to perl-$todo.\n";
+      print "Support needs to be explicitly requested by NEED_$f.\n" if exists $need{$f};
+      print "Depends on: ", join(', ', @{$depends{$f}}), ".\n" if exists $depends{$f};
+      print "$hints{$f}" if exists $hints{$f};
+      $info++;
+    }
+    unless ($info) {
+      print "No portability information available.\n";
+    }
+    $count++;
+  }
+  if ($count > 0) {
+    print "\n";
+  }
+  else {
+    print "Found no API matching $opt{'api-info'}.\n";
+  }
+  exit 0;
+}
+
 if (exists $opt{'list-provided'}) {
   my $f;
   for $f (sort { lc $a cmp lc $b } keys %API) {
@@ -4527,7 +4567,7 @@ DPPP_(my_sv_2pvbyte)(pTHX_ register SV *sv, STRLEN *lp)
 #  define sv_pvn(sv, len)                SvPV(sv, len)
 #endif
 
-/* Hint: sv_pvn
+/* Hint: sv_pvn_force
  * Always use the SvPV_force() macro instead of sv_pvn_force().
  */
 #ifndef sv_pvn_force
index 06b143d..8733c44 100644 (file)
@@ -473,7 +473,7 @@ require DynaLoader;
 use strict;
 use vars qw($VERSION @ISA $data);
 
-$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.03 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
+$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.04 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
 
 @ISA = qw(DynaLoader);
 
index 8af9477..bd09e7c 100644 (file)
@@ -1,5 +1,8 @@
 TODO:
 
+* improve apicheck (things like utf8_mg_pos_init() are
+  not currently checks)
+
 * more documentation, more tests
 
 * Resolve dependencies in Makefile.PL and remind of
index 97e0a28..34aa90f 100644 (file)
@@ -1,8 +1,8 @@
 ################################################################################
 ##
-##  $Revision: 7 $
+##  $Revision: 8 $
 ##  $Author: mhx $
-##  $Date: 2004/08/13 12:47:16 +0200 $
+##  $Date: 2004/12/29 14:17:20 +0100 $
 ##
 ################################################################################
 ##
@@ -98,7 +98,7 @@ __UNDEFINED__  sv_2pvbyte_nolen  sv_2pv_nolen
  */
 __UNDEFINED__  sv_pvn(sv, len)         SvPV(sv, len)
 
-/* Hint: sv_pvn
+/* Hint: sv_pvn_force
  * Always use the SvPV_force() macro instead of sv_pvn_force().
  */
 __UNDEFINED__  sv_pvn_force(sv, len)   SvPV_force(sv, len)
index 4615d8a..384f126 100644 (file)
@@ -1,8 +1,8 @@
 ################################################################################
 ##
-##  $Revision: 21 $
+##  $Revision: 22 $
 ##  $Author: mhx $
-##  $Date: 2004/08/17 20:00:22 +0200 $
+##  $Date: 2004/12/29 14:54:27 +0100 $
 ##
 ################################################################################
 ##
@@ -40,7 +40,7 @@ eval {
   Getopt::Long::GetOptions(\%opt, qw(
     help quiet diag! hints! changes! cplusplus
     patch=s copy=s diff=s compat-version=s
-    list-provided list-unsupported
+    list-provided list-unsupported api-info=s
   )) or usage();
 };
 
@@ -145,6 +145,40 @@ while (<DATA>) {
   $need{$1} = 1 if m{^#if\s+defined\(NEED_(\w+)(?:_GLOBAL)?\)};
 }
 
+if (exists $opt{'api-info'}) {
+  my $f;
+  my $count = 0;
+  for $f (sort { lc $a cmp lc $b } keys %API) {
+    next unless $f =~ /$opt{'api-info'}/;
+    print "\n=== $f ===\n\n";
+    my $info = 0;
+    if ($API{$f}{base} || $API{$f}{todo}) {
+      my $base = format_version($API{$f}{base} || $API{$f}{todo});
+      print "May not be supported below perl-$base.\n";
+      $info++;
+    }
+    if ($API{$f}{provided}) {
+      my $todo = $API{$f}{todo} ? format_version($API{$f}{todo}) : "__MIN_PERL__";
+      print "Support by $ppport provided down to perl-$todo.\n";
+      print "Support needs to be explicitly requested by NEED_$f.\n" if exists $need{$f};
+      print "Depends on: ", join(', ', @{$depends{$f}}), ".\n" if exists $depends{$f};
+      print "$hints{$f}" if exists $hints{$f};
+      $info++;
+    }
+    unless ($info) {
+      print "No portability information available.\n";
+    }
+    $count++;
+  }
+  if ($count > 0) {
+    print "\n";
+  }
+  else {
+    print "Found no API matching $opt{'api-info'}.\n";
+  }
+  exit 0;
+}
+
 if (exists $opt{'list-provided'}) {
   my $f;
   for $f (sort { lc $a cmp lc $b } keys %API) {
index 70ed7b4..bf0b18c 100644 (file)
@@ -1,8 +1,8 @@
 ################################################################################
 ##
-##  $Revision: 17 $
+##  $Revision: 18 $
 ##  $Author: mhx $
-##  $Date: 2004/08/13 12:45:56 +0200 $
+##  $Date: 2004/12/29 14:55:00 +0100 $
 ##
 ################################################################################
 ##
@@ -51,6 +51,7 @@ ppport.h - Perl/Pollution/Portability version __VERSION__
 
   --list-provided             list provided API
   --list-unsupported          list unsupported API
+  --api-info=name             show Perl API portability information
 
 =head1 COMPATIBILITY
 
@@ -131,6 +132,11 @@ Lists the API elements that are known not to be supported by
 F<ppport.h> and below which version of Perl they probably
 won't be available or work.
 
+=head2 --api-info=I<name>
+
+Show portability information for API elements matching I<name>.
+I<name> is treated as a Perl regular expression.
+
 =head1 DESCRIPTION
 
 In order for a Perl extension (XS) module to be as portable as possible
index 8dd045f..1d8f6d3 100644 (file)
@@ -1,8 +1,8 @@
 ################################################################################
 ##
-##  $Revision: 21 $
+##  $Revision: 22 $
 ##  $Author: mhx $
-##  $Date: 2004/08/21 13:26:21 +0200 $
+##  $Date: 2004/10/14 20:16:03 +0200 $
 ##
 ################################################################################
 ##