summaryrefslogtreecommitdiff
path: root/ext/Devel
diff options
context:
space:
mode:
authorMarcus Holland-Moritz <mhx-perl@gmx.net>2004-12-29 13:46:36 +0000
committerMarcus Holland-Moritz <mhx-perl@gmx.net>2004-12-29 13:46:36 +0000
commit04fc8b947beae2156e7c7e365624c64a8b90cd70 (patch)
treea80125770da8d714d68619e4fe695b660c9e084d /ext/Devel
parentdb0f2be49373138d6e6d3c0766652079b73f7811 (diff)
downloadperl-04fc8b947beae2156e7c7e365624c64a8b90cd70.tar.gz
Upgrade to Devel::PPPort 3.04
p4raw-id: //depot/perl@23700
Diffstat (limited to 'ext/Devel')
-rwxr-xr-xext/Devel/PPPort/Changes7
-rw-r--r--ext/Devel/PPPort/META.yml2
-rw-r--r--ext/Devel/PPPort/PPPort.pm46
-rw-r--r--ext/Devel/PPPort/PPPort_pm.PL2
-rw-r--r--ext/Devel/PPPort/TODO3
-rw-r--r--ext/Devel/PPPort/parts/inc/SvPV6
-rw-r--r--ext/Devel/PPPort/parts/inc/ppphbin40
-rw-r--r--ext/Devel/PPPort/parts/inc/ppphdoc10
-rw-r--r--ext/Devel/PPPort/parts/inc/ppphtest4
9 files changed, 105 insertions, 15 deletions
diff --git a/ext/Devel/PPPort/Changes b/ext/Devel/PPPort/Changes
index e1addf829a..a21b120c6c 100755
--- a/ext/Devel/PPPort/Changes
+++ b/ext/Devel/PPPort/Changes
@@ -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
diff --git a/ext/Devel/PPPort/META.yml b/ext/Devel/PPPort/META.yml
index c0e2f44190..c18fa4feac 100644
--- a/ext/Devel/PPPort/META.yml
+++ b/ext/Devel/PPPort/META.yml
@@ -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:
diff --git a/ext/Devel/PPPort/PPPort.pm b/ext/Devel/PPPort/PPPort.pm
index 073f34e2e1..514cbf5241 100644
--- a/ext/Devel/PPPort/PPPort.pm
+++ b/ext/Devel/PPPort/PPPort.pm
@@ -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
diff --git a/ext/Devel/PPPort/PPPort_pm.PL b/ext/Devel/PPPort/PPPort_pm.PL
index 06b143dc07..8733c448fb 100644
--- a/ext/Devel/PPPort/PPPort_pm.PL
+++ b/ext/Devel/PPPort/PPPort_pm.PL
@@ -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);
diff --git a/ext/Devel/PPPort/TODO b/ext/Devel/PPPort/TODO
index 8af9477cae..bd09e7c46f 100644
--- a/ext/Devel/PPPort/TODO
+++ b/ext/Devel/PPPort/TODO
@@ -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
diff --git a/ext/Devel/PPPort/parts/inc/SvPV b/ext/Devel/PPPort/parts/inc/SvPV
index 97e0a28cc3..34aa90f058 100644
--- a/ext/Devel/PPPort/parts/inc/SvPV
+++ b/ext/Devel/PPPort/parts/inc/SvPV
@@ -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)
diff --git a/ext/Devel/PPPort/parts/inc/ppphbin b/ext/Devel/PPPort/parts/inc/ppphbin
index 4615d8a845..384f126ffe 100644
--- a/ext/Devel/PPPort/parts/inc/ppphbin
+++ b/ext/Devel/PPPort/parts/inc/ppphbin
@@ -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) {
diff --git a/ext/Devel/PPPort/parts/inc/ppphdoc b/ext/Devel/PPPort/parts/inc/ppphdoc
index 70ed7b4560..bf0b18cebb 100644
--- a/ext/Devel/PPPort/parts/inc/ppphdoc
+++ b/ext/Devel/PPPort/parts/inc/ppphdoc
@@ -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
diff --git a/ext/Devel/PPPort/parts/inc/ppphtest b/ext/Devel/PPPort/parts/inc/ppphtest
index 8dd045f36e..1d8f6d31d5 100644
--- a/ext/Devel/PPPort/parts/inc/ppphtest
+++ b/ext/Devel/PPPort/parts/inc/ppphtest
@@ -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 $
##
################################################################################
##