Upgrade to Devel::PPPort 3.13_01
Marcus Holland-Moritz [Fri, 4 Jan 2008 14:10:18 +0000 (14:10 +0000)]
p4raw-id: //depot/perl@32827

76 files changed:
MANIFEST
ext/Devel/PPPort/Changes
ext/Devel/PPPort/HACKERS
ext/Devel/PPPort/Makefile.PL
ext/Devel/PPPort/PPPort_pm.PL
ext/Devel/PPPort/PPPort_xs.PL
ext/Devel/PPPort/README
ext/Devel/PPPort/apicheck_c.PL
ext/Devel/PPPort/devel/buildperl.pl
ext/Devel/PPPort/devel/devtools.pl
ext/Devel/PPPort/devel/mkapidoc.sh
ext/Devel/PPPort/devel/mktodo
ext/Devel/PPPort/devel/mktodo.pl
ext/Devel/PPPort/devel/regenerate
ext/Devel/PPPort/devel/scanprov
ext/Devel/PPPort/mktests.PL
ext/Devel/PPPort/module2.c
ext/Devel/PPPort/module3.c
ext/Devel/PPPort/parts/apicheck.pl
ext/Devel/PPPort/parts/apidoc.fnc
ext/Devel/PPPort/parts/base/5004000
ext/Devel/PPPort/parts/base/5005000
ext/Devel/PPPort/parts/base/5006000
ext/Devel/PPPort/parts/base/5007001
ext/Devel/PPPort/parts/base/5008001
ext/Devel/PPPort/parts/base/5009002
ext/Devel/PPPort/parts/base/5009003
ext/Devel/PPPort/parts/base/5009004
ext/Devel/PPPort/parts/base/5009005
ext/Devel/PPPort/parts/base/5010000 [new file with mode: 0644]
ext/Devel/PPPort/parts/base/5011000 [new file with mode: 0644]
ext/Devel/PPPort/parts/embed.fnc
ext/Devel/PPPort/parts/inc/MY_CXT
ext/Devel/PPPort/parts/inc/SvPV
ext/Devel/PPPort/parts/inc/SvREFCNT
ext/Devel/PPPort/parts/inc/Sv_set
ext/Devel/PPPort/parts/inc/call
ext/Devel/PPPort/parts/inc/cop
ext/Devel/PPPort/parts/inc/exception
ext/Devel/PPPort/parts/inc/format
ext/Devel/PPPort/parts/inc/grok
ext/Devel/PPPort/parts/inc/limits
ext/Devel/PPPort/parts/inc/mPUSH
ext/Devel/PPPort/parts/inc/magic
ext/Devel/PPPort/parts/inc/memory
ext/Devel/PPPort/parts/inc/misc
ext/Devel/PPPort/parts/inc/newCONSTSUB
ext/Devel/PPPort/parts/inc/newRV
ext/Devel/PPPort/parts/inc/newSVpv [new file with mode: 0644]
ext/Devel/PPPort/parts/inc/podtest
ext/Devel/PPPort/parts/inc/ppphbin
ext/Devel/PPPort/parts/inc/ppphdoc
ext/Devel/PPPort/parts/inc/ppphtest
ext/Devel/PPPort/parts/inc/pvs
ext/Devel/PPPort/parts/inc/shared_pv
ext/Devel/PPPort/parts/inc/snprintf
ext/Devel/PPPort/parts/inc/strlfuncs
ext/Devel/PPPort/parts/inc/sv_xpvf
ext/Devel/PPPort/parts/inc/threads
ext/Devel/PPPort/parts/inc/uv
ext/Devel/PPPort/parts/inc/variables
ext/Devel/PPPort/parts/inc/version
ext/Devel/PPPort/parts/inc/warn
ext/Devel/PPPort/parts/ppport.fnc
ext/Devel/PPPort/parts/ppptools.pl
ext/Devel/PPPort/parts/todo/5005000
ext/Devel/PPPort/parts/todo/5009003
ext/Devel/PPPort/parts/todo/5009005
ext/Devel/PPPort/parts/todo/5010000 [new file with mode: 0644]
ext/Devel/PPPort/parts/todo/5011000 [new file with mode: 0644]
ext/Devel/PPPort/soak
ext/Devel/PPPort/t/mPUSH.t
ext/Devel/PPPort/t/misc.t
ext/Devel/PPPort/t/newSVpv.t [new file with mode: 0644]
ext/Devel/PPPort/t/pvs.t
ext/Devel/PPPort/typemap

index 2fda8c1..f15f492 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -257,6 +257,8 @@ ext/Devel/PPPort/parts/base/5009002 Devel::PPPort baseline todo file
 ext/Devel/PPPort/parts/base/5009003    Devel::PPPort baseline todo file
 ext/Devel/PPPort/parts/base/5009004    Devel::PPPort baseline todo file
 ext/Devel/PPPort/parts/base/5009005    Devel::PPPort baseline todo file
+ext/Devel/PPPort/parts/base/5010000    Devel::PPPort baseline todo file
+ext/Devel/PPPort/parts/base/5011000    Devel::PPPort baseline todo file
 ext/Devel/PPPort/parts/embed.fnc       Devel::PPPort Perl API listing
 ext/Devel/PPPort/parts/inc/call        Devel::PPPort include
 ext/Devel/PPPort/parts/inc/cop Devel::PPPort include
@@ -271,6 +273,7 @@ ext/Devel/PPPort/parts/inc/mPUSH    Devel::PPPort include
 ext/Devel/PPPort/parts/inc/MY_CXT      Devel::PPPort include
 ext/Devel/PPPort/parts/inc/newCONSTSUB Devel::PPPort include
 ext/Devel/PPPort/parts/inc/newRV       Devel::PPPort include
+ext/Devel/PPPort/parts/inc/newSVpv     Devel::PPPort include
 ext/Devel/PPPort/parts/inc/podtest     Devel::PPPort include
 ext/Devel/PPPort/parts/inc/ppphbin     Devel::PPPort include
 ext/Devel/PPPort/parts/inc/ppphdoc     Devel::PPPort include
@@ -323,6 +326,8 @@ ext/Devel/PPPort/parts/todo/5009002 Devel::PPPort todo file
 ext/Devel/PPPort/parts/todo/5009003    Devel::PPPort todo file
 ext/Devel/PPPort/parts/todo/5009004    Devel::PPPort todo file
 ext/Devel/PPPort/parts/todo/5009005    Devel::PPPort todo file
+ext/Devel/PPPort/parts/todo/5010000    Devel::PPPort todo file
+ext/Devel/PPPort/parts/todo/5011000    Devel::PPPort todo file
 ext/Devel/PPPort/ppport_h.PL   Devel::PPPort ppport.h writer
 ext/Devel/PPPort/PPPort_pm.PL  Devel::PPPort PPPort.pm writer
 ext/Devel/PPPort/PPPort.xs     Devel::PPPort dummy PPPort.xs
@@ -341,7 +346,7 @@ ext/Devel/PPPort/t/mPUSH.t  Devel::PPPort test file
 ext/Devel/PPPort/t/MY_CXT.t    Devel::PPPort test file
 ext/Devel/PPPort/t/newCONSTSUB.t       Devel::PPPort test file
 ext/Devel/PPPort/t/newRV.t     Devel::PPPort test file
-ext/Devel/PPPort/TODO          Devel::PPPort Todo
+ext/Devel/PPPort/t/newSVpv.t   Devel::PPPort test file
 ext/Devel/PPPort/t/podtest.t   Devel::PPPort test file
 ext/Devel/PPPort/t/ppphtest.t  Devel::PPPort test file
 ext/Devel/PPPort/t/pvs.t       Devel::PPPort test file
@@ -357,6 +362,7 @@ ext/Devel/PPPort/t/threads.t        Devel::PPPort test file
 ext/Devel/PPPort/t/uv.t                Devel::PPPort test file
 ext/Devel/PPPort/t/variables.t Devel::PPPort test file
 ext/Devel/PPPort/t/warn.t      Devel::PPPort test file
+ext/Devel/PPPort/TODO          Devel::PPPort Todo
 ext/Devel/PPPort/typemap       Devel::PPPort Typemap
 ext/Digest/MD5/Changes         Digest::MD5 extension changes
 ext/Digest/MD5/hints/dec_osf.pl        Hints for named architecture
index 60ca7c4..fb1face 100755 (executable)
@@ -1,3 +1,17 @@
+3.13_01 - 2008-01-04
+
+    * fix dependency detection algorithm for functions
+    * fix some potential memory leaks in the test suite
+    * no need to use *_mg functions for mX?PUSH macros
+    * added support for the following API
+        mPUSHs
+        mXPUSHs
+        newSVpvn_flags
+        newSVpvn_utf8
+        newSVpvs_flags
+        SVf_UTF8
+    * make sure soak works with cromfs
+
 3.13 - 2007-10-04
 
     * fix cpan #29748: ppport.h problems with perl5.005_05
index dfdc78c..0a80fb2 100644 (file)
@@ -11,15 +11,15 @@ lying around in this distribution.
 
 =head1 DESCRIPTION
 
-=head2 How to build 111 versions of Perl
+=head2 How to build 114 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 111 different Perl version/configuration
+machine. I currently have 114 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 111 Perls by hand
+cleanly on newer systems (and because building 114 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:
@@ -31,6 +31,7 @@ It can currently build the following Perl releases:
     5.7.x
     5.8.x
     5.9.x
+    5.10.x
 
 =head2 Fully automatic API checks
 
@@ -308,7 +309,7 @@ module in the core:
 
 =head1 COPYRIGHT
 
-Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 
 Version 2.x, Copyright (C) 2001, Paul Marquess.
 
index 0638bed..3a7597c 100644 (file)
@@ -4,13 +4,13 @@
 #
 ################################################################################
 #
-#  $Revision: 27 $
+#  $Revision: 28 $
 #  $Author: mhx $
-#  $Date: 2007/01/02 12:32:27 +0100 $
+#  $Date: 2008/01/04 10:47:38 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
index 6701beb..ea0be6d 100644 (file)
@@ -4,13 +4,13 @@
 #
 ################################################################################
 #
-#  $Revision: 57 $
+#  $Revision: 59 $
 #  $Author: mhx $
-#  $Date: 2007/09/11 23:28:24 +0200 $
+#  $Date: 2008/01/04 10:47:38 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -345,13 +345,13 @@ __DATA__
 #
 ################################################################################
 #
-#  $Revision: 57 $
+#  $Revision: 59 $
 #  $Author: mhx $
-#  $Date: 2007/09/11 23:28:24 +0200 $
+#  $Date: 2008/01/04 10:47:38 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -488,7 +488,7 @@ Version 3.x was ported back to CPAN by Marcus Holland-Moritz.
 
 =head1 COPYRIGHT
 
-Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 
 Version 2.x, Copyright (C) 2001, Paul Marquess.
 
@@ -508,7 +508,7 @@ package Devel::PPPort;
 use strict;
 use vars qw($VERSION $data);
 
-$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.13 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
+$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.13_01 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
 
 sub _init_data
 {
@@ -601,6 +601,8 @@ __DATA__
 
 %include SvREFCNT
 
+%include newSVpv
+
 %include SvPV
 
 %include Sv_set
index 5e265a3..704fedb 100644 (file)
@@ -4,13 +4,13 @@
 #
 ################################################################################
 #
-#  $Revision: 13 $
+#  $Revision: 14 $
 #  $Author: mhx $
-#  $Date: 2007/01/02 12:32:26 +0100 $
+#  $Date: 2008/01/04 10:47:37 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -93,13 +93,13 @@ __DATA__
 *
 ********************************************************************************
 *
-*  $Revision: 13 $
+*  $Revision: 14 $
 *  $Author: mhx $
-*  $Date: 2007/01/02 12:32:26 +0100 $
+*  $Date: 2008/01/04 10:47:37 +0100 $
 *
 ********************************************************************************
 *
-*  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+*  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 *  Version 2.x, Copyright (C) 2001, Paul Marquess.
 *  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 *
index 4b9751c..42def29 100644 (file)
@@ -69,7 +69,7 @@ to create a ticket for the module.
 5. COPYRIGHT
 ------------
 
-Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 Version 2.x, Copyright (C) 2001, Paul Marquess.
 Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 
index 9e56a79..35ba9ed 100644 (file)
@@ -4,13 +4,13 @@
 #
 ################################################################################
 #
-#  $Revision: 9 $
+#  $Revision: 10 $
 #  $Author: mhx $
-#  $Date: 2007/01/02 12:32:27 +0100 $
+#  $Date: 2008/01/04 10:47:37 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
index a85ad4f..a54f11f 100644 (file)
@@ -5,13 +5,13 @@
 #
 ################################################################################
 #
-#  $Revision: 12 $
+#  $Revision: 13 $
 #  $Author: mhx $
-#  $Date: 2007/08/12 15:06:31 +0200 $
+#  $Date: 2008/01/04 10:47:39 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -498,7 +498,7 @@ and don't install them, run:
 
 =head1 COPYRIGHT
 
-Copyright (c) 2004-2007, Marcus Holland-Moritz.
+Copyright (c) 2004-2008, Marcus Holland-Moritz.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
index 7574136..a94c634 100644 (file)
@@ -4,13 +4,13 @@
 #
 ################################################################################
 #
-#  $Revision: 3 $
+#  $Revision: 4 $
 #  $Author: mhx $
-#  $Date: 2007/08/12 08:45:38 +0200 $
+#  $Date: 2008/01/04 10:47:38 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
index ea53d0b..5f7ad93 100644 (file)
@@ -5,13 +5,13 @@
 #
 ################################################################################
 #
-#  $Revision: 10 $
+#  $Revision: 11 $
 #  $Author: mhx $
-#  $Date: 2007/08/12 11:50:36 +0200 $
+#  $Date: 2008/01/04 10:47:39 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
index 1ba7065..2981926 100644 (file)
@@ -5,13 +5,13 @@
 #
 ################################################################################
 #
-#  $Revision: 14 $
+#  $Revision: 15 $
 #  $Author: mhx $
-#  $Date: 2007/08/12 08:45:40 +0200 $
+#  $Date: 2008/01/04 10:47:39 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
index 773badc..b8414c2 100644 (file)
@@ -5,13 +5,13 @@
 #
 ################################################################################
 #
-#  $Revision: 14 $
+#  $Revision: 15 $
 #  $Author: mhx $
-#  $Date: 2007/08/12 08:45:39 +0200 $
+#  $Date: 2008/01/04 10:47:39 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
index 4a40d84..8bb1106 100644 (file)
@@ -5,13 +5,13 @@
 #
 ################################################################################
 #
-#  $Revision: 6 $
+#  $Revision: 7 $
 #  $Author: mhx $
-#  $Date: 2007/08/12 08:45:39 +0200 $
+#  $Date: 2008/01/04 10:47:39 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -148,7 +148,7 @@ regenerate - Automatically regeneate Devel::PPPort's API information
 
 =head1 COPYRIGHT
 
-Copyright (c) 2006-2007, Marcus Holland-Moritz.
+Copyright (c) 2006-2008, Marcus Holland-Moritz.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
index 66f207c..7fcfed5 100644 (file)
@@ -5,13 +5,13 @@
 #
 ################################################################################
 #
-#  $Revision: 7 $
+#  $Revision: 8 $
 #  $Author: mhx $
-#  $Date: 2007/08/12 08:45:15 +0200 $
+#  $Date: 2008/01/04 10:47:39 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
index 51a59ab..a5dca2f 100644 (file)
@@ -4,13 +4,13 @@
 #
 ################################################################################
 #
-#  $Revision: 28 $
+#  $Revision: 29 $
 #  $Author: mhx $
-#  $Date: 2007/01/02 12:32:26 +0100 $
+#  $Date: 2008/01/04 10:47:37 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
index 9373ee1..bb2d19a 100644 (file)
@@ -4,13 +4,13 @@
 *
 ********************************************************************************
 *
-*  $Revision: 9 $
+*  $Revision: 10 $
 *  $Author: mhx $
-*  $Date: 2007/01/02 12:32:27 +0100 $
+*  $Date: 2008/01/04 10:47:38 +0100 $
 *
 ********************************************************************************
 *
-*  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+*  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 *  Version 2.x, Copyright (C) 2001, Paul Marquess.
 *  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 *
index 147ee47..6926351 100644 (file)
@@ -4,13 +4,13 @@
 *
 ********************************************************************************
 *
-*  $Revision: 9 $
+*  $Revision: 10 $
 *  $Author: mhx $
-*  $Date: 2007/01/02 12:32:27 +0100 $
+*  $Date: 2008/01/04 10:47:38 +0100 $
 *
 ********************************************************************************
 *
-*  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+*  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 *  Version 2.x, Copyright (C) 2001, Paul Marquess.
 *  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 *
index b18ec26..2bb73b8 100644 (file)
@@ -5,13 +5,13 @@
 #
 ################################################################################
 #
-#  $Revision: 27 $
+#  $Revision: 29 $
 #  $Author: mhx $
-#  $Date: 2007/08/19 19:41:03 +0200 $
+#  $Date: 2008/01/04 12:02:22 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -165,6 +165,7 @@ print OUT <<HEAD;
 #define NEED_vload_module
 #define NEED_vnewSVpvf
 #define NEED_warner
+#define NEED_newSVpvn_flags
 
 #include "ppport.h"
 
index 3347f31..bdb2b3d 100644 (file)
@@ -1,5 +1,21 @@
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+:
+:  !!!!! Do NOT edit this file directly! -- Edit PPPort_pm.PL instead. !!!!!
+:
+:  This file was automatically generated from the API documentation scattered
+:  all over the Perl source code. To learn more about how all this works,
+:  please read the F<HACKERS> file that came with this distribution.
+:
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+
+:
+: This file lists all API functions/macros that are documented in the Perl
+: source code, but are not contained in F<embed.fnc>.
+:
+
 Ama|char*|savepvs|const char* s
 Ama|SV*|newSVpvs|const char* s
+Ama|SV*|newSVpvs_flags|const char* s|U32 flags
 Ama|SV*|newSVpvs_share|const char* s
 Am|bool|isALNUM|char ch
 Am|bool|isALPHA|char ch
@@ -25,6 +41,7 @@ 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*|HvNAME|HV* stash
 Am|char*|SvEND|SV* sv
 Am|char*|SvGAMAGIC|SV* sv
@@ -111,6 +128,7 @@ Am|SV*|HeVAL|HE* he
 Am|SV**|hv_fetchs|HV* tb|const char* key|I32 lval
 Am|SV**|hv_stores|HV* tb|const char* key|NULLOK SV* val
 Am|SV*|newRV_inc|SV* sv
+Am|SV*|newSVpvn_utf8|NULLOK const char* s|STRLEN len|U32 utf8
 Am|SV*|ST|int ix
 Am|SV*|SvREFCNT_inc_NN|SV* sv
 Am|SV*|SvREFCNT_inc_simple_NN|SV* sv
@@ -181,10 +199,12 @@ Am|void|Move|void* src|void* dest|int nitems|type
 Am|void|mPUSHi|IV iv
 Am|void|mPUSHn|NV nv
 Am|void|mPUSHp|char* str|STRLEN len
+Am|void|mPUSHs|SV* sv
 Am|void|mPUSHu|UV uv
 Am|void|mXPUSHi|IV iv
 Am|void|mXPUSHn|NV nv
 Am|void|mXPUSHp|char* str|STRLEN len
+Am|void|mXPUSHs|SV* sv
 Am|void|mXPUSHu|UV uv
 Am|void|Newxc|void* ptr|int nitems|type|cast
 Am|void|Newx|void* ptr|int nitems|type
index 31436dd..a196371 100644 (file)
@@ -32,13 +32,13 @@ gv_fetchmethod_autoload        # E
 gv_fullname3                   # U
 gv_stashpvn                    # E
 hv_delayfree_ent               # E
-hv_delete_ent                  # E
-hv_exists_ent                  # E
-hv_fetch_ent                   # E
+hv_delete_ent                  # U
+hv_exists_ent                  # U
+hv_fetch_ent                   # U
 hv_free_ent                    # E
 hv_iterkeysv                   # E
 hv_ksplit                      # E
-hv_store_ent                   # E
+hv_store_ent                   # U
 ibcmp_locale                   # E
 my_failure_exit                # E
 my_memcmp                      # U
@@ -63,6 +63,7 @@ sv_untaint                     # E
 sv_vcatpvfn                    # E
 sv_vsetpvfn                    # E
 unsharepvn                     # E
+PERL_HASH                      # added by devel/scanprov
 PERL_INT_MAX                   # added by devel/scanprov
 PERL_INT_MIN                   # added by devel/scanprov
 PERL_LONG_MAX                  # added by devel/scanprov
@@ -85,4 +86,3 @@ SvUVXx                         # added by devel/scanprov
 boolSV                         # added by devel/scanprov
 memEQ                          # added by devel/scanprov
 memNE                          # added by devel/scanprov
-PERL_HASH                      # added by devel/scanprov
index ace7674..3c96370 100644 (file)
@@ -17,7 +17,6 @@ regexec_flags                  # E
 regnext                        # E (Perl_regnext)
 runops_debug                   # E
 runops_standard                # E
-save_hints                     # E
 save_iv                        # E (save_iv)
 screaminstr                    # E (Perl_screaminstr)
 sv_iv                          # E
index d05e245..b2a93bf 100644 (file)
@@ -224,9 +224,8 @@ PTR2IV                         # added by devel/scanprov
 PTR2NV                         # added by devel/scanprov
 PTR2UV                         # added by devel/scanprov
 PTRV                           # added by devel/scanprov
-Perl_warner                    # added by devel/scanprov
-Perl_warner_nocontext          # added by devel/scanprov
 SVf                            # added by devel/scanprov
+SVf_UTF8                       # added by devel/scanprov
 UVSIZE                         # added by devel/scanprov
 UVTYPE                         # added by devel/scanprov
 UVof                           # added by devel/scanprov
index ae0d4b2..6d989ad 100644 (file)
@@ -21,5 +21,5 @@ utf8_to_uvuni                  # U
 utf8n_to_uvuni                 # U
 uvuni_to_utf8                  # U
 PTR2ul                         # added by devel/scanprov
-UVXf                           # added by devel/scanprov
 SV_IMMEDIATE_UNREF             # added by devel/scanprov
+UVXf                           # added by devel/scanprov
index 57ff6a7..a389fd8 100644 (file)
@@ -21,6 +21,6 @@ PERL_MAGIC_vstring             # added by devel/scanprov
 PERL_SCAN_SILENT_ILLDIGIT      # added by devel/scanprov
 PERL_SIGNALS_UNSAFE_FLAG       # added by devel/scanprov
 PL_signals                     # added by devel/scanprov
-XST_mUV                        # added by devel/scanprov
 SV_COW_DROP_PV                 # added by devel/scanprov
 SV_UTF8_NO_ENCODING            # added by devel/scanprov
+XST_mUV                        # added by devel/scanprov
index 26ce0e7..65d7de9 100644 (file)
@@ -28,5 +28,5 @@ op_refcnt_unlock               # U
 savesvpv                       # U
 vnormal                        # U
 MY_CXT_CLONE                   # added by devel/scanprov
-UTF8_MAXBYTES                  # added by devel/scanprov
 SV_NOSTEAL                     # added by devel/scanprov
+UTF8_MAXBYTES                  # added by devel/scanprov
index 8e6ee44..1abb298 100644 (file)
@@ -32,19 +32,17 @@ newSVpvs                       # U
 newSVpvs_share                 # U
 newWHENOP                      # U
 newWHILEOP                     # E (Perl_newWHILEOP)
-ref                            # U (Perl_ref)
 savepvs                        # U
 sortsv_flags                   # U
 sv_catpvs                      # U
 vverify                        # U
 PERL_UNUSED_ARG                # added by devel/scanprov
 STR_WITH_LEN                   # added by devel/scanprov
-SvPVX_const                    # added by devel/scanprov
-SvPVX_mutable                  # added by devel/scanprov
-dVAR                           # added by devel/scanprov
 SV_CONST_RETURN                # added by devel/scanprov
 SV_MUTABLE_RETURN              # added by devel/scanprov
 SV_SMAGIC                      # added by devel/scanprov
+SvPVX_const                    # added by devel/scanprov
+SvPVX_mutable                  # added by devel/scanprov
 SvPV_const                     # added by devel/scanprov
 SvPV_flags_const               # added by devel/scanprov
 SvPV_flags_const_nolen         # added by devel/scanprov
@@ -59,3 +57,4 @@ SvPV_nolen_const               # added by devel/scanprov
 SvPV_nomg_const                # added by devel/scanprov
 SvPV_nomg_const_nolen          # added by devel/scanprov
 SvSHARED_HASH                  # added by devel/scanprov
+dVAR                           # added by devel/scanprov
index 61a171f..65dbc85 100644 (file)
@@ -25,5 +25,5 @@ sv_setpvs                      # U
 sv_usepvn_flags                # U
 PERL_UNUSED_CONTEXT            # added by devel/scanprov
 PERL_USE_GCC_BRACE_GROUPS      # added by devel/scanprov
-SvVSTRING_mg                   # added by devel/scanprov
 SV_HAS_TRAILING_NUL            # added by devel/scanprov
+SvVSTRING_mg                   # added by devel/scanprov
index ef39541..f0fd5b9 100644 (file)
@@ -1,7 +1,4 @@
 5.009005
-MULTICALL                      # E
-POP_MULTICALL                  # E
-PUSH_MULTICALL                 # E
 Perl_signbit                   # U
 SvRX                           # U
 SvRXOK                         # U
@@ -9,14 +6,10 @@ av_create_and_push             # U
 av_create_and_unshift_one      # U
 get_cvn_flags                  # U
 gv_fetchfile_flags             # U
-hv_assert                      # U
 mro_get_linear_isa             # U
-mro_get_linear_isa_c3          # U
-mro_get_linear_isa_dfs         # U
 mro_method_changed_in          # U
 my_dirfd                       # U
 newSV_type                     # U
-pad_sv                         # U
 pregcomp                       # E (Perl_pregcomp)
 ptr_table_clear                # U
 ptr_table_fetch                # U
@@ -36,16 +29,5 @@ reg_stringify                  # U
 regfree_internal               # U
 savesharedpvn                  # U
 scan_vstring                   # E (Perl_scan_vstring)
-stashpv_hvname_match           # U
-sv_magic_portable              # U
 upg_version                    # E (Perl_upg_version)
-PERL_BCDVERSION                # added by devel/scanprov
-PERL_MAGIC_glob                # added by devel/scanprov
-PERL_MAGIC_mutex               # added by devel/scanprov
-PL_copline                     # added by devel/scanprov
-PL_expect                      # 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
 SV_COW_SHARED_HASH_KEYS        # added by devel/scanprov
diff --git a/ext/Devel/PPPort/parts/base/5010000 b/ext/Devel/PPPort/parts/base/5010000
new file mode 100644 (file)
index 0000000..737f374
--- /dev/null
@@ -0,0 +1,7 @@
+5.010000
+hv_common                      # U
+hv_common_key_len              # U
+sv_destroyable                 # U
+sys_init                       # U
+sys_init3                      # U
+sys_term                       # U
diff --git a/ext/Devel/PPPort/parts/base/5011000 b/ext/Devel/PPPort/parts/base/5011000
new file mode 100644 (file)
index 0000000..19e174d
--- /dev/null
@@ -0,0 +1,26 @@
+5.011000
+HeUTF8                         # U
+MULTICALL                      # E
+POP_MULTICALL                  # E
+PUSH_MULTICALL                 # E
+av_iter_p                      # U
+hv_assert                      # U
+mPUSHs                         # U
+mXPUSHs                        # U
+newSVpvn_flags                 # U
+newSVpvn_utf8                  # U
+newSVpvs_flags                 # U
+pad_sv                         # U
+pregfree2                      # U
+ref                            # U (Perl_ref)
+stashpv_hvname_match           # U
+sv_magic_portable              # U
+PERL_BCDVERSION                # added by devel/scanprov
+PERL_MAGIC_glob                # added by devel/scanprov
+PERL_MAGIC_mutex               # added by devel/scanprov
+PL_copline                     # added by devel/scanprov
+PL_expect                      # 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
index efd9242..d36e2fd 100644 (file)
@@ -115,6 +115,10 @@ Apd        |void   |av_undef       |NN AV* ar
 ApdoxM |SV**   |av_create_and_unshift_one|NN AV **const avp|NN SV *const val
 Apd    |void   |av_unshift     |NN AV* ar|I32 num
 Apo    |SV**   |av_arylen_p    |NN AV* av
+Apo    |IV*    |av_iter_p      |NN AV* av
+#if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
+s      |MAGIC* |get_aux_mg     |NN AV *av
+#endif
 pR     |OP*    |bind_match     |I32 type|NN OP* left|NN OP* pat
 pR     |OP*    |block_end      |I32 floor|NULLOK OP* seq
 ApR    |I32    |block_gimme
@@ -229,7 +233,6 @@ Ap  |bool   |do_open9       |NN GV *gv|NN const char *name|I32 len|int as_raw \
 Ap     |bool   |do_openn       |NN GV *gv|NN const char *name|I32 len|int as_raw \
                                |int rawmode|int rawperm|NULLOK PerlIO *supplied_fp \
                                |NULLOK SV **svp|I32 num
-p      |void   |do_pipe        |NN SV* sv|NULLOK GV* rgv|NULLOK GV* wgv
 p      |bool   |do_print       |NULLOK SV* sv|NN PerlIO* fp
 pR     |OP*    |do_readline
 p      |I32    |do_chomp       |NN SV* sv
@@ -299,12 +302,20 @@ Apd       |HV*    |gv_stashsv     |NULLOK SV* sv|I32 flags
 Apd    |void   |hv_clear       |NULLOK HV* tb
 poM    |HV *   |hv_copy_hints_hv|NN HV *const ohv
 Ap     |void   |hv_delayfree_ent|NN HV* hv|NULLOK HE* entry
-Apd    |SV*    |hv_delete      |NULLOK HV* tb|NN const char* key|I32 klen|I32 flags
-Apd    |SV*    |hv_delete_ent  |NULLOK HV* tb|NN SV* key|I32 flags|U32 hash
-ApdR   |bool   |hv_exists      |NULLOK HV* tb|NN const char* key|I32 klen
-ApdR   |bool   |hv_exists_ent  |NULLOK HV* tb|NN SV* key|U32 hash
-Apd    |SV**   |hv_fetch       |NULLOK HV* tb|NN const char* key|I32 klen|I32 lval
-Apd    |HE*    |hv_fetch_ent   |NULLOK HV* tb|NN SV* key|I32 lval|U32 hash
+Abmd   |SV*    |hv_delete      |NULLOK HV* tb|NN const char* key|I32 klen \
+                               |I32 flags
+Abmd   |SV*    |hv_delete_ent  |NULLOK HV* tb|NN SV* key|I32 flags|U32 hash
+AbmdR  |bool   |hv_exists      |NULLOK HV* tb|NN const char* key|I32 klen
+AbmdR  |bool   |hv_exists_ent  |NULLOK HV* tb|NN SV* key|U32 hash
+Abmd   |SV**   |hv_fetch       |NULLOK HV* tb|NN const char* key|I32 klen \
+                               |I32 lval
+Abmd   |HE*    |hv_fetch_ent   |NULLOK HV* tb|NN SV* key|I32 lval|U32 hash
+Ap     |void*  |hv_common      |NULLOK HV* tb|NULLOK SV* keysv \
+                               |NULLOK const char* key|STRLEN klen|int flags \
+                               |int action|NULLOK SV* val|U32 hash
+Ap     |void*  |hv_common_key_len|NULLOK HV *hv|NN const char *key \
+                               |I32 klen_i32|const int action|NULLOK SV *val \
+                               |const U32 hash
 Ap     |void   |hv_free_ent    |NN HV* hv|NULLOK HE* entryK
 Apd    |I32    |hv_iterinit    |NN HV* tb
 ApdR   |char*  |hv_iterkey     |NN HE* entry|NN I32* retlen
@@ -323,11 +334,11 @@ dpoM      |void   |refcounted_he_free|NULLOK struct refcounted_he *he
 XEdpoM |struct refcounted_he *|refcounted_he_new \
                                |NULLOK struct refcounted_he *const parent \
                                |NULLOK SV *const key|NULLOK SV *const value
-Apd    |SV**   |hv_store       |NULLOK HV* tb|NULLOK const char* key|I32 klen|NULLOK SV* val \
-                               |U32 hash
-Apd    |HE*    |hv_store_ent   |NULLOK HV* tb|NULLOK SV* key|NULLOK SV* val|U32 hash
-ApM    |SV**   |hv_store_flags |NULLOK HV* tb|NULLOK const char* key|I32 klen|NULLOK SV* val \
-                               |U32 hash|int flags
+Abmd   |SV**   |hv_store       |NULLOK HV* tb|NULLOK const char* key \
+                               |I32 klen|NULLOK SV* val|U32 hash
+Abmd   |HE*    |hv_store_ent   |NULLOK HV* tb|NULLOK SV* key|NULLOK SV* val|U32 hash
+AbmdM  |SV**   |hv_store_flags |NULLOK HV* tb|NULLOK const char* key \
+                               |I32 klen|NULLOK SV* val|U32 hash|int flags
 Apd    |void   |hv_undef       |NULLOK HV* tb
 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
@@ -426,7 +437,6 @@ dp  |int    |magic_clearhint|NN 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
 p      |int    |magic_existspack|NN SV* sv|NN const MAGIC* mg
-p      |int    |magic_freeregexp|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_freeovrld|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_get      |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_getarylen|NN SV* sv|NN const MAGIC* mg
@@ -448,14 +458,11 @@ p |int    |magic_set      |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_setamagic|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_setarylen|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_freearylen_p|NN SV* sv|NN MAGIC* mg
-p      |int    |magic_setbm    |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_setdbline|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_setdefelem|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_setenv   |NN SV* sv|NN MAGIC* mg
-p      |int    |magic_setfm    |NN SV* sv|NN MAGIC* mg
 dp     |int    |magic_sethint  |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_setisa   |NN SV* sv|NN MAGIC* mg
-p      |int    |magic_setglob  |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_setmglob |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_setnkeys |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_setpack  |NN SV* sv|NN MAGIC* mg
@@ -494,7 +501,7 @@ Ap  |I32    |mg_size        |NN SV* sv
 Ap     |void   |mini_mktime    |NN struct tm *pm
 EXp    |OP*    |mod            |NULLOK OP* o|I32 type
 p      |int    |mode_from_discipline|NULLOK SV* discp
-Ap     |char*  |moreswitches   |NN char* s
+Ap     |const char*    |moreswitches   |NN const char* s
 p      |OP*    |my             |NN OP* o
 Ap     |NV     |my_atof        |NN const char *s
 #if (!defined(HAS_MEMCPY) && !defined(HAS_BCOPY)) || (!defined(HAS_MEMMOVE) && !defined(HAS_SAFE_MEMCPY) && !defined(HAS_SAFE_BCOPY))
@@ -556,7 +563,7 @@ ApM |CV *   |newXS_flags    |NULLOK const char *name|NN XSUBADDR_t subaddr\
                                |NN const char *const filename \
                                |NULLOK const char *const proto|U32 flags
 Apd    |CV*    |newXS          |NULLOK const char* name|NN XSUBADDR_t f|NN const char* filename
-Apda   |AV*    |newAV
+AmdbR  |AV*    |newAV
 Apa    |OP*    |newAVREF       |NN OP* o
 Apa    |OP*    |newBINOP       |I32 type|I32 flags|NULLOK OP* first|NULLOK OP* last
 Apa    |OP*    |newCVREF       |I32 flags|NULLOK OP* o
@@ -564,7 +571,7 @@ Apa |OP*    |newGVOP        |I32 type|I32 flags|NN GV* gv
 Apa    |GV*    |newGVgen       |NN const char* pack
 Apa    |OP*    |newGVREF       |I32 type|NULLOK OP* o
 ApaR   |OP*    |newHVREF       |NN OP* o
-ApdaR  |HV*    |newHV
+AmdbR  |HV*    |newHV
 ApaR   |HV*    |newHVhv        |NULLOK HV* hv
 Apa    |IO*    |newIO
 Apa    |OP*    |newLISTOP      |I32 type|I32 flags|NULLOK OP* first|NULLOK OP* last
@@ -583,6 +590,7 @@ Apda        |SV*    |newSVuv        |UV u
 Apda   |SV*    |newSVnv        |NV n
 Apda   |SV*    |newSVpv        |NULLOK const char* s|STRLEN len
 Apda   |SV*    |newSVpvn       |NULLOK const char* s|STRLEN len
+Apda   |SV*    |newSVpvn_flags |NULLOK const char* s|STRLEN len|U32 flags
 Apda   |SV*    |newSVhek       |NULLOK const HEK *hek
 Apda   |SV*    |newSVpvn_share |NULLOK const char* s|I32 len|U32 hash
 Afpda  |SV*    |newSVpvf       |NN const char* pat|...
@@ -677,8 +685,9 @@ Ap  |SV*    |regclass_swash |NULLOK const regexp *prog|NN const struct regnode *n|bo
 Ap     |I32    |pregexec       |NN REGEXP * const prog|NN char* stringarg \
                                |NN char* strend|NN char* strbeg|I32 minend \
                                |NN SV* screamer|U32 nosave
-Ap     |void   |pregfree       |NULLOK struct regexp* r
-EXp    |struct regexp* |reg_temp_copy  |NN struct regexp* r
+Ap     |void   |pregfree       |NULLOK REGEXP* r
+Ap     |void   |pregfree2      |NN REGEXP* prog
+EXp    |REGEXP*|reg_temp_copy  |NN REGEXP* r
 Ap     |void   |regfree_internal|NULLOK REGEXP * const r
 Ap     |char * |reg_stringify  |NN MAGIC *mg|NULLOK STRLEN *lp|NULLOK U32 *flags|NULLOK I32 *haseval
 #if defined(USE_ITHREADS)
@@ -751,7 +760,6 @@ Ap  |void   |save_shared_pvref|NN char** str
 Ap     |void   |save_gp        |NN GV* gv|I32 empty
 Ap     |HV*    |save_hash      |NN GV* gv
 Ap     |void   |save_helem     |NN HV* hv|NN SV *key|NN SV **sptr
-Apr    |void   |save_hints
 Ap     |void   |save_hptr      |NN HV** hptr
 Ap     |void   |save_I16       |NN I16* intp
 Ap     |void   |save_I32       |NN I32* intp
@@ -789,8 +797,8 @@ p   |I32    |setenv_getix   |NN const char* nam
 EXp    |void   |setdefout      |NULLOK GV* gv
 Ap     |HEK*   |share_hek      |NN const char* str|I32 len|U32 hash
 #if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
-np     |Signal_t |sighandler   |int sig|...
-Anp    |Signal_t |csighandler  |int sig|...
+np     |Signal_t |sighandler   |int sig|NULLOK siginfo_t *info|NULLOK void *uap
+Anp    |Signal_t |csighandler  |int sig|NULLOK siginfo_t *info|NULLOK void *uap
 #else
 np     |Signal_t |sighandler   |int sig
 Anp    |Signal_t |csighandler  |int sig
@@ -809,6 +817,7 @@ Amb |IV     |sv_2iv         |NN SV* sv
 Apd    |IV     |sv_2iv_flags   |NN SV* sv|I32 flags
 Apd    |SV*    |sv_2mortal     |NULLOK SV* sv
 Apd    |NV     |sv_2nv         |NN SV* sv
+pMd    |SV*    |sv_2num        |NN SV* sv
 Amb    |char*  |sv_2pv         |NN SV* sv|NULLOK STRLEN* lp
 Apd    |char*  |sv_2pv_flags   |NN SV* sv|NULLOK STRLEN* lp|I32 flags
 Apd    |char*  |sv_2pvutf8     |NN SV* sv|NULLOK STRLEN* lp
@@ -1077,7 +1086,8 @@ Apa       |ANY*   |ss_dup         |NN PerlInterpreter* proto_perl|NN CLONE_PARAMS* param
 ApR    |void*  |any_dup        |NULLOK void* v|NN const PerlInterpreter* proto_perl
 ApR    |HE*    |he_dup         |NULLOK const HE* e|bool shared|NN CLONE_PARAMS* param
 ApR    |HEK*   |hek_dup        |NULLOK HEK* e|NN CLONE_PARAMS* param
-ApR    |REGEXP*|re_dup         |NULLOK const REGEXP* r|NN CLONE_PARAMS* param
+Ap     |void   |re_dup_guts    |NN const REGEXP *sstr|NN REGEXP *dstr \
+                               |NN CLONE_PARAMS* param
 Ap     |PerlIO*|fp_dup         |NULLOK PerlIO* fp|char type|NN CLONE_PARAMS* param
 ApR    |DIR*   |dirp_dup       |NULLOK DIR* dp
 ApR    |GP*    |gp_dup         |NULLOK GP* gp|NN CLONE_PARAMS* param
@@ -1107,6 +1117,7 @@ ApR       |const char *   |custom_op_desc |NN const OP* op
 
 Adp    |void   |sv_nosharing   |NULLOK SV *sv
 Adpbm  |void   |sv_nolocking   |NULLOK SV *sv
+Adp    |bool   |sv_destroyable |NULLOK SV *sv
 #ifdef NO_MATHOMS
 Adpbm  |void   |sv_nounlocking |NULLOK SV *sv
 #else
@@ -1127,6 +1138,7 @@ sR        |I32    |do_trans_complex_utf8  |NN SV * const sv
 
 #if defined(PERL_IN_GV_C) || defined(PERL_DECL_PROT)
 s      |void   |gv_init_sv     |NN GV *gv|I32 sv_type
+s      |HV*    |gv_get_super_pkg|NN const char* name|I32 namelen
 s      |HV*    |require_tie_mod|NN GV *gv|NN const char *varpv|NN SV* namesv \
                                |NN const char *methpv|const U32 flags
 #endif
@@ -1143,13 +1155,10 @@ 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
 s      |void   |unshare_hek_or_pvn|NULLOK const HEK* hek|NULLOK const char* str|I32 len|U32 hash
 sR     |HEK*   |share_hek_flags|NN const char* sv|I32 len|U32 hash|int flags
-sR     |SV*    |hv_magic_uvar_xkey|NN HV* hv|NN SV* keysv|int action
 rs     |void   |hv_notallowed  |int flags|NN const char *key|I32 klen|NN const char *msg
 sn     |struct xpvhv_aux*|hv_auxinit|NN HV *hv
 sM     |SV*    |hv_delete_common|NULLOK HV* tb|NULLOK SV* keysv|NULLOK const char* key \
                |STRLEN klen|int k_flags|I32 d_flags|U32 hash
-sM     |HE*    |hv_fetch_common|NULLOK HV* tb|NULLOK SV* keysv|NULLOK const char* key \
-               |STRLEN klen|int flags|int action|NULLOK SV* val|U32 hash
 sM     |void   |clear_placeholders     |NN HV* hb|U32 items
 sM     |SV *   |refcounted_he_value    |NN const struct refcounted_he *he
 #endif
@@ -1207,6 +1216,7 @@ pR        |OP*    |ck_substr      |NN OP *o
 pR     |OP*    |ck_svconst     |NN OP *o
 pR     |OP*    |ck_trunc       |NN OP *o
 pR     |OP*    |ck_unpack      |NN OP *o
+pR     |OP*    |ck_each        |NN OP *o
 sRn    |bool   |is_handle_constructor|NN const OP *o|I32 numargs
 sR     |I32    |is_list_assignment|NULLOK const OP *o
 #  ifdef USE_ITHREADS
@@ -1308,7 +1318,6 @@ snR       |char * |bytes_to_uni   |NN const U8 *start|STRLEN len|NN char *dest
 
 #if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
 sR     |OP*    |docatch        |NULLOK OP *o
-s      |void   |docatch_body
 sR     |OP*    |dofindlabel    |NN OP *o|NN const char *label|NN OP **opstack|NN OP **oplimit
 sR     |OP*    |doparseform    |NN SV *sv
 snR    |bool   |num_overflow   |NV value|I32 fldsize|I32 frcsize
@@ -1316,16 +1325,17 @@ sR      |I32    |dopoptoeval    |I32 startingblock
 sR     |I32    |dopoptogiven   |I32 startingblock
 sR     |I32    |dopoptolabel   |NN const char *label
 sR     |I32    |dopoptoloop    |I32 startingblock
-sR     |I32    |dopoptosub     |I32 startingblock
 sR     |I32    |dopoptosub_at  |NN const PERL_CONTEXT* cxstk|I32 startingblock
 sR     |I32    |dopoptowhen    |I32 startingblock
 s      |void   |save_lines     |NULLOK AV *array|NN SV *sv
 s      |bool   |doeval         |int gimme|NULLOK OP** startop|NULLOK CV* outside|U32 seq
-sR     |PerlIO *|check_type_and_open|NN const char *name|NN const char *mode
-sR     |PerlIO *|doopen_pm     |NN const char *name|NN const char *mode
+sR     |PerlIO *|check_type_and_open|NN const char *name
+#ifndef PERL_DISABLE_PMC
+sR     |PerlIO *|doopen_pm     |NN const char *name|const STRLEN namelen
+#endif
 sRn    |bool   |path_is_absolute|NN const char *name
 sR     |I32    |run_user_filter|int idx|NN SV *buf_sv|int maxlen
-sR     |PMOP*  |make_matcher   |NN regexp* re
+sR     |PMOP*  |make_matcher   |NN REGEXP* re
 sR     |bool   |matcher_matches_sv|NN PMOP* matcher|NN SV* sv
 s      |void   |destroy_matcher|NN PMOP* matcher
 s      |OP*    |do_smartmatch  |NULLOK HV* seen_this|NULLOK HV* seen_other
@@ -1351,7 +1361,6 @@ s |void   |qsortsvu       |NN SV** array|size_t num_elts|NN SVCOMPARE_t compare
 
 #if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT)
 s      |OP*    |doform         |NN CV *cv|NN GV *gv|NN OP *retop
-s      |int    |emulate_eaccess|NN const char* path|Mode_t mode
 #  if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
 sR     |int    |dooneliner     |NN const char *cmd|NN const char *filename
 #  endif
@@ -1541,17 +1550,17 @@ s       |int    |intuit_more    |NN char *s
 s      |I32    |lop            |I32 f|int x|NN char *s
 rs     |void   |missingterm    |NULLOK char *s
 s      |void   |no_op          |NN const char *what|NULLOK char *s
-s      |void   |set_csh
 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     |HV *   |find_in_my_stash|NN const char *pkgname|I32 len
+sR     |HV *   |find_in_my_stash|NN const char *pkgname|STRLEN len
 sR     |char * |tokenize_use   |int is_use|NN char *s
-s      |SV*    |new_constant   |NULLOK const char *s|STRLEN len|NN const char *key|NN SV *sv \
-                               |NULLOK SV *pv|NULLOK const char *type
+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    |ao             |int toketype
-s      |const char*|incl_perldb
 #  if defined(PERL_CR_FILTER)
 s      |I32    |cr_textfilter  |int idx|NULLOK SV *sv|int maxlen
 s      |void   |strip_return   |NN SV *sv
@@ -1855,7 +1864,8 @@ 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 void* val|I32 vlen
+Mp     |MADPROP*|newMADPROP    |char key|char type|NULLOK const void* val \
+                               |I32 vlen
 Mp     |void   |mad_free       |NULLOK MADPROP* mp
 
 #  if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
@@ -1880,11 +1890,17 @@ p       |struct mro_meta*       |mro_meta_init  |NN HV* stash
 p      |struct mro_meta*       |mro_meta_dup   |NN struct mro_meta* smeta|NN CLONE_PARAMS* param
 #endif
 Apd    |AV*    |mro_get_linear_isa|NN HV* stash
-Apd    |AV*    |mro_get_linear_isa_c3|NN HV* stash|I32 level
-Apd    |AV*    |mro_get_linear_isa_dfs|NN HV* stash|I32 level
+#if defined(PERL_IN_MRO_C) || defined(PERL_DECL_PROT)
+sd     |AV*    |mro_get_linear_isa_c3|NN HV* stash|I32 level
+sd     |AV*    |mro_get_linear_isa_dfs|NN HV* stash|I32 level
+#endif
 pd     |void   |mro_isa_changed_in|NN HV* stash
 Apd    |void   |mro_method_changed_in  |NN HV* stash
 p      |void   |boot_core_mro
+Apon   |void   |sys_init       |NN int* argc|NN char*** argv
+Apon   |void   |sys_init3      |NN int* argc|NN char*** argv|NN char*** env
+Apon   |void   |sys_term
+
 
 END_EXTERN_C
 /*
index eef9948..55fd6e7 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 14 $
+##  $Revision: 15 $
 ##  $Author: mhx $
-##  $Date: 2007/01/02 12:32:34 +0100 $
+##  $Date: 2008/01/04 10:47:43 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index ec89cb1..ae03a36 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 18 $
+##  $Revision: 19 $
 ##  $Author: mhx $
-##  $Date: 2007/09/11 23:19:51 +0200 $
+##  $Date: 2008/01/04 10:47:43 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 2c3a29c..9c72715 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 2 $
+##  $Revision: 4 $
 ##  $Author: mhx $
-##  $Date: 2007/01/02 12:32:28 +0100 $
+##  $Date: 2008/01/04 14:54:44 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -95,30 +95,30 @@ SvREFCNT()
                SV *sv, *svr;
        PPCODE:
                sv = newSV(0);
-               XPUSHs(newSViv(SvREFCNT(sv) == 1));
+               mXPUSHi(SvREFCNT(sv) == 1);
                svr = SvREFCNT_inc(sv);
-               XPUSHs(newSViv(sv == svr));
-               XPUSHs(newSViv(SvREFCNT(sv) == 2));
+               mXPUSHi(sv == svr);
+               mXPUSHi(SvREFCNT(sv) == 2);
                svr = SvREFCNT_inc_simple(sv);
-               XPUSHs(newSViv(sv == svr));
-               XPUSHs(newSViv(SvREFCNT(sv) == 3));
+               mXPUSHi(sv == svr);
+               mXPUSHi(SvREFCNT(sv) == 3);
                svr = SvREFCNT_inc_NN(sv);
-               XPUSHs(newSViv(sv == svr));
-               XPUSHs(newSViv(SvREFCNT(sv) == 4));
+               mXPUSHi(sv == svr);
+               mXPUSHi(SvREFCNT(sv) == 4);
                svr = SvREFCNT_inc_simple_NN(sv);
-               XPUSHs(newSViv(sv == svr));
-               XPUSHs(newSViv(SvREFCNT(sv) == 5));
+               mXPUSHi(sv == svr);
+               mXPUSHi(SvREFCNT(sv) == 5);
                SvREFCNT_inc_void(sv);
-               XPUSHs(newSViv(SvREFCNT(sv) == 6));
+               mXPUSHi(SvREFCNT(sv) == 6);
                SvREFCNT_inc_simple_void(sv);
-               XPUSHs(newSViv(SvREFCNT(sv) == 7));
+               mXPUSHi(SvREFCNT(sv) == 7);
                SvREFCNT_inc_void_NN(sv);
-               XPUSHs(newSViv(SvREFCNT(sv) == 8));
+               mXPUSHi(SvREFCNT(sv) == 8);
                SvREFCNT_inc_simple_void_NN(sv);
-               XPUSHs(newSViv(SvREFCNT(sv) == 9));
+               mXPUSHi(SvREFCNT(sv) == 9);
                while (SvREFCNT(sv) > 1)
                  SvREFCNT_dec(sv);
-               XPUSHs(newSViv(SvREFCNT(sv) == 1));
+               mXPUSHi(SvREFCNT(sv) == 1);
                SvREFCNT_dec(sv);
                XSRETURN(14);
 
index 692a01e..092700a 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 5 $
+##  $Revision: 6 $
 ##  $Author: mhx $
-##  $Date: 2007/01/02 12:32:29 +0100 $
+##  $Date: 2008/01/04 10:47:41 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index ef7bbc8..013c0f1 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 15 $
+##  $Revision: 17 $
 ##  $Author: mhx $
-##  $Date: 2007/08/18 20:16:11 +0200 $
+##  $Date: 2008/01/04 14:54:42 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -184,7 +184,7 @@ eval_sv(sv, flags)
                i = eval_sv(sv, flags);
                SPAGAIN;
                EXTEND(SP, 1);
-               PUSHs(sv_2mortal(newSViv(i)));
+               mPUSHi(i);
 
 void
 eval_pv(p, croak_on_error)
@@ -210,7 +210,7 @@ call_sv(sv, flags, ...)
                i = call_sv(sv, flags);
                SPAGAIN;
                EXTEND(SP, 1);
-               PUSHs(sv_2mortal(newSViv(i)));
+               mPUSHi(i);
 
 void
 call_pv(subname, flags, ...)
@@ -227,7 +227,7 @@ call_pv(subname, flags, ...)
                i = call_pv(subname, flags);
                SPAGAIN;
                EXTEND(SP, 1);
-               PUSHs(sv_2mortal(newSViv(i)));
+               mPUSHi(i);
 
 void
 call_argv(subname, flags, ...)
@@ -246,7 +246,7 @@ call_argv(subname, flags, ...)
                i = call_argv(subname, flags, args);
                SPAGAIN;
                EXTEND(SP, 1);
-               PUSHs(sv_2mortal(newSViv(i)));
+               mPUSHi(i);
 
 void
 call_method(methname, flags, ...)
@@ -263,7 +263,7 @@ call_method(methname, flags, ...)
                i = call_method(methname, flags);
                SPAGAIN;
                EXTEND(SP, 1);
-               PUSHs(sv_2mortal(newSViv(i)));
+               mPUSHi(i);
 
 void
 load_module(flags, name, version, ...)
index 16af1ca..408021d 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 6 $
+##  $Revision: 7 $
 ##  $Author: mhx $
-##  $Date: 2007/01/02 12:32:32 +0100 $
+##  $Date: 2008/01/04 10:47:42 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 93cd21b..5c7d6f9 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 5 $
+##  $Revision: 6 $
 ##  $Author: mhx $
-##  $Date: 2007/01/02 12:32:31 +0100 $
+##  $Date: 2008/01/04 10:47:41 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 212544c..2e1413f 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 6 $
+##  $Revision: 7 $
 ##  $Author: mhx $
-##  $Date: 2007/01/02 12:32:33 +0100 $
+##  $Date: 2008/01/04 10:47:43 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index e6dc979..e7a0f6a 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 14 $
+##  $Revision: 15 $
 ##  $Author: mhx $
-##  $Date: 2007/09/11 23:20:41 +0200 $
+##  $Date: 2008/01/04 10:47:44 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 43ed75a..879fc46 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 5 $
+##  $Revision: 6 $
 ##  $Author: mhx $
-##  $Date: 2007/01/02 12:32:33 +0100 $
+##  $Date: 2008/01/04 10:47:42 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index ee2e22d..30ec8f3 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 7 $
+##  $Revision: 10 $
 ##  $Author: mhx $
-##  $Date: 2007/01/02 12:32:32 +0100 $
+##  $Date: 2008/01/04 13:11:16 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -21,21 +21,32 @@ __UNDEFINED__
 
 =implementation
 
+__UNDEFINED__  mPUSHs(s)       PUSHs(sv_2mortal(s))
 __UNDEFINED__  PUSHmortal      PUSHs(sv_newmortal())
-__UNDEFINED__  mPUSHp(p,l)     sv_setpvn_mg(PUSHmortal, (p), (l))
-__UNDEFINED__  mPUSHn(n)       sv_setnv_mg(PUSHmortal, (NV)(n))
-__UNDEFINED__  mPUSHi(i)       sv_setiv_mg(PUSHmortal, (IV)(i))
-__UNDEFINED__  mPUSHu(u)       sv_setuv_mg(PUSHmortal, (UV)(u))
+__UNDEFINED__  mPUSHp(p,l)     sv_setpvn(PUSHmortal, (p), (l))
+__UNDEFINED__  mPUSHn(n)       sv_setnv(PUSHmortal, (NV)(n))
+__UNDEFINED__  mPUSHi(i)       sv_setiv(PUSHmortal, (IV)(i))
+__UNDEFINED__  mPUSHu(u)       sv_setuv(PUSHmortal, (UV)(u))
 
+__UNDEFINED__  mXPUSHs(s)      XPUSHs(sv_2mortal(s))
 __UNDEFINED__  XPUSHmortal     XPUSHs(sv_newmortal())
-__UNDEFINED__  mXPUSHp(p,l)    STMT_START { EXTEND(sp,1); sv_setpvn_mg(PUSHmortal, (p), (l)); } STMT_END
-__UNDEFINED__  mXPUSHn(n)      STMT_START { EXTEND(sp,1); sv_setnv_mg(PUSHmortal, (NV)(n)); } STMT_END
-__UNDEFINED__  mXPUSHi(i)      STMT_START { EXTEND(sp,1); sv_setiv_mg(PUSHmortal, (IV)(i)); } STMT_END
-__UNDEFINED__  mXPUSHu(u)      STMT_START { EXTEND(sp,1); sv_setuv_mg(PUSHmortal, (UV)(u)); } STMT_END
+__UNDEFINED__  mXPUSHp(p,l)    STMT_START { EXTEND(sp,1); sv_setpvn(PUSHmortal, (p), (l)); } STMT_END
+__UNDEFINED__  mXPUSHn(n)      STMT_START { EXTEND(sp,1); sv_setnv(PUSHmortal, (NV)(n)); } STMT_END
+__UNDEFINED__  mXPUSHi(i)      STMT_START { EXTEND(sp,1); sv_setiv(PUSHmortal, (IV)(i)); } STMT_END
+__UNDEFINED__  mXPUSHu(u)      STMT_START { EXTEND(sp,1); sv_setuv(PUSHmortal, (UV)(u)); } STMT_END
 
 =xsubs
 
 void
+mPUSHs()
+       PPCODE:
+       EXTEND(SP, 3);
+       mPUSHs(newSVpv("foo", 0));
+       mPUSHs(newSVpv("bar13", 3));
+       mPUSHs(newSViv(42));
+       XSRETURN(3);
+
+void
 mPUSHp()
        PPCODE:
        EXTEND(SP, 3);
@@ -72,6 +83,14 @@ mPUSHu()
        XSRETURN(3);
 
 void
+mXPUSHs()
+       PPCODE:
+       mXPUSHs(newSVpv("foo", 0));
+       mXPUSHs(newSVpv("bar13", 3));
+       mXPUSHs(newSViv(42));
+       XSRETURN(3);
+
+void
 mXPUSHp()
        PPCODE:
        mXPUSHp("one", 3);
@@ -103,13 +122,15 @@ mXPUSHu()
        mXPUSHu(3);
        XSRETURN(3);
 
-=tests plan => 8
+=tests plan => 10
 
+ok(join(':', &Devel::PPPort::mPUSHs()), "foo:bar:42");
 ok(join(':', &Devel::PPPort::mPUSHp()), "one:two:three");
 ok(join(':', &Devel::PPPort::mPUSHn()), "0.5:-0.25:0.125");
 ok(join(':', &Devel::PPPort::mPUSHi()), "-1:2:-3");
 ok(join(':', &Devel::PPPort::mPUSHu()), "1:2:3");
 
+ok(join(':', &Devel::PPPort::mXPUSHs()), "foo:bar:42");
 ok(join(':', &Devel::PPPort::mXPUSHp()), "one:two:three");
 ok(join(':', &Devel::PPPort::mXPUSHn()), "0.5:-0.25:0.125");
 ok(join(':', &Devel::PPPort::mXPUSHi()), "-1:2:-3");
index 2cdd720..233a9a4 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 15 $
+##  $Revision: 16 $
 ##  $Author: mhx $
-##  $Date: 2007/09/11 23:20:42 +0200 $
+##  $Date: 2008/01/04 10:47:44 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 7f5dda6..cfef37e 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 3 $
+##  $Revision: 4 $
 ##  $Author: mhx $
-##  $Date: 2007/01/02 12:32:31 +0100 $
+##  $Date: 2008/01/04 10:47:41 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index c565e21..05c3ff7 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 41 $
+##  $Revision: 44 $
 ##  $Author: mhx $
-##  $Date: 2007/08/20 18:33:10 +0200 $
+##  $Date: 2008/01/04 14:54:43 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -166,10 +166,6 @@ __UNDEFINED__  AvFILLp      AvFILL
 
 __UNDEFINED__  ERRSV        get_sv("@",FALSE)
 
-__UNDEFINED__  newSVpvn(data,len)  ((data)                                              \
-                                    ? ((len) ? newSVpv((data), (len)) : newSVpv("", 0)) \
-                                    : newSV(0))
-
 /* Hint: gv_stashpvn
  * This function's backport doesn't support the length parameter, but
  * rather ignores it. Portability can only be ensured if the length
@@ -250,7 +246,7 @@ XS(XS_Devel__PPPort_dAXMARK)
   IV iv;
   SP -= items;
   iv = SvIV(ST(0)) - 1;
-  PUSHs(sv_2mortal(newSViv(iv)));
+  mPUSHi(iv);
   XSRETURN(1);
 }
 
@@ -307,22 +303,12 @@ get_cv(name, create)
                RETVAL
 
 void
-newSVpvn()
-       PPCODE:
-               XPUSHs(newSVpvn("test", 4));
-               XPUSHs(newSVpvn("test", 2));
-               XPUSHs(newSVpvn("test", 0));
-               XPUSHs(newSVpvn(NULL, 2));
-               XPUSHs(newSVpvn(NULL, 0));
-               XSRETURN(5);
-
-void
 xsreturn(two)
        int two
        PPCODE:
-               XPUSHs(newSVpvn("test1", 5));
+               mXPUSHp("test1", 5);
                if (two)
-                 XPUSHs(newSVpvn("test2", 5));
+                 mXPUSHp("test2", 5);
                if (two)
                  XSRETURN(2);
                else
@@ -366,7 +352,7 @@ prepush()
                {
                  dXSTARG;
                  XSprePUSH;
-                 PUSHi(42);
+                 mPUSHi(42);
                  XSRETURN(1);
                }
 
@@ -379,23 +365,15 @@ SVf(x)
        SV *x
        PPCODE:
 #if { VERSION >= 5.004 }
-               x = newSVpvf("[%"SVf"]", x);
+               x = sv_2mortal(newSVpvf("[%"SVf"]", x));
 #endif
                XPUSHs(x);
                XSRETURN(1);
 
-=tests plan => 38
+=tests plan => 32
 
 use vars qw($my_sv @my_av %my_hv);
 
-my @s = &Devel::PPPort::newSVpvn();
-ok(@s == 5);
-ok($s[0], "test");
-ok($s[1], "te");
-ok($s[2], "");
-ok(!defined($s[3]));
-ok(!defined($s[4]));
-
 ok(&Devel::PPPort::boolSV(1));
 ok(!&Devel::PPPort::boolSV(0));
 
index 02cbf41..cd01615 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 12 $
+##  $Revision: 13 $
 ##  $Author: mhx $
-##  $Date: 2007/09/11 23:20:42 +0200 $
+##  $Date: 2008/01/04 10:47:43 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 9add414..d786780 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 7 $
+##  $Revision: 8 $
 ##  $Author: mhx $
-##  $Date: 2007/01/02 12:32:33 +0100 $
+##  $Date: 2008/01/04 10:47:43 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
diff --git a/ext/Devel/PPPort/parts/inc/newSVpv b/ext/Devel/PPPort/parts/inc/newSVpv
new file mode 100644 (file)
index 0000000..8137f61
--- /dev/null
@@ -0,0 +1,109 @@
+################################################################################
+##
+##  $Revision: 4 $
+##  $Author: mhx $
+##  $Date: 2008/01/04 13:10:54 +0100 $
+##
+################################################################################
+##
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
+##  Version 2.x, Copyright (C) 2001, Paul Marquess.
+##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
+##
+##  This program is free software; you can redistribute it and/or
+##  modify it under the same terms as Perl itself.
+##
+################################################################################
+
+=provides
+
+__UNDEFINED__
+newSVpvn_flags
+
+=implementation
+
+__UNDEFINED__  newSVpvn(data,len)  ((data)                                              \
+                                    ? ((len) ? newSVpv((data), (len)) : newSVpv("", 0)) \
+                                    : newSV(0))
+
+__UNDEFINED__  newSVpvn_utf8(s, len, u)  newSVpvn_flags((s), (len), (u) ? SVf_UTF8 : 0)
+
+__UNDEFINED__  SVf_UTF8  0
+
+#ifndef newSVpvn_flags
+
+#if { NEED newSVpvn_flags }
+
+SV *
+newSVpvn_flags(pTHX_ const char *s, STRLEN len, U32 flags)
+{
+  SV *sv = newSVpvn(s, len);
+  SvFLAGS(sv) |= (flags & SVf_UTF8);
+  return (flags & SVs_TEMP) ? sv_2mortal(sv) : sv;
+}
+
+#endif
+
+#endif
+
+=xsinit
+
+#define NEED_newSVpvn_flags
+
+=xsubs
+
+void
+newSVpvn()
+       PPCODE:
+               mXPUSHs(newSVpvn("test", 4));
+               mXPUSHs(newSVpvn("test", 2));
+               mXPUSHs(newSVpvn("test", 0));
+               mXPUSHs(newSVpvn(NULL, 2));
+               mXPUSHs(newSVpvn(NULL, 0));
+               XSRETURN(5);
+
+void
+newSVpvn_flags()
+       PPCODE:
+               XPUSHs(newSVpvn_flags("test", 4, SVs_TEMP));
+               XPUSHs(newSVpvn_flags("test", 2, SVs_TEMP));
+               XPUSHs(newSVpvn_flags("test", 0, SVs_TEMP));
+               XPUSHs(newSVpvn_flags(NULL, 2, SVs_TEMP));
+               XPUSHs(newSVpvn_flags(NULL, 0, SVs_TEMP));
+               XSRETURN(5);
+
+void
+newSVpvn_utf8()
+       PPCODE:
+               XPUSHs(newSVpvn_flags("test", 4, SVs_TEMP|SVf_UTF8));
+               XSRETURN(1);
+
+=tests plan => 15
+
+my @s = &Devel::PPPort::newSVpvn();
+ok(@s == 5);
+ok($s[0], "test");
+ok($s[1], "te");
+ok($s[2], "");
+ok(!defined($s[3]));
+ok(!defined($s[4]));
+
+@s = &Devel::PPPort::newSVpvn_flags();
+ok(@s == 5);
+ok($s[0], "test");
+ok($s[1], "te");
+ok($s[2], "");
+ok(!defined($s[3]));
+ok(!defined($s[4]));
+
+@s = &Devel::PPPort::newSVpvn_utf8();
+ok(@s == 1);
+ok($s[0], "test");
+
+if ($] >= 5.008001) {
+  require utf8;
+  ok(utf8::is_utf8($s[0]));
+}
+else {
+  skip("skip: no is_utf8()", 0);
+}
index 2ad99fc..1466a60 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 7 $
+##  $Revision: 8 $
 ##  $Author: mhx $
-##  $Date: 2007/01/02 12:32:28 +0100 $
+##  $Date: 2008/01/04 10:47:40 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 74dadd6..b474c40 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 45 $
+##  $Revision: 47 $
 ##  $Author: mhx $
-##  $Date: 2007/09/11 23:18:31 +0200 $
+##  $Date: 2008/01/04 12:03:30 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -155,7 +155,7 @@ while (<DATA>) {
         my @n = find_api($function->[1]);
         push @{$depends{$function->[0]}}, @n if @n
       }
-      undef $define;
+      undef $function;
     }
     else {
       $function->[1] .= $_;
index 4154c7c..5d5f4e6 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 30 $
+##  $Revision: 31 $
 ##  $Author: mhx $
-##  $Date: 2007/05/22 21:26:46 +0200 $
+##  $Date: 2008/01/04 10:47:42 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -336,7 +336,7 @@ module from CPAN.
 
 =head1 COPYRIGHT
 
-Version 3.x, Copyright (c) 2004-2007, Marcus Holland-Moritz.
+Version 3.x, Copyright (c) 2004-2008, Marcus Holland-Moritz.
 
 Version 2.x, Copyright (C) 2001, Paul Marquess.
 
index 71a97b1..c3a7bde 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 41 $
+##  $Revision: 42 $
 ##  $Author: mhx $
-##  $Date: 2007/09/11 23:18:33 +0200 $
+##  $Date: 2008/01/04 10:47:42 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index fe97588..0262adb 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 6 $
+##  $Revision: 8 $
 ##  $Author: mhx $
-##  $Date: 2007/10/04 12:26:54 +0200 $
+##  $Date: 2008/01/04 12:02:59 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -29,6 +29,7 @@ __UNDEFINED__
 __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__  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)
@@ -39,7 +40,13 @@ __UNDEFINED__  hv_stores(hv, key, val)     hv_store(hv, key "", sizeof(key) - 1,
 void
 newSVpvs()
        PPCODE:
-               XPUSHs(newSVpvs("newSVpvs"));
+               mXPUSHs(newSVpvs("newSVpvs"));
+               XSRETURN(1);
+
+void
+newSVpvs_flags()
+       PPCODE:
+               XPUSHs(newSVpvs_flags("newSVpvs_flags", SVs_TEMP));
                XSRETURN(1);
 
 void
@@ -71,11 +78,12 @@ hv_stores(hv, sv)
        PPCODE:
                (void) hv_stores((HV *) SvRV(hv), "hv_stores", SvREFCNT_inc_simple(sv));
 
-=tests plan => 7
+=tests plan => 8
 
 my $x = 'foo';
 
 ok(Devel::PPPort::newSVpvs(), "newSVpvs");
+ok(Devel::PPPort::newSVpvs_flags(), "newSVpvs_flags");
 
 Devel::PPPort::sv_catpvs($x);
 ok($x, "foosv_catpvs");
index ee3d6ea..4c36c99 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 3 $
+##  $Revision: 4 $
 ##  $Author: mhx $
-##  $Date: 2007/09/11 23:20:42 +0200 $
+##  $Date: 2008/01/04 10:47:40 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 5a6e616..84374ae 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 2 $
+##  $Revision: 4 $
 ##  $Author: mhx $
-##  $Date: 2007/01/02 12:32:28 +0100 $
+##  $Date: 2008/01/04 14:54:43 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -58,8 +58,8 @@ my_snprintf()
                int len;
        PPCODE:
                len = my_snprintf(buf, sizeof buf, "foo%s%d", "bar", 42);
-               XPUSHs(newSViv(len));
-               XPUSHs(newSVpv(buf, 0));
+               mXPUSHi(len);
+               mXPUSHs(newSVpv(buf, 0));
                XSRETURN(2);
 
 =tests plan => 2
index 035d29e..c4802e3 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 3 $
+##  $Revision: 5 $
 ##  $Author: mhx $
-##  $Date: 2007/01/02 12:32:28 +0100 $
+##  $Date: 2008/01/04 14:54:44 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -76,23 +76,23 @@ my_strlfunc()
                int len;
        PPCODE:
                 len = my_strlcpy(buf, "foo", sizeof(buf));
-               XPUSHs(newSViv(len));
-               XPUSHs(newSVpv(buf, 0));
+               mXPUSHi(len);
+               mXPUSHs(newSVpv(buf, 0));
                len = my_strlcat(buf, "bar", sizeof(buf));
-               XPUSHs(newSViv(len));
-               XPUSHs(newSVpv(buf, 0));
+               mXPUSHi(len);
+               mXPUSHs(newSVpv(buf, 0));
                len = my_strlcat(buf, "baz", sizeof(buf));
-               XPUSHs(newSViv(len));
-               XPUSHs(newSVpv(buf, 0));
+               mXPUSHi(len);
+               mXPUSHs(newSVpv(buf, 0));
                len = my_strlcpy(buf, "1234567890", sizeof(buf));
-               XPUSHs(newSViv(len));
-               XPUSHs(newSVpv(buf, 0));
+               mXPUSHi(len);
+               mXPUSHs(newSVpv(buf, 0));
                len = my_strlcpy(buf, "1234", sizeof(buf));
-               XPUSHs(newSViv(len));
-               XPUSHs(newSVpv(buf, 0));
+               mXPUSHi(len);
+               mXPUSHs(newSVpv(buf, 0));
                len = my_strlcat(buf, "567890123456", sizeof(buf));
-               XPUSHs(newSViv(len));
-               XPUSHs(newSVpv(buf, 0));
+               mXPUSHi(len);
+               mXPUSHs(newSVpv(buf, 0));
                XSRETURN(12);
 
 =tests plan => 13
index 5de173a..ea474fa 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 8 $
+##  $Revision: 9 $
 ##  $Author: mhx $
-##  $Date: 2007/09/11 23:20:43 +0200 $
+##  $Date: 2008/01/04 10:47:41 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 6002743..fe5a153 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 9 $
+##  $Revision: 10 $
 ##  $Author: mhx $
-##  $Date: 2007/08/18 20:16:12 +0200 $
+##  $Date: 2008/01/04 10:47:42 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 5e85503..d638fb8 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 15 $
+##  $Revision: 16 $
 ##  $Author: mhx $
-##  $Date: 2007/08/12 15:53:17 +0200 $
+##  $Date: 2008/01/04 10:47:42 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 6fd95d9..e381908 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 13 $
+##  $Revision: 15 $
 ##  $Author: mhx $
-##  $Date: 2007/10/04 10:21:28 +0200 $
+##  $Date: 2008/01/04 14:54:44 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -157,7 +157,7 @@ U32 get_PL_signals_1(void)
 extern U32 get_PL_signals_2(void);
 extern U32 get_PL_signals_3(void);
 
-#define ppp_TESTVAR(var)   STMT_START { XPUSHs(newSViv(&var != NULL)); count++; } STMT_END
+#define ppp_TESTVAR(var)   STMT_START { mXPUSHi(&var != NULL); count++; } STMT_END
 
 =xsubs
 
@@ -256,7 +256,7 @@ PL_ppaddr(string)
        char *string
        PPCODE:
                PUSHMARK(SP);
-               XPUSHs(sv_2mortal(newSVpv(string, 0)));
+               mXPUSHs(newSVpv(string, 0));
                PUTBACK;
                ENTER;
                (void)*(PL_ppaddr[OP_UC])(aTHXR);
index 60bd24e..cd5ae18 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 8 $
+##  $Revision: 9 $
 ##  $Author: mhx $
-##  $Date: 2007/08/13 23:00:34 +0200 $
+##  $Date: 2008/01/04 10:47:43 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index eda8f2c..cdcf71c 100644 (file)
@@ -1,12 +1,12 @@
 ################################################################################
 ##
-##  $Revision: 5 $
+##  $Revision: 6 $
 ##  $Author: mhx $
-##  $Date: 2007/08/12 23:57:10 +0200 $
+##  $Date: 2008/01/04 10:47:41 +0100 $
 ##
 ################################################################################
 ##
-##  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 0a8495a..5348fb6 100644 (file)
@@ -4,13 +4,13 @@
 :
 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 :
-:  $Revision: 1 $
+:  $Revision: 2 $
 :  $Author: mhx $
-:  $Date: 2007/08/12 15:02:00 +0200 $
+:  $Date: 2008/01/04 10:47:39 +0100 $
 :
 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 :
-:  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+:  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 :  Version 2.x, Copyright (C) 2001, Paul Marquess.
 :  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 :
index f8227a8..6deef78 100644 (file)
@@ -4,13 +4,13 @@
 #
 ################################################################################
 #
-#  $Revision: 22 $
+#  $Revision: 23 $
 #  $Author: mhx $
-#  $Date: 2007/08/19 01:18:23 +0200 $
+#  $Date: 2008/01/04 10:47:40 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
index ef7078a..b99f61e 100644 (file)
@@ -17,10 +17,11 @@ regexec_flags                  # U
 regnext                        # E (Perl_regnext)
 runops_debug                   # U
 runops_standard                # U
-save_hints                     # U
 save_iv                        # U (save_iv)
 screaminstr                    # E (Perl_screaminstr)
 sv_iv                          # U
 sv_nv                          # U
 sv_peek                        # U
+sv_pvn                         # U
+sv_pvn_nomg                    # U
 sv_true                        # U
index b6bde5d..86e7286 100644 (file)
@@ -22,7 +22,6 @@ newSVhek                       # U
 newSVpvs_share                 # U
 newWHENOP                      # U
 newWHILEOP                     # E (Perl_newWHILEOP)
-ref                            # U (Perl_ref)
 savepvs                        # U
 sortsv_flags                   # U
 vverify                        # U
index f124d26..1d1a1a6 100644 (file)
@@ -1,7 +1,4 @@
 5.009005
-MULTICALL                      # E
-POP_MULTICALL                  # E
-PUSH_MULTICALL                 # E
 Perl_signbit                   # U
 SvRX                           # U
 SvRXOK                         # U
@@ -9,14 +6,10 @@ av_create_and_push             # U
 av_create_and_unshift_one      # U
 get_cvn_flags                  # U
 gv_fetchfile_flags             # U
-hv_assert                      # U
 mro_get_linear_isa             # U
-mro_get_linear_isa_c3          # U
-mro_get_linear_isa_dfs         # U
 mro_method_changed_in          # U
 my_dirfd                       # U
 newSV_type                     # U
-pad_sv                         # U
 pregcomp                       # E (Perl_pregcomp)
 ptr_table_clear                # U
 ptr_table_fetch                # U
@@ -36,5 +29,4 @@ reg_stringify                  # U
 regfree_internal               # U
 savesharedpvn                  # U
 scan_vstring                   # E (Perl_scan_vstring)
-stashpv_hvname_match           # U
 upg_version                    # E (Perl_upg_version)
diff --git a/ext/Devel/PPPort/parts/todo/5010000 b/ext/Devel/PPPort/parts/todo/5010000
new file mode 100644 (file)
index 0000000..737f374
--- /dev/null
@@ -0,0 +1,7 @@
+5.010000
+hv_common                      # U
+hv_common_key_len              # U
+sv_destroyable                 # U
+sys_init                       # U
+sys_init3                      # U
+sys_term                       # U
diff --git a/ext/Devel/PPPort/parts/todo/5011000 b/ext/Devel/PPPort/parts/todo/5011000
new file mode 100644 (file)
index 0000000..acb265e
--- /dev/null
@@ -0,0 +1,11 @@
+5.011000
+HeUTF8                         # U
+MULTICALL                      # E
+POP_MULTICALL                  # E
+PUSH_MULTICALL                 # E
+av_iter_p                      # U
+hv_assert                      # U
+pad_sv                         # U
+pregfree2                      # U
+ref                            # U (Perl_ref)
+stashpv_hvname_match           # U
index c1827e4..a239ee7 100644 (file)
@@ -7,13 +7,13 @@
 #
 ################################################################################
 #
-#  $Revision: 16 $
+#  $Revision: 18 $
 #  $Author: mhx $
-#  $Date: 2007/08/12 23:25:33 +0200 $
+#  $Date: 2008/01/04 10:47:38 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -33,7 +33,7 @@ use File::Find;
 use List::Util qw(max);
 use Config;
 
-my $VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.13 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
+my $VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.13_01 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
 
 $| = 1;
 my %OPT = (
@@ -185,13 +185,13 @@ sub SearchPerls
     if (-d $arg) {
       my @found;
       print "Searching for Perl binaries in '$arg'...\n";
-      find(sub {
+      find({ wanted => sub {
              $File::Find::name =~ m!perl5[\w._]+$!
                  and -f $File::Find::name
                  and -x $File::Find::name
                  and perl_version($File::Find::name)
                  and push @found, $File::Find::name;
-           }, $arg);
+           }, follow => 1 }, $arg);
       printf "Found %d Perl binar%s in '%s'.\n\n", cs(@found, 'y', 'ies'), $arg;
       push @perls, @found;
     }
@@ -589,7 +589,7 @@ going on, use the I<--verbose> option:
 
 =head1 COPYRIGHT
 
-Version 3.x, Copyright (c) 2004-2007, Marcus Holland-Moritz.
+Version 3.x, Copyright (c) 2004-2008, Marcus Holland-Moritz.
 
 Version 2.x, Copyright (C) 2001, Paul Marquess.
 
index 1ac30e8..afe1032 100644 (file)
@@ -30,9 +30,9 @@ BEGIN {
     require 'testutil.pl' if $@;
   }
 
-  if (8) {
+  if (10) {
     load();
-    plan(tests => 8);
+    plan(tests => 10);
   }
 }
 
@@ -48,11 +48,13 @@ bootstrap Devel::PPPort;
 
 package main;
 
+ok(join(':', &Devel::PPPort::mPUSHs()), "foo:bar:42");
 ok(join(':', &Devel::PPPort::mPUSHp()), "one:two:three");
 ok(join(':', &Devel::PPPort::mPUSHn()), "0.5:-0.25:0.125");
 ok(join(':', &Devel::PPPort::mPUSHi()), "-1:2:-3");
 ok(join(':', &Devel::PPPort::mPUSHu()), "1:2:3");
 
+ok(join(':', &Devel::PPPort::mXPUSHs()), "foo:bar:42");
 ok(join(':', &Devel::PPPort::mXPUSHp()), "one:two:three");
 ok(join(':', &Devel::PPPort::mXPUSHn()), "0.5:-0.25:0.125");
 ok(join(':', &Devel::PPPort::mXPUSHi()), "-1:2:-3");
index a8bb234..653b189 100644 (file)
@@ -30,9 +30,9 @@ BEGIN {
     require 'testutil.pl' if $@;
   }
 
-  if (38) {
+  if (32) {
     load();
-    plan(tests => 38);
+    plan(tests => 32);
   }
 }
 
@@ -50,14 +50,6 @@ package main;
 
 use vars qw($my_sv @my_av %my_hv);
 
-my @s = &Devel::PPPort::newSVpvn();
-ok(@s == 5);
-ok($s[0], "test");
-ok($s[1], "te");
-ok($s[2], "");
-ok(!defined($s[3]));
-ok(!defined($s[4]));
-
 ok(&Devel::PPPort::boolSV(1));
 ok(!&Devel::PPPort::boolSV(0));
 
diff --git a/ext/Devel/PPPort/t/newSVpv.t b/ext/Devel/PPPort/t/newSVpv.t
new file mode 100644 (file)
index 0000000..18031a8
--- /dev/null
@@ -0,0 +1,78 @@
+################################################################################
+#
+#            !!!!!   Do NOT edit this file directly!   !!!!!
+#
+#            Edit mktests.PL and/or parts/inc/newSVpv instead.
+#
+#  This file was automatically generated from the definition files in the
+#  parts/inc/ subdirectory by mktests.PL. To learn more about how all this
+#  works, please read the F<HACKERS> file that came with this distribution.
+#
+################################################################################
+
+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 ]) {
+      print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
+      exit 0;
+    }
+  }
+  else {
+    unshift @INC, 't';
+  }
+
+  sub load {
+    eval "use Test";
+    require 'testutil.pl' if $@;
+  }
+
+  if (15) {
+    load();
+    plan(tests => 15);
+  }
+}
+
+use Devel::PPPort;
+use strict;
+$^W = 1;
+
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
+my @s = &Devel::PPPort::newSVpvn();
+ok(@s == 5);
+ok($s[0], "test");
+ok($s[1], "te");
+ok($s[2], "");
+ok(!defined($s[3]));
+ok(!defined($s[4]));
+
+@s = &Devel::PPPort::newSVpvn_flags();
+ok(@s == 5);
+ok($s[0], "test");
+ok($s[1], "te");
+ok($s[2], "");
+ok(!defined($s[3]));
+ok(!defined($s[4]));
+
+@s = &Devel::PPPort::newSVpvn_utf8();
+ok(@s == 1);
+ok($s[0], "test");
+
+if ($] >= 5.008001) {
+  require utf8;
+  ok(utf8::is_utf8($s[0]));
+}
+else {
+  skip("skip: no is_utf8()", 0);
+}
+
index 3d387bc..4cfcb0f 100644 (file)
@@ -30,9 +30,9 @@ BEGIN {
     require 'testutil.pl' if $@;
   }
 
-  if (7) {
+  if (8) {
     load();
-    plan(tests => 7);
+    plan(tests => 8);
   }
 }
 
@@ -51,6 +51,7 @@ package main;
 my $x = 'foo';
 
 ok(Devel::PPPort::newSVpvs(), "newSVpvs");
+ok(Devel::PPPort::newSVpvs_flags(), "newSVpvs_flags");
 
 Devel::PPPort::sv_catpvs($x);
 ok($x, "foosv_catpvs");
index 5a9e479..c2030c1 100644 (file)
@@ -4,13 +4,13 @@
 #
 ################################################################################
 #
-#  $Revision: 6 $
+#  $Revision: 7 $
 #  $Author: mhx $
-#  $Date: 2007/01/02 12:32:26 +0100 $
+#  $Date: 2008/01/04 10:47:37 +0100 $
 #
 ################################################################################
 #
-#  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2008, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #