In perl.git, the branch maint-5.10 has been updated <http://perl5.git.perl.org/perl.git/commitdiff/a9b2b00cdb9434f3835ec47bf82a09ad08ca44c2?hp=f4fec26b83a246103a7726622490f9dfee02acb4>
- Log ----------------------------------------------------------------- commit a9b2b00cdb9434f3835ec47bf82a09ad08ca44c2 Author: David Golden <[email protected]> Date: Tue Jun 16 09:36:25 2009 +0200 add-package.pl lib exclude fixed (cherry picked from commit 17633433c13dda15b2bbefe0fff88605b4fe7a6e) M Porting/add-package.pl commit 745e998d590905fa0c2b9124db859e50e3b29ad5 Author: Florian Ragwitz <[email protected]> Date: Mon Jun 15 16:47:25 2009 +0200 Update 'NEXT' version in Maintainers.pl (cherry picked from commit 91490fbe1187ee0d1ab27187fe75104690120930) M Porting/Maintainers.pl commit f93e8482841a94244e73256fb3f614a55c914ebe Author: Marcus Holland-Moritz <[email protected]> Date: Sun Jun 14 11:57:55 2009 +0200 Upgrade to Devel::PPPort 3.19 (cherry picked from commit 423174046424f87a68e7227cd8015f1926fede2d) M ext/Devel-PPPort/Changes M ext/Devel-PPPort/PPPort_pm.PL M ext/Devel-PPPort/parts/apidoc.fnc M ext/Devel-PPPort/parts/base/5006000 M ext/Devel-PPPort/parts/base/5009003 M ext/Devel-PPPort/parts/base/5009004 M ext/Devel-PPPort/parts/base/5009005 M ext/Devel-PPPort/parts/base/5010000 M ext/Devel-PPPort/parts/base/5011000 M ext/Devel-PPPort/parts/embed.fnc M ext/Devel-PPPort/parts/todo/5006000 M ext/Devel-PPPort/parts/todo/5009002 M ext/Devel-PPPort/parts/todo/5009003 M ext/Devel-PPPort/parts/todo/5009005 M ext/Devel-PPPort/parts/todo/5011000 M ext/Devel-PPPort/soak commit 4ccce966701f05deb89439923c04a32e8e71f806 Author: Marcus Holland-Moritz <[email protected]> Date: Fri Jun 12 13:23:26 2009 +0200 Upgrade to Devel::PPPort 3.18_01 (cherry picked from commit 8565c31a574ba4f7dc8cd69b66988949074e120d) M MANIFEST M ext/Devel-PPPort/Changes M ext/Devel-PPPort/Makefile.PL M ext/Devel-PPPort/PPPort_pm.PL M ext/Devel-PPPort/mktests.PL M ext/Devel-PPPort/parts/apicheck.pl A ext/Devel-PPPort/parts/inc/HvNAME A ext/Devel-PPPort/parts/inc/gv M ext/Devel-PPPort/parts/inc/misc A ext/Devel-PPPort/parts/inc/newSV_type M ext/Devel-PPPort/parts/inc/pvs M ext/Devel-PPPort/parts/inc/variables M ext/Devel-PPPort/soak A ext/Devel-PPPort/t/HvNAME.t A ext/Devel-PPPort/t/gv.t A ext/Devel-PPPort/t/newSV_type.t M ext/Devel-PPPort/t/pvs.t M ext/Devel-PPPort/t/variables.t M ext/Devel-PPPort/typemap commit 1a557a3d42f0d3875cc0fa0b8638e0597df5e322 Author: Rafael Garcia-Suarez <[email protected]> Date: Mon Jun 15 16:16:17 2009 +0200 Fix readline example in perlfunc Only check $! if an error was encountered (that is, not at end of file) (cherry picked from commit d947e7a211e365be90c523f5ad3b72b031e840c2) M pod/perlfunc.pod ----------------------------------------------------------------------- Summary of changes: MANIFEST | 6 ++ Porting/Maintainers.pl | 2 +- Porting/add-package.pl | 4 +- ext/Devel-PPPort/Changes | 25 +++++++ ext/Devel-PPPort/Makefile.PL | 4 +- ext/Devel-PPPort/PPPort_pm.PL | 16 +++-- ext/Devel-PPPort/mktests.PL | 4 +- ext/Devel-PPPort/parts/apicheck.pl | 5 +- ext/Devel-PPPort/parts/apidoc.fnc | 3 + ext/Devel-PPPort/parts/base/5006000 | 1 + ext/Devel-PPPort/parts/base/5009003 | 3 + ext/Devel-PPPort/parts/base/5009004 | 2 + ext/Devel-PPPort/parts/base/5009005 | 1 + ext/Devel-PPPort/parts/base/5010000 | 1 + ext/Devel-PPPort/parts/base/5011000 | 4 + ext/Devel-PPPort/parts/embed.fnc | 13 ++-- ext/Devel-PPPort/parts/inc/{sprintf => HvNAME} | 53 +++++---------- ext/Devel-PPPort/parts/inc/{newRV => gv} | 68 ++++++++----------- ext/Devel-PPPort/parts/inc/misc | 17 ++++- ext/Devel-PPPort/parts/inc/newSV_type | 86 ++++++++++++++++++++++++ ext/Devel-PPPort/parts/inc/pvs | 35 +++++++++- ext/Devel-PPPort/parts/inc/variables | 42 +++++++++++- ext/Devel-PPPort/parts/todo/5006000 | 1 + ext/Devel-PPPort/parts/todo/5009002 | 1 - ext/Devel-PPPort/parts/todo/5009003 | 1 - ext/Devel-PPPort/parts/todo/5009005 | 1 - ext/Devel-PPPort/parts/todo/5011000 | 1 + ext/Devel-PPPort/soak | 2 +- ext/Devel-PPPort/t/{limits.t => HvNAME.t} | 11 ++-- ext/Devel-PPPort/t/{sprintf.t => gv.t} | 8 +- ext/Devel-PPPort/t/{memory.t => newSV_type.t} | 4 +- ext/Devel-PPPort/t/pvs.t | 7 ++- ext/Devel-PPPort/t/variables.t | 4 +- ext/Devel-PPPort/typemap | 10 ++- pod/perlfunc.pod | 2 +- 35 files changed, 322 insertions(+), 126 deletions(-) copy ext/Devel-PPPort/parts/inc/{sprintf => HvNAME} (50%) copy ext/Devel-PPPort/parts/inc/{newRV => gv} (50%) create mode 100644 ext/Devel-PPPort/parts/inc/newSV_type copy ext/Devel-PPPort/t/{limits.t => HvNAME.t} (79%) copy ext/Devel-PPPort/t/{sprintf.t => gv.t} (89%) copy ext/Devel-PPPort/t/{memory.t => newSV_type.t} (91%) diff --git a/MANIFEST b/MANIFEST index 2a2f2b7..c0dad6d 100755 --- a/MANIFEST +++ b/MANIFEST @@ -292,6 +292,8 @@ 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/gv Devel::PPPort include +ext/Devel-PPPort/parts/inc/HvNAME Devel::PPPort include ext/Devel-PPPort/parts/inc/limits Devel::PPPort include ext/Devel-PPPort/parts/inc/magic Devel::PPPort include ext/Devel-PPPort/parts/inc/memory Devel::PPPort include @@ -300,6 +302,7 @@ ext/Devel-PPPort/parts/inc/mPUSH Devel::PPPort include ext/Devel-PPPort/parts/inc/MY_CXT Devel::PPPort include ext/Devel-PPPort/parts/inc/newCONSTSUB Devel::PPPort include ext/Devel-PPPort/parts/inc/newRV Devel::PPPort include +ext/Devel-PPPort/parts/inc/newSV_type Devel::PPPort include ext/Devel-PPPort/parts/inc/newSVpv Devel::PPPort include ext/Devel-PPPort/parts/inc/podtest Devel::PPPort include ext/Devel-PPPort/parts/inc/ppphbin Devel::PPPort include @@ -368,6 +371,8 @@ ext/Devel-PPPort/t/cop.t Devel::PPPort test file ext/Devel-PPPort/t/exception.t Devel::PPPort test file ext/Devel-PPPort/t/format.t Devel::PPPort test file ext/Devel-PPPort/t/grok.t Devel::PPPort test file +ext/Devel-PPPort/t/gv.t Devel::PPPort test file +ext/Devel-PPPort/t/HvNAME.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 ext/Devel-PPPort/t/memory.t Devel::PPPort test file @@ -376,6 +381,7 @@ ext/Devel-PPPort/t/mPUSH.t Devel::PPPort test file ext/Devel-PPPort/t/MY_CXT.t Devel::PPPort test file ext/Devel-PPPort/t/newCONSTSUB.t Devel::PPPort test file ext/Devel-PPPort/t/newRV.t Devel::PPPort test file +ext/Devel-PPPort/t/newSV_type.t Devel::PPPort test file ext/Devel-PPPort/t/newSVpv.t Devel::PPPort test file ext/Devel-PPPort/TODO Devel::PPPort Todo ext/Devel-PPPort/t/podtest.t Devel::PPPort test file diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl index c0414fc..4c4be36 100644 --- a/Porting/Maintainers.pl +++ b/Porting/Maintainers.pl @@ -1195,7 +1195,7 @@ package Maintainers; 'NEXT' => { 'MAINTAINER' => 'rafl', - 'DISTRIBUTION' => 'FLORA/NEXT-0.63.tar.gz', + 'DISTRIBUTION' => 'FLORA/NEXT-0.64.tar.gz', 'FILES' => q[lib/NEXT.pm lib/NEXT], 'EXCLUDED' => [ qr{^demo/} ], 'CPAN' => 1, diff --git a/Porting/add-package.pl b/Porting/add-package.pl index c8fe807..d91c3d5 100644 --- a/Porting/add-package.pl +++ b/Porting/add-package.pl @@ -75,8 +75,8 @@ my @LibFiles; @LibFiles = map { chomp; $_ } ### should we get rid of this file? grep { $ExcludeRe && $_ =~ $ExcludeRe - ? do { warn "Removing $_\n"; - system("rm $_") and die "rm '$_' failed: $?"; + ? do { warn "Removing $Repo/$_\n"; + system("rm $Repo/$_") and die "rm '$Repo/$_' failed: $?"; undef } : 1 diff --git a/ext/Devel-PPPort/Changes b/ext/Devel-PPPort/Changes index 8ad4106..fb8ba3a 100644 --- a/ext/Devel-PPPort/Changes +++ b/ext/Devel-PPPort/Changes @@ -1,3 +1,28 @@ +3.19 - 2009-06-14 + + * updated base/todo files + +3.18_01 - 2009-06-12 + + * fix CPAN #44614: Please support XSBODY + * fix CPAN #44655: Please support SVfARG + * added support for the following API + gv_fetchpvn_flags + gv_fetchpvs + gv_stashpvs + GvSVn + HvNAME_get + HvNAMELEN_get + isGV_with_GP + newSV_type + PL_error_count + PL_in_my + PL_in_my_stash + SVfARG + XSPROTO + (thanks to Goro Fuji for providing a patch to + implement almost all of these, fixes CPAN #44087) + 3.18 - 2009-06-12 * remove MAN3PODS option from Makefile.PL, which is diff --git a/ext/Devel-PPPort/Makefile.PL b/ext/Devel-PPPort/Makefile.PL index f0023db..67eebc1 100644 --- a/ext/Devel-PPPort/Makefile.PL +++ b/ext/Devel-PPPort/Makefile.PL @@ -4,9 +4,9 @@ # ################################################################################ # -# $Revision: 31 $ +# $Revision: 30 $ # $Author: mhx $ -# $Date: 2009/06/12 12:45:44 +0200 $ +# $Date: 2009/06/12 04:07:05 +0200 $ # ################################################################################ # diff --git a/ext/Devel-PPPort/PPPort_pm.PL b/ext/Devel-PPPort/PPPort_pm.PL index 83a4739..fcc8671 100644 --- a/ext/Devel-PPPort/PPPort_pm.PL +++ b/ext/Devel-PPPort/PPPort_pm.PL @@ -4,9 +4,9 @@ # ################################################################################ # -# $Revision: 64 $ +# $Revision: 65 $ # $Author: mhx $ -# $Date: 2009/01/18 14:10:49 +0100 $ +# $Date: 2009/06/12 04:10:36 +0200 $ # ################################################################################ # @@ -372,9 +372,9 @@ __DATA__ # ################################################################################ # -# $Revision: 64 $ +# $Revision: 65 $ # $Author: mhx $ -# $Date: 2009/01/18 14:10:49 +0100 $ +# $Date: 2009/06/12 04:10:36 +0200 $ # ################################################################################ # @@ -535,7 +535,7 @@ package Devel::PPPort; use strict; use vars qw($VERSION $data); -$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.18 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' }; +$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.19 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' }; sub _init_data { @@ -628,6 +628,8 @@ __DATA__ %include SvREFCNT +%include newSV_type + %include newSVpv %include SvPV @@ -638,6 +640,10 @@ __DATA__ %include shared_pv +%include HvNAME + +%include gv + %include warn %include pvs diff --git a/ext/Devel-PPPort/mktests.PL b/ext/Devel-PPPort/mktests.PL index 332f9a4..98b80ed 100644 --- a/ext/Devel-PPPort/mktests.PL +++ b/ext/Devel-PPPort/mktests.PL @@ -4,9 +4,9 @@ # ################################################################################ # -# $Revision: 32 $ +# $Revision: 31 $ # $Author: mhx $ -# $Date: 2009/06/12 12:46:07 +0200 $ +# $Date: 2009/06/11 20:53:42 +0200 $ # ################################################################################ # diff --git a/ext/Devel-PPPort/parts/apicheck.pl b/ext/Devel-PPPort/parts/apicheck.pl index 3590142..e6caab5 100644 --- a/ext/Devel-PPPort/parts/apicheck.pl +++ b/ext/Devel-PPPort/parts/apicheck.pl @@ -5,9 +5,9 @@ # ################################################################################ # -# $Revision: 34 $ +# $Revision: 35 $ # $Author: mhx $ -# $Date: 2009/01/18 14:10:51 +0100 $ +# $Date: 2009/06/12 12:29:35 +0200 $ # ################################################################################ # @@ -156,6 +156,7 @@ print OUT <<HEAD; #define NEED_my_strlcpy #define NEED_newCONSTSUB #define NEED_newRV_noinc +#define NEED_newSV_type #define NEED_newSVpvn_share #define NEED_pv_display #define NEED_pv_escape diff --git a/ext/Devel-PPPort/parts/apidoc.fnc b/ext/Devel-PPPort/parts/apidoc.fnc index 616a9b4..740e04f 100644 --- a/ext/Devel-PPPort/parts/apidoc.fnc +++ b/ext/Devel-PPPort/parts/apidoc.fnc @@ -209,6 +209,9 @@ Am|void|mXPUSHu|UV uv Am|void|Newxc|void* ptr|int nitems|type|cast Am|void|Newx|void* ptr|int nitems|type Am|void|Newxz|void* ptr|int nitems|type +Am|void|PERL_SYS_INIT3|int argc|char** argv|char** env +Am|void|PERL_SYS_INIT|int argc|char** argv +Am|void|PERL_SYS_TERM| Am|void|PoisonFree|void* dest|int nitems|type Am|void|PoisonNew|void* dest|int nitems|type Am|void|Poison|void* dest|int nitems|type diff --git a/ext/Devel-PPPort/parts/base/5006000 b/ext/Devel-PPPort/parts/base/5006000 index 47d788e..924da63 100644 --- a/ext/Devel-PPPort/parts/base/5006000 +++ b/ext/Devel-PPPort/parts/base/5006000 @@ -1,4 +1,5 @@ 5.006000 +PERL_SYS_INIT3 # U POPn # E PUSHn # E SvIOK_UV # U diff --git a/ext/Devel-PPPort/parts/base/5009003 b/ext/Devel-PPPort/parts/base/5009003 index 61ddf37..2306055 100644 --- a/ext/Devel-PPPort/parts/base/5009003 +++ b/ext/Devel-PPPort/parts/base/5009003 @@ -36,6 +36,9 @@ savepvs # U sortsv_flags # U sv_catpvs # U vverify # U +GvSVn # added by devel/scanprov +HvNAMELEN_get # added by devel/scanprov +HvNAME_get # added by devel/scanprov PERLIO_FUNCS_CAST # added by devel/scanprov PERLIO_FUNCS_DECL # added by devel/scanprov PERL_UNUSED_ARG # added by devel/scanprov diff --git a/ext/Devel-PPPort/parts/base/5009004 b/ext/Devel-PPPort/parts/base/5009004 index eadb7e2..2f88d2a 100644 --- a/ext/Devel-PPPort/parts/base/5009004 +++ b/ext/Devel-PPPort/parts/base/5009004 @@ -38,3 +38,5 @@ PERL_UNUSED_CONTEXT # added by devel/scanprov PERL_USE_GCC_BRACE_GROUPS # added by devel/scanprov SV_HAS_TRAILING_NUL # added by devel/scanprov SvVSTRING_mg # added by devel/scanprov +gv_fetchpvs # added by devel/scanprov +isGV_with_GP # added by devel/scanprov diff --git a/ext/Devel-PPPort/parts/base/5009005 b/ext/Devel-PPPort/parts/base/5009005 index 738c630..68ceff2 100644 --- a/ext/Devel-PPPort/parts/base/5009005 +++ b/ext/Devel-PPPort/parts/base/5009005 @@ -32,3 +32,4 @@ upg_version # E (Perl_upg_version) PERL_PV_ESCAPE_RE # added by devel/scanprov PL_parser # added by devel/scanprov SV_COW_SHARED_HASH_KEYS # added by devel/scanprov +SVfARG # added by devel/scanprov diff --git a/ext/Devel-PPPort/parts/base/5010000 b/ext/Devel-PPPort/parts/base/5010000 index be08fd8..922e614 100644 --- a/ext/Devel-PPPort/parts/base/5010000 +++ b/ext/Devel-PPPort/parts/base/5010000 @@ -7,3 +7,4 @@ sys_init3 # U sys_term # U PERL_PV_PRETTY_ELLIPSES # added by devel/scanprov PERL_PV_PRETTY_NOCLEAR # added by devel/scanprov +XSPROTO # added by devel/scanprov diff --git a/ext/Devel-PPPort/parts/base/5011000 b/ext/Devel-PPPort/parts/base/5011000 index ba064c5..fe92c15 100644 --- a/ext/Devel-PPPort/parts/base/5011000 +++ b/ext/Devel-PPPort/parts/base/5011000 @@ -1,6 +1,7 @@ 5.011000 HeUTF8 # U MULTICALL # E +PERL_SYS_TERM # E POP_MULTICALL # E PUSH_MULTICALL # E SvOOK_offset # U @@ -37,7 +38,10 @@ PERL_MAGIC_mutex # added by devel/scanprov PL_bufend # added by devel/scanprov PL_bufptr # added by devel/scanprov PL_copline # added by devel/scanprov +PL_error_count # added by devel/scanprov PL_expect # added by devel/scanprov +PL_in_my # added by devel/scanprov +PL_in_my_stash # added by devel/scanprov PL_lex_state # added by devel/scanprov PL_lex_stuff # added by devel/scanprov PL_linestr # added by devel/scanprov diff --git a/ext/Devel-PPPort/parts/embed.fnc b/ext/Devel-PPPort/parts/embed.fnc index cae666c..68f3817 100644 --- a/ext/Devel-PPPort/parts/embed.fnc +++ b/ext/Devel-PPPort/parts/embed.fnc @@ -533,7 +533,7 @@ Apd |UV |grok_oct |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV p |int |magic_clearenv |NN SV* sv|NN MAGIC* mg p |int |magic_clear_all_env|NN SV* sv|NN MAGIC* mg dp |int |magic_clearhint|NN SV* sv|NN MAGIC* mg -p |int |magic_clearisa |NN SV* sv|NN MAGIC* mg +p |int |magic_clearisa |NULLOK SV* sv|NN MAGIC* mg p |int |magic_clearpack|NN SV* sv|NN MAGIC* mg p |int |magic_clearsig |NN SV* sv|NN MAGIC* mg p |int |magic_existspack|NN SV* sv|NN const MAGIC* mg @@ -568,7 +568,7 @@ p |int |magic_setnkeys |NN SV* sv|NN MAGIC* mg p |int |magic_setpack |NN SV* sv|NN MAGIC* mg p |int |magic_setpos |NN SV* sv|NN MAGIC* mg p |int |magic_setregexp|NN SV* sv|NN MAGIC* mg -p |int |magic_setsig |NN SV* sv|NN MAGIC* mg +p |int |magic_setsig |NULLOK SV* sv|NN MAGIC* mg p |int |magic_setsubstr|NN SV* sv|NN MAGIC* mg p |int |magic_settaint |NN SV* sv|NN MAGIC* mg p |int |magic_setuvar |NN SV* sv|NN MAGIC* mg @@ -972,7 +972,6 @@ Apd |CV* |sv_2cv |NULLOK SV* sv|NN HV **const st|NN GV **const gvp \ Apd |IO* |sv_2io |NN SV *const sv #if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT) s |bool |glob_2number |NN GV* const gv -s |char* |glob_2pv |NN GV* const gv|NULLOK STRLEN * const len #endif Amb |IV |sv_2iv |NULLOK SV *sv Apd |IV |sv_2iv_flags |NULLOK SV *const sv|const I32 flags @@ -1278,8 +1277,6 @@ Apr |void |newMYSUB |I32 floor|NULLOK OP *o|NULLOK OP *proto|NULLOK OP *attrs|NU #endif : Used in perly.y p |OP * |my_attrs |NN OP *o|NULLOK OP *attrs -: Only used in perl.c -p |void |boot_core_xsutils #if defined(USE_ITHREADS) ApR |PERL_CONTEXT*|cx_dup |NULLOK PERL_CONTEXT* cx|I32 ix|I32 max|NN CLONE_PARAMS* param ApR |PERL_SI*|si_dup |NULLOK PERL_SI* si|NN CLONE_PARAMS* param @@ -1293,6 +1290,10 @@ Ap |PerlIO*|fp_dup |NULLOK PerlIO *const fp|const char type|NN CLONE_PARAMS *co ApR |DIR* |dirp_dup |NULLOK DIR *const dp ApR |GP* |gp_dup |NULLOK GP *const gp|NN CLONE_PARAMS *const param ApR |MAGIC* |mg_dup |NULLOK MAGIC *mg|NN CLONE_PARAMS *const param +#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT) +s |SV ** |sv_dup_inc_multiple|NN SV *const *source|NN SV **dest \ + |SSize_t items|NN CLONE_PARAMS *const param +#endif ApR |SV* |sv_dup |NULLOK const SV *const sstr|NN CLONE_PARAMS *const param Ap |void |rvpv_dup |NN SV *const dstr|NN const SV *const sstr|NN CLONE_PARAMS *const param Ap |yy_parser*|parser_dup |NULLOK const yy_parser *const proto|NN CLONE_PARAMS *const param @@ -1866,7 +1867,7 @@ Apn |int |my_socketpair |int family|int type|int protocol|int fd[2] Ap |int |my_dirfd |NULLOK DIR* dir #ifdef PERL_OLD_COPY_ON_WRITE : Used in pp_hot.c and regexec.c -pMXE |SV* |sv_setsv_cow |NN SV* dstr|NN SV* sstr +pMXE |SV* |sv_setsv_cow |NULLOK SV* dstr|NN SV* sstr #endif Aop |const char *|PerlIO_context_layers|NULLOK const char *mode diff --git a/ext/Devel-PPPort/parts/inc/sprintf b/ext/Devel-PPPort/parts/inc/HvNAME similarity index 50% copy from ext/Devel-PPPort/parts/inc/sprintf copy to ext/Devel-PPPort/parts/inc/HvNAME index 6756f9a..135549d 100644 --- a/ext/Devel-PPPort/parts/inc/sprintf +++ b/ext/Devel-PPPort/parts/inc/HvNAME @@ -1,8 +1,8 @@ ################################################################################ ## -## $Revision: 2 $ +## $Revision: 1 $ ## $Author: mhx $ -## $Date: 2009/01/18 14:10:51 +0100 $ +## $Date: 2009/06/12 12:29:57 +0200 $ ## ################################################################################ ## @@ -17,46 +17,29 @@ =provides -my_sprintf +__UNDEFINED__ =implementation -#if !defined(my_sprintf) -#if { NEED my_sprintf } +__UNDEFINED__ HvNAME_get(hv) HvNAME(hv) -int -my_sprintf(char *buffer, const char* pat, ...) -{ - va_list args; - va_start(args, pat); - vsprintf(buffer, pat, args); - va_end(args); - return strlen(buffer); -} +__UNDEFINED__ HvNAMELEN_get(hv) (HvNAME_get(hv) ? (I32)strlen(HvNAME_get(hv)) : 0) -#endif -#endif +=xsubs -=xsinit +char* +HvNAME_get(hv) + HV *hv -#define NEED_my_sprintf +int +HvNAMELEN_get(hv) + HV *hv -=xsubs +=tests plan => 4 + +ok(Devel::PPPort::HvNAME_get(\%Devel::PPPort::), 'Devel::PPPort'); +ok(Devel::PPPort::HvNAME_get({}), undef); -void -my_sprintf() - PREINIT: - char buf[128]; - int len; - PPCODE: - len = my_sprintf(buf, "foo%s%d", "bar", 42); - mXPUSHi(len); - mXPUSHs(newSVpv(buf, 0)); - XSRETURN(2); - -=tests plan => 2 - -my($l, $s) = Devel::PPPort::my_sprintf(); -ok($l, 8); -ok($s, "foobar42"); +ok(Devel::PPPort::HvNAMELEN_get(\%Devel::PPPort::), length('Devel::PPPort')); +ok(Devel::PPPort::HvNAMELEN_get({}), 0); diff --git a/ext/Devel-PPPort/parts/inc/newRV b/ext/Devel-PPPort/parts/inc/gv similarity index 50% copy from ext/Devel-PPPort/parts/inc/newRV copy to ext/Devel-PPPort/parts/inc/gv index 1467d1a..1b911e7 100644 --- a/ext/Devel-PPPort/parts/inc/newRV +++ b/ext/Devel-PPPort/parts/inc/gv @@ -1,8 +1,8 @@ ################################################################################ ## -## $Revision: 9 $ +## $Revision: 1 $ ## $Author: mhx $ -## $Date: 2009/01/18 14:10:55 +0100 $ +## $Date: 2009/06/12 12:29:56 +0200 $ ## ################################################################################ ## @@ -17,58 +17,50 @@ =provides -newRV_inc -newRV_noinc +__UNDEFINED__ =implementation -__UNDEFINED__ newRV_inc(sv) newRV(sv) /* Replace */ - -#ifndef newRV_noinc -#if { NEED newRV_noinc } -SV * -newRV_noinc(SV *sv) -{ - SV *rv = (SV *)newRV(sv); - SvREFCNT_dec(sv); - return rv; -} -#endif -#endif - -=xsinit - -#define NEED_newRV_noinc +__UNDEFINED__ GvSVn(gv) GvSV(gv) +__UNDEFINED__ isGV_with_GP(gv) isGV(gv) =xsubs -U32 -newRV_inc_REFCNT() +int +GvSVn() PREINIT: - SV *sv, *rv; + GV* gv; CODE: - sv = newSViv(42); - rv = newRV_inc(sv); - SvREFCNT_dec(sv); - RETVAL = SvREFCNT(sv); - sv_2mortal(rv); + RETVAL = 0; + gv = gv_fetchpvs("Devel::PPPort::GvTest", GV_ADDMULTI, SVt_PVGV); + if (GvSVn(gv) != NULL) + { + RETVAL++; + } OUTPUT: RETVAL -U32 -newRV_noinc_REFCNT() +int +isGV_with_GP() PREINIT: - SV *sv, *rv; + GV* gv; CODE: - sv = newSViv(42); - rv = newRV_noinc(sv); - RETVAL = SvREFCNT(sv); - sv_2mortal(rv); + RETVAL = 0; + gv = gv_fetchpvs("Devel::PPPort::GvTest", GV_ADDMULTI, SVt_PVGV); + if (isGV_with_GP(gv)) + { + RETVAL++; + } + if (!isGV(&PL_sv_undef)) + { + RETVAL++; + } OUTPUT: RETVAL + =tests plan => 2 -ok(&Devel::PPPort::newRV_inc_REFCNT, 1); -ok(&Devel::PPPort::newRV_noinc_REFCNT, 1); +ok(Devel::PPPort::GvSVn(), 1); +ok(Devel::PPPort::isGV_with_GP(), 2) diff --git a/ext/Devel-PPPort/parts/inc/misc b/ext/Devel-PPPort/parts/inc/misc index 9900812..3844bbb 100644 --- a/ext/Devel-PPPort/parts/inc/misc +++ b/ext/Devel-PPPort/parts/inc/misc @@ -1,8 +1,8 @@ ################################################################################ ## -## $Revision: 52 $ +## $Revision: 53 $ ## $Author: mhx $ -## $Date: 2009/03/15 06:51:00 +0100 $ +## $Date: 2009/03/31 23:05:55 +0200 $ ## ################################################################################ ## @@ -209,6 +209,9 @@ __UNDEFINED__ XSprePUSH (sp = PL_stack_base + ax - 1) } STMT_END #endif +__UNDEFINED__ XSPROTO(name) void name(pTHX_ CV* cv) +__UNDEFINED__ SVfARG(p) ((void*)(p)) + __UNDEFINED__ PERL_ABS(x) ((x) < 0 ? -(x) : (x)) __UNDEFINED__ dVAR dNOOP @@ -282,6 +285,9 @@ __UNDEFINED__ isXDIGIT(c) (isDIGIT(c) || ((c) >= 'a' && (c) <= 'f') || ((c) >= ' =xsmisc +typedef XSPROTO(XSPROTO_test_t); +typedef XSPROTO_test_t *XSPROTO_test_t_ptr; + XS(XS_Devel__PPPort_dXSTARG); /* prototype */ XS(XS_Devel__PPPort_dXSTARG) { @@ -309,7 +315,10 @@ XS(XS_Devel__PPPort_dAXMARK) =xsboot -newXS("Devel::PPPort::dXSTARG", XS_Devel__PPPort_dXSTARG, file); +{ + XSPROTO_test_t_ptr p = &XS_Devel__PPPort_dXSTARG; + newXS("Devel::PPPort::dXSTARG", *p, file); +} newXS("Devel::PPPort::dAXMARK", XS_Devel__PPPort_dAXMARK, file); =xsubs @@ -454,7 +463,7 @@ SVf(x) SV *x PPCODE: #if { VERSION >= 5.004 } - x = sv_2mortal(newSVpvf("[%"SVf"]", x)); + x = sv_2mortal(newSVpvf("[%"SVf"]", SVfARG(x))); #endif XPUSHs(x); XSRETURN(1); diff --git a/ext/Devel-PPPort/parts/inc/newSV_type b/ext/Devel-PPPort/parts/inc/newSV_type new file mode 100644 index 0000000..06ebdb4 --- /dev/null +++ b/ext/Devel-PPPort/parts/inc/newSV_type @@ -0,0 +1,86 @@ +################################################################################ +## +## $Revision: 1 $ +## $Author: mhx $ +## $Date: 2009/06/12 12:29:57 +0200 $ +## +################################################################################ +## +## Version 3.x, Copyright (C) 2004-2009, 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 + +newSV_type + +=implementation + +#ifndef newSV_type + +#if { NEED newSV_type } + +SV* +newSV_type(pTHX_ svtype const t) +{ + SV* const sv = newSV(0); + sv_upgrade(sv, t); + return sv; +} + +#endif + +#endif + +=xsinit + +#define NEED_newSV_type + +=xsubs + +int +newSV_type() + PREINIT: + SV* sv; + CODE: + RETVAL = 0; + sv = newSV_type(SVt_NULL); + if (SvTYPE(sv) == SVt_NULL) + { + RETVAL++; + } + SvREFCNT_dec(sv); + + sv = newSV_type(SVt_PVIV); + if (SvTYPE(sv) == SVt_PVIV) + { + RETVAL++; + } + SvREFCNT_dec(sv); + + sv = newSV_type(SVt_PVHV); + if (SvTYPE(sv) == SVt_PVHV) + { + RETVAL++; + } + SvREFCNT_dec(sv); + + sv = newSV_type(SVt_PVAV); + if (SvTYPE(sv) == SVt_PVAV) + { + RETVAL++; + } + SvREFCNT_dec(sv); + OUTPUT: + RETVAL + + +=tests plan => 1 + +ok(Devel::PPPort::newSV_type(), 4); + diff --git a/ext/Devel-PPPort/parts/inc/pvs b/ext/Devel-PPPort/parts/inc/pvs index 73bc9fb..71485ad 100644 --- a/ext/Devel-PPPort/parts/inc/pvs +++ b/ext/Devel-PPPort/parts/inc/pvs @@ -1,8 +1,8 @@ ################################################################################ ## -## $Revision: 9 $ +## $Revision: 11 $ ## $Author: mhx $ -## $Date: 2009/01/18 14:10:52 +0100 $ +## $Date: 2009/06/12 12:19:15 +0200 $ ## ################################################################################ ## @@ -35,6 +35,10 @@ __UNDEFINED__ sv_setpvs(sv, str) sv_setpvn(sv, str "", sizeof(str) - 1 __UNDEFINED__ hv_fetchs(hv, key, lval) hv_fetch(hv, key "", sizeof(key) - 1, lval) __UNDEFINED__ hv_stores(hv, key, val) hv_store(hv, key "", sizeof(key) - 1, val, 0) +__UNDEFINED__ gv_fetchpvn_flags(name, len, flags, svt) gv_fetchpv(name, flags, svt) +__UNDEFINED__ gv_fetchpvs(name, flags, svt) gv_fetchpvn_flags(name "", sizeof(name) - 1, flags, svt) +__UNDEFINED__ gv_stashpvs(name, flags) gv_stashpvn(name "", sizeof(name) - 1, flags) + =xsubs void @@ -78,7 +82,29 @@ hv_stores(hv, sv) PPCODE: (void) hv_stores((HV *) SvRV(hv), "hv_stores", SvREFCNT_inc_simple(sv)); -=tests plan => 8 +SV* +gv_fetchpvn_flags() + CODE: + RETVAL = newRV_inc((SV*)gv_fetchpvn_flags("Devel::PPPort::VERSION", sizeof("Devel::PPPort::VERSION")-1, 0, SVt_PV)); + OUTPUT: + RETVAL + +SV* +gv_fetchpvs() + CODE: + RETVAL = newRV_inc((SV*)gv_fetchpvs("Devel::PPPort::VERSION", 0, SVt_PV)); + OUTPUT: + RETVAL + +SV* +gv_stashpvs() + CODE: + RETVAL = newRV_inc((SV*)gv_stashpvs("Devel::PPPort", 0)); + OUTPUT: + RETVAL + + +=tests plan => 11 my $x = 'foo'; @@ -97,3 +123,6 @@ ok(scalar keys %h, 2); ok(exists $h{'hv_stores'}); ok($h{'hv_stores'}, 4711); ok(Devel::PPPort::hv_fetchs(\%h), 42); +ok(Devel::PPPort::gv_fetchpvn_flags(), \*Devel::PPPort::VERSION); +ok(Devel::PPPort::gv_fetchpvs(), \*Devel::PPPort::VERSION); +ok(Devel::PPPort::gv_stashpvs(), \%Devel::PPPort::); diff --git a/ext/Devel-PPPort/parts/inc/variables b/ext/Devel-PPPort/parts/inc/variables index 3058412..515e620 100644 --- a/ext/Devel-PPPort/parts/inc/variables +++ b/ext/Devel-PPPort/parts/inc/variables @@ -1,8 +1,8 @@ ################################################################################ ## -## $Revision: 19 $ +## $Revision: 20 $ ## $Author: mhx $ -## $Date: 2009/01/18 14:10:53 +0100 $ +## $Date: 2009/06/12 04:10:50 +0200 $ ## ################################################################################ ## @@ -36,9 +36,12 @@ PL_diehook PL_dirty PL_dowarn PL_errgv +PL_error_count PL_expect PL_hexdigit PL_hints +PL_in_my +PL_in_my_stash PL_laststatval PL_lex_state PL_lex_stuff @@ -112,9 +115,11 @@ __NEED_VAR__ U32 PL_signals = D_PPP_PERL_SIGNALS_INIT; # define PL_dirty dirty # define PL_dowarn dowarn # define PL_errgv errgv +# define PL_error_count error_count # define PL_expect expect # define PL_hexdigit hexdigit # define PL_hints hints +# define PL_in_my in_my # define PL_laststatval laststatval # define PL_lex_state lex_state # define PL_lex_stuff lex_stuff @@ -190,6 +195,10 @@ __NEED_DUMMY_VAR__ yy_parser PL_parser; # define PL_lex_state D_PPP_my_PL_parser_var(lex_state) # define PL_lex_stuff D_PPP_my_PL_parser_var(lex_stuff) # define PL_tokenbuf D_PPP_my_PL_parser_var(tokenbuf) +# define PL_in_my D_PPP_my_PL_parser_var(in_my) +# define PL_in_my_stash D_PPP_my_PL_parser_var(in_my_stash) +# define PL_error_count D_PPP_my_PL_parser_var(error_count) + #else @@ -229,6 +238,11 @@ int dummy_parser_warning(void); count++; \ } STMT_END +#define ppp_PARSERVAR_dummy STMT_START { \ + mXPUSHi(1); \ + count++; \ + } STMT_END + #if { VERSION < 5.004 } # define ppp_rsfp_t FILE * #else @@ -249,6 +263,20 @@ int dummy_parser_warning(void); # define ppp_lex_state_t U8 #endif +#if { VERSION < 5.6.0 } +# define ppp_in_my_t bool +#elif { VERSION < 5.9.5 } +# define ppp_in_my_t I32 +#else +# define ppp_in_my_t U16 +#endif + +#if { VERSION < 5.9.5 } +# define ppp_error_count_t I32 +#else +# define ppp_error_count_t U8 +#endif + =xsubs int @@ -379,7 +407,13 @@ other_variables() ppp_PARSERVAR(char *, PL_bufend); ppp_PARSERVAR(ppp_lex_state_t, PL_lex_state); ppp_PARSERVAR(SV *, PL_lex_stuff); - + ppp_PARSERVAR(ppp_error_count_t, PL_error_count); + ppp_PARSERVAR(ppp_in_my_t, PL_in_my); +#if { VERSION >= 5.5.0 } + ppp_PARSERVAR(HV*, PL_in_my_stash); +#else + ppp_PARSERVAR_dummy; +#endif XSRETURN(count); int @@ -389,7 +423,7 @@ no_dummy_parser_vars(check) int dummy_parser_warning() -=tests plan => 49 +=tests plan => 52 ok(Devel::PPPort::compare_PL_signals()); diff --git a/ext/Devel-PPPort/parts/todo/5006000 b/ext/Devel-PPPort/parts/todo/5006000 index 86f24e2..4e4f83e 100644 --- a/ext/Devel-PPPort/parts/todo/5006000 +++ b/ext/Devel-PPPort/parts/todo/5006000 @@ -1,4 +1,5 @@ 5.006000 +PERL_SYS_INIT3 # U SvIOK_UV # U SvIOK_notUV # U SvIOK_only_UV # U diff --git a/ext/Devel-PPPort/parts/todo/5009002 b/ext/Devel-PPPort/parts/todo/5009002 index c6d8a1e..d00dcda 100644 --- a/ext/Devel-PPPort/parts/todo/5009002 +++ b/ext/Devel-PPPort/parts/todo/5009002 @@ -1,7 +1,6 @@ 5.009002 SvPVbyte_force # U find_rundefsvoffset # U -gv_fetchpvn_flags # U gv_fetchsv # U op_refcnt_lock # U op_refcnt_unlock # U diff --git a/ext/Devel-PPPort/parts/todo/5009003 b/ext/Devel-PPPort/parts/todo/5009003 index 7be9e07..6a69c9f 100644 --- a/ext/Devel-PPPort/parts/todo/5009003 +++ b/ext/Devel-PPPort/parts/todo/5009003 @@ -6,7 +6,6 @@ csighandler # E (Perl_csighandler) dMULTICALL # E doref # U gv_const_sv # U -gv_stashpvs # U hv_eiter_p # U hv_eiter_set # U hv_name_set # U diff --git a/ext/Devel-PPPort/parts/todo/5009005 b/ext/Devel-PPPort/parts/todo/5009005 index cf90cd8..8b84717 100644 --- a/ext/Devel-PPPort/parts/todo/5009005 +++ b/ext/Devel-PPPort/parts/todo/5009005 @@ -9,7 +9,6 @@ gv_fetchfile_flags # U mro_get_linear_isa # U mro_method_changed_in # U my_dirfd # U -newSV_type # U pregcomp # E (Perl_pregcomp) ptr_table_clear # U ptr_table_fetch # U diff --git a/ext/Devel-PPPort/parts/todo/5011000 b/ext/Devel-PPPort/parts/todo/5011000 index 0676f22..f58fa28 100644 --- a/ext/Devel-PPPort/parts/todo/5011000 +++ b/ext/Devel-PPPort/parts/todo/5011000 @@ -1,6 +1,7 @@ 5.011000 HeUTF8 # U MULTICALL # E +PERL_SYS_TERM # E POP_MULTICALL # E PUSH_MULTICALL # E SvOOK_offset # U diff --git a/ext/Devel-PPPort/soak b/ext/Devel-PPPort/soak index 8473ded..1e98070 100644 --- a/ext/Devel-PPPort/soak +++ b/ext/Devel-PPPort/soak @@ -33,7 +33,7 @@ use File::Find; use List::Util qw(max); use Config; -my $VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.18 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' }; +my $VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.19 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' }; $| = 1; my %OPT = ( diff --git a/ext/Devel-PPPort/t/limits.t b/ext/Devel-PPPort/t/HvNAME.t similarity index 79% copy from ext/Devel-PPPort/t/limits.t copy to ext/Devel-PPPort/t/HvNAME.t index ed1cb2e..f54fac2 100644 --- a/ext/Devel-PPPort/t/limits.t +++ b/ext/Devel-PPPort/t/HvNAME.t @@ -2,7 +2,7 @@ # # !!!!! Do NOT edit this file directly! !!!!! # -# Edit mktests.PL and/or parts/inc/limits instead. +# Edit mktests.PL and/or parts/inc/HvNAME instead. # # This file was automatically generated from the definition files in the # parts/inc/ subdirectory by mktests.PL. To learn more about how all this @@ -48,8 +48,9 @@ bootstrap Devel::PPPort; package main; -ok(&Devel::PPPort::iv_size()); -ok(&Devel::PPPort::uv_size()); -ok(&Devel::PPPort::iv_type()); -ok(&Devel::PPPort::uv_type()); +ok(Devel::PPPort::HvNAME_get(\%Devel::PPPort::), 'Devel::PPPort'); +ok(Devel::PPPort::HvNAME_get({}), undef); + +ok(Devel::PPPort::HvNAMELEN_get(\%Devel::PPPort::), length('Devel::PPPort')); +ok(Devel::PPPort::HvNAMELEN_get({}), 0); diff --git a/ext/Devel-PPPort/t/sprintf.t b/ext/Devel-PPPort/t/gv.t similarity index 89% copy from ext/Devel-PPPort/t/sprintf.t copy to ext/Devel-PPPort/t/gv.t index 8b0d51f..3bf9ce6 100644 --- a/ext/Devel-PPPort/t/sprintf.t +++ b/ext/Devel-PPPort/t/gv.t @@ -2,7 +2,7 @@ # # !!!!! Do NOT edit this file directly! !!!!! # -# Edit mktests.PL and/or parts/inc/sprintf instead. +# Edit mktests.PL and/or parts/inc/gv instead. # # This file was automatically generated from the definition files in the # parts/inc/ subdirectory by mktests.PL. To learn more about how all this @@ -48,7 +48,7 @@ bootstrap Devel::PPPort; package main; -my($l, $s) = Devel::PPPort::my_sprintf(); -ok($l, 8); -ok($s, "foobar42"); +ok(Devel::PPPort::GvSVn(), 1); + +ok(Devel::PPPort::isGV_with_GP(), 2) diff --git a/ext/Devel-PPPort/t/memory.t b/ext/Devel-PPPort/t/newSV_type.t similarity index 91% copy from ext/Devel-PPPort/t/memory.t copy to ext/Devel-PPPort/t/newSV_type.t index 501b819..1b3233e 100644 --- a/ext/Devel-PPPort/t/memory.t +++ b/ext/Devel-PPPort/t/newSV_type.t @@ -2,7 +2,7 @@ # # !!!!! Do NOT edit this file directly! !!!!! # -# Edit mktests.PL and/or parts/inc/memory instead. +# Edit mktests.PL and/or parts/inc/newSV_type instead. # # This file was automatically generated from the definition files in the # parts/inc/ subdirectory by mktests.PL. To learn more about how all this @@ -48,5 +48,5 @@ bootstrap Devel::PPPort; package main; -ok(Devel::PPPort::checkmem(), 4); +ok(Devel::PPPort::newSV_type(), 4); diff --git a/ext/Devel-PPPort/t/pvs.t b/ext/Devel-PPPort/t/pvs.t index 4a85e49..7886096 100644 --- a/ext/Devel-PPPort/t/pvs.t +++ b/ext/Devel-PPPort/t/pvs.t @@ -30,9 +30,9 @@ BEGIN { require 'testutil.pl' if $@; } - if (8) { + if (11) { load(); - plan(tests => 8); + plan(tests => 11); } } @@ -65,4 +65,7 @@ ok(scalar keys %h, 2); ok(exists $h{'hv_stores'}); ok($h{'hv_stores'}, 4711); ok(Devel::PPPort::hv_fetchs(\%h), 42); +ok(Devel::PPPort::gv_fetchpvn_flags(), \*Devel::PPPort::VERSION); +ok(Devel::PPPort::gv_fetchpvs(), \*Devel::PPPort::VERSION); +ok(Devel::PPPort::gv_stashpvs(), \%Devel::PPPort::); diff --git a/ext/Devel-PPPort/t/variables.t b/ext/Devel-PPPort/t/variables.t index da7b99d..ef1ac8b 100644 --- a/ext/Devel-PPPort/t/variables.t +++ b/ext/Devel-PPPort/t/variables.t @@ -30,9 +30,9 @@ BEGIN { require 'testutil.pl' if $@; } - if (49) { + if (52) { load(); - plan(tests => 49); + plan(tests => 52); } } diff --git a/ext/Devel-PPPort/typemap b/ext/Devel-PPPort/typemap index f2118a8..7225c40 100644 --- a/ext/Devel-PPPort/typemap +++ b/ext/Devel-PPPort/typemap @@ -4,9 +4,9 @@ # ################################################################################ # -# $Revision: 8 $ +# $Revision: 9 $ # $Author: mhx $ -# $Date: 2009/01/18 14:10:48 +0100 $ +# $Date: 2009/06/12 04:07:19 +0200 $ # ################################################################################ # @@ -21,12 +21,18 @@ UV T_UV NV T_NV +HV * T_HVREF INPUT T_UV $var = ($type)SvUV($arg) T_NV $var = ($type)SvNV($arg) +T_HVREF + if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVHV) + $var = (HV*)SvRV($arg); + else + Perl_croak(aTHX_ \"$var is not a hash reference\") OUTPUT T_UV diff --git a/pod/perlfunc.pod b/pod/perlfunc.pod index eebc4eb..405d2b5 100644 --- a/pod/perlfunc.pod +++ b/pod/perlfunc.pod @@ -4340,8 +4340,8 @@ steps to ensure that C<readline> was successful. for (;;) { undef $!; unless (defined( $line = <> )) { + last if eof; die $! if $!; - last; # reached EOF } # ... } -- Perl5 Master Repository
