diff options
author | Marcus Holland-Moritz <mhx-perl@gmx.net> | 2005-01-31 18:07:29 +0000 |
---|---|---|
committer | Marcus Holland-Moritz <mhx-perl@gmx.net> | 2005-01-31 18:07:29 +0000 |
commit | 9132e1a37fb6d8c980f305a393fed9323586cbca (patch) | |
tree | e9950d5dc52359251099342ad83c22d761eb8644 | |
parent | 0ca3a8747a809cd312a4430d331d6b34d04f27c0 (diff) | |
download | perl-9132e1a37fb6d8c980f305a393fed9323586cbca.tar.gz |
Upgrade to Devel::PPPort 3.05.
p4raw-id: //depot/perl@23912
60 files changed, 542 insertions, 200 deletions
@@ -221,12 +221,14 @@ ext/Devel/PPPort/parts/base/5008002 Devel::PPPort baseline todo file ext/Devel/PPPort/parts/base/5008003 Devel::PPPort baseline todo file ext/Devel/PPPort/parts/base/5008004 Devel::PPPort baseline todo file ext/Devel/PPPort/parts/base/5008005 Devel::PPPort baseline todo file +ext/Devel/PPPort/parts/base/5008006 Devel::PPPort baseline todo file ext/Devel/PPPort/parts/base/5009000 Devel::PPPort baseline todo file ext/Devel/PPPort/parts/base/5009001 Devel::PPPort baseline todo file ext/Devel/PPPort/parts/base/5009002 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 +ext/Devel/PPPort/parts/inc/exception Devel::PPPort include ext/Devel/PPPort/parts/inc/format Devel::PPPort include ext/Devel/PPPort/parts/inc/grok Devel::PPPort include ext/Devel/PPPort/parts/inc/limits Devel::PPPort include @@ -269,6 +271,7 @@ ext/Devel/PPPort/parts/todo/5008002 Devel::PPPort todo file ext/Devel/PPPort/parts/todo/5008003 Devel::PPPort todo file ext/Devel/PPPort/parts/todo/5008004 Devel::PPPort todo file ext/Devel/PPPort/parts/todo/5008005 Devel::PPPort todo file +ext/Devel/PPPort/parts/todo/5008006 Devel::PPPort todo file ext/Devel/PPPort/parts/todo/5009000 Devel::PPPort todo file ext/Devel/PPPort/parts/todo/5009001 Devel::PPPort todo file ext/Devel/PPPort/parts/todo/5009002 Devel::PPPort todo file @@ -281,6 +284,7 @@ ext/Devel/PPPort/README Devel::PPPort Readme ext/Devel/PPPort/soak Devel::PPPort Test Harness to run under various Perls ext/Devel/PPPort/t/call.t Devel::PPPort test file ext/Devel/PPPort/t/cop.t Devel::PPPort test file +ext/Devel/PPPort/t/exception.t Devel::PPPort test file ext/Devel/PPPort/t/grok.t Devel::PPPort test file ext/Devel/PPPort/t/limits.t Devel::PPPort test file ext/Devel/PPPort/t/magic.t Devel::PPPort test file diff --git a/ext/Devel/PPPort/Changes b/ext/Devel/PPPort/Changes index a21b120c6c..9e728ee141 100755 --- a/ext/Devel/PPPort/Changes +++ b/ext/Devel/PPPort/Changes @@ -1,3 +1,16 @@ +3.05 - 2005-01-31 + + * fix a test for SvPV_nolen + * add more examples to tht documentation + * improve wording baseline information + * added support for the following API + dXCPT + dXSTARG + XCPT_CATCH + XCPT_RETHROW + XCPT_TRY_END + XCPT_TRY_START + 3.04 - 2004-12-29 * fix a hint for sv_pvn_force diff --git a/ext/Devel/PPPort/HACKERS b/ext/Devel/PPPort/HACKERS index 1eaa1abe55..8aa9c571ae 100644 --- a/ext/Devel/PPPort/HACKERS +++ b/ext/Devel/PPPort/HACKERS @@ -217,7 +217,7 @@ That's it. =head1 COPYRIGHT -Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +Version 3.x, Copyright (C) 2004-2005, Marcus Holland-Moritz. Version 2.x, Copyright (C) 2001, Paul Marquess. diff --git a/ext/Devel/PPPort/MANIFEST b/ext/Devel/PPPort/MANIFEST index d05e8ae9d6..44cb9f0e6c 100644 --- a/ext/Devel/PPPort/MANIFEST +++ b/ext/Devel/PPPort/MANIFEST @@ -39,12 +39,14 @@ parts/base/5008002 parts/base/5008003 parts/base/5008004 parts/base/5008005 +parts/base/5008006 parts/base/5009000 parts/base/5009001 parts/base/5009002 parts/embed.fnc parts/inc/call parts/inc/cop +parts/inc/exception parts/inc/format parts/inc/grok parts/inc/limits @@ -87,6 +89,7 @@ parts/todo/5008002 parts/todo/5008003 parts/todo/5008004 parts/todo/5008005 +parts/todo/5008006 parts/todo/5009000 parts/todo/5009001 parts/todo/5009002 @@ -99,6 +102,7 @@ README soak t/call.t t/cop.t +t/exception.t t/grok.t t/limits.t t/magic.t diff --git a/ext/Devel/PPPort/MANIFEST.SKIP b/ext/Devel/PPPort/MANIFEST.SKIP index a6d2883e26..e0a5ec7701 100644 --- a/ext/Devel/PPPort/MANIFEST.SKIP +++ b/ext/Devel/PPPort/MANIFEST.SKIP @@ -11,6 +11,7 @@ ^pm_to_blib ^backup ^parts/todo- +^parts/base- ^ppport\.h$ ^PPPort\.c$ Devel-PPPort.*\.tar\.gz$ diff --git a/ext/Devel/PPPort/META.yml b/ext/Devel/PPPort/META.yml index c18fa4feac..ec326e2bfd 100644 --- a/ext/Devel/PPPort/META.yml +++ b/ext/Devel/PPPort/META.yml @@ -1,7 +1,7 @@ # http://module-build.sourceforge.net/META-spec.html #XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX# name: Devel-PPPort -version: 3.04 +version: 3.05 version_from: PPPort_pm.PL installdirs: perl requires: diff --git a/ext/Devel/PPPort/Makefile.PL b/ext/Devel/PPPort/Makefile.PL index e9b672a873..446fbb16e3 100644 --- a/ext/Devel/PPPort/Makefile.PL +++ b/ext/Devel/PPPort/Makefile.PL @@ -4,13 +4,13 @@ # ################################################################################ # -# $Revision: 14 $ +# $Revision: 15 $ # $Author: mhx $ -# $Date: 2004/08/19 13:16:37 +0200 $ +# $Date: 2005/01/31 08:10:50 +0100 $ # ################################################################################ # -# Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +# Version 3.x, Copyright (C) 2004-2005, 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/PPPort.pm b/ext/Devel/PPPort/PPPort.pm index 514cbf5241..907cbf5fec 100644 --- a/ext/Devel/PPPort/PPPort.pm +++ b/ext/Devel/PPPort/PPPort.pm @@ -8,13 +8,13 @@ # ################################################################################ # -# $Revision: 30 $ +# $Revision: 33 $ # $Author: mhx $ -# $Date: 2004/08/17 20:01:49 +0200 $ +# $Date: 2005/01/31 08:10:55 +0100 $ # ################################################################################ # -# Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +# Version 3.x, Copyright (C) 2004-2005, Marcus Holland-Moritz. # Version 2.x, Copyright (C) 2001, Paul Marquess. # Version 1.x, Copyright (C) 1999, Kenneth Albanowski. # @@ -78,7 +78,7 @@ that can check your source code. It will suggest hints and portability notes, and can even make suggestions on how to change your code. You can run it like any other Perl program: - perl ppport.h + perl ppport.h [options] [files] It also has embedded documentation, so you can use @@ -143,6 +143,8 @@ in older Perl releases: dTHXa dTHXoa dUNDERBAR + dXCPT + dXSTARG END_EXTERN_C ERRSV eval_pv @@ -361,6 +363,10 @@ in older Perl releases: UVXf UVxf vnewSVpvf + XCPT_CATCH + XCPT_RETHROW + XCPT_TRY_END + XCPT_TRY_START XPUSHmortal XPUSHu XSRETURN_UV @@ -382,6 +388,11 @@ Perl below which it is unsupported: SvPVbyte_force find_rundefsvoffset + gv_fetchpvn_flags + gv_fetchsv + op_refcnt_lock + op_refcnt_unlock + savesvpv vnormal =item perl 5.9.1 @@ -852,7 +863,7 @@ Version 3.x was ported back to CPAN by Marcus Holland-Moritz. =head1 COPYRIGHT -Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +Version 3.x, Copyright (C) 2004-2005, Marcus Holland-Moritz. Version 2.x, Copyright (C) 2001, Paul Marquess. @@ -873,7 +884,7 @@ require DynaLoader; use strict; use vars qw($VERSION @ISA $data); -$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.04 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' }; +$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.05 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' }; @ISA = qw(DynaLoader); @@ -1036,7 +1047,8 @@ POD POD =head2 --api-info=I<name> POD POD Show portability information for API elements matching I<name>. -POD I<name> is treated as a Perl regular expression. +POD If I<name> is surrounded by slashes, it is interpreted as a regular +POD expression. POD POD =head1 DESCRIPTION POD @@ -1152,6 +1164,22 @@ POD perl ppport.h --diff='diff -C 10' POD POD This would output context diffs with 10 lines of context. POD +POD To display portability information for the C<newSVpvn> function, +POD use: +POD +POD perl ppport.h --api-info=newSVpvn +POD +POD Since the argument to C<--api-info> can be a regular expression, +POD you can use +POD +POD perl ppport.h --api-info=/_nomg$/ +POD +POD to display portability information for all C<_nomg> functions or +POD +POD perl ppport.h --api-info=/./ +POD +POD to display information for all known API elements. +POD POD =head1 BUGS POD POD If this version of F<ppport.h> is causing failure during @@ -1194,7 +1222,7 @@ POD module from CPAN. POD POD =head1 COPYRIGHT POD -POD Version 3.x, Copyright (c) 2004, Marcus Holland-Moritz. +POD Version 3.x, Copyright (c) 2004-2005, Marcus Holland-Moritz. POD POD Version 2.x, Copyright (C) 2001, Paul Marquess. POD @@ -1663,6 +1691,10 @@ UVXf|5.007001||p UVof|5.006000||p UVuf|5.006000||p UVxf|5.006000||p +XCPT_CATCH|5.009002||p +XCPT_RETHROW|5.009002||p +XCPT_TRY_END|5.009002||p +XCPT_TRY_START|5.009002||p XPUSHi||| XPUSHmortal|5.009002||p XPUSHn||| @@ -1793,8 +1825,10 @@ dTHXa|5.006000||p dTHXoa|5.006000||p dTHX|5.006000||p dUNDERBAR|5.009002||p +dXCPT|5.009002||p dXSARGS||| dXSI32||| +dXSTARG|5.006000||p deb_curcv||| deb_nocontext|||vn deb_stack_all||| @@ -1805,7 +1839,6 @@ debprof||| debstackptrs||5.007003| debstack||5.007003| deb||5.007003|v -default_protect|||v del_he||| del_sv||| del_xiv||| @@ -1984,7 +2017,9 @@ gv_fetchmeth_autoload||5.007003| gv_fetchmethod_autoload||5.004000| gv_fetchmethod||| gv_fetchmeth||| +gv_fetchpvn_flags||5.009002| gv_fetchpv||| +gv_fetchsv||5.009002| gv_fullname3||5.004000| gv_fullname4||5.006001| gv_fullname||| @@ -2060,6 +2095,7 @@ isLOWER||| isSPACE||| isUPPER||| is_an_int||| +is_gv_magical_sv||| is_gv_magical||| is_handle_constructor||| is_lvalue_sub||5.007001| @@ -2382,6 +2418,8 @@ op_const_sv||| op_dump||5.006000| op_free||| op_null||5.007002| +op_refcnt_lock||5.009002| +op_refcnt_unlock||5.009002| open_script||| pMY_CXT_|5.007003||p pMY_CXT|5.007003||p @@ -2559,6 +2597,7 @@ savepv||| savesharedpv||5.007003| savestack_grow_cnt||5.008001| savestack_grow||| +savesvpv||5.009002| sawparens||| scalar_mod_type||| scalarboolean||| @@ -2824,14 +2863,10 @@ uvchr_to_utf8||5.007001| uvuni_to_utf8_flags||5.007003| uvuni_to_utf8||5.007001| validate_suid||| -vcall_body||| -vcall_list_body||| vcmp||5.009000| vcroak||5.006000| vdeb||5.007003| -vdefault_protect||| vdie||| -vdocatch_body||| vform||5.006000| visit||| vivify_defelem||| @@ -2841,8 +2876,6 @@ vmess||5.006000| vnewSVpvf|5.006000|5.004000|p vnormal||5.009002| vnumify||5.009000| -vparse_body||| -vrun_body||| vstringify||5.009000| vwarner||5.006000| vwarn||5.006000| @@ -2902,18 +2935,19 @@ while (<DATA>) { if (exists $opt{'api-info'}) { my $f; my $count = 0; + my $match = $opt{'api-info'} =~ m!^/(.*)/$! ? $1 : "^\Q$opt{'api-info'}\E\$"; for $f (sort { lc $a cmp lc $b } keys %API) { - next unless $f =~ /$opt{'api-info'}/; + next unless $f =~ /$match/; print "\n=== $f ===\n\n"; my $info = 0; if ($API{$f}{base} || $API{$f}{todo}) { my $base = format_version($API{$f}{base} || $API{$f}{todo}); - print "May not be supported below perl-$base.\n"; + print "Supported at least starting from perl-$base.\n"; $info++; } if ($API{$f}{provided}) { my $todo = $API{$f}{todo} ? format_version($API{$f}{todo}) : "5.003"; - print "Support by $ppport provided down to perl-$todo.\n"; + print "Support by $ppport provided back to perl-$todo.\n"; print "Support needs to be explicitly requested by NEED_$f.\n" if exists $need{$f}; print "Depends on: ", join(', ', @{$depends{$f}}), ".\n" if exists $depends{$f}; print "$hints{$f}" if exists $hints{$f}; @@ -2928,7 +2962,7 @@ if (exists $opt{'api-info'}) { print "\n"; } else { - print "Found no API matching $opt{'api-info'}.\n"; + print "Found no API matching '$opt{'api-info'}'.\n"; } exit 0; } @@ -4113,6 +4147,9 @@ typedef NVTYPE NV; #ifndef dITEMS # define dITEMS I32 items = SP - MARK #endif +#ifndef dXSTARG +# define dXSTARG SV * targ = sv_newmortal() +#endif #ifndef dTHR # define dTHR dNOOP #endif @@ -5755,6 +5792,26 @@ DPPP_(my_grok_oct)(pTHX_ char *start, STRLEN *len_p, I32 *flags, NV *result) #endif #endif +#ifdef dJMPENV + +# ifndef dXCPT +# define dXCPT dJMPENV; int rEtV = 0 +# define XCPT_TRY_START JMPENV_PUSH(rEtV); if (rEtV == 0) +# define XCPT_TRY_END JMPENV_POP; +# define XCPT_CATCH if (rEtV != 0) +# define XCPT_RETHROW JMPENV_JUMP(rEtV) +# endif + +#else + +# define dXCPT Sigjmp_buf oldTOP; int rEtV = 0 +# define XCPT_TRY_START Copy(top_env, oldTOP, 1, Sigjmp_buf); rEtV = Sigsetjmp(top_env, 1); if (rEtV == 0) +# define XCPT_TRY_END Copy(oldTOP, top_env, 1, Sigjmp_buf); +# define XCPT_CATCH if (rEtV != 0) +# define XCPT_RETHROW Siglongjmp(top_env, rEtV) + +#endif + #endif /* _P_P_PORTABILITY_H_ */ /* End of File ppport.h */ diff --git a/ext/Devel/PPPort/PPPort.xs b/ext/Devel/PPPort/PPPort.xs index 2056271131..ed3c379ea6 100644 --- a/ext/Devel/PPPort/PPPort.xs +++ b/ext/Devel/PPPort/PPPort.xs @@ -8,13 +8,13 @@ * ******************************************************************************** * -* $Revision: 7 $ +* $Revision: 8 $ * $Author: mhx $ -* $Date: 2004/08/13 12:49:19 +0200 $ +* $Date: 2005/01/31 08:10:55 +0100 $ * ******************************************************************************** * -* Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +* Version 3.x, Copyright (C) 2004-2005, Marcus Holland-Moritz. * Version 2.x, Copyright (C) 2001, Paul Marquess. * Version 1.x, Copyright (C) 1999, Kenneth Albanowski. * @@ -68,6 +68,46 @@ /* ========== BEGIN XSMISC ================================================== */ +/* ---- from parts/inc/exception ---- */ +static void throws_exception(int throw_e) +{ + if (throw_e) + croak("boo\n"); +} + +static int exception(int throw_e) +{ + dTHR; + dXCPT; + SV *caught = get_sv("Devel::PPPort::exception_caught", 0); + + XCPT_TRY_START { + throws_exception(throw_e); + } XCPT_TRY_END + + XCPT_CATCH + { + sv_setiv(caught, 1); + XCPT_RETHROW; + } + + sv_setiv(caught, 0); + + return 42; +} + +/* ---- from parts/inc/misc ---- */ +XS(XS_Devel__PPPort_dXSTARG); /* prototype */ +XS(XS_Devel__PPPort_dXSTARG) +{ + dXSARGS; + dXSTARG; + SP -= items; + IV iv = SvIV(ST(0)) + 1; + PUSHi(iv); + XSRETURN(1); +} + /* ---- from parts/inc/MY_CXT ---- */ #define MY_CXT_KEY "Devel::PPPort::_guts" XS_VERSION @@ -134,6 +174,9 @@ static void test_sv_vsetpvf(pTHX_ SV *sv, const char *pat, ...) MODULE = Devel::PPPort PACKAGE = Devel::PPPort BOOT: + /* ---- from parts/inc/misc ---- */ + newXS("Devel::PPPort::dXSTARG", XS_Devel__PPPort_dXSTARG, file); + /* ---- from parts/inc/MY_CXT ---- */ { MY_CXT_INIT; @@ -280,6 +323,16 @@ CopFILE() RETVAL ##---------------------------------------------------------------------- +## XSUBs from parts/inc/exception +##---------------------------------------------------------------------- + +int +exception(throw_e) + int throw_e + OUTPUT: + RETVAL + +##---------------------------------------------------------------------- ## XSUBs from parts/inc/grok ##---------------------------------------------------------------------- @@ -879,7 +932,7 @@ SvPV_nolen(sv) const char *str; CODE: str = SvPV_nolen(sv); - RETVAL = strEQ(str, "mhx") ? 3 : 0; + RETVAL = strEQ(str, "mhx") ? 42 : 0; OUTPUT: RETVAL diff --git a/ext/Devel/PPPort/PPPort_pm.PL b/ext/Devel/PPPort/PPPort_pm.PL index 8733c448fb..2f3a19de6b 100644 --- a/ext/Devel/PPPort/PPPort_pm.PL +++ b/ext/Devel/PPPort/PPPort_pm.PL @@ -4,13 +4,13 @@ # ################################################################################ # -# $Revision: 30 $ +# $Revision: 33 $ # $Author: mhx $ -# $Date: 2004/08/17 20:01:49 +0200 $ +# $Date: 2005/01/31 08:10:55 +0100 $ # ################################################################################ # -# Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +# Version 3.x, Copyright (C) 2004-2005, Marcus Holland-Moritz. # Version 2.x, Copyright (C) 2001, Paul Marquess. # Version 1.x, Copyright (C) 1999, Kenneth Albanowski. # @@ -309,13 +309,13 @@ __DATA__ # ################################################################################ # -# $Revision: 30 $ +# $Revision: 33 $ # $Author: mhx $ -# $Date: 2004/08/17 20:01:49 +0200 $ +# $Date: 2005/01/31 08:10:55 +0100 $ # ################################################################################ # -# Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +# Version 3.x, Copyright (C) 2004-2005, Marcus Holland-Moritz. # Version 2.x, Copyright (C) 2001, Paul Marquess. # Version 1.x, Copyright (C) 1999, Kenneth Albanowski. # @@ -379,7 +379,7 @@ that can check your source code. It will suggest hints and portability notes, and can even make suggestions on how to change your code. You can run it like any other Perl program: - perl ppport.h + perl ppport.h [options] [files] It also has embedded documentation, so you can use @@ -452,7 +452,7 @@ Version 3.x was ported back to CPAN by Marcus Holland-Moritz. =head1 COPYRIGHT -Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +Version 3.x, Copyright (C) 2004-2005, Marcus Holland-Moritz. Version 2.x, Copyright (C) 2001, Paul Marquess. @@ -473,7 +473,7 @@ require DynaLoader; use strict; use vars qw($VERSION @ISA $data); -$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.04 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' }; +$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.05 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' }; @ISA = qw(DynaLoader); @@ -575,6 +575,8 @@ __DATA__ %include grok +%include exception + #endif /* _P_P_PORTABILITY_H_ */ /* End of File ppport.h */ diff --git a/ext/Devel/PPPort/PPPort_xs.PL b/ext/Devel/PPPort/PPPort_xs.PL index e4867da2bf..6488e0474b 100644 --- a/ext/Devel/PPPort/PPPort_xs.PL +++ b/ext/Devel/PPPort/PPPort_xs.PL @@ -4,13 +4,13 @@ # ################################################################################ # -# $Revision: 7 $ +# $Revision: 8 $ # $Author: mhx $ -# $Date: 2004/08/13 12:49:19 +0200 $ +# $Date: 2005/01/31 08:10:55 +0100 $ # ################################################################################ # -# Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +# Version 3.x, Copyright (C) 2004-2005, Marcus Holland-Moritz. # Version 2.x, Copyright (C) 2001, Paul Marquess. # Version 1.x, Copyright (C) 1999, Kenneth Albanowski. # @@ -85,13 +85,13 @@ __DATA__ * ******************************************************************************** * -* $Revision: 7 $ +* $Revision: 8 $ * $Author: mhx $ -* $Date: 2004/08/13 12:49:19 +0200 $ +* $Date: 2005/01/31 08:10:55 +0100 $ * ******************************************************************************** * -* Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +* Version 3.x, Copyright (C) 2004-2005, 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/README b/ext/Devel/PPPort/README index 738b6ed90b..26564192c7 100644 --- a/ext/Devel/PPPort/README +++ b/ext/Devel/PPPort/README @@ -69,7 +69,7 @@ to create a ticket for the module. 5. COPYRIGHT ------------ -Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +Version 3.x, Copyright (C) 2004-2005, 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/TODO b/ext/Devel/PPPort/TODO index bd09e7c46f..9f4feb67ef 100644 --- a/ext/Devel/PPPort/TODO +++ b/ext/Devel/PPPort/TODO @@ -1,7 +1,7 @@ TODO: * improve apicheck (things like utf8_mg_pos_init() are - not currently checks) + not currently checked) * more documentation, more tests diff --git a/ext/Devel/PPPort/apicheck_c.PL b/ext/Devel/PPPort/apicheck_c.PL index fb9436b4cc..8976faa2f4 100644 --- a/ext/Devel/PPPort/apicheck_c.PL +++ b/ext/Devel/PPPort/apicheck_c.PL @@ -4,13 +4,13 @@ # ################################################################################ # -# $Revision: 4 $ +# $Revision: 5 $ # $Author: mhx $ -# $Date: 2004/08/13 12:49:21 +0200 $ +# $Date: 2005/01/31 08:10:48 +0100 $ # ################################################################################ # -# Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +# Version 3.x, Copyright (C) 2004-2005, 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/devel/buildperl.pl b/ext/Devel/PPPort/devel/buildperl.pl index a1d94b8d7f..b26a3e9e3e 100644 --- a/ext/Devel/PPPort/devel/buildperl.pl +++ b/ext/Devel/PPPort/devel/buildperl.pl @@ -5,13 +5,13 @@ # ################################################################################ # -# $Revision: 3 $ +# $Revision: 4 $ # $Author: mhx $ -# $Date: 2004/08/13 12:50:19 +0200 $ +# $Date: 2005/01/31 08:10:49 +0100 $ # ################################################################################ # -# Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +# Version 3.x, Copyright (C) 2004-2005, 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/devel/mkapidoc.sh b/ext/Devel/PPPort/devel/mkapidoc.sh index 61b4ccc654..74da36f982 100644 --- a/ext/Devel/PPPort/devel/mkapidoc.sh +++ b/ext/Devel/PPPort/devel/mkapidoc.sh @@ -5,13 +5,13 @@ # ################################################################################ # -# $Revision: 4 $ +# $Revision: 6 $ # $Author: mhx $ -# $Date: 2004/08/13 12:50:22 +0200 $ +# $Date: 2005/01/31 08:10:49 +0100 $ # ################################################################################ # -# Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +# Version 3.x, Copyright (C) 2004-2005, Marcus Holland-Moritz. # Version 2.x, Copyright (C) 2001, Paul Marquess. # Version 1.x, Copyright (C) 1999, Kenneth Albanowski. # @@ -62,7 +62,7 @@ else fi if isperlroot $PERLROOT; then - grep -hr '=for apidoc' $PERLROOT | sed -e 's/=for apidoc //' | grep '|' | sort | uniq \ + grep -hr '^=for apidoc' $PERLROOT | sed -e 's/=for apidoc //' | grep '|' | sort | uniq \ | perl -e'$f=pop;open(F,$f)||die"$f:$!";while(<F>){(split/\|/)[2]=~/(\w+)/;$h{$1}++} while(<>){(split/\|/)[2]=~/(\w+)/;$h{$1}||print}' $EMBED >$OUTPUT else diff --git a/ext/Devel/PPPort/devel/mktodo b/ext/Devel/PPPort/devel/mktodo index 319f611dc8..3c6cd7d31b 100644 --- a/ext/Devel/PPPort/devel/mktodo +++ b/ext/Devel/PPPort/devel/mktodo @@ -5,13 +5,13 @@ # ################################################################################ # -# $Revision: 7 $ +# $Revision: 8 $ # $Author: mhx $ -# $Date: 2004/08/13 12:50:23 +0200 $ +# $Date: 2005/01/31 08:10:49 +0100 $ # ################################################################################ # -# Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +# Version 3.x, Copyright (C) 2004-2005, 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/devel/mktodo.pl b/ext/Devel/PPPort/devel/mktodo.pl index 6df1eb99f6..05d921b203 100644 --- a/ext/Devel/PPPort/devel/mktodo.pl +++ b/ext/Devel/PPPort/devel/mktodo.pl @@ -5,13 +5,13 @@ # ################################################################################ # -# $Revision: 6 $ +# $Revision: 7 $ # $Author: mhx $ -# $Date: 2004/08/13 12:50:23 +0200 $ +# $Date: 2005/01/31 08:10:50 +0100 $ # ################################################################################ # -# Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +# Version 3.x, Copyright (C) 2004-2005, 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/devel/scanprov b/ext/Devel/PPPort/devel/scanprov index 934e816c46..9d1a8d4674 100644 --- a/ext/Devel/PPPort/devel/scanprov +++ b/ext/Devel/PPPort/devel/scanprov @@ -5,13 +5,13 @@ # ################################################################################ # -# $Revision: 4 $ +# $Revision: 5 $ # $Author: mhx $ -# $Date: 2004/09/08 21:08:46 +0200 $ +# $Date: 2005/01/31 08:10:50 +0100 $ # ################################################################################ # -# Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +# Version 3.x, Copyright (C) 2004-2005, 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/mktests.PL b/ext/Devel/PPPort/mktests.PL index cbe9a9851e..684a5cafba 100644 --- a/ext/Devel/PPPort/mktests.PL +++ b/ext/Devel/PPPort/mktests.PL @@ -4,13 +4,13 @@ # ################################################################################ # -# $Revision: 18 $ +# $Revision: 19 $ # $Author: mhx $ -# $Date: 2004/08/30 20:49:12 +0200 $ +# $Date: 2005/01/31 08:10:50 +0100 $ # ################################################################################ # -# Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +# Version 3.x, Copyright (C) 2004-2005, 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/module2.c b/ext/Devel/PPPort/module2.c index 5e59ae3cfd..0687c1389d 100644 --- a/ext/Devel/PPPort/module2.c +++ b/ext/Devel/PPPort/module2.c @@ -4,13 +4,13 @@ * ******************************************************************************** * -* $Revision: 5 $ +* $Revision: 6 $ * $Author: mhx $ -* $Date: 2004/08/23 00:51:54 +0200 $ +* $Date: 2005/01/31 08:10:50 +0100 $ * ******************************************************************************** * -* Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +* Version 3.x, Copyright (C) 2004-2005, 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/module3.c b/ext/Devel/PPPort/module3.c index 4df598aa31..4c230fa7e2 100644 --- a/ext/Devel/PPPort/module3.c +++ b/ext/Devel/PPPort/module3.c @@ -4,13 +4,13 @@ * ******************************************************************************** * -* $Revision: 4 $ +* $Revision: 5 $ * $Author: mhx $ -* $Date: 2004/08/13 12:49:24 +0200 $ +* $Date: 2005/01/31 08:10:50 +0100 $ * ******************************************************************************** * -* Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +* Version 3.x, Copyright (C) 2004-2005, 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/apicheck.pl b/ext/Devel/PPPort/parts/apicheck.pl index b49c53a1b8..b4b668f74d 100644 --- a/ext/Devel/PPPort/parts/apicheck.pl +++ b/ext/Devel/PPPort/parts/apicheck.pl @@ -5,13 +5,13 @@ # ################################################################################ # -# $Revision: 10 $ +# $Revision: 11 $ # $Author: mhx $ -# $Date: 2004/08/17 20:56:15 +0200 $ +# $Date: 2005/01/31 08:10:51 +0100 $ # ################################################################################ # -# Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +# Version 3.x, Copyright (C) 2004-2005, 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/base/5004000 b/ext/Devel/PPPort/parts/base/5004000 index 795d0cbc01..f5f031fe3f 100644 --- a/ext/Devel/PPPort/parts/base/5004000 +++ b/ext/Devel/PPPort/parts/base/5004000 @@ -21,6 +21,8 @@ SvUV # U SvUVX # U SvUVx # U XPUSHu # U +gv_efullname3 # U +gv_fullname3 # U my_memcmp # U newRV_inc # E sv_2uv # U diff --git a/ext/Devel/PPPort/parts/base/5004050 b/ext/Devel/PPPort/parts/base/5004050 index 4b43177c8c..d1ca35ef84 100644 --- a/ext/Devel/PPPort/parts/base/5004050 +++ b/ext/Devel/PPPort/parts/base/5004050 @@ -10,20 +10,20 @@ ERRSV # added by devel/scanprov PL_compiling # added by devel/scanprov PL_curcop # added by devel/scanprov PL_curstash # added by devel/scanprov +PL_debstash # added by devel/scanprov PL_defgv # added by devel/scanprov +PL_diehook # added by devel/scanprov PL_dirty # added by devel/scanprov +PL_errgv # added by devel/scanprov +PL_perl_destruct_level # added by devel/scanprov PL_perldb # added by devel/scanprov PL_rsfp # added by devel/scanprov PL_rsfp_filters # added by devel/scanprov -PL_stdingv # added by devel/scanprov -SAVE_DEFSV # added by devel/scanprov -dTHR # added by devel/scanprov -PL_debstash # added by devel/scanprov -PL_diehook # added by devel/scanprov -PL_errgv # added by devel/scanprov -PL_perl_destruct_level # added by devel/scanprov PL_stack_base # added by devel/scanprov PL_stack_sp # added by devel/scanprov +PL_stdingv # added by devel/scanprov PL_sv_arenaroot # added by devel/scanprov PL_tainted # added by devel/scanprov PL_tainting # added by devel/scanprov +SAVE_DEFSV # added by devel/scanprov +dTHR # added by devel/scanprov diff --git a/ext/Devel/PPPort/parts/base/5005000 b/ext/Devel/PPPort/parts/base/5005000 index f0bfeed5a2..553a4be651 100644 --- a/ext/Devel/PPPort/parts/base/5005000 +++ b/ext/Devel/PPPort/parts/base/5005000 @@ -1,10 +1,10 @@ 5.005000 PL_modglobal # E +END_EXTERN_C # added by devel/scanprov +EXTERN_C # added by devel/scanprov NOOP # added by devel/scanprov PL_Sv # added by devel/scanprov PL_copline # added by devel/scanprov PL_hexdigit # added by devel/scanprov PL_hints # added by devel/scanprov -END_EXTERN_C # added by devel/scanprov -EXTERN_C # added by devel/scanprov START_EXTERN_C # added by devel/scanprov diff --git a/ext/Devel/PPPort/parts/base/5006000 b/ext/Devel/PPPort/parts/base/5006000 index 6705683ed3..f26d1726ed 100644 --- a/ext/Devel/PPPort/parts/base/5006000 +++ b/ext/Devel/PPPort/parts/base/5006000 @@ -108,14 +108,12 @@ gv_autoload4 # E (Perl_gv_autoload4) gv_check # E (Perl_gv_check) gv_dump # E gv_efullname # E (Perl_gv_efullname) -gv_efullname3 # E (Perl_gv_efullname3) gv_fetchfile # E (Perl_gv_fetchfile) gv_fetchmeth # E (Perl_gv_fetchmeth) gv_fetchmethod # E (Perl_gv_fetchmethod) gv_fetchmethod_autoload # E (Perl_gv_fetchmethod_autoload) gv_fetchpv # E (Perl_gv_fetchpv) gv_fullname # E (Perl_gv_fullname) -gv_fullname3 # E (Perl_gv_fullname3) gv_init # E (Perl_gv_init) gv_stashpv # E (Perl_gv_stashpv) gv_stashpvn # E (Perl_gv_stashpvn) @@ -483,6 +481,8 @@ NVTYPE # added by devel/scanprov PERL_REVISION # added by devel/scanprov PERL_SUBVERSION # added by devel/scanprov PERL_VERSION # added by devel/scanprov +PL_no_modify # added by devel/scanprov +PL_ppaddr # added by devel/scanprov PTR2IV # added by devel/scanprov PTR2NV # added by devel/scanprov PTR2UV # added by devel/scanprov @@ -498,7 +498,6 @@ dNOOP # added by devel/scanprov dTHX # added by devel/scanprov dTHXa # added by devel/scanprov dTHXoa # added by devel/scanprov +dXSTARG # added by devel/scanprov pTHX # added by devel/scanprov pTHX_ # added by devel/scanprov -PL_no_modify # added by devel/scanprov -PL_ppaddr # added by devel/scanprov diff --git a/ext/Devel/PPPort/parts/base/5008001 b/ext/Devel/PPPort/parts/base/5008001 index cc274f482a..08049763a9 100644 --- a/ext/Devel/PPPort/parts/base/5008001 +++ b/ext/Devel/PPPort/parts/base/5008001 @@ -13,8 +13,8 @@ sv_setpviv # U sv_setpviv_mg # U unpackstring # U IN_PERL_COMPILETIME # added by devel/scanprov +PERL_GCC_BRACE_GROUPS_FORBIDDEN # added by devel/scanprov PERL_MAGIC_utf8 # added by devel/scanprov PERL_MAGIC_vstring # added by devel/scanprov PERL_SCAN_SILENT_ILLDIGIT # added by devel/scanprov XST_mUV # added by devel/scanprov -PERL_GCC_BRACE_GROUPS_FORBIDDEN # added by devel/scanprov diff --git a/ext/Devel/PPPort/parts/base/5008006 b/ext/Devel/PPPort/parts/base/5008006 new file mode 100644 index 0000000000..ba5cad07ed --- /dev/null +++ b/ext/Devel/PPPort/parts/base/5008006 @@ -0,0 +1 @@ +5.008006 diff --git a/ext/Devel/PPPort/parts/base/5009002 b/ext/Devel/PPPort/parts/base/5009002 index 2b66b272cc..69a452632d 100644 --- a/ext/Devel/PPPort/parts/base/5009002 +++ b/ext/Devel/PPPort/parts/base/5009002 @@ -8,6 +8,8 @@ XPUSHmortal # E ZeroD # E dUNDERBAR # E find_rundefsvoffset # U +gv_fetchpvn_flags # E +gv_fetchsv # E mPUSHi # U mPUSHn # U mPUSHp # U @@ -16,6 +18,14 @@ mXPUSHi # U mXPUSHn # U mXPUSHp # U mXPUSHu # U +op_refcnt_lock # U +op_refcnt_unlock # U +savesvpv # E vnormal # E -PERL_BCDVERSION # added by devel/scanprov MY_CXT_CLONE # added by devel/scanprov +PERL_BCDVERSION # added by devel/scanprov +XCPT_CATCH # added by devel/scanprov +XCPT_RETHROW # added by devel/scanprov +XCPT_TRY_END # added by devel/scanprov +XCPT_TRY_START # added by devel/scanprov +dXCPT # added by devel/scanprov diff --git a/ext/Devel/PPPort/parts/embed.fnc b/ext/Devel/PPPort/parts/embed.fnc index 8ca6b0e85a..795f3fe6c5 100644 --- a/ext/Devel/PPPort/parts/embed.fnc +++ b/ext/Devel/PPPort/parts/embed.fnc @@ -245,7 +245,7 @@ Ap |GV* |gv_autoload4 |HV* stash|const char* name|STRLEN len \ |I32 method Ap |void |gv_check |HV* stash Ap |void |gv_efullname |SV* sv|GV* gv -Ap |void |gv_efullname3 |SV* sv|GV* gv|const char* prefix +Amb |void |gv_efullname3 |SV* sv|GV* gv|const char* prefix Ap |void |gv_efullname4 |SV* sv|GV* gv|const char* prefix|bool keepmain Ap |GV* |gv_fetchfile |const char* name Apd |GV* |gv_fetchmeth |HV* stash|const char* name|STRLEN len \ @@ -257,12 +257,12 @@ Apd |GV* |gv_fetchmethod_autoload|HV* stash|const char* name \ |I32 autoload Ap |GV* |gv_fetchpv |const char* name|I32 add|I32 sv_type Ap |void |gv_fullname |SV* sv|GV* gv -Ap |void |gv_fullname3 |SV* sv|GV* gv|const char* prefix +Amb |void |gv_fullname3 |SV* sv|GV* gv|const char* prefix Ap |void |gv_fullname4 |SV* sv|GV* gv|const char* prefix|bool keepmain Ap |void |gv_init |GV* gv|HV* stash|const char* name \ |STRLEN len|int multi Apd |HV* |gv_stashpv |const char* name|I32 create -Ap |HV* |gv_stashpvn |const char* name|U32 namelen|I32 create +Apd |HV* |gv_stashpvn |const char* name|U32 namelen|I32 create Apd |HV* |gv_stashsv |SV* sv|I32 create Apd |void |hv_clear |HV* tb Ap |void |hv_delayfree_ent|HV* hv|HE* entry @@ -361,8 +361,10 @@ p |I32 |keyword |char* d|I32 len Ap |void |leave_scope |I32 base p |void |lex_end p |void |lex_start |SV* line -Ap |void |op_null |OP* o +Ap |void |op_null |OP* o p |void |op_clear |OP* o +Ap |void |op_refcnt_lock +Ap |void |op_refcnt_unlock p |OP* |linklist |OP* o p |OP* |list |OP* o p |OP* |listkids |OP* o @@ -594,7 +596,7 @@ Apd |void |pack_cat |SV *cat|char *pat|char *patend|SV **beglist|SV **endlist|SV Apd |void |packlist |SV *cat|char *pat|char *patend|SV **beglist|SV **endlist p |void |pidgone |Pid_t pid|int status Ap |void |pmflag |U32* pmfl|int ch -p |OP* |pmruntime |OP* pm|OP* expr|OP* repl +p |OP* |pmruntime |OP* pm|OP* expr|bool isreg p |OP* |pmtrans |OP* o|OP* expr|OP* repl Ap |void |pop_scope p |OP* |prepend_elem |I32 optype|OP* head|OP* tail @@ -720,7 +722,7 @@ pd |void |sv_add_arena |char* ptr|U32 size|U32 flags Apd |int |sv_backoff |SV* sv Apd |SV* |sv_bless |SV* sv|HV* stash Afpd |void |sv_catpvf |SV* sv|const char* pat|... -Ap |void |sv_vcatpvf |SV* sv|const char* pat|va_list* args +Apd |void |sv_vcatpvf |SV* sv|const char* pat|va_list* args Apd |void |sv_catpv |SV* sv|const char* ptr Amdb |void |sv_catpvn |SV* sv|const char* ptr|STRLEN len Amdb |void |sv_catsv |SV* dsv|SV* ssv @@ -754,7 +756,7 @@ Apd |STRLEN |sv_len_utf8 |SV* sv Apd |void |sv_magic |SV* sv|SV* obj|int how|const char* name \ |I32 namlen Apd |MAGIC *|sv_magicext |SV* sv|SV* obj|int how|MGVTBL *vtbl \ - | const char* name|I32 namlen + |const char* name|I32 namlen Apd |SV* |sv_mortalcopy |SV* oldsv Apd |SV* |sv_newmortal Apd |SV* |sv_newref |SV* sv @@ -772,7 +774,7 @@ Apd |void |sv_replace |SV* sv|SV* nsv Apd |void |sv_report_used Apd |void |sv_reset |char* s|HV* stash Afpd |void |sv_setpvf |SV* sv|const char* pat|... -Ap |void |sv_vsetpvf |SV* sv|const char* pat|va_list* args +Apd |void |sv_vsetpvf |SV* sv|const char* pat|va_list* args Apd |void |sv_setiv |SV* sv|IV num Apdb |void |sv_setpviv |SV* sv|IV num Apd |void |sv_setuv |SV* sv|UV num @@ -872,12 +874,12 @@ Ap |struct perl_vars *|GetVars Ap |int |runops_standard Ap |int |runops_debug Afpd |void |sv_catpvf_mg |SV *sv|const char* pat|... -Ap |void |sv_vcatpvf_mg |SV* sv|const char* pat|va_list* args +Apd |void |sv_vcatpvf_mg |SV* sv|const char* pat|va_list* args Apd |void |sv_catpv_mg |SV *sv|const char *ptr Apd |void |sv_catpvn_mg |SV *sv|const char *ptr|STRLEN len Apd |void |sv_catsv_mg |SV *dstr|SV *sstr Afpd |void |sv_setpvf_mg |SV *sv|const char* pat|... -Ap |void |sv_vsetpvf_mg |SV* sv|const char* pat|va_list* args +Apd |void |sv_vsetpvf_mg |SV* sv|const char* pat|va_list* args Apd |void |sv_setiv_mg |SV *sv|IV i Apdb |void |sv_setpviv_mg |SV *sv|IV iv Apd |void |sv_setuv_mg |SV *sv|UV u @@ -902,12 +904,6 @@ Ap |void |do_pmop_dump |I32 level|PerlIO *file|PMOP *pm Ap |void |do_sv_dump |I32 level|PerlIO *file|SV *sv|I32 nest \ |I32 maxnest|bool dumpops|STRLEN pvlim Ap |void |magic_dump |MAGIC *mg -#if defined(PERL_FLEXIBLE_EXCEPTIONS) -Ap |void* |default_protect|volatile JMPENV *je|int *excpt \ - |protect_body_t body|... -Ap |void* |vdefault_protect|volatile JMPENV *je|int *excpt \ - |protect_body_t body|va_list *args -#endif Ap |void |reginitcolors Apd |char* |sv_2pv_nolen |SV* sv Apd |char* |sv_2pvutf8_nolen|SV* sv @@ -1034,7 +1030,7 @@ Ap |void |Slab_Free |void *op #if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT) s |void |find_beginning s |void |forbid_setid |char * -s |void |incpush |char *|int|int|int +s |void |incpush |char *|int|int|int|int s |void |init_interp s |void |init_ids s |void |init_lexer @@ -1054,12 +1050,6 @@ s |void* |parse_body |char **env|XSINIT_t xsinit s |void* |run_body |I32 oldscope s |void |call_body |OP *myop|int is_eval s |void* |call_list_body |CV *cv -#if defined(PERL_FLEXIBLE_EXCEPTIONS) -s |void* |vparse_body |va_list args -s |void* |vrun_body |va_list args -s |void* |vcall_body |va_list args -s |void* |vcall_list_body|va_list args -#endif #endif #if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT) @@ -1082,9 +1072,6 @@ s |int |div128 |SV *pnum|bool *done #if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT) s |OP* |docatch |OP *o s |void* |docatch_body -#if defined(PERL_FLEXIBLE_EXCEPTIONS) -s |void* |vdocatch_body |va_list args -#endif s |OP* |dofindlabel |OP *o|char *label|OP **opstack|OP **oplimit s |OP* |doparseform |SV *sv sn |bool |num_overflow |NV value|I32 fldsize|I32 frcsize @@ -1282,7 +1269,7 @@ s |HV * |find_in_my_stash|char *pkgname|I32 len s |SV* |new_constant |char *s|STRLEN len|const char *key|SV *sv \ |SV *pv|const char *type # if defined(DEBUGGING) -s |void |tokereport |char *thing|char *s|I32 rv +s |int |tokereport |char *s|I32 rv # endif s |int |ao |int toketype s |void |depcom @@ -1390,7 +1377,7 @@ sd |void |cv_dump |CV *cv|char *title pd |CV* |find_runcv |U32 *db_seqp p |void |free_tied_hv_pool #if defined(DEBUGGING) -p |int |get_debug_opts |char **s +p |int |get_debug_opts |char **s|bool givehelp #endif Ap |void |save_set_svflags|SV* sv|U32 mask|U32 val Apod |void |hv_assert |HV* tb @@ -1484,4 +1471,10 @@ np |long |my_betohl |long n np |void |my_swabn |void* ptr|int n +Ap |GV* |gv_fetchpvn_flags|const char* name|STRLEN len|I32 flags|I32 sv_type +Ap |GV* |gv_fetchsv|SV *name|I32 flags|I32 sv_type +dp |bool |is_gv_magical_sv|SV *name|U32 flags + +Apd |char* |savesvpv |SV* sv + END_EXTERN_C diff --git a/ext/Devel/PPPort/parts/inc/MY_CXT b/ext/Devel/PPPort/parts/inc/MY_CXT index 5ef575f90b..5b26bafb8f 100644 --- a/ext/Devel/PPPort/parts/inc/MY_CXT +++ b/ext/Devel/PPPort/parts/inc/MY_CXT @@ -1,12 +1,12 @@ ################################################################################ ## -## $Revision: 9 $ +## $Revision: 10 $ ## $Author: mhx $ -## $Date: 2004/09/08 22:15:16 +0200 $ +## $Date: 2005/01/31 08:10:52 +0100 $ ## ################################################################################ ## -## Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +## Version 3.x, Copyright (C) 2004-2005, 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/SvPV b/ext/Devel/PPPort/parts/inc/SvPV index 34aa90f058..56474d276e 100644 --- a/ext/Devel/PPPort/parts/inc/SvPV +++ b/ext/Devel/PPPort/parts/inc/SvPV @@ -1,12 +1,12 @@ ################################################################################ ## -## $Revision: 8 $ +## $Revision: 10 $ ## $Author: mhx $ -## $Date: 2004/12/29 14:17:20 +0100 $ +## $Date: 2005/01/31 08:10:54 +0100 $ ## ################################################################################ ## -## Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +## Version 3.x, Copyright (C) 2004-2005, Marcus Holland-Moritz. ## Version 2.x, Copyright (C) 2001, Paul Marquess. ## Version 1.x, Copyright (C) 1999, Kenneth Albanowski. ## @@ -129,12 +129,12 @@ SvPV_nolen(sv) const char *str; CODE: str = SvPV_nolen(sv); - RETVAL = strEQ(str, "mhx") ? 3 : 0; + RETVAL = strEQ(str, "mhx") ? 42 : 0; OUTPUT: RETVAL =tests plan => 2 ok(&Devel::PPPort::SvPVbyte("mhx"), 3); -ok(&Devel::PPPort::SvPVbyte("mhx"), 3); +ok(&Devel::PPPort::SvPV_nolen("mhx"), 42); diff --git a/ext/Devel/PPPort/parts/inc/call b/ext/Devel/PPPort/parts/inc/call index e01d6a30b5..bffb3132f5 100644 --- a/ext/Devel/PPPort/parts/inc/call +++ b/ext/Devel/PPPort/parts/inc/call @@ -1,12 +1,12 @@ ################################################################################ ## -## $Revision: 7 $ +## $Revision: 8 $ ## $Author: mhx $ -## $Date: 2004/08/13 12:45:53 +0200 $ +## $Date: 2005/01/31 08:10:51 +0100 $ ## ################################################################################ ## -## Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +## Version 3.x, Copyright (C) 2004-2005, 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/cop b/ext/Devel/PPPort/parts/inc/cop index 3599410466..b12fdfb403 100644 --- a/ext/Devel/PPPort/parts/inc/cop +++ b/ext/Devel/PPPort/parts/inc/cop @@ -1,12 +1,12 @@ ################################################################################ ## -## $Revision: 3 $ +## $Revision: 4 $ ## $Author: mhx $ -## $Date: 2004/08/13 12:45:54 +0200 $ +## $Date: 2005/01/31 08:10:51 +0100 $ ## ################################################################################ ## -## Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +## Version 3.x, Copyright (C) 2004-2005, 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/exception b/ext/Devel/PPPort/parts/inc/exception new file mode 100644 index 0000000000..299695820c --- /dev/null +++ b/ext/Devel/PPPort/parts/inc/exception @@ -0,0 +1,102 @@ +################################################################################ +## +## $Revision: 2 $ +## $Author: mhx $ +## $Date: 2005/01/31 08:10:51 +0100 $ +## +################################################################################ +## +## Version 3.x, Copyright (C) 2004-2005, 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 + +dXCPT +XCPT_TRY_START +XCPT_TRY_END +XCPT_CATCH +XCPT_RETHROW + +=implementation + +#ifdef dJMPENV + +# ifndef dXCPT +# define dXCPT dJMPENV; int rEtV = 0 +# define XCPT_TRY_START JMPENV_PUSH(rEtV); if (rEtV == 0) +# define XCPT_TRY_END JMPENV_POP; +# define XCPT_CATCH if (rEtV != 0) +# define XCPT_RETHROW JMPENV_JUMP(rEtV) +# endif + +#else + +# define dXCPT Sigjmp_buf oldTOP; int rEtV = 0 +# define XCPT_TRY_START Copy(top_env, oldTOP, 1, Sigjmp_buf); rEtV = Sigsetjmp(top_env, 1); if (rEtV == 0) +# define XCPT_TRY_END Copy(oldTOP, top_env, 1, Sigjmp_buf); +# define XCPT_CATCH if (rEtV != 0) +# define XCPT_RETHROW Siglongjmp(top_env, rEtV) + +#endif + +=xsmisc + +static void throws_exception(int throw_e) +{ + if (throw_e) + croak("boo\n"); +} + +static int exception(int throw_e) +{ + dTHR; + dXCPT; + SV *caught = get_sv("Devel::PPPort::exception_caught", 0); + + XCPT_TRY_START { + throws_exception(throw_e); + } XCPT_TRY_END + + XCPT_CATCH + { + sv_setiv(caught, 1); + XCPT_RETHROW; + } + + sv_setiv(caught, 0); + + return 42; +} + +=xsubs + +int +exception(throw_e) + int throw_e + OUTPUT: + RETVAL + +=tests plan => 7 + +my $rv; + +$Devel::PPPort::exception_caught = undef; + +$rv = eval { &Devel::PPPort::exception(0) }; +ok($@, ''); +ok(defined $rv); +ok($rv, 42); +ok($Devel::PPPort::exception_caught, 0); + +$Devel::PPPort::exception_caught = undef; + +$rv = eval { &Devel::PPPort::exception(1) }; +ok($@, "boo\n"); +ok(not defined $rv); +ok($Devel::PPPort::exception_caught, 1); diff --git a/ext/Devel/PPPort/parts/inc/format b/ext/Devel/PPPort/parts/inc/format index 7c520428e4..78d46f92de 100644 --- a/ext/Devel/PPPort/parts/inc/format +++ b/ext/Devel/PPPort/parts/inc/format @@ -1,12 +1,12 @@ ################################################################################ ## -## $Revision: 2 $ +## $Revision: 3 $ ## $Author: mhx $ -## $Date: 2004/08/13 12:45:54 +0200 $ +## $Date: 2005/01/31 08:10:51 +0100 $ ## ################################################################################ ## -## Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +## Version 3.x, Copyright (C) 2004-2005, 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/grok b/ext/Devel/PPPort/parts/inc/grok index 97d4f49c2e..be7679fa95 100644 --- a/ext/Devel/PPPort/parts/inc/grok +++ b/ext/Devel/PPPort/parts/inc/grok @@ -1,12 +1,12 @@ ################################################################################ ## -## $Revision: 6 $ +## $Revision: 7 $ ## $Author: mhx $ -## $Date: 2004/08/13 12:45:54 +0200 $ +## $Date: 2005/01/31 08:10:51 +0100 $ ## ################################################################################ ## -## Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +## Version 3.x, Copyright (C) 2004-2005, 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/limits b/ext/Devel/PPPort/parts/inc/limits index 269b7cef55..1cec183357 100644 --- a/ext/Devel/PPPort/parts/inc/limits +++ b/ext/Devel/PPPort/parts/inc/limits @@ -1,12 +1,12 @@ ################################################################################ ## -## $Revision: 2 $ +## $Revision: 3 $ ## $Author: mhx $ -## $Date: 2004/08/13 12:45:55 +0200 $ +## $Date: 2005/01/31 08:10:51 +0100 $ ## ################################################################################ ## -## Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +## Version 3.x, Copyright (C) 2004-2005, 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/mPUSH b/ext/Devel/PPPort/parts/inc/mPUSH index 809d90b060..51bed81651 100644 --- a/ext/Devel/PPPort/parts/inc/mPUSH +++ b/ext/Devel/PPPort/parts/inc/mPUSH @@ -1,12 +1,12 @@ ################################################################################ ## -## $Revision: 4 $ +## $Revision: 5 $ ## $Author: mhx $ -## $Date: 2004/08/13 12:45:55 +0200 $ +## $Date: 2005/01/31 08:10:52 +0100 $ ## ################################################################################ ## -## Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +## Version 3.x, Copyright (C) 2004-2005, 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/magic b/ext/Devel/PPPort/parts/inc/magic index 66afaad2af..ccda7ecd5a 100644 --- a/ext/Devel/PPPort/parts/inc/magic +++ b/ext/Devel/PPPort/parts/inc/magic @@ -1,12 +1,12 @@ ################################################################################ ## -## $Revision: 7 $ +## $Revision: 8 $ ## $Author: mhx $ -## $Date: 2004/08/13 12:45:55 +0200 $ +## $Date: 2005/01/31 08:10:52 +0100 $ ## ################################################################################ ## -## Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +## Version 3.x, Copyright (C) 2004-2005, 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/misc b/ext/Devel/PPPort/parts/inc/misc index c8d63fdce3..f49d7bfd95 100644 --- a/ext/Devel/PPPort/parts/inc/misc +++ b/ext/Devel/PPPort/parts/inc/misc @@ -1,12 +1,12 @@ ################################################################################ ## -## $Revision: 17 $ +## $Revision: 19 $ ## $Author: mhx $ -## $Date: 2004/09/08 21:10:12 +0200 $ +## $Date: 2005/01/31 08:10:52 +0100 $ ## ################################################################################ ## -## Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +## Version 3.x, Copyright (C) 2004-2005, Marcus Holland-Moritz. ## Version 2.x, Copyright (C) 2001, Paul Marquess. ## Version 1.x, Copyright (C) 1999, Kenneth Albanowski. ## @@ -211,6 +211,25 @@ __UNDEFINED__ UNDERBAR DEFSV __UNDEFINED__ dAX I32 ax = MARK - PL_stack_base + 1 __UNDEFINED__ dITEMS I32 items = SP - MARK +__UNDEFINED__ dXSTARG SV * targ = sv_newmortal() + +=xsmisc + +XS(XS_Devel__PPPort_dXSTARG); /* prototype */ +XS(XS_Devel__PPPort_dXSTARG) +{ + dXSARGS; + dXSTARG; + SP -= items; + IV iv = SvIV(ST(0)) + 1; + PUSHi(iv); + XSRETURN(1); +} + +=xsboot + +newXS("Devel::PPPort::dXSTARG", XS_Devel__PPPort_dXSTARG, file); + =xsubs int @@ -330,7 +349,7 @@ UNDERBAR() OUTPUT: RETVAL -=tests plan => 31 +=tests plan => 32 use vars qw($my_sv @my_av %my_hv); @@ -383,3 +402,5 @@ ok(&Devel::PPPort::get_cv('my_cv', 0)); ok(!&Devel::PPPort::get_cv('not_my_cv', 0)); ok(&Devel::PPPort::get_cv('not_my_cv', 1)); +ok(Devel::PPPort::dXSTARG(42), 43); + diff --git a/ext/Devel/PPPort/parts/inc/newCONSTSUB b/ext/Devel/PPPort/parts/inc/newCONSTSUB index d24e465031..fbf752a569 100644 --- a/ext/Devel/PPPort/parts/inc/newCONSTSUB +++ b/ext/Devel/PPPort/parts/inc/newCONSTSUB @@ -1,12 +1,12 @@ ################################################################################ ## -## $Revision: 7 $ +## $Revision: 8 $ ## $Author: mhx $ -## $Date: 2004/08/13 12:45:55 +0200 $ +## $Date: 2005/01/31 08:10:52 +0100 $ ## ################################################################################ ## -## Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +## Version 3.x, Copyright (C) 2004-2005, 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/newRV b/ext/Devel/PPPort/parts/inc/newRV index f593769698..2a4f909446 100644 --- a/ext/Devel/PPPort/parts/inc/newRV +++ b/ext/Devel/PPPort/parts/inc/newRV @@ -1,12 +1,12 @@ ################################################################################ ## -## $Revision: 4 $ +## $Revision: 5 $ ## $Author: mhx $ -## $Date: 2004/08/13 12:45:56 +0200 $ +## $Date: 2005/01/31 08:10:52 +0100 $ ## ################################################################################ ## -## Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +## Version 3.x, Copyright (C) 2004-2005, 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/ppphbin b/ext/Devel/PPPort/parts/inc/ppphbin index 384f126ffe..6df23e4f6d 100644 --- a/ext/Devel/PPPort/parts/inc/ppphbin +++ b/ext/Devel/PPPort/parts/inc/ppphbin @@ -1,12 +1,12 @@ ################################################################################ ## -## $Revision: 22 $ +## $Revision: 26 $ ## $Author: mhx $ -## $Date: 2004/12/29 14:54:27 +0100 $ +## $Date: 2005/01/31 08:10:53 +0100 $ ## ################################################################################ ## -## Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +## Version 3.x, Copyright (C) 2004-2005, Marcus Holland-Moritz. ## Version 2.x, Copyright (C) 2001, Paul Marquess. ## Version 1.x, Copyright (C) 1999, Kenneth Albanowski. ## @@ -148,18 +148,19 @@ while (<DATA>) { if (exists $opt{'api-info'}) { my $f; my $count = 0; + my $match = $opt{'api-info'} =~ m!^/(.*)/$! ? $1 : "^\Q$opt{'api-info'}\E\$"; for $f (sort { lc $a cmp lc $b } keys %API) { - next unless $f =~ /$opt{'api-info'}/; + next unless $f =~ /$match/; print "\n=== $f ===\n\n"; my $info = 0; if ($API{$f}{base} || $API{$f}{todo}) { my $base = format_version($API{$f}{base} || $API{$f}{todo}); - print "May not be supported below perl-$base.\n"; + print "Supported at least starting from perl-$base.\n"; $info++; } if ($API{$f}{provided}) { my $todo = $API{$f}{todo} ? format_version($API{$f}{todo}) : "__MIN_PERL__"; - print "Support by $ppport provided down to perl-$todo.\n"; + print "Support by $ppport provided back to perl-$todo.\n"; print "Support needs to be explicitly requested by NEED_$f.\n" if exists $need{$f}; print "Depends on: ", join(', ', @{$depends{$f}}), ".\n" if exists $depends{$f}; print "$hints{$f}" if exists $hints{$f}; @@ -174,7 +175,7 @@ if (exists $opt{'api-info'}) { print "\n"; } else { - print "Found no API matching $opt{'api-info'}.\n"; + print "Found no API matching '$opt{'api-info'}'.\n"; } exit 0; } diff --git a/ext/Devel/PPPort/parts/inc/ppphdoc b/ext/Devel/PPPort/parts/inc/ppphdoc index bf0b18cebb..37097b7164 100644 --- a/ext/Devel/PPPort/parts/inc/ppphdoc +++ b/ext/Devel/PPPort/parts/inc/ppphdoc @@ -1,12 +1,12 @@ ################################################################################ ## -## $Revision: 18 $ +## $Revision: 20 $ ## $Author: mhx $ -## $Date: 2004/12/29 14:55:00 +0100 $ +## $Date: 2005/01/31 08:10:53 +0100 $ ## ################################################################################ ## -## Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +## Version 3.x, Copyright (C) 2004-2005, Marcus Holland-Moritz. ## Version 2.x, Copyright (C) 2001, Paul Marquess. ## Version 1.x, Copyright (C) 1999, Kenneth Albanowski. ## @@ -135,7 +135,8 @@ won't be available or work. =head2 --api-info=I<name> Show portability information for API elements matching I<name>. -I<name> is treated as a Perl regular expression. +If I<name> is surrounded by slashes, it is interpreted as a regular +expression. =head1 DESCRIPTION @@ -235,6 +236,22 @@ the C<--diff> option: This would output context diffs with 10 lines of context. +To display portability information for the C<newSVpvn> function, +use: + + perl ppport.h --api-info=newSVpvn + +Since the argument to C<--api-info> can be a regular expression, +you can use + + perl ppport.h --api-info=/_nomg$/ + +to display portability information for all C<_nomg> functions or + + perl ppport.h --api-info=/./ + +to display information for all known API elements. + =head1 BUGS If this version of F<ppport.h> is causing failure during @@ -277,7 +294,7 @@ module from CPAN. =head1 COPYRIGHT -Version 3.x, Copyright (c) 2004, Marcus Holland-Moritz. +Version 3.x, Copyright (c) 2004-2005, Marcus Holland-Moritz. Version 2.x, Copyright (C) 2001, Paul Marquess. diff --git a/ext/Devel/PPPort/parts/inc/ppphtest b/ext/Devel/PPPort/parts/inc/ppphtest index 1d8f6d31d5..43fbe9fcbf 100644 --- a/ext/Devel/PPPort/parts/inc/ppphtest +++ b/ext/Devel/PPPort/parts/inc/ppphtest @@ -1,12 +1,12 @@ ################################################################################ ## -## $Revision: 22 $ +## $Revision: 23 $ ## $Author: mhx $ -## $Date: 2004/10/14 20:16:03 +0200 $ +## $Date: 2005/01/31 08:10:53 +0100 $ ## ################################################################################ ## -## Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +## Version 3.x, Copyright (C) 2004-2005, 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/sv_xpvf b/ext/Devel/PPPort/parts/inc/sv_xpvf index 1083ecdf43..3276960c3e 100644 --- a/ext/Devel/PPPort/parts/inc/sv_xpvf +++ b/ext/Devel/PPPort/parts/inc/sv_xpvf @@ -1,12 +1,12 @@ ################################################################################ ## -## $Revision: 2 $ +## $Revision: 3 $ ## $Author: mhx $ -## $Date: 2004/08/17 20:02:25 +0200 $ +## $Date: 2005/01/31 08:10:54 +0100 $ ## ################################################################################ ## -## Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +## Version 3.x, Copyright (C) 2004-2005, 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/threads b/ext/Devel/PPPort/parts/inc/threads index fe40ed110d..e002e6c014 100644 --- a/ext/Devel/PPPort/parts/inc/threads +++ b/ext/Devel/PPPort/parts/inc/threads @@ -1,12 +1,12 @@ ################################################################################ ## -## $Revision: 3 $ +## $Revision: 4 $ ## $Author: mhx $ -## $Date: 2004/08/13 12:47:17 +0200 $ +## $Date: 2005/01/31 08:10:54 +0100 $ ## ################################################################################ ## -## Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +## Version 3.x, Copyright (C) 2004-2005, 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/uv b/ext/Devel/PPPort/parts/inc/uv index b9d3a49020..e3f0400230 100644 --- a/ext/Devel/PPPort/parts/inc/uv +++ b/ext/Devel/PPPort/parts/inc/uv @@ -1,12 +1,12 @@ ################################################################################ ## -## $Revision: 9 $ +## $Revision: 10 $ ## $Author: mhx $ -## $Date: 2004/08/17 23:13:18 +0200 $ +## $Date: 2005/01/31 08:10:54 +0100 $ ## ################################################################################ ## -## Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +## Version 3.x, Copyright (C) 2004-2005, 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/version b/ext/Devel/PPPort/parts/inc/version index 97893c17bc..1bf07baf1d 100644 --- a/ext/Devel/PPPort/parts/inc/version +++ b/ext/Devel/PPPort/parts/inc/version @@ -1,12 +1,12 @@ ################################################################################ ## -## $Revision: 3 $ +## $Revision: 4 $ ## $Author: mhx $ -## $Date: 2004/08/23 00:49:05 +0200 $ +## $Date: 2005/01/31 08:10:54 +0100 $ ## ################################################################################ ## -## Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +## Version 3.x, Copyright (C) 2004-2005, 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/ppptools.pl b/ext/Devel/PPPort/parts/ppptools.pl index 2953f3b757..9e27e6250f 100644 --- a/ext/Devel/PPPort/parts/ppptools.pl +++ b/ext/Devel/PPPort/parts/ppptools.pl @@ -4,13 +4,13 @@ # ################################################################################ # -# $Revision: 12 $ +# $Revision: 13 $ # $Author: mhx $ -# $Date: 2004/08/17 14:00:34 +0200 $ +# $Date: 2005/01/31 08:10:54 +0100 $ # ################################################################################ # -# Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +# Version 3.x, Copyright (C) 2004-2005, 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/todo/5008006 b/ext/Devel/PPPort/parts/todo/5008006 new file mode 100644 index 0000000000..ba5cad07ed --- /dev/null +++ b/ext/Devel/PPPort/parts/todo/5008006 @@ -0,0 +1 @@ +5.008006 diff --git a/ext/Devel/PPPort/parts/todo/5009002 b/ext/Devel/PPPort/parts/todo/5009002 index 90f6bbe3d0..ae91fd7959 100644 --- a/ext/Devel/PPPort/parts/todo/5009002 +++ b/ext/Devel/PPPort/parts/todo/5009002 @@ -1,4 +1,9 @@ 5.009002 SvPVbyte_force # E find_rundefsvoffset # U +gv_fetchpvn_flags # E +gv_fetchsv # E +op_refcnt_lock # U +op_refcnt_unlock # U +savesvpv # E vnormal # E diff --git a/ext/Devel/PPPort/ppport_h.PL b/ext/Devel/PPPort/ppport_h.PL index f687736877..f8ed365f22 100644 --- a/ext/Devel/PPPort/ppport_h.PL +++ b/ext/Devel/PPPort/ppport_h.PL @@ -4,13 +4,13 @@ # ################################################################################ # -# $Revision: 3 $ +# $Revision: 4 $ # $Author: mhx $ -# $Date: 2004/08/13 12:49:27 +0200 $ +# $Date: 2005/01/31 08:10:54 +0100 $ # ################################################################################ # -# Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +# Version 3.x, Copyright (C) 2004-2005, 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/soak b/ext/Devel/PPPort/soak index 8d584ef164..65a8fbcce8 100644 --- a/ext/Devel/PPPort/soak +++ b/ext/Devel/PPPort/soak @@ -7,13 +7,13 @@ # ################################################################################ # -# $Revision: 6 $ +# $Revision: 7 $ # $Author: mhx $ -# $Date: 2004/08/13 12:49:41 +0200 $ +# $Date: 2005/01/31 08:10:55 +0100 $ # ################################################################################ # -# Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +# Version 3.x, Copyright (C) 2004-2005, 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/t/SvPV.t b/ext/Devel/PPPort/t/SvPV.t index 5e6009c3a4..c684f943de 100644 --- a/ext/Devel/PPPort/t/SvPV.t +++ b/ext/Devel/PPPort/t/SvPV.t @@ -36,5 +36,5 @@ use strict; $^W = 1; ok(&Devel::PPPort::SvPVbyte("mhx"), 3); -ok(&Devel::PPPort::SvPVbyte("mhx"), 3); +ok(&Devel::PPPort::SvPV_nolen("mhx"), 42); diff --git a/ext/Devel/PPPort/t/exception.t b/ext/Devel/PPPort/t/exception.t new file mode 100644 index 0000000000..b66f146f82 --- /dev/null +++ b/ext/Devel/PPPort/t/exception.t @@ -0,0 +1,54 @@ +################################################################################ +# +# !!!!! Do NOT edit this file directly! !!!!! +# +# Edit mktests.PL and/or parts/inc/exception instead. +# +################################################################################ + +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'; + } + + eval "use Test"; + if ($@) { + require 'testutil.pl'; + print "1..7\n"; + } + else { + plan(tests => 7); + } +} + +use Devel::PPPort; +use strict; +$^W = 1; + +my $rv; + +$Devel::PPPort::exception_caught = undef; + +$rv = eval { &Devel::PPPort::exception(0) }; +ok($@, ''); +ok(defined $rv); +ok($rv, 42); +ok($Devel::PPPort::exception_caught, 0); + +$Devel::PPPort::exception_caught = undef; + +$rv = eval { &Devel::PPPort::exception(1) }; +ok($@, "boo\n"); +ok(not defined $rv); +ok($Devel::PPPort::exception_caught, 1); + diff --git a/ext/Devel/PPPort/t/misc.t b/ext/Devel/PPPort/t/misc.t index 20f53a799b..cad7bf5f4d 100644 --- a/ext/Devel/PPPort/t/misc.t +++ b/ext/Devel/PPPort/t/misc.t @@ -24,10 +24,10 @@ BEGIN { eval "use Test"; if ($@) { require 'testutil.pl'; - print "1..31\n"; + print "1..32\n"; } else { - plan(tests => 31); + plan(tests => 32); } } @@ -86,3 +86,5 @@ ok(&Devel::PPPort::get_cv('my_cv', 0)); ok(!&Devel::PPPort::get_cv('not_my_cv', 0)); ok(&Devel::PPPort::get_cv('not_my_cv', 1)); +ok(Devel::PPPort::dXSTARG(42), 43); + diff --git a/ext/Devel/PPPort/typemap b/ext/Devel/PPPort/typemap index 0ea3b8bb34..653722a0c8 100644 --- a/ext/Devel/PPPort/typemap +++ b/ext/Devel/PPPort/typemap @@ -4,13 +4,13 @@ # ################################################################################ # -# $Revision: 3 $ +# $Revision: 4 $ # $Author: mhx $ -# $Date: 2004/08/13 12:49:15 +0200 $ +# $Date: 2005/01/31 08:10:55 +0100 $ # ################################################################################ # -# Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz. +# Version 3.x, Copyright (C) 2004-2005, Marcus Holland-Moritz. # Version 2.x, Copyright (C) 2001, Paul Marquess. # Version 1.x, Copyright (C) 1999, Kenneth Albanowski. # |