From 9132e1a37fb6d8c980f305a393fed9323586cbca Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Mon, 31 Jan 2005 18:07:29 +0000 Subject: [PATCH] Upgrade to Devel::PPPort 3.05. p4raw-id: //depot/perl@23912 --- MANIFEST | 4 ++ ext/Devel/PPPort/Changes | 13 +++++ ext/Devel/PPPort/HACKERS | 2 +- ext/Devel/PPPort/MANIFEST | 4 ++ ext/Devel/PPPort/MANIFEST.SKIP | 1 + ext/Devel/PPPort/META.yml | 2 +- ext/Devel/PPPort/Makefile.PL | 6 +- ext/Devel/PPPort/PPPort.pm | 95 ++++++++++++++++++++++++------ ext/Devel/PPPort/PPPort.xs | 61 ++++++++++++++++++-- ext/Devel/PPPort/PPPort_pm.PL | 20 ++++--- ext/Devel/PPPort/PPPort_xs.PL | 12 ++-- ext/Devel/PPPort/README | 2 +- ext/Devel/PPPort/TODO | 2 +- ext/Devel/PPPort/apicheck_c.PL | 6 +- ext/Devel/PPPort/devel/buildperl.pl | 6 +- ext/Devel/PPPort/devel/mkapidoc.sh | 8 +-- ext/Devel/PPPort/devel/mktodo | 6 +- ext/Devel/PPPort/devel/mktodo.pl | 6 +- ext/Devel/PPPort/devel/scanprov | 6 +- ext/Devel/PPPort/mktests.PL | 6 +- ext/Devel/PPPort/module2.c | 6 +- ext/Devel/PPPort/module3.c | 6 +- ext/Devel/PPPort/parts/apicheck.pl | 6 +- ext/Devel/PPPort/parts/base/5004000 | 2 + ext/Devel/PPPort/parts/base/5004050 | 14 ++--- ext/Devel/PPPort/parts/base/5005000 | 4 +- ext/Devel/PPPort/parts/base/5006000 | 7 +-- ext/Devel/PPPort/parts/base/5008001 | 2 +- ext/Devel/PPPort/parts/base/5008006 | 1 + ext/Devel/PPPort/parts/base/5009002 | 12 +++- ext/Devel/PPPort/parts/embed.fnc | 49 +++++++--------- ext/Devel/PPPort/parts/inc/MY_CXT | 6 +- ext/Devel/PPPort/parts/inc/SvPV | 10 ++-- ext/Devel/PPPort/parts/inc/call | 6 +- ext/Devel/PPPort/parts/inc/cop | 6 +- ext/Devel/PPPort/parts/inc/exception | 102 +++++++++++++++++++++++++++++++++ ext/Devel/PPPort/parts/inc/format | 6 +- ext/Devel/PPPort/parts/inc/grok | 6 +- ext/Devel/PPPort/parts/inc/limits | 6 +- ext/Devel/PPPort/parts/inc/mPUSH | 6 +- ext/Devel/PPPort/parts/inc/magic | 6 +- ext/Devel/PPPort/parts/inc/misc | 29 ++++++++-- ext/Devel/PPPort/parts/inc/newCONSTSUB | 6 +- ext/Devel/PPPort/parts/inc/newRV | 6 +- ext/Devel/PPPort/parts/inc/ppphbin | 15 ++--- ext/Devel/PPPort/parts/inc/ppphdoc | 27 +++++++-- ext/Devel/PPPort/parts/inc/ppphtest | 6 +- ext/Devel/PPPort/parts/inc/sv_xpvf | 6 +- ext/Devel/PPPort/parts/inc/threads | 6 +- ext/Devel/PPPort/parts/inc/uv | 6 +- ext/Devel/PPPort/parts/inc/version | 6 +- ext/Devel/PPPort/parts/ppptools.pl | 6 +- ext/Devel/PPPort/parts/todo/5008006 | 1 + ext/Devel/PPPort/parts/todo/5009002 | 5 ++ ext/Devel/PPPort/ppport_h.PL | 6 +- ext/Devel/PPPort/soak | 6 +- ext/Devel/PPPort/t/SvPV.t | 2 +- ext/Devel/PPPort/t/exception.t | 54 +++++++++++++++++ ext/Devel/PPPort/t/misc.t | 6 +- ext/Devel/PPPort/typemap | 6 +- 60 files changed, 542 insertions(+), 200 deletions(-) create mode 100644 ext/Devel/PPPort/parts/base/5008006 create mode 100644 ext/Devel/PPPort/parts/inc/exception create mode 100644 ext/Devel/PPPort/parts/todo/5008006 create mode 100644 ext/Devel/PPPort/t/exception.t diff --git a/MANIFEST b/MANIFEST index 7d33530..68d255b 100644 --- a/MANIFEST +++ b/MANIFEST @@ -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 a21b120..9e728ee 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 1eaa1ab..8aa9c57 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 d05e8ae..44cb9f0 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 a6d2883..e0a5ec7 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 c18fa4f..ec326e2 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 e9b672a..446fbb1 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 514cbf5..907cbf5 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 POD POD Show portability information for API elements matching I. -POD I is treated as a Perl regular expression. +POD If I 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 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 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 () { 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 2056271..ed3c379 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 8733c44..2f3a19d 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 e4867da..6488e04 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 738b6ed..2656419 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 bd09e7c..9f4feb6 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 fb9436b..8976faa 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 a1d94b8..b26a3e9 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 61b4ccc..74da36f 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(){(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 319f611..3c6cd7d 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 6df1eb9..05d921b 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 934e816..9d1a8d4 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 cbe9a98..684a5ca 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 5e59ae3..0687c13 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 4df598a..4c230fa 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 b49c53a..b4b668f 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 795d0cb..f5f031f 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 4b43177..d1ca35e 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 f0bfeed..553a4be 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 6705683..f26d172 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 cc274f4..0804976 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 0000000..ba5cad0 --- /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 2b66b27..69a4526 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 8ca6b0e..795f3fe 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 5ef575f..5b26baf 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 34aa90f..56474d2 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 e01d6a3..bffb313 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 3599410..b12fdfb 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 0000000..2996958 --- /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 7c52042..78d46f9 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 97d4f49..be7679f 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 269b7ce..1cec183 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 809d90b..51bed81 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 66afaad..ccda7ec 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 c8d63fd..f49d7bf 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 d24e465..fbf752a 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 f593769..2a4f909 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 384f126..6df23e4 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 () { 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 bf0b18c..37097b7 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 Show portability information for API elements matching I. -I is treated as a Perl regular expression. +If I 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 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 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 1d8f6d3..43fbe9f 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 1083ecd..3276960 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 fe40ed1..e002e6c 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 b9d3a49..e3f0400 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 97893c1..1bf07ba 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 2953f3b..9e27e62 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 0000000..ba5cad0 --- /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 90f6bbe..ae91fd7 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 f687736..f8ed365 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 8d584ef..65a8fbc 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 5e6009c..c684f94 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 0000000..b66f146 --- /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 20f53a7..cad7bf5 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 0ea3b8b..653722a 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. # -- 2.7.4