Upgrade to Devel::PPPort 3.14_03
Marcus Holland-Moritz [Tue, 21 Oct 2008 21:23:00 +0000 (21:23 +0000)]
p4raw-id: //depot/perl@34555

ext/Devel/PPPort/Changes
ext/Devel/PPPort/PPPort_pm.PL
ext/Devel/PPPort/parts/inc/misc
ext/Devel/PPPort/parts/inc/newSVpv
ext/Devel/PPPort/parts/inc/variables
ext/Devel/PPPort/soak
ext/Devel/PPPort/t/misc.t
ext/Devel/PPPort/t/variables.t

index eff58a4..f08dae4 100755 (executable)
@@ -1,3 +1,13 @@
+3.14_03 - 2008-10-21
+
+    * fix C++ compilation issue with last release
+      (spotted by Nicholas Clark)
+    * added support for the following API
+        Perl_ppaddr_t
+        Perl_check_t
+        CPERLscope
+      (fixes CPAN #40078)
+
 3.14_02 - 2008-10-12
 
     * added support for the following API
index 68c9b97..1420b64 100644 (file)
@@ -4,9 +4,9 @@
 #
 ################################################################################
 #
-#  $Revision: 61 $
+#  $Revision: 62 $
 #  $Author: mhx $
-#  $Date: 2008/10/12 13:54:21 +0200 $
+#  $Date: 2008/10/21 23:12:30 +0200 $
 #
 ################################################################################
 #
@@ -372,9 +372,9 @@ __DATA__
 #
 ################################################################################
 #
-#  $Revision: 61 $
+#  $Revision: 62 $
 #  $Author: mhx $
-#  $Date: 2008/10/12 13:54:21 +0200 $
+#  $Date: 2008/10/21 23:12:30 +0200 $
 #
 ################################################################################
 #
@@ -535,7 +535,7 @@ package Devel::PPPort;
 use strict;
 use vars qw($VERSION $data);
 
-$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.14_02 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
+$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.14_03 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
 
 sub _init_data
 {
@@ -602,6 +602,8 @@ __DATA__
 
 %include version
 
+%include threads
+
 %include limits
 
 %include uv
@@ -612,8 +614,6 @@ __DATA__
 
 %include variables
 
-%include threads
-
 %include mPUSH
 
 %include call
index ab5e14e..6f3a7cf 100644 (file)
@@ -1,8 +1,8 @@
 ################################################################################
 ##
-##  $Revision: 46 $
+##  $Revision: 47 $
 ##  $Author: mhx $
-##  $Date: 2008/07/11 14:00:05 +0200 $
+##  $Date: 2008/10/21 23:14:09 +0200 $
 ##
 ################################################################################
 ##
@@ -215,6 +215,8 @@ __UNDEFINED__  SVf             "_"
 
 __UNDEFINED__  UTF8_MAXBYTES   UTF8_MAXLEN
 
+__UNDEFINED__  CPERLscope(x)   x
+
 __UNDEFINED__  PERL_HASH(hash,str,len) \
      STMT_START        { \
        const char *s_PeRlHaSh = str; \
@@ -235,6 +237,19 @@ __UNDEFINED__  PERL_HASH(hash,str,len) \
 # endif
 #endif
 
+/* provide these typedefs for older perls */
+#if { VERSION < 5.9.3 }
+
+# ifdef ARGSproto
+typedef OP* (CPERLscope(*Perl_ppaddr_t))(ARGSproto);
+# else
+typedef OP* (CPERLscope(*Perl_ppaddr_t))(pTHX);
+# endif
+
+typedef OP* (CPERLscope(*Perl_check_t)) (pTHX_ OP*);
+
+#endif
+
 =xsmisc
 
 XS(XS_Devel__PPPort_dXSTARG);  /* prototype */
@@ -382,7 +397,23 @@ SVf(x)
                XPUSHs(x);
                XSRETURN(1);
 
-=tests plan => 32
+void
+Perl_ppaddr_t(string)
+       char *string
+       PREINIT:
+               Perl_ppaddr_t lower;
+       PPCODE:
+               lower = PL_ppaddr[OP_LC];
+               PUSHMARK(SP);
+               mXPUSHs(newSVpv(string, 0));
+               PUTBACK;
+               ENTER;
+               (void)*(lower)(aTHXR);
+               SPAGAIN;
+               LEAVE;
+               XSRETURN(1);
+
+=tests plan => 33
 
 use vars qw($my_sv @my_av %my_hv);
 
@@ -448,3 +479,5 @@ ok(Devel::PPPort::PERL_ABS(-13), 13);
 ok(Devel::PPPort::SVf(42), $] >= 5.004 ? '[42]' : '42');
 ok(Devel::PPPort::SVf('abc'), $] >= 5.004 ? '[abc]' : 'abc');
 
+ok(&Devel::PPPort::Perl_ppaddr_t("FOO"), "foo");
+
index 8137f61..aaaed46 100644 (file)
@@ -1,8 +1,8 @@
 ################################################################################
 ##
-##  $Revision: 4 $
+##  $Revision: 5 $
 ##  $Author: mhx $
-##  $Date: 2008/01/04 13:10:54 +0100 $
+##  $Date: 2008/10/21 23:14:47 +0200 $
 ##
 ################################################################################
 ##
@@ -22,6 +22,12 @@ newSVpvn_flags
 
 =implementation
 
+#if { VERSION < 5.6.0 }
+# define D_PPP_CONSTPV_ARG(x)  ((char *) (x))
+#else
+# define D_PPP_CONSTPV_ARG(x)  (x)
+#endif
+
 __UNDEFINED__  newSVpvn(data,len)  ((data)                                              \
                                     ? ((len) ? newSVpv((data), (len)) : newSVpv("", 0)) \
                                     : newSV(0))
@@ -37,7 +43,7 @@ __UNDEFINED__  SVf_UTF8  0
 SV *
 newSVpvn_flags(pTHX_ const char *s, STRLEN len, U32 flags)
 {
-  SV *sv = newSVpvn(s, len);
+  SV *sv = newSVpvn(D_PPP_CONSTPV_ARG(s), len);
   SvFLAGS(sv) |= (flags & SVf_UTF8);
   return (flags & SVs_TEMP) ? sv_2mortal(sv) : sv;
 }
index c5a3f48..b9bcd13 100644 (file)
@@ -1,8 +1,8 @@
 ################################################################################
 ##
-##  $Revision: 17 $
+##  $Revision: 18 $
 ##  $Author: mhx $
-##  $Date: 2008/10/12 20:53:47 +0200 $
+##  $Date: 2008/10/21 23:15:31 +0200 $
 ##
 ################################################################################
 ##
@@ -229,15 +229,21 @@ int dummy_parser_warning(void);
                                     count++;                     \
                                   } STMT_END
 
