Upgrade to Devel::PPPort 3.19_02
Marcus Holland-Moritz [Sun, 7 Mar 2010 12:48:24 +0000 (13:48 +0100)]
91 files changed:
MANIFEST
cpan/Devel-PPPort/Changes
cpan/Devel-PPPort/HACKERS
cpan/Devel-PPPort/Makefile.PL
cpan/Devel-PPPort/PPPort_pm.PL
cpan/Devel-PPPort/PPPort_xs.PL
cpan/Devel-PPPort/README
cpan/Devel-PPPort/apicheck_c.PL
cpan/Devel-PPPort/devel/buildperl.pl
cpan/Devel-PPPort/devel/devtools.pl
cpan/Devel-PPPort/devel/mkapidoc.sh
cpan/Devel-PPPort/devel/mktodo
cpan/Devel-PPPort/devel/mktodo.pl
cpan/Devel-PPPort/devel/regenerate
cpan/Devel-PPPort/devel/scanprov
cpan/Devel-PPPort/mktests.PL
cpan/Devel-PPPort/module2.c
cpan/Devel-PPPort/module3.c
cpan/Devel-PPPort/parts/apicheck.pl
cpan/Devel-PPPort/parts/apidoc.fnc
cpan/Devel-PPPort/parts/base/5004000
cpan/Devel-PPPort/parts/base/5004050
cpan/Devel-PPPort/parts/base/5006000
cpan/Devel-PPPort/parts/base/5008009 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5009005
cpan/Devel-PPPort/parts/base/5010001 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5011000
cpan/Devel-PPPort/parts/base/5011001 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5011002 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5011003 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5011004 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5011005 [new file with mode: 0644]
cpan/Devel-PPPort/parts/embed.fnc
cpan/Devel-PPPort/parts/inc/HvNAME
cpan/Devel-PPPort/parts/inc/MY_CXT
cpan/Devel-PPPort/parts/inc/SvPV
cpan/Devel-PPPort/parts/inc/SvREFCNT
cpan/Devel-PPPort/parts/inc/Sv_set
cpan/Devel-PPPort/parts/inc/call
cpan/Devel-PPPort/parts/inc/cop
cpan/Devel-PPPort/parts/inc/exception
cpan/Devel-PPPort/parts/inc/format
cpan/Devel-PPPort/parts/inc/grok
cpan/Devel-PPPort/parts/inc/gv
cpan/Devel-PPPort/parts/inc/limits
cpan/Devel-PPPort/parts/inc/mPUSH
cpan/Devel-PPPort/parts/inc/magic
cpan/Devel-PPPort/parts/inc/memory
cpan/Devel-PPPort/parts/inc/misc
cpan/Devel-PPPort/parts/inc/newCONSTSUB
cpan/Devel-PPPort/parts/inc/newRV
cpan/Devel-PPPort/parts/inc/newSV_type
cpan/Devel-PPPort/parts/inc/newSVpv
cpan/Devel-PPPort/parts/inc/podtest
cpan/Devel-PPPort/parts/inc/ppphbin
cpan/Devel-PPPort/parts/inc/ppphdoc
cpan/Devel-PPPort/parts/inc/ppphtest
cpan/Devel-PPPort/parts/inc/pv_tools
cpan/Devel-PPPort/parts/inc/pvs
cpan/Devel-PPPort/parts/inc/shared_pv
cpan/Devel-PPPort/parts/inc/snprintf
cpan/Devel-PPPort/parts/inc/sprintf
cpan/Devel-PPPort/parts/inc/strlfuncs
cpan/Devel-PPPort/parts/inc/sv_xpvf
cpan/Devel-PPPort/parts/inc/threads
cpan/Devel-PPPort/parts/inc/uv
cpan/Devel-PPPort/parts/inc/variables
cpan/Devel-PPPort/parts/inc/version
cpan/Devel-PPPort/parts/inc/warn
cpan/Devel-PPPort/parts/ppport.fnc
cpan/Devel-PPPort/parts/ppptools.pl
cpan/Devel-PPPort/parts/todo/5006000
cpan/Devel-PPPort/parts/todo/5008009 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5009002
cpan/Devel-PPPort/parts/todo/5009003
cpan/Devel-PPPort/parts/todo/5009005
cpan/Devel-PPPort/parts/todo/5010001 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5011000
cpan/Devel-PPPort/parts/todo/5011001 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5011002 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5011003 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5011004 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5011005 [new file with mode: 0644]
cpan/Devel-PPPort/ppport_h.PL
cpan/Devel-PPPort/soak
cpan/Devel-PPPort/t/gv.t
cpan/Devel-PPPort/t/magic.t
cpan/Devel-PPPort/t/memory.t
cpan/Devel-PPPort/t/ppphtest.t
cpan/Devel-PPPort/t/pvs.t
cpan/Devel-PPPort/typemap

index 5b9d1ea..a2eda47 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -514,6 +514,7 @@ cpan/Devel-PPPort/parts/base/5008005        Devel::PPPort baseline todo file
 cpan/Devel-PPPort/parts/base/5008006   Devel::PPPort baseline todo file
 cpan/Devel-PPPort/parts/base/5008007   Devel::PPPort baseline todo file
 cpan/Devel-PPPort/parts/base/5008008   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5008009   Devel::PPPort baseline todo file
 cpan/Devel-PPPort/parts/base/5009000   Devel::PPPort baseline todo file
 cpan/Devel-PPPort/parts/base/5009001   Devel::PPPort baseline todo file
 cpan/Devel-PPPort/parts/base/5009002   Devel::PPPort baseline todo file
@@ -521,7 +522,13 @@ cpan/Devel-PPPort/parts/base/5009003       Devel::PPPort baseline todo file
 cpan/Devel-PPPort/parts/base/5009004   Devel::PPPort baseline todo file
 cpan/Devel-PPPort/parts/base/5009005   Devel::PPPort baseline todo file
 cpan/Devel-PPPort/parts/base/5010000   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5010001   Devel::PPPort baseline todo file
 cpan/Devel-PPPort/parts/base/5011000   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5011001   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5011002   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5011003   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5011004   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5011005   Devel::PPPort baseline todo file
 cpan/Devel-PPPort/parts/embed.fnc      Devel::PPPort Perl API listing
 cpan/Devel-PPPort/parts/inc/call       Devel::PPPort include
 cpan/Devel-PPPort/parts/inc/cop                Devel::PPPort include
@@ -588,6 +595,7 @@ cpan/Devel-PPPort/parts/todo/5008005        Devel::PPPort todo file
 cpan/Devel-PPPort/parts/todo/5008006   Devel::PPPort todo file
 cpan/Devel-PPPort/parts/todo/5008007   Devel::PPPort todo file
 cpan/Devel-PPPort/parts/todo/5008008   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5008009   Devel::PPPort todo file
 cpan/Devel-PPPort/parts/todo/5009000   Devel::PPPort todo file
 cpan/Devel-PPPort/parts/todo/5009001   Devel::PPPort todo file
 cpan/Devel-PPPort/parts/todo/5009002   Devel::PPPort todo file
@@ -595,7 +603,13 @@ cpan/Devel-PPPort/parts/todo/5009003       Devel::PPPort todo file
 cpan/Devel-PPPort/parts/todo/5009004   Devel::PPPort todo file
 cpan/Devel-PPPort/parts/todo/5009005   Devel::PPPort todo file
 cpan/Devel-PPPort/parts/todo/5010000   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5010001   Devel::PPPort todo file
 cpan/Devel-PPPort/parts/todo/5011000   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5011001   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5011002   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5011003   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5011004   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5011005   Devel::PPPort todo file
 cpan/Devel-PPPort/ppport_h.PL          Devel::PPPort ppport.h writer
 cpan/Devel-PPPort/PPPort_pm.PL         Devel::PPPort PPPort.pm writer
 cpan/Devel-PPPort/PPPort.xs            Devel::PPPort dummy PPPort.xs
index fb8ba3a..31f41cd 100644 (file)
@@ -1,3 +1,26 @@
+3.19_02 - 2010-03-07
+
+    * fix a warning emitted by the test suite with older perls
+    * added support for the following API
+        newSVpvs_share
+        get_cvn_flags
+        get_cvs
+      (thanks to Goro Fuji for providing a patch to
+      implement all of these, fixes CPAN #47174)
+
+3.19_01 - 2010-02-20
+
+    * fix CPAN #50763: mistaken use of $[
+      (thanks to Zephram for spotting this)
+    * remove spurious PUSHMARK from Perl_ppaddr_t
+      (thanks to Gerard Goossen for providing a patch)
+    * improved support for newer compilers in buildperl.pl
+      (thanks to Philippe Bruhat (BooK) for providing a patch)
+    * added support for the following API
+        memEQs
+        memNEs
+    * lots of small toolchain updates
+
 3.19 - 2009-06-14
 
     * updated base/todo files
index 540947f..4a620ba 100644 (file)
@@ -11,15 +11,15 @@ lying around in this distribution.
 
 =head1 DESCRIPTION
 
-=head2 How to build 114 versions of Perl
+=head2 How to build 136 versions of Perl
 
 C<Devel::PPPort> supports Perl versions between 5.003 and bleadperl.
 To guarantee this support, I need some of these versions on my
-machine. I currently have 114 different Perl version/configuration
+machine. I currently have 136 different Perl version/configuration
 combinations installed on my laptop.
 
 As many of the old Perl distributions need patching to compile
-cleanly on newer systems (and because building 114 Perls by hand
+cleanly on newer systems (and because building 136 Perls by hand
 just isn't fun), I wrote a tool to build all the different
 versions and configurations. You can find it in F<devel/buildperl.pl>.
 It can currently build the following Perl releases:
@@ -148,7 +148,7 @@ in the root directory of the distribution.
 Finally, add the remaining baseline information by running
 
     perl Makefile.PL && make
-    perl devel/scanprov write
+    perl devel/scanprov --mode=write
 
 =back
 
@@ -309,7 +309,7 @@ module in the core:
 
 =head1 COPYRIGHT
 
-Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 
 Version 2.x, Copyright (C) 2001, Paul Marquess.
 
index 67eebc1..8a77ae5 100644 (file)
@@ -4,13 +4,13 @@
 #
 ################################################################################
 #
-#  $Revision: 30 $
+#  $Revision: 32 $
 #  $Author: mhx $
-#  $Date: 2009/06/12 04:07:05 +0200 $
+#  $Date: 2010/03/07 13:15:42 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
index fcc8671..b77462b 100644 (file)
@@ -4,13 +4,13 @@
 #
 ################################################################################
 #
-#  $Revision: 65 $
+#  $Revision: 67 $
 #  $Author: mhx $
-#  $Date: 2009/06/12 04:10:36 +0200 $
+#  $Date: 2010/03/07 13:15:41 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -126,7 +126,7 @@ $data =~ s{^__UNSUPPORTED_API__(\s*?)^}
           {join "\n", @todo}gem;
 
 $data =~ s{__MIN_PERL__}{5.003}g;
-$data =~ s{__MAX_PERL__}{5.10.0}g;
+$data =~ s{__MAX_PERL__}{5.11.5}g;
 
 open FH, ">PPPort.pm" or die "PPPort.pm: $!\n";
 print FH $data;
@@ -372,13 +372,13 @@ __DATA__
 #
 ################################################################################
 #
-#  $Revision: 65 $
+#  $Revision: 67 $
 #  $Author: mhx $
-#  $Date: 2009/06/12 04:10:36 +0200 $
+#  $Date: 2010/03/07 13:15:41 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -515,7 +515,7 @@ Version 3.x was ported back to CPAN by Marcus Holland-Moritz.
 
 =head1 COPYRIGHT
 
-Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 
 Version 2.x, Copyright (C) 2001, Paul Marquess.
 
@@ -535,7 +535,7 @@ package Devel::PPPort;
 use strict;
 use vars qw($VERSION $data);
 
-$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.19 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
+$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.19_02 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
 
 sub _init_data
 {
index 8d9fd4f..f1921c8 100644 (file)
@@ -4,13 +4,13 @@
 #
 ################################################################################
 #
-#  $Revision: 15 $
+#  $Revision: 16 $
 #  $Author: mhx $
-#  $Date: 2009/01/18 14:10:48 +0100 $
+#  $Date: 2010/03/07 13:15:41 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -93,13 +93,13 @@ __DATA__
 *
 ********************************************************************************
 *
-*  $Revision: 15 $
+*  $Revision: 16 $
 *  $Author: mhx $
-*  $Date: 2009/01/18 14:10:48 +0100 $
+*  $Date: 2010/03/07 13:15:41 +0100 $
 *
 ********************************************************************************
 *
-*  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+*  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 *  Version 2.x, Copyright (C) 2001, Paul Marquess.
 *  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 *
index fc24309..2ccd6af 100644 (file)
@@ -69,7 +69,7 @@ to create a ticket for the module.
 5. COPYRIGHT
 ------------
 
-Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 Version 2.x, Copyright (C) 2001, Paul Marquess.
 Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 
index e4d861e..1abf66c 100644 (file)
@@ -4,13 +4,13 @@
 #
 ################################################################################
 #
-#  $Revision: 11 $
+#  $Revision: 12 $
 #  $Author: mhx $
-#  $Date: 2009/01/18 14:10:49 +0100 $
+#  $Date: 2010/03/07 13:15:41 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
index 49b7fbb..3dd0c75 100644 (file)
@@ -5,13 +5,13 @@
 #
 ################################################################################
 #
-#  $Revision: 15 $
+#  $Revision: 18 $
 #  $Author: mhx $
-#  $Date: 2009/01/18 14:10:50 +0100 $
+#  $Date: 2010/03/07 13:15:42 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -132,6 +132,25 @@ my @patch = (
               [ \&patch_sysv ],
             ],
   },
+  {
+    perl => [
+              qr/^5\.004_05$/,
+              qr/^5\.005(?:_0[1-4])?$/,
+              qr/^5\.6\.[01]$/,
+            ],
+    subs => [
+              [ \&patch_configure ],
+              [ \&patch_makedepend_lc ],
+            ],
+  },
+  {
+    perl => [
+              '5.8.0',
+            ],
+    subs => [
+              [ \&patch_makedepend_lc ],
+            ],
+  },
 );
 
 my(%perl, @perls);
@@ -176,7 +195,7 @@ else {
 }
 
 find(sub {
-  /^(perl-?(5\..*))\.tar\.(gz|bz2)$/ or return;
+  /^(perl-?(5\..*))\.tar\.(gz|bz2|lzma)$/ or return;
   $perl{$1} = { version => $2, source => $File::Find::name, compress => $3 };
 }, $opt{source});
 
@@ -338,10 +357,12 @@ sub build_and_install
   my $perl = shift;
   my $prefix = expand($opt{prefix});
 
+  run_or_die(q{sed -i -e "s:\\*/\\*) finc=\\"-I\\`echo \\$file | sed 's#/\\[^/\\]\\*\\$##\\`\\" ;;:*/*) finc=\\"-I\\`echo \\$file | sed 's#/[^/]\\*\\$##'\\`\\" ;;:" makedepend.SH});
+
   print "building perl $perl->{version} ($current{config})\n";
 
   run_or_die("./Configure $config{$current{config}}{config_args} -Dusedevel -Uinstallusrbinperl -Dprefix=$prefix");
-  run_or_die("sed -i -e '/^.*<built-in>/d' -e '/^.*<command line>/d' makefile x2p/makefile");
+  run_or_die("sed -i -e '/^.*<builtin>/d' -e '/^.*<built-in>/d' -e '/^.*<command line>/d' -e '/^.*<command-line>/d' makefile x2p/makefile");
   run_or_die("make all");
   run("make test") if $opt{test};
   if ($opt{install}) {
@@ -425,6 +446,52 @@ END
   }
 }
 
