From cac25305bdd103d726ae355802b63e8a67132aef Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Sat, 2 Dec 2006 17:13:26 +0000 Subject: [PATCH] Upgrade to Devel::PPPort 3.10_01 p4raw-id: //depot/perl@29436 --- ext/Devel/PPPort/Changes | 17 +++ ext/Devel/PPPort/PPPort_pm.PL | 14 +- ext/Devel/PPPort/PPPort_xs.PL | 26 ++-- ext/Devel/PPPort/TODO | 275 +++++++++++++++++++++++++++++++++++ ext/Devel/PPPort/devel/buildperl.pl | 45 ++++-- ext/Devel/PPPort/mktests.PL | 8 +- ext/Devel/PPPort/parts/base/5005000 | 3 + ext/Devel/PPPort/parts/base/5007002 | 1 - ext/Devel/PPPort/parts/base/5009001 | 1 - ext/Devel/PPPort/parts/base/5009004 | 6 - ext/Devel/PPPort/parts/embed.fnc | 70 ++++++--- ext/Devel/PPPort/parts/inc/misc | 78 +--------- ext/Devel/PPPort/parts/inc/threads | 22 ++- ext/Devel/PPPort/parts/inc/variables | 192 +++++++++++++++++++++++- ext/Devel/PPPort/parts/todo/5009001 | 1 - ext/Devel/PPPort/parts/todo/5009004 | 5 - ext/Devel/PPPort/soak | 26 +++- ext/Devel/PPPort/t/MY_CXT.t | 4 + ext/Devel/PPPort/t/SvPV.t | 4 + ext/Devel/PPPort/t/SvREFCNT.t | 4 + ext/Devel/PPPort/t/Sv_set.t | 4 + ext/Devel/PPPort/t/call.t | 4 + ext/Devel/PPPort/t/cop.t | 4 + ext/Devel/PPPort/t/exception.t | 4 + ext/Devel/PPPort/t/grok.t | 4 + ext/Devel/PPPort/t/limits.t | 4 + ext/Devel/PPPort/t/mPUSH.t | 4 + ext/Devel/PPPort/t/magic.t | 4 + ext/Devel/PPPort/t/memory.t | 4 + ext/Devel/PPPort/t/misc.t | 13 +- ext/Devel/PPPort/t/newCONSTSUB.t | 4 + ext/Devel/PPPort/t/newRV.t | 4 + ext/Devel/PPPort/t/podtest.t | 4 + ext/Devel/PPPort/t/ppphtest.t | 4 + ext/Devel/PPPort/t/pvs.t | 4 + ext/Devel/PPPort/t/snprintf.t | 4 + ext/Devel/PPPort/t/strlfuncs.t | 4 + ext/Devel/PPPort/t/sv_xpvf.t | 4 + ext/Devel/PPPort/t/threads.t | 4 + ext/Devel/PPPort/t/uv.t | 4 + ext/Devel/PPPort/t/variables.t | 22 ++- ext/Devel/PPPort/t/warn.t | 4 + 42 files changed, 756 insertions(+), 161 deletions(-) diff --git a/ext/Devel/PPPort/Changes b/ext/Devel/PPPort/Changes index 330eb0c..6e0964e 100755 --- a/ext/Devel/PPPort/Changes +++ b/ext/Devel/PPPort/Changes @@ -1,3 +1,20 @@ +3.10_01 - 2006-12-02 + + * fix cpan #21239: Signals safe in Perl 5.8.0 + * fix PL_ppaddr and PL_no_modify support 5.005 perls + * added dTHXR, aTHXR and aTHXR_ for API that need + the context argument in pre-5.6.0 perls + * added support for the following API + PL_DBsignal + PL_DBtrace + PL_laststatval + PL_statcache + * added tests for all PL_* variables + * added progress indicator to soak script + * added --test-archives option to buildperl.pl script + * added comments to all autogenerated files that + clearly indicate their purpose and origin + 3.10 - 2006-08-14 * remove timestamp from generated ppport.h diff --git a/ext/Devel/PPPort/PPPort_pm.PL b/ext/Devel/PPPort/PPPort_pm.PL index b291b4c..9e1eb7a 100644 --- a/ext/Devel/PPPort/PPPort_pm.PL +++ b/ext/Devel/PPPort/PPPort_pm.PL @@ -4,9 +4,9 @@ # ################################################################################ # -# $Revision: 49 $ +# $Revision: 50 $ # $Author: mhx $ -# $Date: 2006/08/14 21:26:31 +0200 $ +# $Date: 2006/12/01 13:13:28 +0100 $ # ################################################################################ # @@ -329,15 +329,19 @@ __DATA__ # # !!!!! Do NOT edit this file directly! -- Edit PPPort_pm.PL instead. !!!!! # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by PPPort_pm.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ # # Perl/Pollution/Portability # ################################################################################ # -# $Revision: 49 $ +# $Revision: 50 $ # $Author: mhx $ -# $Date: 2006/08/14 21:26:31 +0200 $ +# $Date: 2006/12/01 13:13:28 +0100 $ # ################################################################################ # @@ -498,7 +502,7 @@ package Devel::PPPort; use strict; use vars qw($VERSION $data); -$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.10 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' }; +$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.10_01 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' }; sub _init_data { diff --git a/ext/Devel/PPPort/PPPort_xs.PL b/ext/Devel/PPPort/PPPort_xs.PL index 6edb75e..1776310 100644 --- a/ext/Devel/PPPort/PPPort_xs.PL +++ b/ext/Devel/PPPort/PPPort_xs.PL @@ -4,9 +4,9 @@ # ################################################################################ # -# $Revision: 11 $ +# $Revision: 12 $ # $Author: mhx $ -# $Date: 2006/07/21 19:21:40 +0200 $ +# $Date: 2006/12/01 13:13:28 +0100 $ # ################################################################################ # @@ -24,11 +24,15 @@ $^W = 1; require "parts/ppptools.pl"; my %SECTION = ( - xshead => { code => '', header => "/* ---- from __FILE__ ---- */" }, - xsinit => { code => '', header => "/* ---- from __FILE__ ---- */" }, - xsmisc => { code => '', header => "/* ---- from __FILE__ ---- */" }, - xsboot => { code => '', header => "/* ---- from __FILE__ ---- */", indent => "\t" }, - xsubs => { code => '', header => "##".('-' x 70)."\n## XSUBs from __FILE__\n##".('-' x 70)."\n" }, + xshead => { code => '', header => "/* ---- code from __FILE__ ---- */" }, + xsinit => { code => '', header => "/* ---- code from __FILE__ ---- */" }, + xsmisc => { code => '', header => "/* ---- code from __FILE__ ---- */" }, + xsboot => { code => '', header => "/* ---- code from __FILE__ ---- */", indent => "\t" }, + xsubs => { code => '', header => < file that came with this distribution. +* ******************************************************************************** * * Perl/Pollution/Portability * ******************************************************************************** * -* $Revision: 11 $ +* $Revision: 12 $ * $Author: mhx $ -* $Date: 2006/07/21 19:21:40 +0200 $ +* $Date: 2006/12/01 13:13:28 +0100 $ * ******************************************************************************** * diff --git a/ext/Devel/PPPort/TODO b/ext/Devel/PPPort/TODO index f46be30..28fddcf 100644 --- a/ext/Devel/PPPort/TODO +++ b/ext/Devel/PPPort/TODO @@ -1,5 +1,280 @@ TODO: +* check which of the following we need to support: + + amagic_generation + AMG_names + an + Argv + argvgv + argvoutgv + basetime + beginav + block_type + bodytarget + bufend + bufptr + check + chopset + Cmd + compcv + compiling + comppad + comppad_name + comppad_name_fill + copline + cop_seqmax + cryptseen + cshlen + cshname + curcop + curinterp + curpad + curpm + curstash + curstname + dbargs + DBgv + DBline + DBsignal + DBsingle + DBsub + DBtrace + debstash + debug + defgv + defoutgv + defstash + delaymagic + diehook + dirty + doextract + doswitches + do_undump + dowarn + egid + encoding + endav + envgv + errgv + error_count + errors + euid + eval_root + evalseq + eval_start + expect + fdpid + filemode + firstgv + fold + forkprocess + formfeed + formtarget + freq + generation + gensym + gid + hexdigit + hints + incgv + in_eval + in_my + inplace + lastfd + last_in_gv + last_lop + last_lop_op + lastscream + laststatval + laststype + last_uni + lex_brackets + lex_brackstack + lex_casemods + lex_casestack + lex_defer + lex_dojoin + lex_expect + lex_formbrack + lex_inpat + lex_inwhat + lex_op + lex_repl + lex_starts + lex_state + lex_stuff + lineary + linestr + localizing + main_cv + main_root + mainstack + main_start + markstack + markstack_max + markstack_ptr + max_intro_pending + maxo + maxscream + maxsysfd + min_intro_pending + minus_a + minus_c + minus_F + minus_l + minus_n + minus_p + multi_close + multi_end + multi_open + multi_start + na + nexttoke + nexttype + nextval + nice_chunk + nice_chunk_size + No + no_aelem + no_dir_func + no_func + no_mem + nomemok + no_modify + no_myglob + no_security + no_sock_func + no_symref + no_usym + no_wrongref + nrs + oldbufptr + oldname + oldoldbufptr + op + opargs + op_desc + op_mask + op_name + op_seq + origalen + origargc + origargv + origenviron + origfilename + osname + padix + padix_floor + pad_reset_pending + patchlevel + patleave + perldb + perl_destruct_level + pidstatus + ppaddr + preambleav + preambled + preprocess + profiledata + regdummy + regendp + regeol + reginput + regkind + reglastparen + regsize + regstartp + restartop + rs + rsfp + rsfp_filters + runops + savestack + savestack_ix + savestack_max + sawampersand + scopestack + scopestack_ix + scopestack_max + screamfirst + screamnext + secondgv + signals + sig_name + sig_num + simple + sortcop + sortstash + splitstr + stack_base + stack_max + stack_sp + statbuf + statcache + statgv + statname + statusvalue + stdingv + sub_generation + subline + subname + Sv + sv_arenaroot + sv_count + sv_no + sv_objcount + sv_root + sv_undef + sv_yes + tainted + tainting + timesbuf + tmps_floor + tmps_ix + tmps_max + tmps_stack + tokenbuf + top_env + toptarget + uid + unsafe + varies + vtbl_amagic + vtbl_amagicelem + vtbl_arylen + vtbl_bm + vtbl_dbline + vtbl_env + vtbl_envelem + vtbl_glob + vtbl_isa + vtbl_isaelem + vtbl_mglob + vtbl_pack + vtbl_packelem + vtbl_pos + vtbl_sig + vtbl_sigelem + vtbl_substr + vtbl_sv + vtbl_taint + vtbl_uvar + vtbl_vec + warnhook + warn_nl + warn_nosemi + warn_reserved + warn_uninit + watchaddr + watchok + Xpv + Yes + +* have an --env option for soak to set env variable combinations + +* only overwrite generated files if they actually changed + * try to make parts/apicheck.pl automatically find NEED_ #defines * implement snprintf with newSVpvf for >= 5.004, which is safer? diff --git a/ext/Devel/PPPort/devel/buildperl.pl b/ext/Devel/PPPort/devel/buildperl.pl index 792974a..64a9541 100644 --- a/ext/Devel/PPPort/devel/buildperl.pl +++ b/ext/Devel/PPPort/devel/buildperl.pl @@ -5,9 +5,9 @@ # ################################################################################ # -# $Revision: 9 $ +# $Revision: 10 $ # $Author: mhx $ -# $Date: 2006/05/28 20:42:53 +0200 $ +# $Date: 2006/12/02 09:58:34 +0100 $ # ################################################################################ # @@ -39,6 +39,7 @@ my %opt = ( force => 0, test => 0, install => 1, + 'test-archives' => 0, ); my %config = ( @@ -110,6 +111,7 @@ GetOptions(\%opt, qw( force test install! + test-archives+ )) or pod2usage(2); if (exists $opt{config}) { @@ -139,6 +141,24 @@ else { @perls = sort keys %perl; } +if ($opt{'test-archives'}) { + my $test = 'test'; + my $cwd = cwd; + -d $test or mkpath($test); + chdir $test or die "chdir $test: $!\n"; + for my $perl (@perls) { + eval { + my $d = extract_source($perl{$perl}); + rmtree($d) if -e $d; + }; + warn $@ if $@; + } + chdir $cwd or die "chdir $cwd: $!\n"; + print STDERR "cleaning up\n"; + rmtree($test); + exit 0; +} + my %current; for my $cfg (@{$opt{config}}) { @@ -211,7 +231,8 @@ sub extract_source { my $perl = shift; - print "reading $perl->{source}\n"; + my $what = $opt{'test-archives'} ? 'test' : 'read'; + print "${what}ing $perl->{source}\n"; my $target; @@ -222,17 +243,19 @@ sub extract_source $target = $t; } - if (-d $target) { - print "removing old build directory $target\n"; - rmtree($target); - } + if ($opt{'test-archives'} == 0 || $opt{'test-archives'} > 1) { + if (-d $target) { + print "removing old build directory $target\n"; + rmtree($target); + } - print "extracting $perl->{source}\n"; + print "extracting $perl->{source}\n"; - Archive::Tar->extract_archive($perl->{source}) - or die "extract failed: " . Archive::Tar->error() . "\n"; + Archive::Tar->extract_archive($perl->{source}) + or die "extract failed: " . Archive::Tar->error() . "\n"; - -d $target or die "oooops, $target not found\n"; + -d $target or die "oooops, $target not found\n"; + } return $target; } diff --git a/ext/Devel/PPPort/mktests.PL b/ext/Devel/PPPort/mktests.PL index 4d97607..66887aa 100644 --- a/ext/Devel/PPPort/mktests.PL +++ b/ext/Devel/PPPort/mktests.PL @@ -4,9 +4,9 @@ # ################################################################################ # -# $Revision: 26 $ +# $Revision: 27 $ # $Author: mhx $ -# $Date: 2006/07/21 19:21:39 +0200 $ +# $Date: 2006/12/01 13:13:26 +0100 $ # ################################################################################ # @@ -69,6 +69,10 @@ __DATA__ # # Edit mktests.PL and/or __SOURCE__ instead. # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by mktests.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ BEGIN { diff --git a/ext/Devel/PPPort/parts/base/5005000 b/ext/Devel/PPPort/parts/base/5005000 index c5781e8..8d1ad77 100644 --- a/ext/Devel/PPPort/parts/base/5005000 +++ b/ext/Devel/PPPort/parts/base/5005000 @@ -28,8 +28,11 @@ sv_uv # E END_EXTERN_C # added by devel/scanprov EXTERN_C # added by devel/scanprov NOOP # added by devel/scanprov +PL_DBsignal # 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 +PL_laststatval # added by devel/scanprov +PL_statcache # added by devel/scanprov START_EXTERN_C # added by devel/scanprov diff --git a/ext/Devel/PPPort/parts/base/5007002 b/ext/Devel/PPPort/parts/base/5007002 index 63b9ee7..b56a262 100644 --- a/ext/Devel/PPPort/parts/base/5007002 +++ b/ext/Devel/PPPort/parts/base/5007002 @@ -45,7 +45,6 @@ PERL_MAGIC_env # added by devel/scanprov PERL_MAGIC_envelem # added by devel/scanprov PERL_MAGIC_ext # added by devel/scanprov PERL_MAGIC_fm # added by devel/scanprov -PERL_MAGIC_glob # added by devel/scanprov PERL_MAGIC_isa # added by devel/scanprov PERL_MAGIC_isaelem # added by devel/scanprov PERL_MAGIC_mutex # added by devel/scanprov diff --git a/ext/Devel/PPPort/parts/base/5009001 b/ext/Devel/PPPort/parts/base/5009001 index 14967d0..0666184 100644 --- a/ext/Devel/PPPort/parts/base/5009001 +++ b/ext/Devel/PPPort/parts/base/5009001 @@ -1,7 +1,6 @@ 5.009001 SvIV_nomg # U SvUV_nomg # U -hv_assert # U hv_clear_placeholders # U hv_scalar # U scan_version # E (Perl_scan_version) diff --git a/ext/Devel/PPPort/parts/base/5009004 b/ext/Devel/PPPort/parts/base/5009004 index b978b8c..0fc7814 100644 --- a/ext/Devel/PPPort/parts/base/5009004 +++ b/ext/Devel/PPPort/parts/base/5009004 @@ -1,7 +1,4 @@ 5.009004 -MULTICALL # E -POP_MULTICALL # E -PUSH_MULTICALL # E PerlIO_context_layers # U PoisonFree # E PoisonNew # E @@ -20,15 +17,12 @@ my_strlcat # U my_strlcpy # U my_vsnprintf # U newXS_flags # U -pad_sv # U pv_escape # U pv_pretty # U regclass_swash # E (Perl_regclass_swash) -stashpv_hvname_match # U sv_does # U sv_setpvs # U sv_usepvn_flags # U -PERL_BCDVERSION # added by devel/scanprov PERL_UNUSED_CONTEXT # added by devel/scanprov PERL_USE_GCC_BRACE_GROUPS # added by devel/scanprov SvVSTRING_mg # added by devel/scanprov diff --git a/ext/Devel/PPPort/parts/embed.fnc b/ext/Devel/PPPort/parts/embed.fnc index d69d87e..284bf44 100644 --- a/ext/Devel/PPPort/parts/embed.fnc +++ b/ext/Devel/PPPort/parts/embed.fnc @@ -188,7 +188,7 @@ pmb |bool |do_aexec |NULLOK SV* really|NN SV** mark|NN SV** sp p |bool |do_aexec5 |NULLOK SV* really|NN SV** mark|NN SV** sp|int fd|int do_report Ap |int |do_binmode |NN PerlIO *fp|int iotype|int mode p |void |do_chop |NN SV* asv|NN SV* sv -Ap |bool |do_close |NN GV* gv|bool not_implicit +Ap |bool |do_close |NULLOK GV* gv|bool not_implicit p |bool |do_eof |NN GV* gv #ifdef PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION @@ -395,7 +395,7 @@ ApR |bool |is_utf8_punct |NN const U8 *p ApR |bool |is_utf8_xdigit |NN const U8 *p ApR |bool |is_utf8_mark |NN const U8 *p p |OP* |jmaybe |NN OP* arg -pP |I32 |keyword |NN const char* d|I32 len +pP |I32 |keyword |NN const char* d|I32 len|bool all_keywords Ap |void |leave_scope |I32 base p |void |lex_end p |void |lex_start |NN SV* line @@ -668,6 +668,10 @@ Ap |I32 |pregexec |NN regexp* prog|NN char* stringarg \ |NN char* strend|NN char* strbeg|I32 minend \ |NN SV* screamer|U32 nosave Ap |void |pregfree |NULLOK struct regexp* r +p |char * |reg_stringify |NN MAGIC *mg|NULLOK STRLEN *lp|NULLOK U32 *flags|NULLOK I32 *haseval +#if defined(USE_ITHREADS) +Ap |regexp*|regdupe |NN const regexp* r|NN CLONE_PARAMS* param +#endif Ap |regexp*|pregcomp |NN char* exp|NN char* xend|NN PMOP* pm Ap |char* |re_intuit_start|NN regexp* prog|NULLOK SV* sv|NN char* strpos \ |NN char* strend|U32 flags \ @@ -677,6 +681,7 @@ Ap |I32 |regexec_flags |NN regexp* prog|NN char* stringarg \ |NN char* strend|NN char* strbeg|I32 minend \ |NN SV* screamer|NULLOK void* data|U32 flags ApR |regnode*|regnext |NN regnode* p +Ep |SV*|reg_named_buff_sv |NN SV* namesv Ep |void |regprop |NULLOK const regexp *prog|NN SV* sv|NN const regnode* o Ap |void |repeatcpy |NN char* to|NN const char* from|I32 len|I32 count ApP |char* |rninstr |NN const char* big|NN const char* bigend \ @@ -839,7 +844,7 @@ Apd |char* |sv_pvbyten_force|NN SV* sv|NULLOK STRLEN* lp Apd |char* |sv_recode_to_utf8 |NN SV* sv|NN SV *encoding Apd |bool |sv_cat_decode |NN SV* dsv|NN SV *encoding|NN SV *ssv|NN int *offset \ |NN char* tstr|int tlen -ApdR |char* |sv_reftype |NN const SV* sv|int ob +ApdR |const char* |sv_reftype |NN const SV* sv|int ob Apd |void |sv_replace |NN SV* sv|NN SV* nsv Apd |void |sv_report_used Apd |void |sv_reset |NN const char* s|NULLOK HV* stash @@ -1156,7 +1161,6 @@ pR |OP* |ck_return |NN OP *o pR |OP* |ck_rfun |NN OP *o pR |OP* |ck_rvconst |NN OP *o pR |OP* |ck_sassign |NN OP *o -pR |OP* |ck_say |NN OP *o pR |OP* |ck_select |NN OP *o pR |OP* |ck_shift |NN OP *o pR |OP* |ck_sort |NN OP *o @@ -1307,13 +1311,16 @@ Es |STRLEN |reguni |NN const struct RExC_state_t *state|UV uv|NN char *s Es |regnode*|regclass |NN struct RExC_state_t *state|U32 depth ERsn |I32 |regcurly |NN const char * Es |regnode*|reg_node |NN struct RExC_state_t *state|U8 op +Es |UV |reg_recode |const char value|NULLOK SV **encp Es |regnode*|regpiece |NN struct RExC_state_t *state|NN I32 *flagp|U32 depth -Es |void |reginsert |NN struct RExC_state_t *state|U8 op|NN regnode *opnd +Es |regnode*|reg_namedseq |NN struct RExC_state_t *state|NULLOK UV *valuep +Es |void |reginsert |NN struct RExC_state_t *state|U8 op|NN regnode *opnd|U32 depth Es |void |regtail |NN struct RExC_state_t *state|NN regnode *p|NN const regnode *val|U32 depth +Es |SV * |reg_scan_name |NN struct RExC_state_t *state|U32 flags Es |U32 |join_exact |NN struct RExC_state_t *state|NN regnode *scan|NN I32 *min|U32 flags|NULLOK regnode *val|U32 depth EsRn |char* |regwhite |NN char *p|NN const char *e Es |char* |nextchar |NN struct RExC_state_t *state -Es |void |scan_commit |NN const struct RExC_state_t* state|NN struct scan_data_t *data +Es |void |scan_commit |NN const struct RExC_state_t* state|NN struct scan_data_t *data|NN I32 *minlenp Esn |void |cl_anything |NN const struct RExC_state_t* state|NN struct regnode_charclass_class *cl EsRn |int |cl_is_anything |NN const struct regnode_charclass_class *cl Esn |void |cl_init |NN const struct RExC_state_t* state|NN struct regnode_charclass_class *cl @@ -1323,44 +1330,60 @@ Esn |void |cl_and |NN struct regnode_charclass_class *cl \ Esn |void |cl_or |NN const struct RExC_state_t* state|NN struct regnode_charclass_class *cl \ |NN const struct regnode_charclass_class *or_with Es |I32 |study_chunk |NN struct RExC_state_t* state|NN regnode **scanp \ - |NN I32 *deltap|NN regnode *last|NULLOK struct scan_data_t *data \ + |NN I32 *minlenp|NN I32 *deltap \ + |NN regnode *last|NULLOK struct scan_data_t *data \ + |I32 stopparen|NULLOK U8* recursed \ + |NULLOK struct regnode_charclass_class *and_withp \ |U32 flags|U32 depth -EsRn |I32 |add_data |NN struct RExC_state_t* state|I32 n|NN const char *s +EsRn |U32 |add_data |NN struct RExC_state_t* state|U32 n|NN const char *s rs |void |re_croak2 |NN const char* pat1|NN const char* pat2|... Es |I32 |regpposixcc |NN struct RExC_state_t* state|I32 value Es |void |checkposixcc |NN struct RExC_state_t* state Es |I32 |make_trie |NN struct RExC_state_t* state|NN regnode *startbranch \ |NN regnode *first|NN regnode *last|NN regnode *tail \ - |U32 flags|U32 depth + |U32 word_count|U32 flags|U32 depth Es |void |make_trie_failtable |NN struct RExC_state_t* state \ |NN regnode *source|NN regnode *node|U32 depth # ifdef DEBUGGING Es |const regnode*|dumpuntil|NN const regexp *r|NN const regnode *start \ |NN const regnode *node \ - |NULLOK const regnode *last|NN SV* sv|I32 l + |NULLOK const regnode *last \ + |NULLOK const regnode *plast \ + |NN SV* sv|I32 indent|U32 depth Es |void |put_byte |NN SV* sv|int c -Es |void |dump_trie |NN const struct _reg_trie_data *trie|U32 depth -Es |void |dump_trie_interim_list|NN const struct _reg_trie_data *trie|U32 next_alloc|U32 depth -Es |void |dump_trie_interim_table|NN const struct _reg_trie_data *trie|U32 next_alloc|U32 depth +Es |void |dump_trie |NN const struct _reg_trie_data *trie\ + |NULLOK HV* widecharmap|NN AV *revcharmap\ + |U32 depth +Es |void |dump_trie_interim_list|NN const struct _reg_trie_data *trie\ + |NULLOK HV* widecharmap|NN AV *revcharmap\ + |U32 next_alloc|U32 depth +Es |void |dump_trie_interim_table|NN const struct _reg_trie_data *trie\ + |NULLOK HV* widecharmap|NN AV *revcharmap\ + |U32 next_alloc|U32 depth Es |U8 |regtail_study |NN struct RExC_state_t *state|NN regnode *p|NN const regnode *val|U32 depth # endif #endif #if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT) -ERs |I32 |regmatch |NN const regmatch_info *reginfo|NN regnode *prog -ERs |I32 |regrepeat |NN const regexp *prog|NN const regnode *p|I32 max -ERs |I32 |regtry |NN const regmatch_info *reginfo|NN char *startpos +ERs |I32 |regmatch |NN regmatch_info *reginfo|NN regnode *prog +ERs |I32 |regrepeat |NN const regexp *prog|NN const regnode *p|I32 max|int depth +ERs |I32 |regtry |NN regmatch_info *reginfo|NN char **startpos ERs |bool |reginclass |NULLOK const regexp *prog|NN const regnode *n|NN const U8 *p|NULLOK STRLEN *lenp\ |bool do_utf8sv_is_utf8 Es |CHECKPOINT|regcppush |I32 parenfloor Es |char* |regcppop |NN const regexp *rex ERsn |U8* |reghop3 |NN U8 *pos|I32 off|NN const U8 *lim +#ifdef XXX_dmq +ERsn |U8* |reghop4 |NN U8 *pos|I32 off|NN const U8 *llim|NN const U8 *rlim +#endif ERsn |U8* |reghopmaybe3 |NN U8 *pos|I32 off|NN const U8 *lim -ERs |char* |find_byclass |NN regexp * prog|NN const regnode *c|NN char *s|NN const char *strend|NULLOK const regmatch_info *reginfo +ERs |char* |find_byclass |NN regexp * prog|NN const regnode *c|NN char *s|NN const char *strend|NULLOK regmatch_info *reginfo Es |void |to_utf8_substr |NN regexp * prog Es |void |to_byte_substr |NN regexp * prog +ERs |I32 |reg_check_named_buff_matched |NN const regexp *rex|NN const regnode *prog # ifdef DEBUGGING -Es |void |dump_exec_pos |NN const char *locinput|NN const regnode *scan|const bool do_utf8 +Es |void |dump_exec_pos |NN const char *locinput|NN const regnode *scan|NN const char *loc_regeol\ + |NN const char *loc_bostr|NN const char *loc_reg_starttry|const bool do_utf8 Es |void |debug_start_match|NN const regexp *prog|const bool do_utf8|NN const char *start|NN const char *end|NN const char *blurb # endif #endif @@ -1411,10 +1434,8 @@ s |STRLEN |sv_pos_u2b_cached|NN SV *sv|NN MAGIC **mgp \ |STRLEN uoffset|STRLEN uoffset0|STRLEN boffset0 s |void |utf8_mg_pos_cache_update|NN SV *sv|NN MAGIC **mgp \ |STRLEN byte|STRLEN utf8|STRLEN blen -s |STRLEN |sv_pos_b2u_forwards|NN const U8 *s|NN const U8 *const target s |STRLEN |sv_pos_b2u_midway|NN const U8 *s|NN const U8 *const target \ |NN const U8 *end|STRLEN endu -s |char * |stringify_regexp|NN SV *sv|NN MAGIC *mg|NULLOK STRLEN *lp sn |char * |F0convert |NV nv|NN char *endbuf|NN STRLEN *len # if defined(PERL_OLD_COPY_ON_WRITE) sM |void |sv_release_COW |NN SV *sv|NN const char *pvx|STRLEN len|NN SV *after @@ -1427,9 +1448,6 @@ s |void |glob_assign_ref|NN SV *dstr|NN SV *sstr # if defined(USE_ITHREADS) sRn |PTR_TBL_ENT_t *|ptr_table_find|NN PTR_TBL_t *tbl|NN const void *sv # endif -s |SV * |find_hash_subscript|NULLOK HV *hv|NN SV *val -s |I32 |find_array_subscript|NULLOK AV *av|NN SV *val -s |SV * |find_uninit_var|NULLOK OP *obase|NULLOK SV *uninit_sv|bool match #endif #if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT) @@ -1440,6 +1458,7 @@ s |char* |force_word |NN char *start|int token|int check_keyword \ |int allow_pack|int allow_tick s |SV* |tokeq |NN SV *sv s |int |pending_ident +s |void |readpipe_override| sR |char* |scan_const |NN char *start sR |char* |scan_formline |NN char *s sR |char* |scan_heredoc |NN char *s @@ -1613,7 +1632,10 @@ ApoR |I32 |hv_placeholders_get |NN HV* hv Apo |void |hv_placeholders_set |NN HV* hv|I32 ph p |SV* |magic_scalarpack|NN HV* hv|NN MAGIC* mg -#ifdef PERL_IN_SV_C + +#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT) +s |SV * |find_hash_subscript|NULLOK HV *hv|NN SV *val +s |I32 |find_array_subscript|NULLOK AV *av|NN SV *val sMd |SV* |find_uninit_var|NULLOK OP* obase|NULLOK SV* uninit_sv|bool top #endif diff --git a/ext/Devel/PPPort/parts/inc/misc b/ext/Devel/PPPort/parts/inc/misc index ab4b7b9..71929b9 100644 --- a/ext/Devel/PPPort/parts/inc/misc +++ b/ext/Devel/PPPort/parts/inc/misc @@ -1,8 +1,8 @@ ################################################################################ ## -## $Revision: 36 $ +## $Revision: 37 $ ## $Author: mhx $ -## $Date: 2006/05/22 00:51:01 +0200 $ +## $Date: 2006/12/02 13:49:03 +0100 $ ## ################################################################################ ## @@ -38,46 +38,9 @@ EXTERN_C STMT_START STMT_END XSRETURN -/PL_\w+/ =implementation -#if { VERSION <= 5.004_05 } -/* Replace: 1 */ -# define PL_DBsingle DBsingle -# define PL_DBsub DBsub -# define PL_Sv Sv -# define PL_compiling compiling -# define PL_copline copline -# define PL_curcop curcop -# define PL_curstash curstash -# define PL_debstash debstash -# define PL_defgv defgv -# define PL_diehook diehook -# define PL_dirty dirty -# define PL_dowarn dowarn -# define PL_errgv errgv -# define PL_hexdigit hexdigit -# define PL_hints hints -# define PL_na na -# define PL_no_modify no_modify -# define PL_perl_destruct_level perl_destruct_level -# define PL_perldb perldb -# define PL_ppaddr ppaddr -# define PL_rsfp_filters rsfp_filters -# define PL_rsfp rsfp -# define PL_stack_base stack_base -# define PL_stack_sp stack_sp -# define PL_stdingv stdingv -# define PL_sv_arenaroot sv_arenaroot -# define PL_sv_no sv_no -# define PL_sv_undef sv_undef -# define PL_sv_yes sv_yes -# define PL_tainted tainted -# define PL_tainting tainting -/* Replace: 0 */ -#endif - #ifndef PERL_UNUSED_DECL # ifdef HASATTRIBUTE # if (defined(__GNUC__) && defined(__cplusplus)) || defined(__INTEL_COMPILER) @@ -351,36 +314,6 @@ xsreturn(two) else XSRETURN(1); -SV * -PL_sv_undef() - CODE: - RETVAL = newSVsv(&PL_sv_undef); - OUTPUT: - RETVAL - -SV * -PL_sv_yes() - CODE: - RETVAL = newSVsv(&PL_sv_yes); - OUTPUT: - RETVAL - -SV * -PL_sv_no() - CODE: - RETVAL = newSVsv(&PL_sv_no); - OUTPUT: - RETVAL - -int -PL_na(string) - char *string - CODE: - PL_na = strlen(string); - RETVAL = PL_na; - OUTPUT: - RETVAL - SV* boolSV(value) int value @@ -437,7 +370,7 @@ SVf(x) XPUSHs(x); XSRETURN(1); -=tests plan => 42 +=tests plan => 38 use vars qw($my_sv @my_av %my_hv); @@ -449,11 +382,6 @@ ok($s[2], ""); ok(!defined($s[3])); ok(!defined($s[4])); -ok(!defined(&Devel::PPPort::PL_sv_undef())); -ok(&Devel::PPPort::PL_sv_yes()); -ok(!&Devel::PPPort::PL_sv_no()); -ok(&Devel::PPPort::PL_na("abcd"), 4); - ok(&Devel::PPPort::boolSV(1)); ok(!&Devel::PPPort::boolSV(0)); diff --git a/ext/Devel/PPPort/parts/inc/threads b/ext/Devel/PPPort/parts/inc/threads index 9302db6..6a05d07 100644 --- a/ext/Devel/PPPort/parts/inc/threads +++ b/ext/Devel/PPPort/parts/inc/threads @@ -1,8 +1,8 @@ ################################################################################ ## -## $Revision: 5 $ +## $Revision: 7 $ ## $Author: mhx $ -## $Date: 2006/01/14 18:08:00 +0100 $ +## $Date: 2006/12/02 14:19:29 +0100 $ ## ################################################################################ ## @@ -18,6 +18,9 @@ =provides __UNDEFINED__ +aTHXR +aTHXR_ +dTHXR =implementation @@ -31,6 +34,21 @@ __UNDEFINED__ pTHX_ __UNDEFINED__ aTHX __UNDEFINED__ aTHX_ +#if { VERSION < 5.6.0 } +# ifdef USE_THREADS +# define aTHXR thr +# define aTHXR_ thr, +# else +# define aTHXR +# define aTHXR_ +# endif +# define dTHXR dTHR +#else +# define aTHXR aTHX +# define aTHXR_ aTHX_ +# define dTHXR dTHX +#endif + __UNDEFINED__ dTHXoa(x) dTHXa(x) =xsubs diff --git a/ext/Devel/PPPort/parts/inc/variables b/ext/Devel/PPPort/parts/inc/variables index f5dc3b4..6e52fd6 100644 --- a/ext/Devel/PPPort/parts/inc/variables +++ b/ext/Devel/PPPort/parts/inc/variables @@ -1,8 +1,8 @@ ################################################################################ ## -## $Revision: 4 $ +## $Revision: 6 $ ## $Author: mhx $ -## $Date: 2006/01/14 18:07:58 +0100 $ +## $Date: 2006/12/02 14:01:23 +0100 $ ## ################################################################################ ## @@ -17,17 +17,79 @@ =provides -PL_signals +/PL_\w+/ PERL_SIGNALS_UNSAFE_FLAG +=dontwarn + +D_PPP_PERL_SIGNALS_INIT + =implementation #ifndef PERL_SIGNALS_UNSAFE_FLAG #define PERL_SIGNALS_UNSAFE_FLAG 0x0001 -__NEED_VAR__ U32 PL_signals = PERL_SIGNALS_UNSAFE_FLAG; +#if { VERSION < 5.8.0 } +# define D_PPP_PERL_SIGNALS_INIT PERL_SIGNALS_UNSAFE_FLAG +#else +# define D_PPP_PERL_SIGNALS_INIT 0 +#endif + +__NEED_VAR__ U32 PL_signals = D_PPP_PERL_SIGNALS_INIT; + +#endif +/* Hint: PL_ppaddr + * Calling an op via PL_ppaddr requires passing a context argument + * for threaded builds. Since the context argument is different for + * 5.005 perls, you can use aTHXR (supplied by ppport.h), which will + * automatically be defined as the correct argument. + */ + +#if { VERSION <= 5.005_04 } +/* Replace: 1 */ +# define PL_ppaddr ppaddr +# define PL_no_modify no_modify +/* Replace: 0 */ +#endif + +#if { VERSION <= 5.004_05 } +/* Replace: 1 */ +# define PL_DBsignal DBsignal +# define PL_DBsingle DBsingle +# define PL_DBsub DBsub +# define PL_DBtrace DBtrace +# define PL_Sv Sv +# define PL_compiling compiling +# define PL_copline copline +# define PL_curcop curcop +# define PL_curstash curstash +# define PL_debstash debstash +# define PL_defgv defgv +# define PL_diehook diehook +# define PL_dirty dirty +# define PL_dowarn dowarn +# define PL_errgv errgv +# define PL_hexdigit hexdigit +# define PL_hints hints +# define PL_laststatval laststatval +# define PL_na na +# define PL_perl_destruct_level perl_destruct_level +# define PL_perldb perldb +# define PL_rsfp_filters rsfp_filters +# define PL_rsfp rsfp +# define PL_stack_base stack_base +# define PL_stack_sp stack_sp +# define PL_statcache statcache +# define PL_stdingv stdingv +# define PL_sv_arenaroot sv_arenaroot +# define PL_sv_no sv_no +# define PL_sv_undef sv_undef +# define PL_sv_yes sv_yes +# define PL_tainted tainted +# define PL_tainting tainting +/* Replace: 0 */ #endif =xsinit @@ -44,6 +106,8 @@ U32 get_PL_signals_1(void) extern U32 get_PL_signals_2(void); extern U32 get_PL_signals_3(void); +#define ppp_TESTVAR(var) STMT_START { XPUSHs(newSViv(&var != NULL)); count++; } STMT_END + =xsubs int @@ -56,7 +120,125 @@ compare_PL_signals() OUTPUT: RETVAL -=tests plan => 1 +SV * +PL_sv_undef() + CODE: + RETVAL = newSVsv(&PL_sv_undef); + OUTPUT: + RETVAL + +SV * +PL_sv_yes() + CODE: + RETVAL = newSVsv(&PL_sv_yes); + OUTPUT: + RETVAL + +SV * +PL_sv_no() + CODE: + RETVAL = newSVsv(&PL_sv_no); + OUTPUT: + RETVAL + +int +PL_na(string) + char *string + CODE: + PL_na = strlen(string); + RETVAL = PL_na; + OUTPUT: + RETVAL + +SV * +PL_Sv() + CODE: + PL_Sv = newSVpv("mhx", 0); + RETVAL = PL_Sv; + OUTPUT: + RETVAL + +SV * +PL_copline() + CODE: + RETVAL = newSViv((IV) PL_copline); + OUTPUT: + RETVAL + +SV * +PL_hexdigit() + CODE: + RETVAL = newSVpv(PL_hexdigit, 0); + OUTPUT: + RETVAL + +SV * +PL_hints() + CODE: + RETVAL = newSViv((IV) PL_hints); + OUTPUT: + RETVAL + +void +PL_ppaddr(string) + char *string + PPCODE: + PUSHMARK(SP); + XPUSHs(sv_2mortal(newSVpv(string, 0))); + PUTBACK; + ENTER; + (void)*(PL_ppaddr[OP_UC])(aTHXR); + SPAGAIN; + LEAVE; + XSRETURN(1); + +void +other_variables() + PREINIT: + int count = 0; + PPCODE: + ppp_TESTVAR(PL_DBsignal); + ppp_TESTVAR(PL_DBsingle); + ppp_TESTVAR(PL_DBsub); + ppp_TESTVAR(PL_DBtrace); + ppp_TESTVAR(PL_compiling); + ppp_TESTVAR(PL_curcop); + ppp_TESTVAR(PL_curstash); + ppp_TESTVAR(PL_debstash); + ppp_TESTVAR(PL_defgv); + ppp_TESTVAR(PL_diehook); + ppp_TESTVAR(PL_dirty); + ppp_TESTVAR(PL_dowarn); + ppp_TESTVAR(PL_errgv); + ppp_TESTVAR(PL_laststatval); + ppp_TESTVAR(PL_no_modify); + ppp_TESTVAR(PL_perl_destruct_level); + ppp_TESTVAR(PL_perldb); + ppp_TESTVAR(PL_rsfp_filters); + ppp_TESTVAR(PL_rsfp); + ppp_TESTVAR(PL_stack_base); + ppp_TESTVAR(PL_stack_sp); + ppp_TESTVAR(PL_statcache); + ppp_TESTVAR(PL_stdingv); + ppp_TESTVAR(PL_sv_arenaroot); + ppp_TESTVAR(PL_tainted); + ppp_TESTVAR(PL_tainting); + XSRETURN(count); + +=tests plan => 36 ok(Devel::PPPort::compare_PL_signals()); +ok(!defined(&Devel::PPPort::PL_sv_undef())); +ok(&Devel::PPPort::PL_sv_yes()); +ok(!&Devel::PPPort::PL_sv_no()); +ok(&Devel::PPPort::PL_na("abcd"), 4); +ok(&Devel::PPPort::PL_Sv(), "mhx"); +ok(defined &Devel::PPPort::PL_copline()); +ok(&Devel::PPPort::PL_hexdigit() =~ /^[0-9a-zA-Z]+$/); +ok(defined &Devel::PPPort::PL_hints()); +ok(&Devel::PPPort::PL_ppaddr("mhx"), "MHX"); + +for (&Devel::PPPort::other_variables()) { + ok($_ != 0); +} diff --git a/ext/Devel/PPPort/parts/todo/5009001 b/ext/Devel/PPPort/parts/todo/5009001 index 4503f80..26d2c4c 100644 --- a/ext/Devel/PPPort/parts/todo/5009001 +++ b/ext/Devel/PPPort/parts/todo/5009001 @@ -1,5 +1,4 @@ 5.009001 -hv_assert # U hv_clear_placeholders # U hv_scalar # U scan_version # E (Perl_scan_version) diff --git a/ext/Devel/PPPort/parts/todo/5009004 b/ext/Devel/PPPort/parts/todo/5009004 index 56d9803..a9d57b7 100644 --- a/ext/Devel/PPPort/parts/todo/5009004 +++ b/ext/Devel/PPPort/parts/todo/5009004 @@ -1,15 +1,10 @@ 5.009004 -MULTICALL # E -POP_MULTICALL # E -PUSH_MULTICALL # E PerlIO_context_layers # U gv_name_set # U my_vsnprintf # U newXS_flags # U -pad_sv # U pv_escape # U pv_pretty # U regclass_swash # E (Perl_regclass_swash) -stashpv_hvname_match # U sv_does # U sv_usepvn_flags # U diff --git a/ext/Devel/PPPort/soak b/ext/Devel/PPPort/soak index 613e17c..0ba1985 100644 --- a/ext/Devel/PPPort/soak +++ b/ext/Devel/PPPort/soak @@ -7,9 +7,9 @@ # ################################################################################ # -# $Revision: 13 $ +# $Revision: 14 $ # $Author: mhx $ -# $Date: 2006/07/08 16:58:56 +0200 $ +# $Date: 2006/12/02 13:31:24 +0100 $ # ################################################################################ # @@ -33,7 +33,7 @@ use File::Find; use List::Util qw(max); use Config; -my $VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.10 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' }; +my $VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.10_01 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' }; $| = 1; my %OPT = ( @@ -77,8 +77,12 @@ $SIG{__DIE__} = sub { $rep->die(@_) }; runit("$^X Makefile.PL") && runit("$OPT{make} realclean") or $rep->die("Cannot run $^X Makefile.PL && $OPT{make} realclean\n"); +my $tot = @GoodPerls*@{$OPT{mmargs}}; + +$rep->set(tests => $tot); + $rep->status(sprintf("Testing %d version%s / %d configuration%s (%d combination%s)...\n", - cs(@GoodPerls), cs(@{$OPT{mmargs}}), cs(@GoodPerls*@{$OPT{mmargs}}))); + cs(@GoodPerls), cs(@{$OPT{mmargs}}), cs($tot))); for my $perl (@GoodPerls) { for my $mm (@{$OPT{mmargs}}) { @@ -240,9 +244,11 @@ sub new { my $class = shift; bless { + tests => undef, color => 1, verbose => 0, @_, + _cur => 0, _atbol => 1, _total => 0, _good => [], @@ -277,10 +283,19 @@ sub _config return $self->{config} =~ /\S+/ ? " ($self->{config})" : ''; } +sub _progress +{ + my $self = shift; + return '' unless defined $self->{tests}; + my $tlen = length $self->{tests}; + my $text = sprintf "[%${tlen}d/%${tlen}d] ", $self->{_cur}, $self->{tests}; + return $self->colored($text, 'bold'); +} + sub _test { my $self = shift; - return "Testing " + return $self->_progress . "Testing " . $self->colored($self->{perl}, 'blue') . $self->colored($self->_config, 'green'); } @@ -327,6 +342,7 @@ sub set sub test { my $self = shift; + $self->{_cur}++; $self->_vsep($self->_testlen); $self->print($self->_test, $self->{verbose} ? "\n" : ' ' . $self->_dots . ' '); $self->_vsep($self->_testlen); diff --git a/ext/Devel/PPPort/t/MY_CXT.t b/ext/Devel/PPPort/t/MY_CXT.t index 9c94938..ca2b4a7 100644 --- a/ext/Devel/PPPort/t/MY_CXT.t +++ b/ext/Devel/PPPort/t/MY_CXT.t @@ -4,6 +4,10 @@ # # Edit mktests.PL and/or parts/inc/MY_CXT instead. # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by mktests.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ BEGIN { diff --git a/ext/Devel/PPPort/t/SvPV.t b/ext/Devel/PPPort/t/SvPV.t index 97901d5..55eaa99 100644 --- a/ext/Devel/PPPort/t/SvPV.t +++ b/ext/Devel/PPPort/t/SvPV.t @@ -4,6 +4,10 @@ # # Edit mktests.PL and/or parts/inc/SvPV instead. # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by mktests.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ BEGIN { diff --git a/ext/Devel/PPPort/t/SvREFCNT.t b/ext/Devel/PPPort/t/SvREFCNT.t index 5c1db31..cdaa750 100644 --- a/ext/Devel/PPPort/t/SvREFCNT.t +++ b/ext/Devel/PPPort/t/SvREFCNT.t @@ -4,6 +4,10 @@ # # Edit mktests.PL and/or parts/inc/SvREFCNT instead. # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by mktests.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ BEGIN { diff --git a/ext/Devel/PPPort/t/Sv_set.t b/ext/Devel/PPPort/t/Sv_set.t index a23c7c8..6753e53 100644 --- a/ext/Devel/PPPort/t/Sv_set.t +++ b/ext/Devel/PPPort/t/Sv_set.t @@ -4,6 +4,10 @@ # # Edit mktests.PL and/or parts/inc/Sv_set instead. # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by mktests.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ BEGIN { diff --git a/ext/Devel/PPPort/t/call.t b/ext/Devel/PPPort/t/call.t index 9a81619..aee8819 100644 --- a/ext/Devel/PPPort/t/call.t +++ b/ext/Devel/PPPort/t/call.t @@ -4,6 +4,10 @@ # # Edit mktests.PL and/or parts/inc/call instead. # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by mktests.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ BEGIN { diff --git a/ext/Devel/PPPort/t/cop.t b/ext/Devel/PPPort/t/cop.t index 0bcc129..1efc43a 100644 --- a/ext/Devel/PPPort/t/cop.t +++ b/ext/Devel/PPPort/t/cop.t @@ -4,6 +4,10 @@ # # Edit mktests.PL and/or parts/inc/cop instead. # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by mktests.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ BEGIN { diff --git a/ext/Devel/PPPort/t/exception.t b/ext/Devel/PPPort/t/exception.t index e64e00a..3acd5fa 100644 --- a/ext/Devel/PPPort/t/exception.t +++ b/ext/Devel/PPPort/t/exception.t @@ -4,6 +4,10 @@ # # Edit mktests.PL and/or parts/inc/exception instead. # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by mktests.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ BEGIN { diff --git a/ext/Devel/PPPort/t/grok.t b/ext/Devel/PPPort/t/grok.t index cc2f3d6..6f30c3b 100644 --- a/ext/Devel/PPPort/t/grok.t +++ b/ext/Devel/PPPort/t/grok.t @@ -4,6 +4,10 @@ # # Edit mktests.PL and/or parts/inc/grok instead. # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by mktests.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ BEGIN { diff --git a/ext/Devel/PPPort/t/limits.t b/ext/Devel/PPPort/t/limits.t index 0dcb574..06bb4eb 100644 --- a/ext/Devel/PPPort/t/limits.t +++ b/ext/Devel/PPPort/t/limits.t @@ -4,6 +4,10 @@ # # Edit mktests.PL and/or parts/inc/limits instead. # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by mktests.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ BEGIN { diff --git a/ext/Devel/PPPort/t/mPUSH.t b/ext/Devel/PPPort/t/mPUSH.t index 577eda6..1ac30e8 100644 --- a/ext/Devel/PPPort/t/mPUSH.t +++ b/ext/Devel/PPPort/t/mPUSH.t @@ -4,6 +4,10 @@ # # Edit mktests.PL and/or parts/inc/mPUSH instead. # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by mktests.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ BEGIN { diff --git a/ext/Devel/PPPort/t/magic.t b/ext/Devel/PPPort/t/magic.t index 328e773..37ccfcc 100644 --- a/ext/Devel/PPPort/t/magic.t +++ b/ext/Devel/PPPort/t/magic.t @@ -4,6 +4,10 @@ # # Edit mktests.PL and/or parts/inc/magic instead. # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by mktests.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ BEGIN { diff --git a/ext/Devel/PPPort/t/memory.t b/ext/Devel/PPPort/t/memory.t index 7dadecb..09fb3ee 100644 --- a/ext/Devel/PPPort/t/memory.t +++ b/ext/Devel/PPPort/t/memory.t @@ -4,6 +4,10 @@ # # Edit mktests.PL and/or parts/inc/memory instead. # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by mktests.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ BEGIN { diff --git a/ext/Devel/PPPort/t/misc.t b/ext/Devel/PPPort/t/misc.t index 2923ee0..a8bb234 100644 --- a/ext/Devel/PPPort/t/misc.t +++ b/ext/Devel/PPPort/t/misc.t @@ -4,6 +4,10 @@ # # Edit mktests.PL and/or parts/inc/misc instead. # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by mktests.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ BEGIN { @@ -26,9 +30,9 @@ BEGIN { require 'testutil.pl' if $@; } - if (42) { + if (38) { load(); - plan(tests => 42); + plan(tests => 38); } } @@ -54,11 +58,6 @@ ok($s[2], ""); ok(!defined($s[3])); ok(!defined($s[4])); -ok(!defined(&Devel::PPPort::PL_sv_undef())); -ok(&Devel::PPPort::PL_sv_yes()); -ok(!&Devel::PPPort::PL_sv_no()); -ok(&Devel::PPPort::PL_na("abcd"), 4); - ok(&Devel::PPPort::boolSV(1)); ok(!&Devel::PPPort::boolSV(0)); diff --git a/ext/Devel/PPPort/t/newCONSTSUB.t b/ext/Devel/PPPort/t/newCONSTSUB.t index d8fd929..58c174a 100644 --- a/ext/Devel/PPPort/t/newCONSTSUB.t +++ b/ext/Devel/PPPort/t/newCONSTSUB.t @@ -4,6 +4,10 @@ # # Edit mktests.PL and/or parts/inc/newCONSTSUB instead. # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by mktests.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ BEGIN { diff --git a/ext/Devel/PPPort/t/newRV.t b/ext/Devel/PPPort/t/newRV.t index 5866df3..2496546 100644 --- a/ext/Devel/PPPort/t/newRV.t +++ b/ext/Devel/PPPort/t/newRV.t @@ -4,6 +4,10 @@ # # Edit mktests.PL and/or parts/inc/newRV instead. # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by mktests.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ BEGIN { diff --git a/ext/Devel/PPPort/t/podtest.t b/ext/Devel/PPPort/t/podtest.t index 2b2216b..09b870c 100644 --- a/ext/Devel/PPPort/t/podtest.t +++ b/ext/Devel/PPPort/t/podtest.t @@ -4,6 +4,10 @@ # # Edit mktests.PL and/or parts/inc/podtest instead. # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by mktests.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ BEGIN { diff --git a/ext/Devel/PPPort/t/ppphtest.t b/ext/Devel/PPPort/t/ppphtest.t index 9a43c5d..c70c684 100644 --- a/ext/Devel/PPPort/t/ppphtest.t +++ b/ext/Devel/PPPort/t/ppphtest.t @@ -4,6 +4,10 @@ # # Edit mktests.PL and/or parts/inc/ppphtest instead. # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by mktests.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ BEGIN { diff --git a/ext/Devel/PPPort/t/pvs.t b/ext/Devel/PPPort/t/pvs.t index c022d9a..3d387bc 100644 --- a/ext/Devel/PPPort/t/pvs.t +++ b/ext/Devel/PPPort/t/pvs.t @@ -4,6 +4,10 @@ # # Edit mktests.PL and/or parts/inc/pvs instead. # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by mktests.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ BEGIN { diff --git a/ext/Devel/PPPort/t/snprintf.t b/ext/Devel/PPPort/t/snprintf.t index f56a64e..f9b4a88 100644 --- a/ext/Devel/PPPort/t/snprintf.t +++ b/ext/Devel/PPPort/t/snprintf.t @@ -4,6 +4,10 @@ # # Edit mktests.PL and/or parts/inc/snprintf instead. # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by mktests.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ BEGIN { diff --git a/ext/Devel/PPPort/t/strlfuncs.t b/ext/Devel/PPPort/t/strlfuncs.t index dc911ce..d058944 100644 --- a/ext/Devel/PPPort/t/strlfuncs.t +++ b/ext/Devel/PPPort/t/strlfuncs.t @@ -4,6 +4,10 @@ # # Edit mktests.PL and/or parts/inc/strlfuncs instead. # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by mktests.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ BEGIN { diff --git a/ext/Devel/PPPort/t/sv_xpvf.t b/ext/Devel/PPPort/t/sv_xpvf.t index 8af1186..1aada0a 100644 --- a/ext/Devel/PPPort/t/sv_xpvf.t +++ b/ext/Devel/PPPort/t/sv_xpvf.t @@ -4,6 +4,10 @@ # # Edit mktests.PL and/or parts/inc/sv_xpvf instead. # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by mktests.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ BEGIN { diff --git a/ext/Devel/PPPort/t/threads.t b/ext/Devel/PPPort/t/threads.t index 86af3bd..ccfb863 100644 --- a/ext/Devel/PPPort/t/threads.t +++ b/ext/Devel/PPPort/t/threads.t @@ -4,6 +4,10 @@ # # Edit mktests.PL and/or parts/inc/threads instead. # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by mktests.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ BEGIN { diff --git a/ext/Devel/PPPort/t/uv.t b/ext/Devel/PPPort/t/uv.t index 72fac59..1ebeff9 100644 --- a/ext/Devel/PPPort/t/uv.t +++ b/ext/Devel/PPPort/t/uv.t @@ -4,6 +4,10 @@ # # Edit mktests.PL and/or parts/inc/uv instead. # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by mktests.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ BEGIN { diff --git a/ext/Devel/PPPort/t/variables.t b/ext/Devel/PPPort/t/variables.t index 8d071e4..0554724 100644 --- a/ext/Devel/PPPort/t/variables.t +++ b/ext/Devel/PPPort/t/variables.t @@ -4,6 +4,10 @@ # # Edit mktests.PL and/or parts/inc/variables instead. # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by mktests.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ BEGIN { @@ -26,9 +30,9 @@ BEGIN { require 'testutil.pl' if $@; } - if (1) { + if (36) { load(); - plan(tests => 1); + plan(tests => 36); } } @@ -46,3 +50,17 @@ package main; ok(Devel::PPPort::compare_PL_signals()); +ok(!defined(&Devel::PPPort::PL_sv_undef())); +ok(&Devel::PPPort::PL_sv_yes()); +ok(!&Devel::PPPort::PL_sv_no()); +ok(&Devel::PPPort::PL_na("abcd"), 4); +ok(&Devel::PPPort::PL_Sv(), "mhx"); +ok(defined &Devel::PPPort::PL_copline()); +ok(&Devel::PPPort::PL_hexdigit() =~ /^[0-9a-zA-Z]+$/); +ok(defined &Devel::PPPort::PL_hints()); +ok(&Devel::PPPort::PL_ppaddr("mhx"), "MHX"); + +for (&Devel::PPPort::other_variables()) { + ok($_ != 0); +} + diff --git a/ext/Devel/PPPort/t/warn.t b/ext/Devel/PPPort/t/warn.t index cd0d1b5..fcd8ab3 100644 --- a/ext/Devel/PPPort/t/warn.t +++ b/ext/Devel/PPPort/t/warn.t @@ -4,6 +4,10 @@ # # Edit mktests.PL and/or parts/inc/warn instead. # +# This file was automatically generated from the definition files in the +# parts/inc/ subdirectory by mktests.PL. To learn more about how all this +# works, please read the F file that came with this distribution. +# ################################################################################ BEGIN { -- 2.7.4