-#if PERL_BCDVERSION < 0x5006000
+#if { VERSION < 5.004 }
+# define ppp_rsfp_t FILE *
+#else
+# define ppp_rsfp_t PerlIO *
+#endif
+
+#if { VERSION < 5.6.0 }
 # define ppp_expect_t expectation
-#elif PERL_BCDVERSION < 0x5009005
+#elif { VERSION < 5.9.5 }
 # define ppp_expect_t int
 #else
 # define ppp_expect_t U8
 #endif
 
-#if PERL_BCDVERSION < 0x5009005
+#if { VERSION < 5.9.5 }
 # define ppp_lex_state_t U32
 #else
 # define ppp_lex_state_t U8
@@ -294,18 +300,6 @@ PL_Sv()
                RETVAL
 
 SV *
-PL_rsfp()
-        PREINIT:
-                void * volatile my_rsfp;
-               /* no pointer test, as we don't know the exact type */
-       CODE:
-                my_rsfp = PL_rsfp;
-               RETVAL = newSViv(PL_rsfp != 0);
-                PL_rsfp = my_rsfp;
-       OUTPUT:
-               RETVAL
-
-SV *
 PL_tokenbuf()
        CODE:
                RETVAL = newSViv(PL_tokenbuf[0]);
@@ -378,6 +372,7 @@ other_variables()
 
                ppp_PARSERVAR(ppp_expect_t, PL_expect);
                ppp_PARSERVAR(line_t, PL_copline);
+               ppp_PARSERVAR(ppp_rsfp_t, PL_rsfp);
                ppp_PARSERVAR(AV *, PL_rsfp_filters);
                ppp_PARSERVAR(SV *, PL_linestr);
                ppp_PARSERVAR(char *, PL_bufptr);
@@ -403,7 +398,6 @@ ok(&Devel::PPPort::PL_sv_yes());
 ok(!&Devel::PPPort::PL_sv_no());
 ok(&Devel::PPPort::PL_na("abcd"), 4);
 ok(&Devel::PPPort::PL_Sv(), "mhx");
-ok(defined &Devel::PPPort::PL_rsfp());
 ok(defined &Devel::PPPort::PL_tokenbuf());
 ok($] >= 5.009005 || &Devel::PPPort::PL_parser());
 ok(&Devel::PPPort::PL_hexdigit() =~ /^[0-9a-zA-Z]+$/);
index 7e5a66b..1116392 100644 (file)
@@ -33,7 +33,7 @@ use File::Find;
 use List::Util qw(max);
 use Config;
 
-my $VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.14_02 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
+my $VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.14_03 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
 
 $| = 1;
 my %OPT = (
index 653b189..57ed4df 100644 (file)
@@ -30,9 +30,9 @@ BEGIN {
     require 'testutil.pl' if $@;
   }
 
-  if (32) {
+  if (33) {
     load();
-    plan(tests => 32);
+    plan(tests => 33);
   }
 }
 
@@ -112,3 +112,5 @@ ok(Devel::PPPort::PERL_ABS(-13), 13);
 ok(Devel::PPPort::SVf(42), $] >= 5.004 ? '[42]' : '42');
 ok(Devel::PPPort::SVf('abc'), $] >= 5.004 ? '[abc]' : 'abc');
 
+ok(&Devel::PPPort::Perl_ppaddr_t("FOO"), "foo");
+
index 0e3a30c..58d690e 100644 (file)
@@ -55,7 +55,6 @@ ok(&Devel::PPPort::PL_sv_yes());
 ok(!&Devel::PPPort::PL_sv_no());
 ok(&Devel::PPPort::PL_na("abcd"), 4);
 ok(&Devel::PPPort::PL_Sv(), "mhx");
-ok(defined &Devel::PPPort::PL_rsfp());
 ok(defined &Devel::PPPort::PL_tokenbuf());
 ok($] >= 5.009005 || &Devel::PPPort::PL_parser());
 ok(&Devel::PPPort::PL_hexdigit() =~ /^[0-9a-zA-Z]+$/);