+sub patch_configure
+{
+  patch(<<'END');
+--- Configure
++++ Configure
+@@ -3380,6 +3380,18 @@
+ test "X$gfpthkeep" != Xy && gfpth=""
+ EOSC
++# gcc 3.1 complains about adding -Idirectories that it already knows about,
++# so we will take those off from locincpth.
++case "$gccversion" in
++3*)
++    echo "main(){}">try.c
++    for incdir in `$cc -v -c try.c 2>&1 | \
++       sed '1,/^#include <\.\.\.>/d;/^End of search list/,$d;s/^ //'` ; do
++       locincpth=`echo $locincpth | sed s!$incdir!!`
++    done
++    $rm -f try try.*
++esac
++
+ : What should the include directory be ?
+ echo " "
+ $echo $n "Hmm...  $c"
+END
+}
+
+sub patch_makedepend_lc
+{
+  patch(<<'END');
+--- makedepend.SH
++++ makedepend.SH
+@@ -58,6 +58,10 @@ case $PERL_CONFIG_SH in
+       ;;
+ esac
++# Avoid localized gcc/cc messages
++LC_ALL=C
++export LC_ALL
++
+ # We need .. when we are in the x2p directory if we are using the
+ # cppstdin wrapper script.
+ # Put .. and . first so that we pick up the present cppstdin, not
+END
+}
+
 sub patch
 {
   my($patch) = @_;
@@ -528,7 +595,7 @@ options, use:
 
 =head1 COPYRIGHT
 
-Copyright (c) 2004-2009, Marcus Holland-Moritz.
+Copyright (c) 2004-2010, Marcus Holland-Moritz.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
index a87c172..65011d6 100644 (file)
@@ -4,13 +4,13 @@
 #
 ################################################################################
 #
-#  $Revision: 5 $
+#  $Revision: 6 $
 #  $Author: mhx $
-#  $Date: 2009/01/18 14:10:50 +0100 $
+#  $Date: 2010/03/07 13:15:42 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
index a4de2b4..1dd27f2 100644 (file)
@@ -5,13 +5,13 @@
 #
 ################################################################################
 #
-#  $Revision: 13 $
+#  $Revision: 14 $
 #  $Author: mhx $
-#  $Date: 2009/01/18 14:10:50 +0100 $
+#  $Date: 2010/03/07 13:15:43 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
index d2bf8b8..4a2e394 100644 (file)
@@ -5,13 +5,13 @@
 #
 ################################################################################
 #
-#  $Revision: 16 $
+#  $Revision: 18 $
 #  $Author: mhx $
-#  $Date: 2009/01/18 14:10:50 +0100 $
+#  $Date: 2010/03/07 13:15:43 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -29,20 +29,23 @@ our %opt = (
   base    => 0,
   check   => 1,
   verbose => 0,
+  install => '/tmp/perl/install/default',
+  blead   => 'bleadperl',
 );
 
-GetOptions(\%opt, qw( base check! verbose )) or die;
+GetOptions(\%opt, qw( base check! verbose install=s blead=s blead-version=s )) or die;
 
 identify();
 
 my $outdir = 'parts/todo';
 
-my $install = '/tmp/perl/install/default';
-# my $install = '/tmp/perl/install/thread';
-
 my @perls = sort { $b->{version} <=> $a->{version} }
             map { { version => `$_ -e 'printf "%.6f", \$]'`, path => $_ } }
-            ('bleadperl', glob "$install/*/bin/perl5.*");
+            ($opt{blead}, glob "$opt{install}/*/bin/perl5.*");
+
+if (exists $opt{'blead-version'}) {
+  $perls[0]{version} = $opt{'blead-version'};
+}
 
 for (1 .. $#perls) {
   $perls[$_]{todo} = $perls[$_-1]{version};
index 156a1c8..51f855c 100644 (file)
@@ -5,13 +5,13 @@
 #
 ################################################################################
 #
-#  $Revision: 16 $
+#  $Revision: 17 $
 #  $Author: mhx $
-#  $Date: 2009/01/18 14:10:51 +0100 $
+#  $Date: 2010/03/07 13:15:43 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
index 3176505..1ab0053 100644 (file)
@@ -5,13 +5,13 @@
 #
 ################################################################################
 #
-#  $Revision: 8 $
+#  $Revision: 10 $
 #  $Author: mhx $
-#  $Date: 2009/01/18 14:10:50 +0100 $
+#  $Date: 2010/03/07 13:15:42 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -33,7 +33,7 @@ our %opt = (
   verbose => 0,
 );
 
-GetOptions(\%opt, qw( check! verbose )) or die pod2usage();
+GetOptions(\%opt, qw( check! verbose install=s blead=s blead-version=s )) or die pod2usage();
 
 identify();
 
@@ -83,9 +83,15 @@ for my $dir (qw( base todo )) {
   }
 }
 
+my @perlargs;
+push @perlargs, "--install=$opt{install}" if exists $opt{install};
+push @perlargs, "--blead=$opt{blead}" if exists $opt{blead};
+
 my $T0 = time;
 my @args = ddverbose();
 push @args, '--nocheck' unless $opt{check};
+push @args, "--blead-version=$opt{'blead-version'}" if exists $opt{'blead-version'};
+push @args, @perlargs;
 
 print "\nBuilding baseline files...\n\n";
 
@@ -113,7 +119,7 @@ print "\nAdding remaining baseline info...\n\n";
 
 unless (runperl('Makefile.PL') and
         runtool('make') and
-        runperl('devel/scanprov', 'write')) {
+        runperl('devel/scanprov', '--mode=write', @perlargs)) {
   print "\nSomething went wrong while adding the baseline info.\n";
   quit_now();
 }
@@ -148,7 +154,7 @@ regenerate - Automatically regeneate Devel::PPPort's API information
 
 =head1 COPYRIGHT
 
-Copyright (c) 2006-2009, Marcus Holland-Moritz.
+Copyright (c) 2006-2010, Marcus Holland-Moritz.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
index 19d2944..b958eca 100644 (file)
@@ -5,13 +5,13 @@
 #
 ################################################################################
 #
-#  $Revision: 9 $
+#  $Revision: 11 $
 #  $Author: mhx $
-#  $Date: 2009/01/18 14:10:50 +0100 $
+#  $Date: 2010/03/07 13:15:42 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
 ################################################################################
 
 use strict;
+use Getopt::Long;
+
 require 'parts/ppptools.pl';
 
-die "Usage: $0 [check|write]\n" unless @ARGV && $ARGV[0] =~ /^(check|write)$/;
-my $mode = $1;
+our %opt = (
+  mode    => 'check',
+  install => '/tmp/perl/install/default',
+  blead   => 'bleadperl',
+);
+
+GetOptions(\%opt, qw( install=s mode=s blead=s )) or die;
+
+my $write = $opt{mode} eq 'write';
 
 my %embed = map { ( $_->{name} => 1 ) }
             parse_embed(qw(parts/embed.fnc parts/apidoc.fnc parts/ppport.fnc ));
@@ -33,11 +42,9 @@ my @provided = grep { !exists $embed{$_} }
                map { /^(\w+)/ ? $1 : () }
                `$^X ppport.h --list-provided`;
 
-my $install = '/tmp/perl/install/default';
-
 my @perls = sort { $b->{version} <=> $a->{version} }
             map { { version => `$_ -e 'printf "%.6f", \$]'`, path => $_ } }
-            ('bleadperl', glob "$install/*/bin/perl5.*");
+            ($opt{blead}, glob "$opt{install}/*/bin/perl5.*");
 
 for (1 .. $#perls) {
   $perls[$_]{todo} = $perls[$_-1]{version};
@@ -68,10 +75,10 @@ for my $v (keys %v) {
   $file = "$out/$file";
   -e $file or die "non-existent: $file\n";
   print "-- $file --\n";
-  $mode eq 'write' and (open F, ">>$file" or die "$file: $!\n");
+  $write and (open F, ">>$file" or die "$file: $!\n");
   for (@new) {
     print "adding $_\n";
-    $mode eq 'write' and printf F "%-30s # added by $0\n", $_;
+    $write and printf F "%-30s # added by $0\n", $_;
   }
-  $mode eq 'write' and close F;
+  $write and close F;
 }
index 82ccab3..09fc71d 100644 (file)
@@ -4,13 +4,13 @@
 #
 ################################################################################
 #
-#  $Revision: 31 $
+#  $Revision: 33 $
 #  $Author: mhx $
-#  $Date: 2009/06/11 20:53:42 +0200 $
+#  $Date: 2010/03/07 13:15:41 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -77,6 +77,8 @@ __DATA__
 
 BEGIN {
   if ($ENV{'PERL_CORE'}) {
+    chdir 't' if -d 't';
+    @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
     require Config; import Config;
     use vars '%Config';
     if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
index e5f4ef6..1053017 100644 (file)
@@ -4,13 +4,13 @@
 *
 ********************************************************************************
 *
-*  $Revision: 12 $
+*  $Revision: 13 $
 *  $Author: mhx $
-*  $Date: 2009/01/18 14:10:49 +0100 $
+*  $Date: 2010/03/07 13:15:41 +0100 $
 *
 ********************************************************************************
 *
-*  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+*  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 *  Version 2.x, Copyright (C) 2001, Paul Marquess.
 *  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 *
index bcfbcd0..6a7e89a 100644 (file)
@@ -4,13 +4,13 @@
 *
 ********************************************************************************
 *
-*  $Revision: 12 $
+*  $Revision: 13 $
 *  $Author: mhx $
-*  $Date: 2009/01/18 14:10:49 +0100 $
+*  $Date: 2010/03/07 13:15:41 +0100 $
 *
 ********************************************************************************
 *
-*  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+*  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 *  Version 2.x, Copyright (C) 2001, Paul Marquess.
 *  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 *
index e6caab5..e93fbe8 100644 (file)
@@ -5,13 +5,13 @@
 #
 ################################################################################
 #
-#  $Revision: 35 $
+#  $Revision: 37 $
 #  $Author: mhx $
-#  $Date: 2009/06/12 12:29:35 +0200 $
+#  $Date: 2010/03/07 13:15:43 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -261,7 +261,7 @@ for $f (@f) {
   }
   my $aTHX_args = "$aTHX$args";
 
-  unless ($f->{flags}{'m'} and @arg == 0) {
+  if (!$f->{flags}{'m'} or $f->{flags}{'b'} or @arg > 0) {
     $args = "($args)";
     $aTHX_args = "($aTHX_args)";
   }
index 740e04f..ce5927c 100644 (file)
@@ -41,10 +41,9 @@ Am|bool|SvTRUE|SV* sv
 Am|bool|SvUOK|SV* sv
 Am|bool|SvVOK|SV* sv
 Am|char*|HePV|HE* he|STRLEN len
-Am|char*|HeUTF8|HE* he|STRLEN len
+Am|char*|HeUTF8|HE* he
 Am|char*|HvNAME|HV* stash
 Am|char*|SvEND|SV* sv
-Am|char*|SvGAMAGIC|SV* sv
 Am|char *|SvGROW|SV* sv|STRLEN len
 Am|char*|SvPVbyte_force|SV* sv|STRLEN len
 Am|char*|SvPVbyte_nolen|SV* sv
@@ -84,6 +83,7 @@ Amn|I32|ix
 Amn|IV|POPi
 Amn|long|POPl
 Amn|NV|POPn
+Amn|Perl_ophook_t|PL_opfreehook
 Amn|STRLEN|PL_na
 Amn|SV|PL_sv_no
 Amn|SV|PL_sv_undef
@@ -143,6 +143,7 @@ Ams||XSRETURN_UNDEF
 Ams||XSRETURN_YES
 Ams||XS_VERSION_BOOTCHECK
 Am|U32|HeHASH|HE* he
+Am|U32|SvGAMAGIC|SV* sv
 Am|U32|SvIOKp|SV* sv
 Am|U32|SvIOK|SV* sv
 Am|U32|SvNIOKp|SV* sv
@@ -188,8 +189,10 @@ Am|UV|SvUVX|SV* sv
 AmU||XCPT_CATCH
 AmU||XCPT_TRY_END
 AmU||XCPT_TRY_START
+AmUx|Perl_keyword_plugin_t|PL_keyword_plugin
 AmU||XS
 AmU||XS_VERSION
+AmU|yy_parser *|PL_parser
 Am|void *|CopyD|void* src|void* dest|int nitems|type
 Am|void|Copy|void* src|void* dest|int nitems|type
 Am|void|EXTEND|SP|int nitems
@@ -295,6 +298,10 @@ Am|void|XST_mUNDEF|int pos
 Am|void|XST_mYES|int pos
 Am|void *|ZeroD|void* dest|int nitems|type
 Am|void|Zero|void* dest|int nitems|type
+AmxU|char *|PL_parser-E<gt>bufend
+AmxU|char *|PL_parser-E<gt>bufptr
+AmxU|char *|PL_parser-E<gt>linestart
+AmxU|SV *|PL_parser-E<gt>linestr
 m|AV *|CvPADLIST|CV *cv
 m|bool|CvWEAKOUTSIDE|CV *cv
 m|char *|PAD_COMPNAME_PV|PADOFFSET po
index 5350285..c16c360 100644 (file)
@@ -24,7 +24,7 @@ XPUSHu                         # U
 block_gimme                    # E
 call_list                      # E
 cv_const_sv                    # E
-delimcpy                       # E
+delimcpy                       # U
 do_open                        # E (Perl_do_open)
 gv_autoload4                   # E
 gv_efullname3                  # U
@@ -39,7 +39,7 @@ hv_free_ent                    # E
 hv_iterkeysv                   # E
 hv_ksplit                      # E
 hv_store_ent                   # U
-ibcmp_locale                   # E
+ibcmp_locale                   # U
 my_failure_exit                # E
 my_memcmp                      # U
 my_pclose                      # E (Perl_my_pclose)
index f0e0456..38f93f6 100644 (file)
@@ -7,7 +7,7 @@ SvGETMAGIC                     # U
 do_binmode                     # E
 newCONSTSUB                    # E
 newSVpvn                       # E
-save_aelem                     # E
+save_aelem                     # U
 save_helem                     # U
 sv_catpv_mg                    # E
 sv_catpvn_mg                   # U
index 924da63..b5951d1 100644 (file)
@@ -68,8 +68,6 @@ init_i18nl10n                  # E (perl_init_i18nl10n)
 init_i18nl14n                  # E (perl_init_i18nl14n)
 is_uni_alnum                   # E
 is_uni_alnum_lc                # E
-is_uni_alnumc                  # E
-is_uni_alnumc_lc               # E
 is_uni_alpha                   # E
 is_uni_alpha_lc                # E
 is_uni_ascii                   # E
@@ -95,10 +93,9 @@ is_uni_upper_lc                # E
 is_uni_xdigit                  # E
 is_uni_xdigit_lc               # E
 is_utf8_alnum                  # E
-is_utf8_alnumc                 # E
 is_utf8_alpha                  # E
 is_utf8_ascii                  # E
-is_utf8_char                   # E
+is_utf8_char                   # U
 is_utf8_cntrl                  # E
 is_utf8_digit                  # E
 is_utf8_graph                  # E
diff --git a/cpan/Devel-PPPort/parts/base/5008009 b/cpan/Devel-PPPort/parts/base/5008009
new file mode 100644 (file)
index 0000000..129e018
--- /dev/null
@@ -0,0 +1 @@
+5.008009
index 68ceff2..df10205 100644 (file)
@@ -1,4 +1,5 @@
 5.009005
+PL_parser                      # E
 Perl_signbit                   # U
 SvRX                           # U
 SvRXOK                         # U
@@ -30,6 +31,7 @@ savesharedpvn                  # U
 scan_vstring                   # E (Perl_scan_vstring)
 upg_version                    # E (Perl_upg_version)
 PERL_PV_ESCAPE_RE              # added by devel/scanprov
-PL_parser                      # added by devel/scanprov
 SV_COW_SHARED_HASH_KEYS        # added by devel/scanprov
 SVfARG                         # added by devel/scanprov
+memEQs                         # added by devel/scanprov
+memNEs                         # added by devel/scanprov
diff --git a/cpan/Devel-PPPort/parts/base/5010001 b/cpan/Devel-PPPort/parts/base/5010001
new file mode 100644 (file)
index 0000000..df660f9
--- /dev/null
@@ -0,0 +1,17 @@
+5.010001
+HeUTF8                         # U
+croak_xs_usage                 # U
+mPUSHs                         # U
+mXPUSHs                        # U
+mro_get_from_name              # U
+mro_get_private_data           # U
+mro_register                   # U
+mro_set_mro                    # U
+mro_set_private_data           # U
+newSVpvn_flags                 # U
+newSVpvn_utf8                  # U
+newSVpvs_flags                 # U
+save_padsv_and_mortalize       # U
+save_pushptr                   # U
+sv_insert_flags                # U
+DEFSV_set                      # added by devel/scanprov
index fe92c15..246315c 100644 (file)
@@ -1,52 +1,16 @@
 5.011000
-HeUTF8                         # U
-MULTICALL                      # E
-PERL_SYS_TERM                  # E
-POP_MULTICALL                  # E
-PUSH_MULTICALL                 # E
+Gv_AMupdate                    # E (Perl_Gv_AMupdate)
+PL_opfreehook                  # E
 SvOOK_offset                   # U
 av_iter_p                      # U
-croak_xs_usage                 # U
 fetch_cop_label                # U
+gv_add_by_type                 # U
 gv_fetchmethod_flags           # U
-hv_assert                      # U
-mPUSHs                         # U
-mXPUSHs                        # U
-mro_get_from_name              # U
-mro_get_private_data           # U
-mro_register                   # U
-mro_set_mro                    # U
-mro_set_private_data           # U
-newSVpvn_flags                 # U
-newSVpvn_utf8                  # U
-newSVpvs_flags                 # U
-pad_sv                         # U
+is_ascii_string                # U
 pregfree2                      # U
-ref                            # U (Perl_ref)
 save_adelete                   # U
+save_aelem_flags               # U
+save_hdelete                   # U
 save_helem_flags               # U
-save_padsv_and_mortalize       # U
-save_pushptr                   # U
-stashpv_hvname_match           # U
-sv_insert_flags                # U
-sv_magic_portable              # U
 sv_utf8_upgrade_flags_grow     # U
-DEFSV_set                      # added by devel/scanprov
-PERL_BCDVERSION                # added by devel/scanprov
-PERL_MAGIC_glob                # added by devel/scanprov
-PERL_MAGIC_mutex               # added by devel/scanprov
-PL_bufend                      # added by devel/scanprov
-PL_bufptr                      # added by devel/scanprov
-PL_copline                     # added by devel/scanprov
-PL_error_count                 # added by devel/scanprov
-PL_expect                      # added by devel/scanprov
-PL_in_my                       # added by devel/scanprov
-PL_in_my_stash                 # added by devel/scanprov
-PL_lex_state                   # added by devel/scanprov
-PL_lex_stuff                   # added by devel/scanprov
-PL_linestr                     # added by devel/scanprov
-PL_tokenbuf                    # added by devel/scanprov
-WARN_ASSERTIONS                # added by devel/scanprov
-aTHXR                          # added by devel/scanprov
-aTHXR_                         # added by devel/scanprov
-dTHXR                          # added by devel/scanprov
+get_cvs                        # added by devel/scanprov
diff --git a/cpan/Devel-PPPort/parts/base/5011001 b/cpan/Devel-PPPort/parts/base/5011001
new file mode 100644 (file)
index 0000000..f424093
--- /dev/null
@@ -0,0 +1,6 @@
+5.011001
+ck_warner                      # U
+ck_warner_d                    # U
+is_utf8_perl_space             # U
+is_utf8_perl_word              # U
+is_utf8_posix_digit            # U
diff --git a/cpan/Devel-PPPort/parts/base/5011002 b/cpan/Devel-PPPort/parts/base/5011002
new file mode 100644 (file)
index 0000000..6f76047
--- /dev/null
@@ -0,0 +1,15 @@
+5.011002
+PL_keyword_plugin              # E
+gv_try_downgrade               # U
+lex_bufutf8                    # U
+lex_discard_to                 # U
+lex_grow_linestr               # U
+lex_next_chunk                 # U
+lex_peek_unichar               # U
+lex_read_space                 # U
+lex_read_to                    # U
+lex_read_unichar               # U
+lex_stuff_pvn                  # U
+lex_stuff_sv                   # U
+lex_unstuff                    # U
+pad_findmy                     # E (Perl_pad_findmy)
diff --git a/cpan/Devel-PPPort/parts/base/5011003 b/cpan/Devel-PPPort/parts/base/5011003
new file mode 100644 (file)
index 0000000..3fd94ca
--- /dev/null
@@ -0,0 +1 @@
+5.011003
diff --git a/cpan/Devel-PPPort/parts/base/5011004 b/cpan/Devel-PPPort/parts/base/5011004
new file mode 100644 (file)
index 0000000..2a2e765
--- /dev/null
@@ -0,0 +1,20 @@
+5.011004
+prescan_version                # U
+PERL_BCDVERSION                # added by devel/scanprov
+PERL_MAGIC_glob                # added by devel/scanprov
+PERL_MAGIC_mutex               # added by devel/scanprov
+PL_bufend                      # added by devel/scanprov
+PL_bufptr                      # added by devel/scanprov
+PL_copline                     # added by devel/scanprov
+PL_error_count                 # added by devel/scanprov
+PL_expect                      # added by devel/scanprov
+PL_in_my                       # added by devel/scanprov
+PL_in_my_stash                 # added by devel/scanprov
+PL_lex_state                   # added by devel/scanprov
+PL_lex_stuff                   # added by devel/scanprov
+PL_linestr                     # added by devel/scanprov
+PL_tokenbuf                    # added by devel/scanprov
+WARN_ASSERTIONS                # added by devel/scanprov
+aTHXR                          # added by devel/scanprov
+aTHXR_                         # added by devel/scanprov
+dTHXR                          # added by devel/scanprov
diff --git a/cpan/Devel-PPPort/parts/base/5011005 b/cpan/Devel-PPPort/parts/base/5011005
new file mode 100644 (file)
index 0000000..ed548a7
--- /dev/null
@@ -0,0 +1,9 @@
+5.011005
+MULTICALL                      # E
+PERL_SYS_TERM                  # E
+POP_MULTICALL                  # E
+PUSH_MULTICALL                 # E
+ref                            # U (Perl_ref)
+stashpv_hvname_match           # U
+sv_magic_portable              # U
+sv_pos_u2b_flags               # U
index 68f3817..0e4ec03 100644 (file)
@@ -1,5 +1,7 @@
 : BEGIN {die "You meant to run embed.pl"} # Stop early if fed to perl.
 :
+: This file is processed by embed.pl and autodoc.pl
+:
 : Lines are of the form:
 :    flags|return_type|function_name|arg1|arg2|...|argN
 :
 : Leading and trailing whitespace will be ignored in each component.
 :
 : flags are single letters with following meanings:
-:      A               member of public API
-:      m               Implemented as a macro - no export, no
-:                      proto, no #define
-:      d               function has documentation with its source
-:      s               static function, should have an S_ prefix in
-:                      source file; for macros (m), suffix the usage
-:                      example with a semicolon
-:      n               has no implicit interpreter/thread context argument
-:      p               function has a Perl_ prefix
-:      f               function takes printf style format string, varargs
-:      r               function never returns
-:      o               has no compatibility macro (#define foo Perl_foo)
-:      x               not exported
-:      X               explicitly exported
-:      M               may change
-:      E               visible to extensions included in the Perl core
-:      b               binary backward compatibility; function is a macro
-:                      but has also Perl_ implementation (which is exported)
-:      U               suppress usage example in autogenerated documentation
-:      a               allocates memory a la malloc/calloc.  Is also "R".
-:      R               Return value must not be ignored.
-:      P               pure function: no effects except the return value;
-:                      return value depends only on parms and/or globals
+:
+:   A  Member of public API:
+:
+:         add entry to global.sym (unless x or m);
+:         any doc entry goes in perlapi.pod rather than perlintern.api
+:         makes '#define foo Perl_foo' scope not just for PERL_CORE/PERL_EXT
+:
+:   a  Allocates memory a la malloc/calloc.  Also implies "R":
+:
+:         proto.h: add __attribute__malloc__
+:
+:   b  Binary backward compatibility; function is a macro
+:      but has also Perl_ implementation (which is exported):
+:
+:         add entry to global.sym;
+:         don't define PERL_ARGS_ASSERT_FOO
+:
+:   D  Function is deprecated:
+:
+:         proto.h: add __attribute__deprecated__
+:
+:   d  Function has documentation with its source:
+:
+:         enables 'no docs for foo" warning in autodoc.pl
+:
+:   E  Visible to extensions included in the Perl core:
+:
+:         in embed.h, change "#ifdef PERL_CORE"
+:         into               "#if defined(PERL_CORE) || defined(PERL_EXT)"
+:
+:      Should always be combined with "X" to be usable from dynamically
+:      loaded extensions.
+:
+:   f  Function takes printf style format string, varargs:
+:
+:         proto.h: add __attribute__format__ (or ...null_ok__)
+:
+:   M  May change:
+:
+:         (currently no effect)
+:
+:   m  Implemented as a macro:
+:
+:         suppress proto.h entry
+:         suppress global.sym entry
+:         suppress embed.h entry
+:
+:   n  Has no implicit interpreter/thread context argument:
+:
+:         suppress the pTHX part of "foo(pTHX...)" in proto.h;
+:         In the PERL_IMPLICIT_SYS branch of embed.h, generates
+:             "#define foo Perl_foo",      rather than
+:             "#define foo(a,b,c) Perl_foo(aTHX_ a,b,c)
+:
+:   o  Has no Perl_foo compatibility macro:
+:
+:         embed.h: suppress "#define foo Perl_foo"
+:
+:   P  Pure function: no effects except the return value;
+:      return value depends only on params and/or globals:
+:
+:         proto.h: add __attribute__pure__
+:
+:   p  Function in source code has a Perl_ prefix:
+:
+:         proto.h: function is declared as Perl_foo rather than foo
+:         embed.h: "#define foo Perl_foo" entries added
+:
+:   R  Return value must not be ignored (also implied by 'a' flag):
+:
+:        proto.h: add __attribute__warn_unused_result__
+:
+:   r  Function never returns:
+:
+:        proto.h: add __attribute__noreturn__
+:
+:   s  Static function: function in source code has a S_ prefix:
+:
+:         proto.h: function is declared as S_foo rather than foo,
+:                STATIC is added to declaration;
+:         embed.h: "#define foo S_foo" entries added
+:
+:   U  Suppress usage example in autogenerated documentation
+:
+:         (currently no effect)
+:
+:   X  Explicitly exported:
+:
+:         add entry to global.sym, unless x or m
+:
+:   x  Not exported
+:
+:         suppress entry in global.sym
+:
 : (see also L<perlguts/Internal Functions> for those flags.)
 :
 : Pointer parameters that must not be passed NULLs should be prefixed with NN.
@@ -92,6 +165,7 @@ npR  |MEM_SIZE|malloc_good_size      |size_t nbytes
 
 AnpR   |void*  |get_context
 Anp    |void   |set_context    |NN void *t
+EXpRnP |I32    |regcurly       |NN const char *s
 
 END_EXTERN_C
 
@@ -99,7 +173,7 @@ END_EXTERN_C
 START_EXTERN_C
 #  include "pp_proto.h"
 Ap     |SV*    |amagic_call    |NN SV* left|NN SV* right|int method|int dir
-Ap     |bool   |Gv_AMupdate    |NN HV* stash
+Ap     |int    |Gv_AMupdate    |NN HV* stash|bool destructing
 ApR    |CV*    |gv_handler     |NULLOK HV* stash|I32 id
 : Used in perly.y
 p      |OP*    |append_elem    |I32 optype|NULLOK OP* first|NULLOK OP* last
@@ -164,7 +238,7 @@ Aprd        |void   |croak_xs_usage |NN const CV *const cv \
 
 #if defined(PERL_IMPLICIT_CONTEXT)
 Afnrp  |void   |croak_nocontext|NULLOK const char* pat|...
-Afnp   |OP*    |die_nocontext  |NN const char* pat|...
+Afnp   |OP*    |die_nocontext  |NULLOK const char* pat|...
 Afnp   |void   |deb_nocontext  |NN const char* pat|...
 Afnp   |char*  |form_nocontext |NN const char* pat|...
 Anp    |void   |load_module_nocontext|U32 flags|NN SV* name|NULLOK SV* ver|...
@@ -201,27 +275,23 @@ pPR       |const char*    |get_no_modify
 pPR    |U32*   |get_opargs
 ApPR   |PPADDR_t*|get_ppaddr
 : Used by CXINC, which appears to be in widespread use
-EXpR   |I32    |cxinc
+ApR    |I32    |cxinc
 Afp    |void   |deb            |NN const char* pat|...
 Ap     |void   |vdeb           |NN const char* pat|NULLOK va_list* args
 Ap     |void   |debprofdump
 Ap     |I32    |debop          |NN const OP* o
 Ap     |I32    |debstack
 Ap     |I32    |debstackptrs
-Ap     |char*  |delimcpy       |NN char* to|NN const char* toend|NN const char* from \
+Anp    |char*  |delimcpy       |NN char* to|NN const char* toend|NN const char* from \
                                |NN const char* fromend|int delim|NN I32* retlen
 : Used in op.c, perl.c
 pM     |void   |delete_eval_scope
-: Used in various files
-p      |void   |deprecate      |NN const char *const s
-: Used in various files
-p      |void   |deprecate_old  |NN const char *const s
 Afp    |OP*    |die            |NULLOK const char* pat|...
 #if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
 s      |OP*    |vdie           |NULLOK const char* pat|NULLOK va_list* args
 #endif
 : Used in util.c
-p      |OP*    |die_where      |NULLOK const char* message|STRLEN msglen
+pr     |void   |die_where      |NULLOK SV* msv
 Ap     |void   |dounwind       |I32 cxix
 : FIXME
 pmb    |bool   |do_aexec       |NULLOK SV* really|NN SV** mark|NN SV** sp
@@ -303,6 +373,7 @@ p   |void   |do_vop         |I32 optype|NN SV* sv|NN SV* left|NN SV* right
 p      |OP*    |dofile         |NN OP* term|I32 force_builtin
 ApR    |I32    |dowantarray
 Ap     |void   |dump_all
+p      |void   |dump_all_perl  |bool justperl
 Ap     |void   |dump_eval
 #if defined(DUMP_FDS)
 Ap     |void   |dump_fds       |NN char* s
@@ -312,7 +383,9 @@ Ap  |void   |gv_dump        |NN GV* gv
 Ap     |void   |op_dump        |NN const OP *o
 Ap     |void   |pmop_dump      |NULLOK PMOP* pm
 Ap     |void   |dump_packsubs  |NN const HV* stash
+p      |void   |dump_packsubs_perl     |NN const HV* stash|bool justperl
 Ap     |void   |dump_sub       |NN const GV* gv
+p      |void   |dump_sub_perl  |NN const GV* gv|bool justperl
 Apd    |void   |fbm_compile    |NN SV* sv|U32 flags
 ApdR   |char*  |fbm_instr      |NN unsigned char* big|NN unsigned char* bigend \
                                |NN SV* littlestr|U32 flags
@@ -338,9 +411,10 @@ p  |char*  |getenv_len     |NN const char *env_elem|NN unsigned long *len
 pox    |void   |get_db_sub     |NULLOK SV **svp|NN CV *cv
 Ap     |void   |gp_free        |NULLOK GV* gv
 Ap     |GP*    |gp_ref         |NULLOK GP* gp
-Ap     |GV*    |gv_AVadd       |NN GV* gv
-Ap     |GV*    |gv_HVadd       |NN GV* gv
-Ap     |GV*    |gv_IOadd       |NN GV* gv
+Ap     |GV*    |gv_add_by_type |NULLOK GV *gv|svtype type
+Apmb   |GV*    |gv_AVadd       |NULLOK GV *gv
+Apmb   |GV*    |gv_HVadd       |NULLOK GV *gv
+Apmb   |GV*    |gv_IOadd       |NULLOK GV* gv
 ApR    |GV*    |gv_autoload4   |NULLOK HV* stash|NN const char* name|STRLEN len|I32 method
 Ap     |void   |gv_check       |NN const HV* stash
 Ap     |void   |gv_efullname   |NN SV* sv|NN const GV* gv
@@ -354,7 +428,7 @@ Apd |GV*    |gv_fetchmeth_autoload  |NULLOK HV* stash|NN const char* name|STRLEN len
 Apdmb  |GV*    |gv_fetchmethod |NN HV* stash|NN const char* name
 Apd    |GV*    |gv_fetchmethod_autoload|NN HV* stash|NN const char* name \
                                |I32 autoload
-ApdM   |GV*    |gv_fetchmethod_flags|NN HV* stash|NN const char* name \
+ApM    |GV*    |gv_fetchmethod_flags|NN HV* stash|NN const char* name \
                                |U32 flags
 Ap     |GV*    |gv_fetchpv     |NN const char *nambeg|I32 add|const svtype sv_type
 Ap     |void   |gv_fullname    |NN SV* sv|NN const GV* gv
@@ -364,6 +438,7 @@ Ap  |void   |gv_fullname4   |NN SV* sv|NN const GV* gv|NULLOK const char* prefix|bool
 pMox   |GP *   |newGP          |NN GV *const gv
 Ap     |void   |gv_init        |NN GV* gv|NULLOK HV* stash|NN const char* name|STRLEN len|int multi
 Ap     |void   |gv_name_set    |NN GV* gv|NN const char *name|U32 len|U32 flags
+Apd    |void   |gv_try_downgrade|NN GV* gv
 Apd    |HV*    |gv_stashpv     |NN const char* name|I32 flags
 Apd    |HV*    |gv_stashpvn    |NN const char* name|U32 namelen|I32 flags
 Apd    |HV*    |gv_stashsv     |NN SV* sv|I32 flags
@@ -419,11 +494,11 @@ Abmd      |SV**   |hv_store       |NULLOK HV *hv|NULLOK const char *key \
                                |I32 klen|NULLOK SV *val|U32 hash
 Abmd   |HE*    |hv_store_ent   |NULLOK HV *hv|NULLOK SV *key|NULLOK SV *val\
                                |U32 hash
-AbmdM  |SV**   |hv_store_flags |NULLOK HV *hv|NULLOK const char *key \
+AbmM   |SV**   |hv_store_flags |NULLOK HV *hv|NULLOK const char *key \
                                |I32 klen|NULLOK SV *val|U32 hash|int flags
 Apd    |void   |hv_undef       |NULLOK HV *hv
-ApP    |I32    |ibcmp          |NN const char* a|NN const char* b|I32 len
-ApP    |I32    |ibcmp_locale   |NN const char* a|NN const char* b|I32 len
+AnpP   |I32    |ibcmp          |NN const char* a|NN const char* b|I32 len
+AnpP   |I32    |ibcmp_locale   |NN const char* a|NN const char* b|I32 len
 Apd    |I32    |ibcmp_utf8     |NN const char *s1|NULLOK char **pe1|UV l1 \
                                |bool u1|NN const char *s2|NULLOK char **pe2 \
                                |UV l2|bool u2
@@ -438,7 +513,7 @@ Ap  |void   |init_stacks
 Ap     |void   |init_tm        |NN struct tm *ptm
 : Used in perly.y
 pd     |U32    |intro_my
-ApPR   |char*  |instr          |NN const char* big|NN const char* little
+AnpPR  |char*  |instr          |NN const char* big|NN const char* little
 : Used in sv.c
 p      |bool   |io_close       |NN IO* io|bool not_implicit
 : Used in perly.y
@@ -448,7 +523,6 @@ ApPR        |U32    |to_uni_upper_lc|U32 c
 ApPR   |U32    |to_uni_title_lc|U32 c
 ApPR   |U32    |to_uni_lower_lc|U32 c
 ApPR   |bool   |is_uni_alnum   |UV c
-ApPR   |bool   |is_uni_alnumc  |UV c
 ApPR   |bool   |is_uni_idfirst |UV c
 ApPR   |bool   |is_uni_alpha   |UV c
 ApPR   |bool   |is_uni_ascii   |UV c
@@ -466,7 +540,6 @@ Ap  |UV     |to_uni_title   |UV c|NN U8 *p|NN STRLEN *lenp
 Ap     |UV     |to_uni_lower   |UV c|NN U8 *p|NN STRLEN *lenp
 Ap     |UV     |to_uni_fold    |UV c|NN U8 *p|NN STRLEN *lenp
 ApPR   |bool   |is_uni_alnum_lc|UV c
-ApPR   |bool   |is_uni_alnumc_lc|UV c
 ApPR   |bool   |is_uni_idfirst_lc|UV c
 ApPR   |bool   |is_uni_alpha_lc|UV c
 ApPR   |bool   |is_uni_ascii_lc|UV c
@@ -479,19 +552,22 @@ ApPR      |bool   |is_uni_lower_lc|UV c
 ApPR   |bool   |is_uni_print_lc|UV c
 ApPR   |bool   |is_uni_punct_lc|UV c
 ApPR   |bool   |is_uni_xdigit_lc|UV c
-Apd    |STRLEN |is_utf8_char   |NN const U8 *s
-Apd    |bool   |is_utf8_string |NN const U8 *s|STRLEN len
-Apdmb  |bool   |is_utf8_string_loc|NN const U8 *s|STRLEN len|NULLOK const U8 **p
-Apd    |bool   |is_utf8_string_loclen|NN const U8 *s|STRLEN len|NULLOK const U8 **ep|NULLOK STRLEN *el
+Anpd   |bool   |is_ascii_string|NN const U8 *s|STRLEN len
+Anpd   |STRLEN |is_utf8_char   |NN const U8 *s
+Anpd   |bool   |is_utf8_string |NN const U8 *s|STRLEN len
+Anpdmb |bool   |is_utf8_string_loc|NN const U8 *s|STRLEN len|NULLOK const U8 **p
+Anpd   |bool   |is_utf8_string_loclen|NN const U8 *s|STRLEN len|NULLOK const U8 **ep|NULLOK STRLEN *el
 ApR    |bool   |is_utf8_alnum  |NN const U8 *p
-ApR    |bool   |is_utf8_alnumc |NN const U8 *p
 ApR    |bool   |is_utf8_idfirst|NN const U8 *p
 ApR    |bool   |is_utf8_idcont |NN const U8 *p
 ApR    |bool   |is_utf8_alpha  |NN const U8 *p
 ApR    |bool   |is_utf8_ascii  |NN const U8 *p
 ApR    |bool   |is_utf8_space  |NN const U8 *p
+ApR    |bool   |is_utf8_perl_space     |NN const U8 *p
+ApR    |bool   |is_utf8_perl_word      |NN const U8 *p
 ApR    |bool   |is_utf8_cntrl  |NN const U8 *p
 ApR    |bool   |is_utf8_digit  |NN const U8 *p
+ApR    |bool   |is_utf8_posix_digit    |NN const U8 *p
 ApR    |bool   |is_utf8_graph  |NN const U8 *p
 ApR    |bool   |is_utf8_upper  |NN const U8 *p
 ApR    |bool   |is_utf8_lower  |NN const U8 *p
@@ -499,15 +575,42 @@ ApR       |bool   |is_utf8_print  |NN const U8 *p
 ApR    |bool   |is_utf8_punct  |NN const U8 *p
 ApR    |bool   |is_utf8_xdigit |NN const U8 *p
 ApR    |bool   |is_utf8_mark   |NN const U8 *p
+EXpR   |bool   |is_utf8_X_begin        |NN const U8 *p
+EXpR   |bool   |is_utf8_X_extend       |NN const U8 *p
+EXpR   |bool   |is_utf8_X_prepend      |NN const U8 *p
+EXpR   |bool   |is_utf8_X_non_hangul   |NN const U8 *p
+EXpR   |bool   |is_utf8_X_L            |NN const U8 *p
+EXpR   |bool   |is_utf8_X_LV           |NN const U8 *p
+EXpR   |bool   |is_utf8_X_LVT          |NN const U8 *p
+EXpR   |bool   |is_utf8_X_LV_LVT_V     |NN const U8 *p
+EXpR   |bool   |is_utf8_X_T            |NN const U8 *p
+EXpR   |bool   |is_utf8_X_V            |NN const U8 *p
 : Used in perly.y
 p      |OP*    |jmaybe         |NN OP *o
 : Used in pp.c 
 pP     |I32    |keyword        |NN const char *name|I32 len|bool all_keywords
+#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
+s      |OP*    |opt_scalarhv   |NN OP* rep_op
+s      |OP*    |is_inplace_av  |NN OP* o|NULLOK OP* oright
+#endif
 Ap     |void   |leave_scope    |I32 base
 : Used in pp_ctl.c, and by Data::Alias
 EXp    |void   |lex_end
 : Used in various files
 p      |void   |lex_start      |NULLOK SV* line|NULLOK PerlIO *rsfp|bool new_filter
+: Public lexer API
+AMpd   |bool   |lex_bufutf8
+AMpd   |char*  |lex_grow_linestr|STRLEN len
+AMpd   |void   |lex_stuff_pvn  |NN char* pv|STRLEN len|U32 flags
+AMpd   |void   |lex_stuff_sv   |NN SV* sv|U32 flags
+AMpd   |void   |lex_unstuff    |NN char* ptr
+AMpd   |void   |lex_read_to    |NN char* ptr
+AMpd   |void   |lex_discard_to |NN char* ptr
+AMpd   |bool   |lex_next_chunk |U32 flags
+AMpd   |I32    |lex_peek_unichar|U32 flags
+AMpd   |I32    |lex_read_unichar|U32 flags
+AMpd   |void   |lex_read_space |U32 flags
+: Used in various files
 Ap     |void   |op_null        |NN OP* o
 : FIXME. Used by Data::Alias
 EXp    |void   |op_clear       |NN OP* o
@@ -533,6 +636,7 @@ Apd |UV     |grok_oct       |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV
 p      |int    |magic_clearenv |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_clear_all_env|NN SV* sv|NN MAGIC* mg
 dp     |int    |magic_clearhint|NN SV* sv|NN MAGIC* mg
+dp     |int    |magic_clearhints|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_clearisa |NULLOK SV* sv|NN MAGIC* mg
 p      |int    |magic_clearpack|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_clearsig |NN SV* sv|NN MAGIC* mg
@@ -680,7 +784,7 @@ Apa |OP*    |newGVREF       |I32 type|NULLOK OP* o
 ApaR   |OP*    |newHVREF       |NN OP* o
 AmdbR  |HV*    |newHV
 ApaR   |HV*    |newHVhv        |NULLOK HV *hv
-Apa    |IO*    |newIO
+Apabm  |IO*    |newIO
 Apa    |OP*    |newLISTOP      |I32 type|I32 flags|NULLOK OP* first|NULLOK OP* last
 #ifdef USE_ITHREADS
 Apa    |OP*    |newPADOP       |I32 type|I32 flags|NN SV* sv
@@ -714,6 +818,9 @@ Apa |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems
 Ap     |char*  |scan_vstring   |NN const char *s|NN const char *const e \
                                |NN SV *sv
 Apd    |const char*    |scan_version   |NN const char *s|NN SV *rv|bool qv
+Apd    |const char*    |prescan_version        |NN const char *s\
+       |bool strict|NULLOK const char** errstr|NULLOK bool *sqv\
+       |NULLOK int *ssaw_decimal|NULLOK int *swidth|NULLOK bool *salpha
 Apd    |SV*    |new_version    |NN SV *ver
 Apd    |SV*    |upg_version    |NN SV *ver|bool qv
 Apd    |bool   |vverify        |NN SV *vs
@@ -723,7 +830,7 @@ Apd |SV*    |vstringify     |NN SV *vs
 Apd    |int    |vcmp           |NN SV *lhv|NN SV *rhv
 : Used in pp_hot.c and pp_sys.c
 p      |PerlIO*|nextargv       |NN GV* gv
-ApP    |char*  |ninstr         |NN const char* big|NN const char* bigend \
+AnpP   |char*  |ninstr         |NN const char* big|NN const char* bigend \
                                |NN const char* little|NN const char* lend
 Ap     |void   |op_free        |NULLOK OP* arg
 : Used in perly.y
@@ -732,12 +839,15 @@ p |OP*    |package        |NN OP* o
 #else
 p      |void   |package        |NN OP* o
 #endif
+: Used in perly.y
+p      |void   |package_version|NN OP* v
 : Used in op.c
 pd     |PADOFFSET|pad_alloc    |I32 optype|U32 tmptype
 : Used in toke.c and perly.y
-p      |PADOFFSET|allocmy      |NN const char *const name
+p      |PADOFFSET|allocmy      |NN const char *const name|const STRLEN len\
+                               |const U32 flags
 : Used in op.c and toke.c
-pdR    |PADOFFSET|pad_findmy   |NN const char* name
+AMpdR  |PADOFFSET|pad_findmy   |NN const char* name|STRLEN len|U32 flags
 Ap     |PADOFFSET|find_rundefsvoffset  |
 : Used in perly.y
 pR     |OP*    |oopsAV         |NN OP* o
@@ -745,7 +855,9 @@ pR  |OP*    |oopsAV         |NN OP* o
 pR     |OP*    |oopsHV         |NN OP* o
 : Defined in pad.c, used only in op.c
 pd     |void   |pad_leavemy
+#ifdef DEBUGGING
 Apd    |SV*    |pad_sv         |PADOFFSET po
+#endif
 : Defined in pad.c, used only in op.c
 pd     |void   |pad_free       |PADOFFSET po
 #if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
@@ -792,7 +904,7 @@ Apd |void   |packlist       |NN SV *cat|NN const char *pat|NN const char *patend|NN SV
 #if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C)
 s      |void   |pidgone        |Pid_t pid|int status
 #endif
-Ap     |void   |pmflag         |NN U32* pmfl|int ch
+DUXpo  |void   |pmflag         |NN U32 *pmfl|int ch
 : Used in perly.y
 p      |OP*    |pmruntime      |NN OP *o|NN OP *expr|bool isreg
 #if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
@@ -817,7 +929,7 @@ Ap  |I32    |pregexec       |NN REGEXP * const prog|NN char* stringarg \
 Ap     |void   |pregfree       |NULLOK REGEXP* r
 Ap     |void   |pregfree2      |NN REGEXP *rx
 : FIXME - is anything in re using this now?
-EXp    |REGEXP*|reg_temp_copy  |NN REGEXP* r
+EXp    |REGEXP*|reg_temp_copy  |NULLOK REGEXP* ret_x|NN REGEXP* rx
 Ap     |void   |regfree_internal|NN REGEXP *const rx
 #if defined(USE_ITHREADS)
 Ap     |void*  |regdupe_internal|NN REGEXP * const r|NN CLONE_PARAMS* param
@@ -856,8 +968,8 @@ EXp |SV*|reg_qr_package|NN REGEXP * const rx
 
 : FIXME - why the E?
 Ep     |void   |regprop        |NULLOK const regexp *prog|NN SV* sv|NN const regnode* o
-Ap     |void   |repeatcpy      |NN char* to|NN const char* from|I32 len|I32 count
-ApP    |char*  |rninstr        |NN const char* big|NN const char* bigend \
+Anp    |void   |repeatcpy      |NN char* to|NN const char* from|I32 len|I32 count
+AnpP   |char*  |rninstr        |NN const char* big|NN const char* bigend \
                                |NN const char* little|NN const char* lend
 Ap     |Sighandler_t|rsignal   |int i|Sighandler_t t
 : Used in pp_sys.c
@@ -882,13 +994,15 @@ Apda      |char*  |savesharedpvn  |NN const char *const pv|const STRLEN len
 Apda   |char*  |savesvpv       |NN SV* sv
 Ap     |void   |savestack_grow
 Ap     |void   |savestack_grow_cnt     |I32 need
-Ap     |void   |save_aelem     |NN AV* av|I32 idx|NN SV **sptr
+Amp    |void   |save_aelem     |NN AV* av|I32 idx|NN SV **sptr
+Ap     |void   |save_aelem_flags|NN AV* av|I32 idx|NN SV **sptr|const U32 flags
 Ap     |I32    |save_alloc     |I32 size|I32 pad
 Ap     |void   |save_aptr      |NN AV** aptr
 Ap     |AV*    |save_ary       |NN GV* gv
 Ap     |void   |save_bool      |NN bool* boolp
 Ap     |void   |save_clearsv   |NN SV** svp
 Ap     |void   |save_delete    |NN HV *hv|NN char *key|I32 klen
+Ap     |void   |save_hdelete   |NN HV *hv|NN SV *keysv
 Ap     |void   |save_adelete   |NN AV *av|I32 key
 Ap     |void   |save_destructor|DESTRUCTORFUNC_NOCONTEXT_t f|NN void* p
 Ap     |void   |save_destructor_x|DESTRUCTORFUNC_t f|NULLOK void* p
@@ -1052,6 +1166,8 @@ ApdR      |SV*    |sv_newmortal
 Apd    |SV*    |sv_newref      |NULLOK SV *const sv
 Ap     |char*  |sv_peek        |NULLOK SV* sv
 Apd    |void   |sv_pos_u2b     |NULLOK SV *const sv|NN I32 *const offsetp|NULLOK I32 *const lenp
+Apd    |STRLEN |sv_pos_u2b_flags|NN SV *const sv|STRLEN uoffset \
+                               |NULLOK STRLEN *const lenp|U32 flags
 Apd    |void   |sv_pos_b2u     |NULLOK SV *const sv|NN I32 *const offsetp
 Amdb   |char*  |sv_pvn_force   |NN SV* sv|NULLOK STRLEN* lp
 Apd    |char*  |sv_pvutf8n_force|NN SV *const sv|NULLOK STRLEN *const lp
@@ -1172,12 +1288,14 @@ XEpd    |void   |report_uninit  |NULLOK const SV *uninit_sv
 Afpd   |void   |warn           |NN const char* pat|...
 Ap     |void   |vwarn          |NN const char* pat|NULLOK va_list* args
 Afp    |void   |warner         |U32 err|NN const char* pat|...
+Afp    |void   |ck_warner      |U32 err|NN const char* pat|...
+Afp    |void   |ck_warner_d    |U32 err|NN const char* pat|...
 Ap     |void   |vwarner        |U32 err|NN const char* pat|NULLOK va_list* args
 : FIXME
 p      |void   |watch          |NN char** addr
 Ap     |I32    |whichsig       |NN const char* sig
 : Used in pp_ctl.c
-p      |void   |write_to_stderr|NN const char* message|int msglen
+p      |void   |write_to_stderr|NN SV* msv
 : Used in op.c
 p      |int    |yyerror        |NN const char *const s
 : Used in perly.y, and by Data::Alias
@@ -1348,12 +1466,13 @@ s       |HV*    |require_tie_mod|NN GV *gv|NN const char *varpv|NN SV* namesv \
 
 : #if defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
 : Used in hv.c
-paRxo  |void*  |get_arena      |const size_t svtype|const U32 misc
+paRxoM |void*  |get_arena      |const size_t arenasize |const svtype bodytype
 : #endif
 
 #if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
 s      |void   |hsplit         |NN HV *hv
 s      |void   |hfreeentries   |NN HV *hv
+s      |I32    |anonymise_cv   |NULLOK HEK *stash|NN SV *val
 sa     |HE*    |new_he
 sanR   |HEK*   |save_hek_flags |NN const char *str|I32 len|U32 hash|int flags
 sn     |void   |hv_magic_check |NN HV *hv|NN bool *needs_copy|NN bool *needs_store
@@ -1498,6 +1617,7 @@ s |SV *   |incpush_if_exists|NN AV *const av|NN SV *dir|NN SV *const stem
 #endif
 
 #if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
+s      |OP*    |do_delete_local
 sR     |SV*    |refto          |NN SV* sv
 #endif
 #if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
@@ -1587,13 +1707,12 @@ Es      |regnode*|regbranch     |NN struct RExC_state_t *pRExC_state \
 Es     |STRLEN |reguni         |NN const struct RExC_state_t *pRExC_state \
                                |UV uv|NN char *s
 Es     |regnode*|regclass      |NN struct RExC_state_t *pRExC_state|U32 depth
-ERsn   |I32    |regcurly       |NN const char *s
 Es     |regnode*|reg_node      |NN struct RExC_state_t *pRExC_state|U8 op
 Es     |UV     |reg_recode     |const char value|NN SV **encp
 Es     |regnode*|regpiece      |NN struct RExC_state_t *pRExC_state \
                                |NN I32 *flagp|U32 depth
 Es     |regnode*|reg_namedseq  |NN struct RExC_state_t *pRExC_state \
-                               |NULLOK UV *valuep
+                               |NULLOK UV *valuep|NULLOK I32 *flagp
 Es     |void   |reginsert      |NN struct RExC_state_t *pRExC_state \
                                |U8 op|NN regnode *opnd|U32 depth
 Es     |void   |regtail        |NN struct RExC_state_t *pRExC_state \
@@ -1677,7 +1796,6 @@ ERsn      |U8*    |reghop4        |NN U8 *s|I32 off|NN const U8 *llim \
 #endif
 ERsn   |U8*    |reghopmaybe3   |NN U8 *s|I32 off|NN const U8 *lim
 ERs    |char*  |find_byclass   |NN regexp * prog|NN const regnode *c|NN char *s|NN const char *strend|NULLOK regmatch_info *reginfo
-Es     |void   |swap_match_buff|NN regexp * prog
 Es     |void   |to_utf8_substr |NN regexp * prog
 Es     |void   |to_byte_substr |NN regexp * prog
 ERs    |I32    |reg_check_named_buff_matched   |NN const regexp *rex \
@@ -1763,6 +1881,7 @@ sRn       |PTR_TBL_ENT_t *|ptr_table_find|NN PTR_TBL_t *const tbl|NULLOK const void *c
 s      |void   |check_uni
 s      |void   |force_next     |I32 type
 s      |char*  |force_version  |NN char *s|int guessing
+s      |char*  |force_strict_version   |NN char *s
 s      |char*  |force_word     |NN char *start|int token|int check_keyword \
                                |int allow_pack|int allow_tick
 s      |SV*    |tokeq          |NN SV *sv
@@ -1783,6 +1902,10 @@ s        |void   |update_debugger_info|NULLOK SV *orig_sv \
                                |NULLOK const char *const buf|STRLEN len
 sR     |char*  |skipspace      |NN char *s
 sR     |char*  |swallow_bom    |NN U8 *s
+#ifndef PERL_NO_UTF16_FILTER
+s      |I32    |utf16_textfilter|int idx|NN SV *sv|int maxlen
+s      |U8*    |add_utf16_textfilter|NN U8 *const s|bool reversed
+#endif
 s      |void   |checkcomma     |NN const char *s|NN const char *name \
                                |NN const char *what
 s      |bool   |feature_is_enabled|NN const char *const name|STRLEN namelen
@@ -1796,13 +1919,14 @@ s       |void   |no_op          |NN const char *const what|NULLOK char *s
 sR     |I32    |sublex_done
 sR     |I32    |sublex_push
 sR     |I32    |sublex_start
-sR     |char * |filter_gets    |NN SV *sv|NN PerlIO *fp|STRLEN append
+sR     |char * |filter_gets    |NN SV *sv|STRLEN append
 sR     |HV *   |find_in_my_stash|NN const char *pkgname|STRLEN len
 sR     |char * |tokenize_use   |int is_use|NN char *s
 so     |SV*    |new_constant   |NULLOK const char *s|STRLEN len \
                                |NN const char *key|STRLEN keylen|NN SV *sv \
                                |NULLOK SV *pv|NULLOK const char *type \
                                |STRLEN typelen
+s      |int    |deprecate_commaless_var_list
 s      |int    |ao             |int toketype
 #  if defined(PERL_CR_FILTER)
 s      |I32    |cr_textfilter  |int idx|NULLOK SV *sv|int maxlen
@@ -1828,12 +1952,10 @@ s       |char*  |stdize_locale  |NN char* locs
 #if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
 s      |const COP*|closest_cop |NN const COP *cop|NULLOK const OP *o
 s      |SV*    |mess_alloc
-s      |const char *|vdie_croak_common|NULLOK const char *pat|NULLOK va_list *args \
-                               |NULLOK STRLEN *msglen|NULLOK I32* utf8
-s      |bool   |vdie_common    |NULLOK const char *message|STRLEN msglen\
-                               |I32 utf8|bool warn
+s      |SV *|vdie_croak_common|NULLOK const char *pat|NULLOK va_list *args
+s      |bool   |vdie_common    |NULLOK SV *message|bool warn
 sr     |char * |write_no_mem
-#if defined(PERL_MEM_LOG) && defined(PERL_MEM_LOG_STDERR)
+#if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL)
 sn     |void   |mem_log_common |enum mem_log_type mlt|const UV n|const UV typesize \
                                |NN const char *type_name|NULLOK const SV *sv \
                                |Malloc_t oldalloc|Malloc_t newalloc \
@@ -1859,7 +1981,7 @@ Apd       |void   |sv_catpvn_flags|NN SV *const dstr|NN const char *sstr|const STRLEN le
                                |const I32 flags
 Apd    |void   |sv_catsv_flags |NN SV *const dsv|NULLOK SV *const ssv|const I32 flags
 Apmd   |STRLEN |sv_utf8_upgrade_flags|NN SV *const sv|const I32 flags
-Apd    |STRLEN |sv_utf8_upgrade_flags_grow|NN SV *const sv|const I32 flags|STRLEN extra
+Ap     |STRLEN |sv_utf8_upgrade_flags_grow|NN SV *const sv|const I32 flags|STRLEN extra
 Apd    |char*  |sv_pvn_force_flags|NN SV *const sv|NULLOK STRLEN *const lp|const I32 flags
 Apd    |void   |sv_copypv      |NN SV *const dsv|NN SV *const ssv
 Ap     |char*  |my_atof2       |NN const char *s|NN NV* value
@@ -1915,12 +2037,15 @@ pda     |PADLIST*|pad_new       |int flags
 : Only used in op.c
 pd     |void   |pad_undef      |NN CV* cv
 : Only used in op.c
-pd     |PADOFFSET|pad_add_name |NN const char *name\
-                               |NULLOK HV* typestash|NULLOK HV* ourstash|bool clone|bool state
+Mpd    |PADOFFSET|pad_add_name |NN const char *name|const STRLEN len\
+                               |const U32 flags|NULLOK HV *typestash\
+                               |NULLOK HV *ourstash
 : Only used in op.c
 pd     |PADOFFSET|pad_add_anon |NN SV* sv|OPCODE op_type
-: Only used in op.c
-pd     |void   |pad_check_dup  |NN const char* name|bool is_our|NN const HV* ourstash
+#if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
+sd     |void   |pad_check_dup  |NN SV *name|const U32 flags \
+                               |NULLOK const HV *ourstash
+#endif
 #ifdef DEBUGGING
 : Only used PAD_SETSV() in op.c
 pd     |void   |pad_setsv      |PADOFFSET po|NN SV* sv
@@ -1943,6 +2068,8 @@ pR        |HV*    |pad_compname_type|const PADOFFSET po
 sd     |PADOFFSET|pad_findlex  |NN const char *name|NN const CV* cv|U32 seq|int warn \
                                |NULLOK SV** out_capture|NN SV** out_name_sv \
                                |NN int *out_flags
+s      |PADOFFSET|pad_add_name_sv|NN SV *namesv|const U32 flags \
+                               |NULLOK HV *typestash|NULLOK HV *ourstash
 #  if defined(DEBUGGING)
 sd     |void   |cv_dump        |NN const CV *cv|NN const char *title
 #  endif
@@ -1955,7 +2082,9 @@ p |void   |free_tied_hv_pool
 pR     |int    |get_debug_opts |NN const char **s|bool givehelp
 #endif
 Ap     |void   |save_set_svflags|NN SV *sv|U32 mask|U32 val
+#ifdef DEBUGGING
 Apod   |void   |hv_assert      |NN HV *hv
+#endif
 
 ApdR   |SV*    |hv_scalar      |NN HV *hv
 ApoR   |I32*   |hv_riter_p     |NN HV *hv
@@ -2077,7 +2206,10 @@ p        |void   |dump_sv_child  |NN SV *sv
 #endif
 
 #ifdef PERL_DONT_CREATE_GVSV
-Ap     |GV*    |gv_SVadd       |NN GV* gv
+Apbm   |GV*    |gv_SVadd       |NULLOK GV *gv
+#endif
+#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
+s      |bool   |ckwarn_common  |U32 w
 #endif
 Apo    |bool   |ckwarn         |U32 w
 Apo    |bool   |ckwarn_d       |U32 w
@@ -2126,8 +2258,11 @@ Mfp      |void   |xmldump_indent |I32 level|NN PerlIO *file|NN const char* pat \
 Mp     |void   |xmldump_vindent|I32 level|NN PerlIO *file|NN const char* pat \
                                |NULLOK va_list *args
 Mp     |void   |xmldump_all
+p      |void   |xmldump_all_perl       |bool justperl
 Mp     |void   |xmldump_packsubs       |NN const HV* stash
+p      |void   |xmldump_packsubs_perl  |NN const HV* stash|bool justperl
 Mp     |void   |xmldump_sub    |NN const GV* gv
+Mp     |void   |xmldump_sub_perl       |NN const GV* gv|bool justperl
 Mp     |void   |xmldump_form   |NN const GV* gv
 Mp     |void   |xmldump_eval
 Mp     |char*  |sv_catxmlsv    |NN SV *dsv|NN SV *ssv
@@ -2150,7 +2285,7 @@ Mp        |void   |append_madprops|NULLOK MADPROP* tm|NULLOK OP* o|char slot
 Mp     |void   |addmad         |NULLOK MADPROP* tm|NULLOK MADPROP** root \
                                |char slot
 Mp     |MADPROP*|newMADsv      |char key|NN SV* sv
-Mp     |MADPROP*|newMADPROP    |char key|char type|NULLOK const void* val \
+Mp     |MADPROP*|newMADPROP    |char key|char type|NULLOK void* val \
                                |I32 vlen
 Mp     |void   |mad_free       |NULLOK MADPROP* mp
 
@@ -2206,6 +2341,8 @@ ApoM      |const char *|fetch_cop_label|NULLOK struct refcounted_he *const chain \
 xpoM   |struct refcounted_he *|store_cop_label \
                |NULLOK struct refcounted_he *const chain|NN const char *label
 
+xpo    |int    |keyword_plugin_standard|NN char* keyword_ptr|STRLEN keyword_len|NN OP** op_ptr
+
 END_EXTERN_C
 /*
  * ex: set ts=8 sts=4 sw=4 noet:
index 135549d..4d7882c 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 1 $
+##  $Revision: 2 $
 ##  $Author: mhx $
-##  $Date: 2009/06/12 12:29:57 +0200 $
+##  $Date: 2010/03/07 13:15:44 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index d67af01..8e1cb4f 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 16 $
+##  $Revision: 17 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:55 +0100 $
+##  $Date: 2010/03/07 13:15:48 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index e81fb68..a7aace7 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 22 $
+##  $Revision: 23 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:54 +0100 $
+##  $Date: 2010/03/07 13:15:47 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 46c5deb..3a2f849 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 5 $
+##  $Revision: 6 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:52 +0100 $
+##  $Date: 2010/03/07 13:15:45 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 95cf2d6..2c2ff44 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 7 $
+##  $Revision: 8 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:53 +0100 $
+##  $Date: 2010/03/07 13:15:46 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 85159e2..d8f2046 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 19 $
+##  $Revision: 20 $
 ##  $Author: mhx $
-##  $Date: 2009/01/23 18:27:48 +0100 $
+##  $Date: 2010/03/07 13:15:46 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 7c86741..a797109 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 8 $
+##  $Revision: 9 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:54 +0100 $
+##  $Date: 2010/03/07 13:15:47 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 122277b..5fcc99d 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 7 $
+##  $Revision: 8 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:53 +0100 $
+##  $Date: 2010/03/07 13:15:46 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index d396704..3a95b10 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 9 $
+##  $Revision: 10 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:55 +0100 $
+##  $Date: 2010/03/07 13:15:48 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 5e32f8e..1db6db3 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 16 $
+##  $Revision: 17 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:55 +0100 $
+##  $Date: 2010/03/07 13:15:49 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 1b911e7..e17d259 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 1 $
+##  $Revision: 4 $
 ##  $Author: mhx $
-##  $Date: 2009/06/12 12:29:56 +0200 $
+##  $Date: 2010/03/07 13:15:44 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -23,6 +23,10 @@ __UNDEFINED__
 
 __UNDEFINED__ GvSVn(gv)        GvSV(gv)
 __UNDEFINED__ isGV_with_GP(gv) isGV(gv)
+__UNDEFINED__ gv_fetchpvn_flags(name, len, flags, svt) gv_fetchpv(name, flags, svt)
+__UNDEFINED__ gv_fetchsv(name, flags, svt) gv_fetchpv(SvPV_nolen_const(name), flags, svt)
+
+__UNDEFINED__ get_cvn_flags(name, namelen, flags) get_cv(name, flags)
 
 =xsubs
 
@@ -58,9 +62,44 @@ isGV_with_GP()
        OUTPUT:
                RETVAL
 
+int
+get_cvn_flags()
+       PREINIT:
+               CV* xv;
+       CODE:
+               RETVAL = 0;
+               xv = get_cvn_flags("Devel::PPPort::foobar", sizeof("Devel::PPPort::foobar")-1, 0);
+               if(xv == NULL) RETVAL++;
+               xv = get_cvn_flags("Devel::PPPort::foobar", sizeof("Devel::PPPort::foobar")-1, GV_ADDMULTI);
+               if(xv && SvTYPE(xv) == SVt_PVCV) RETVAL++;
+               xv = get_cvn_flags("Devel::PPPort::get_cvn_flags", sizeof("Devel::PPPort::get_cvn_flags")-1, 0);
+               if(xv && SvTYPE(xv) == SVt_PVCV) RETVAL++;
+       OUTPUT:
+               RETVAL
+
+SV*
+gv_fetchpvn_flags()
+       CODE:
+               RETVAL = newRV_inc((SV*)gv_fetchpvn_flags("Devel::PPPort::VERSION", sizeof("Devel::PPPort::VERSION")-1, 0, SVt_PV));
+       OUTPUT:
+               RETVAL
+
+SV*
+gv_fetchsv(name)
+       SV *name
+       CODE:
+               RETVAL = newRV_inc((SV*)gv_fetchsv(name, 0, SVt_PV));
+       OUTPUT:
+               RETVAL
 
-=tests plan => 2
+=tests plan => 5
 
 ok(Devel::PPPort::GvSVn(), 1);
 
-ok(Devel::PPPort::isGV_with_GP(), 2)
+ok(Devel::PPPort::isGV_with_GP(), 2);
+
+ok(Devel::PPPort::get_cvn_flags(), 3);
+
+ok(Devel::PPPort::gv_fetchpvn_flags(), \*Devel::PPPort::VERSION);
+
+ok(Devel::PPPort::gv_fetchsv("Devel::PPPort::VERSION"), \*Devel::PPPort::VERSION);
index 25b3940..b745ee9 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 7 $
+##  $Revision: 8 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:54 +0100 $
+##  $Date: 2010/03/07 13:15:47 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 3613058..52292c0 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 11 $
+##  $Revision: 12 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:54 +0100 $
+##  $Date: 2010/03/07 13:15:47 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 3172171..558fedd 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 17 $
+##  $Revision: 21 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:55 +0100 $
+##  $Date: 2010/03/07 13:15:49 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -358,9 +358,10 @@ ok($h{sv}, 4711);
 &Devel::PPPort::sv_usepvn_mg($h{sv}, 'Perl');
 ok($h{sv}, 'Perl');
 
-my $ver = eval qq[qv("v1.2.0")];
-ok($[ < 5.009 || $@ eq '');
-ok($@ || Devel::PPPort::SvVSTRING_mg($ver));
+# v1 is treated as a bareword in older perls...
+my $ver = do { local $SIG{'__WARN__'} = sub {}; eval qq[v1.2.0] };
+ok($] < 5.009 || $@ eq '');
+ok($] < 5.009 || Devel::PPPort::SvVSTRING_mg($ver));
 ok(!Devel::PPPort::SvVSTRING_mg(4711));
 
 my $foo = 'bar';
index 761d80c..4d7ae48 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 5 $
+##  $Revision: 7 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:53 +0100 $
+##  $Date: 2010/03/07 13:15:46 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -29,6 +29,10 @@ __UNDEFINED__  memNE(s1,s2,l)  (bcmp(s1,s2,l))
 __UNDEFINED__  memEQ(s1,s2,l)  (!bcmp(s1,s2,l))
 #endif
 
+__UNDEFINED__  memEQs(s1, l, s2) \
+                   (sizeof(s2)-1 == l && memEQ(s1, (s2 ""), (sizeof(s2)-1)))
+__UNDEFINED__  memNEs(s1, l, s2) !memEQs(s1, l, s2)
+
 __UNDEFINED__  MoveD(s,d,n,t)  memmove((char*)(d),(char*)(s), (n) * sizeof(t))
 __UNDEFINED__  CopyD(s,d,n,t)  memcpy((char*)(d),(char*)(s), (n) * sizeof(t))
 #ifdef HAS_MEMSET
@@ -62,9 +66,13 @@ checkmem()
     ZeroD(p, 6, char);
     if (memEQ(p, "\0\0\0\0\0\0", 6))
       RETVAL++;
+    if (memEQs(p, 6, "\0\0\0\0\0\0"))
+      RETVAL++;
     Poison(p, 6, char);
     if (memNE(p, "\0\0\0\0\0\0", 6))
       RETVAL++;
+    if (memNEs(p, 6, "\0\0\0\0\0\0"))
+      RETVAL++;
     Safefree(p);
 
     Newxz(p, 6, char);
@@ -80,5 +88,5 @@ checkmem()
 
 =tests plan => 1
 
-ok(Devel::PPPort::checkmem(), 4);
+ok(Devel::PPPort::checkmem(), 6);
 
index 3844bbb..ac09f8b 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 53 $
+##  $Revision: 55 $
 ##  $Author: mhx $
-##  $Date: 2009/03/31 23:05:55 +0200 $
+##  $Date: 2010/03/07 13:15:48 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -475,7 +475,6 @@ Perl_ppaddr_t(string)
                Perl_ppaddr_t lower;
        PPCODE:
                lower = PL_ppaddr[OP_LC];
-               PUSHMARK(SP);
                mXPUSHs(newSVpv(string, 0));
                PUTBACK;
                ENTER;
index 4b266d7..d536f8b 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 15 $
+##  $Revision: 16 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:55 +0100 $
+##  $Date: 2010/03/07 13:15:48 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 1467d1a..3d0a2d2 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 9 $
+##  $Revision: 10 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:55 +0100 $
+##  $Date: 2010/03/07 13:15:48 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 06ebdb4..104dba9 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 1 $
+##  $Revision: 2 $
 ##  $Author: mhx $
-##  $Date: 2009/06/12 12:29:57 +0200 $
+##  $Date: 2010/03/07 13:15:44 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 3a38549..6925a7a 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 6 $
+##  $Revision: 7 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:51 +0100 $
+##  $Date: 2010/03/07 13:15:44 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index ceea0cf..83dd440 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 9 $
+##  $Revision: 10 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:52 +0100 $
+##  $Date: 2010/03/07 13:15:45 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 583f266..83fe71a 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 50 $
+##  $Revision: 51 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:54 +0100 $
+##  $Date: 2010/03/07 13:15:48 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 62d4841..addd581 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 32 $
+##  $Revision: 33 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:54 +0100 $
+##  $Date: 2010/03/07 13:15:47 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -336,7 +336,7 @@ module from CPAN.
 
 =head1 COPYRIGHT
 
-Version 3.x, Copyright (c) 2004-2009, Marcus Holland-Moritz.
+Version 3.x, Copyright (c) 2004-2010, Marcus Holland-Moritz.
 
 Version 2.x, Copyright (C) 2001, Paul Marquess.
 
index f94cc7d..8deccac 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 46 $
+##  $Revision: 47 $
 ##  $Author: mhx $
-##  $Date: 2009/01/23 18:28:00 +0100 $
+##  $Date: 2010/03/07 13:15:46 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index c7e4c1e..71f007c 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 5 $
+##  $Revision: 6 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:51 +0100 $
+##  $Date: 2010/03/07 13:15:44 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 71485ad..082b297 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 11 $
+##  $Revision: 14 $
 ##  $Author: mhx $
-##  $Date: 2009/06/12 12:19:15 +0200 $
+##  $Date: 2010/03/07 13:15:45 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -30,15 +30,21 @@ __UNDEFINED__  STR_WITH_LEN(s)             (s ""), (sizeof(s)-1)
 
 __UNDEFINED__  newSVpvs(str)               newSVpvn(str "", sizeof(str) - 1)
 __UNDEFINED__  newSVpvs_flags(str, flags)  newSVpvn_flags(str "", sizeof(str) - 1, flags)
+__UNDEFINED__  newSVpvs_share(str)         newSVpvn_share(str "", sizeof(str) - 1, 0)
 __UNDEFINED__  sv_catpvs(sv, str)          sv_catpvn(sv, str "", sizeof(str) - 1)
 __UNDEFINED__  sv_setpvs(sv, str)          sv_setpvn(sv, str "", sizeof(str) - 1)
 __UNDEFINED__  hv_fetchs(hv, key, lval)    hv_fetch(hv, key "", sizeof(key) - 1, lval)
 __UNDEFINED__  hv_stores(hv, key, val)     hv_store(hv, key "", sizeof(key) - 1, val, 0)
 
-__UNDEFINED__  gv_fetchpvn_flags(name, len, flags, svt) gv_fetchpv(name, flags, svt)
 __UNDEFINED__  gv_fetchpvs(name, flags, svt)            gv_fetchpvn_flags(name "", sizeof(name) - 1, flags, svt)
 __UNDEFINED__  gv_stashpvs(name, flags)                 gv_stashpvn(name "", sizeof(name) - 1, flags)
 
+__UNDEFINED__  get_cvs(name, flags)                     get_cvn_flags(name "", sizeof(name)-1, flags)
+
+=xsinit
+
+#define NEED_newSVpvn_share
+
 =xsubs
 
 void
@@ -53,6 +59,22 @@ newSVpvs_flags()
                XPUSHs(newSVpvs_flags("newSVpvs_flags", SVs_TEMP));
                XSRETURN(1);
 
+int
+newSVpvs_share()
+       PREINIT:
+               SV *sv;
+               U32 hash;
+       CODE:
+               RETVAL = 0;
+               PERL_HASH(hash, "pvs", 3);
+               sv = newSVpvs_share("pvs");
+               RETVAL += strEQ(SvPV_nolen_const(sv), "pvs");
+               RETVAL += SvCUR(sv) == 3;
+               RETVAL += SvSHARED_HASH(sv) == hash;
+               SvREFCNT_dec(sv);
+       OUTPUT:
+               RETVAL
+
 void
 sv_catpvs(sv)
        SV *sv
@@ -83,13 +105,6 @@ hv_stores(hv, sv)
                (void) hv_stores((HV *) SvRV(hv), "hv_stores", SvREFCNT_inc_simple(sv));
 
 SV*
-gv_fetchpvn_flags()
-       CODE:
-               RETVAL = newRV_inc((SV*)gv_fetchpvn_flags("Devel::PPPort::VERSION", sizeof("Devel::PPPort::VERSION")-1, 0, SVt_PV));
-       OUTPUT:
-               RETVAL
-
-SV*
 gv_fetchpvs()
        CODE:
                RETVAL = newRV_inc((SV*)gv_fetchpvs("Devel::PPPort::VERSION", 0, SVt_PV));
@@ -103,13 +118,29 @@ gv_stashpvs()
        OUTPUT:
                RETVAL
 
+int
+get_cvs()
+       PREINIT:
+               CV* xv;
+       CODE:
+               RETVAL = 0;
+               xv = get_cvs("Devel::PPPort::foobar", 0);
+               if(xv == NULL) RETVAL++;
+               xv = get_cvs("Devel::PPPort::foobar", GV_ADDMULTI);
+               if(xv && SvTYPE(xv) == SVt_PVCV) RETVAL++;
+               xv = get_cvs("Devel::PPPort::get_cvs", 0);
+               if(xv && SvTYPE(xv) == SVt_PVCV) RETVAL++;
+OUTPUT:
+       RETVAL
 
-=tests plan => 11
+
+=tests plan => 12
 
 my $x = 'foo';
 
 ok(Devel::PPPort::newSVpvs(), "newSVpvs");
 ok(Devel::PPPort::newSVpvs_flags(), "newSVpvs_flags");
+ok(Devel::PPPort::newSVpvs_share(), 3);
 
 Devel::PPPort::sv_catpvs($x);
 ok($x, "foosv_catpvs");
@@ -123,6 +154,7 @@ ok(scalar keys %h, 2);
 ok(exists $h{'hv_stores'});
 ok($h{'hv_stores'}, 4711);
 ok(Devel::PPPort::hv_fetchs(\%h), 42);
-ok(Devel::PPPort::gv_fetchpvn_flags(), \*Devel::PPPort::VERSION);
-ok(Devel::PPPort::gv_fetchpvs(),       \*Devel::PPPort::VERSION);
-ok(Devel::PPPort::gv_stashpvs(),       \%Devel::PPPort::);
+ok(Devel::PPPort::gv_fetchpvs(), \*Devel::PPPort::VERSION);
+ok(Devel::PPPort::gv_stashpvs(), \%Devel::PPPort::);
+
+ok(Devel::PPPort::get_cvs(), 3);
index db779be..76b5dee 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 5 $
+##  $Revision: 7 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:52 +0100 $
+##  $Date: 2010/03/07 13:15:44 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -22,6 +22,12 @@ __UNDEFINED__
 
 =implementation
 
+/* Hint: newSVpvn_share
+ * The SVs created by this function only mimic the behaviour of
+ * shared PVs without really being shared. Only use if you know
+ * what you're doing.
+ */
+
 #ifndef newSVpvn_share
 
 #if { NEED newSVpvn_share }
index 310bfba..a2d2039 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 6 $
+##  $Revision: 7 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:52 +0100 $
+##  $Date: 2010/03/07 13:15:45 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 6756f9a..c7452dc 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 2 $
+##  $Revision: 3 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:51 +0100 $
+##  $Date: 2010/03/07 13:15:44 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index d351703..f29ccb3 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 6 $
+##  $Revision: 7 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:52 +0100 $
+##  $Date: 2010/03/07 13:15:45 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 3c990c6..c2ad0df 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 10 $
+##  $Revision: 11 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:53 +0100 $
+##  $Date: 2010/03/07 13:15:46 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 518bdf1..7df6bd7 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 11 $
+##  $Revision: 12 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:53 +0100 $
+##  $Date: 2010/03/07 13:15:47 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 5fdec7a..d1ddd34 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 17 $
+##  $Revision: 18 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:54 +0100 $
+##  $Date: 2010/03/07 13:15:47 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 515e620..dddeb79 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 20 $
+##  $Revision: 21 $
 ##  $Author: mhx $
-##  $Date: 2009/06/12 04:10:50 +0200 $
+##  $Date: 2010/03/07 13:15:46 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index ca8d8a6..ce87f76 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 10 $
+##  $Revision: 11 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:54 +0100 $
+##  $Date: 2010/03/07 13:15:48 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 76bd881..779239f 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 7 $
+##  $Revision: 8 $
 ##  $Author: mhx $
-##  $Date: 2009/01/18 14:10:52 +0100 $
+##  $Date: 2010/03/07 13:15:45 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 567955e..f5f4032 100644 (file)
@@ -4,13 +4,13 @@
 :
 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 :
-:  $Revision: 3 $
+:  $Revision: 4 $
 :  $Author: mhx $
-:  $Date: 2009/01/18 14:10:51 +0100 $
+:  $Date: 2010/03/07 13:15:43 +0100 $
 :
 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 :
-:  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+:  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 :  Version 2.x, Copyright (C) 2001, Paul Marquess.
 :  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 :
index 36830eb..2487a41 100644 (file)
@@ -4,13 +4,13 @@
 #
 ################################################################################
 #
-#  $Revision: 27 $
+#  $Revision: 29 $
 #  $Author: mhx $
-#  $Date: 2009/01/18 14:10:51 +0100 $
+#  $Date: 2010/03/07 13:15:43 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -312,17 +312,22 @@ sub parse_embed
         my @e = split /\s*\|\s*/, $line;
         if( @e >= 3 ) {
           my($flags, $ret, $name, @args) = @e;
-          for (@args) {
-            $_ = [trim_arg($_)];
+          if ($name =~ /^[^\W\d]\w*$/) {
+            for (@args) {
+              $_ = [trim_arg($_)];
+            }
+            ($ret) = trim_arg($ret);
+            push @func, {
+              name  => $name,
+              flags => { map { $_, 1 } $flags =~ /./g },
+              ret   => $ret,
+              args  => \@args,
+              cond  => ppcond(\@pps),
+            };
+          }
+          else {
+            warn "mysterious name [$name] in $file, line $.\n";
           }
-          ($ret) = trim_arg($ret);
-          push @func, {
-            name  => $name,
-            flags => { map { $_, 1 } $flags =~ /./g },
-            ret   => $ret,
-            args  => \@args,
-            cond  => ppcond(\@pps),
-          };
         }
       }
     }
index 4e4f83e..c2df4ee 100644 (file)
@@ -45,8 +45,6 @@ init_i18nl10n                  # U (perl_init_i18nl10n)
 init_i18nl14n                  # U (perl_init_i18nl14n)
 is_uni_alnum                   # U
 is_uni_alnum_lc                # U
-is_uni_alnumc                  # U
-is_uni_alnumc_lc               # U
 is_uni_alpha                   # U
 is_uni_alpha_lc                # U
 is_uni_ascii                   # U
@@ -72,7 +70,6 @@ is_uni_upper_lc                # U
 is_uni_xdigit                  # U
 is_uni_xdigit_lc               # U
 is_utf8_alnum                  # U
-is_utf8_alnumc                 # U
 is_utf8_alpha                  # U
 is_utf8_ascii                  # U
 is_utf8_char                   # U
diff --git a/cpan/Devel-PPPort/parts/todo/5008009 b/cpan/Devel-PPPort/parts/todo/5008009
new file mode 100644 (file)
index 0000000..129e018
--- /dev/null
@@ -0,0 +1 @@
+5.008009
index d00dcda..5678492 100644 (file)
@@ -1,7 +1,6 @@
 5.009002
 SvPVbyte_force                 # U
 find_rundefsvoffset            # U
-gv_fetchsv                     # U
 op_refcnt_lock                 # U
 op_refcnt_unlock               # U
 savesvpv                       # U
index 6a69c9f..90d12e0 100644 (file)
@@ -17,7 +17,6 @@ hv_riter_set                   # U
 is_utf8_string_loclen          # U
 newGIVENOP                     # U
 newSVhek                       # U
-newSVpvs_share                 # U
 newWHENOP                      # U
 newWHILEOP                     # E (Perl_newWHILEOP)
 savepvs                        # U
index 8b84717..0fdbc49 100644 (file)
@@ -1,10 +1,10 @@
 5.009005
+PL_parser                      # E
 Perl_signbit                   # U
 SvRX                           # U
 SvRXOK                         # U
 av_create_and_push             # U
 av_create_and_unshift_one      # U
-get_cvn_flags                  # U
 gv_fetchfile_flags             # U
 mro_get_linear_isa             # U
 mro_method_changed_in          # U
diff --git a/cpan/Devel-PPPort/parts/todo/5010001 b/cpan/Devel-PPPort/parts/todo/5010001
new file mode 100644 (file)
index 0000000..6ded516
--- /dev/null
@@ -0,0 +1,11 @@
+5.010001
+HeUTF8                         # U
+croak_xs_usage                 # U
+mro_get_from_name              # U
+mro_get_private_data           # U
+mro_register                   # U
+mro_set_mro                    # U
+mro_set_private_data           # U
+save_padsv_and_mortalize       # U
+save_pushptr                   # U
+sv_insert_flags                # U
index f58fa28..eca9a51 100644 (file)
@@ -1,27 +1,15 @@
 5.011000
-HeUTF8                         # U
-MULTICALL                      # E
-PERL_SYS_TERM                  # E
-POP_MULTICALL                  # E
-PUSH_MULTICALL                 # E
+Gv_AMupdate                    # E (Perl_Gv_AMupdate)
+PL_opfreehook                  # E
 SvOOK_offset                   # U
 av_iter_p                      # U
-croak_xs_usage                 # U
 fetch_cop_label                # U
+gv_add_by_type                 # U
 gv_fetchmethod_flags           # U
-hv_assert                      # U
-mro_get_from_name              # U
-mro_get_private_data           # U
-mro_register                   # U
-mro_set_mro                    # U
-mro_set_private_data           # U
-pad_sv                         # U
+is_ascii_string                # U
 pregfree2                      # U
-ref                            # U (Perl_ref)
 save_adelete                   # U
+save_aelem_flags               # U
+save_hdelete                   # U
 save_helem_flags               # U
-save_padsv_and_mortalize       # U
-save_pushptr                   # U
-stashpv_hvname_match           # U
-sv_insert_flags                # U
 sv_utf8_upgrade_flags_grow     # U
diff --git a/cpan/Devel-PPPort/parts/todo/5011001 b/cpan/Devel-PPPort/parts/todo/5011001
new file mode 100644 (file)
index 0000000..f424093
--- /dev/null
@@ -0,0 +1,6 @@
+5.011001
+ck_warner                      # U
+ck_warner_d                    # U
+is_utf8_perl_space             # U
+is_utf8_perl_word              # U
+is_utf8_posix_digit            # U
diff --git a/cpan/Devel-PPPort/parts/todo/5011002 b/cpan/Devel-PPPort/parts/todo/5011002
new file mode 100644 (file)
index 0000000..6f76047
--- /dev/null
@@ -0,0 +1,15 @@
+5.011002
+PL_keyword_plugin              # E
+gv_try_downgrade               # U
+lex_bufutf8                    # U
+lex_discard_to                 # U
+lex_grow_linestr               # U
+lex_next_chunk                 # U
+lex_peek_unichar               # U
+lex_read_space                 # U
+lex_read_to                    # U
+lex_read_unichar               # U
+lex_stuff_pvn                  # U
+lex_stuff_sv                   # U
+lex_unstuff                    # U
+pad_findmy                     # E (Perl_pad_findmy)
diff --git a/cpan/Devel-PPPort/parts/todo/5011003 b/cpan/Devel-PPPort/parts/todo/5011003
new file mode 100644 (file)
index 0000000..3fd94ca
--- /dev/null
@@ -0,0 +1 @@
+5.011003
diff --git a/cpan/Devel-PPPort/parts/todo/5011004 b/cpan/Devel-PPPort/parts/todo/5011004
new file mode 100644 (file)
index 0000000..86c1fce
--- /dev/null
@@ -0,0 +1,2 @@
+5.011004
+prescan_version                # U
diff --git a/cpan/Devel-PPPort/parts/todo/5011005 b/cpan/Devel-PPPort/parts/todo/5011005
new file mode 100644 (file)
index 0000000..33047da
--- /dev/null
@@ -0,0 +1,8 @@
+5.011005
+MULTICALL                      # E
+PERL_SYS_TERM                  # E
+POP_MULTICALL                  # E
+PUSH_MULTICALL                 # E
+ref                            # U (Perl_ref)
+stashpv_hvname_match           # U
+sv_pos_u2b_flags               # U
index e652c35..ef42335 100644 (file)
@@ -4,13 +4,13 @@
 #
 ################################################################################
 #
-#  $Revision: 7 $
+#  $Revision: 8 $
 #  $Author: mhx $
-#  $Date: 2006/06/25 03:41:08 +0200 $
+#  $Date: 2010/03/07 13:16:55 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2006, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
index 1e98070..1c86ca9 100644 (file)
@@ -7,13 +7,13 @@
 #
 ################################################################################
 #
-#  $Revision: 19 $
+#  $Revision: 20 $
 #  $Author: mhx $
-#  $Date: 2009/01/18 14:10:50 +0100 $
+#  $Date: 2010/03/07 13:15:42 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -33,7 +33,7 @@ use File::Find;
 use List::Util qw(max);
 use Config;
 
-my $VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.19 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
+my $VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.19_02 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
 
 $| = 1;
 my %OPT = (
@@ -589,7 +589,7 @@ going on, use the I<--verbose> option:
 
 =head1 COPYRIGHT
 
-Version 3.x, Copyright (c) 2004-2009, Marcus Holland-Moritz.
+Version 3.x, Copyright (c) 2004-2010, Marcus Holland-Moritz.
 
 Version 2.x, Copyright (C) 2001, Paul Marquess.
 
index 3bf9ce6..66722f2 100644 (file)
@@ -30,9 +30,9 @@ BEGIN {
     require 'testutil.pl' if $@;
   }
 
-  if (2) {
+  if (5) {
     load();
-    plan(tests => 2);
+    plan(tests => 5);
   }
 }
 
@@ -50,5 +50,11 @@ package main;
 
 ok(Devel::PPPort::GvSVn(), 1);
 
-ok(Devel::PPPort::isGV_with_GP(), 2)
+ok(Devel::PPPort::isGV_with_GP(), 2);
+
+ok(Devel::PPPort::get_cvn_flags(), 3);
+
+ok(Devel::PPPort::gv_fetchpvn_flags(), \*Devel::PPPort::VERSION);
+
+ok(Devel::PPPort::gv_fetchsv("Devel::PPPort::VERSION"), \*Devel::PPPort::VERSION);
 
index 23b19ed..0bfe053 100644 (file)
@@ -84,9 +84,10 @@ ok($h{sv}, 4711);
 &Devel::PPPort::sv_usepvn_mg($h{sv}, 'Perl');
 ok($h{sv}, 'Perl');
 
-my $ver = eval qq[qv("v1.2.0")];
-ok($[ < 5.009 || $@ eq '');
-ok($@ || Devel::PPPort::SvVSTRING_mg($ver));
+# v1 is treated as a bareword in older perls...
+my $ver = do { local $SIG{'__WARN__'} = sub {}; eval qq[v1.2.0] };
+ok($] < 5.009 || $@ eq '');
+ok($] < 5.009 || Devel::PPPort::SvVSTRING_mg($ver));
 ok(!Devel::PPPort::SvVSTRING_mg(4711));
 
 my $foo = 'bar';
index 501b819..74ecb99 100644 (file)
@@ -48,5 +48,5 @@ bootstrap Devel::PPPort;
 
 package main;
 
-ok(Devel::PPPort::checkmem(), 4);
+ok(Devel::PPPort::checkmem(), 6);
 
index ae97b74..fe4ade0 100644 (file)
@@ -12,6 +12,8 @@
 
 BEGIN {
   if ($ENV{'PERL_CORE'}) {
+    chdir 't' if -d 't';
+    @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
     require Config; import Config;
     use vars '%Config';
     if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
index 7886096..ff4d3e0 100644 (file)
@@ -30,9 +30,9 @@ BEGIN {
     require 'testutil.pl' if $@;
   }
 
-  if (11) {
+  if (12) {
     load();
-    plan(tests => 11);
+    plan(tests => 12);
   }
 }
 
@@ -52,6 +52,7 @@ my $x = 'foo';
 
 ok(Devel::PPPort::newSVpvs(), "newSVpvs");
 ok(Devel::PPPort::newSVpvs_flags(), "newSVpvs_flags");
+ok(Devel::PPPort::newSVpvs_share(), 3);
 
 Devel::PPPort::sv_catpvs($x);
 ok($x, "foosv_catpvs");
@@ -65,7 +66,8 @@ ok(scalar keys %h, 2);
 ok(exists $h{'hv_stores'});
 ok($h{'hv_stores'}, 4711);
 ok(Devel::PPPort::hv_fetchs(\%h), 42);
-ok(Devel::PPPort::gv_fetchpvn_flags(), \*Devel::PPPort::VERSION);
-ok(Devel::PPPort::gv_fetchpvs(),       \*Devel::PPPort::VERSION);
-ok(Devel::PPPort::gv_stashpvs(),       \%Devel::PPPort::);
+ok(Devel::PPPort::gv_fetchpvs(), \*Devel::PPPort::VERSION);
+ok(Devel::PPPort::gv_stashpvs(), \%Devel::PPPort::);
+
+ok(Devel::PPPort::get_cvs(), 3);
 
index 7225c40..b18d5e4 100644 (file)
@@ -4,13 +4,13 @@
 #
 ################################################################################
 #
-#  $Revision: 9 $
+#  $Revision: 10 $
 #  $Author: mhx $
-#  $Date: 2009/06/12 04:07:19 +0200 $
+#  $Date: 2010/03/07 13:15:40 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #