Upgrade to Devel::PPPort 3.10_01
Marcus Holland-Moritz [Sat, 2 Dec 2006 17:13:26 +0000 (17:13 +0000)]
p4raw-id: //depot/perl@29436

42 files changed:
ext/Devel/PPPort/Changes
ext/Devel/PPPort/PPPort_pm.PL
ext/Devel/PPPort/PPPort_xs.PL
ext/Devel/PPPort/TODO
ext/Devel/PPPort/devel/buildperl.pl
ext/Devel/PPPort/mktests.PL
ext/Devel/PPPort/parts/base/5005000
ext/Devel/PPPort/parts/base/5007002
ext/Devel/PPPort/parts/base/5009001
ext/Devel/PPPort/parts/base/5009004
ext/Devel/PPPort/parts/embed.fnc
ext/Devel/PPPort/parts/inc/misc
ext/Devel/PPPort/parts/inc/threads
ext/Devel/PPPort/parts/inc/variables
ext/Devel/PPPort/parts/todo/5009001
ext/Devel/PPPort/parts/todo/5009004
ext/Devel/PPPort/soak
ext/Devel/PPPort/t/MY_CXT.t
ext/Devel/PPPort/t/SvPV.t
ext/Devel/PPPort/t/SvREFCNT.t
ext/Devel/PPPort/t/Sv_set.t
ext/Devel/PPPort/t/call.t
ext/Devel/PPPort/t/cop.t
ext/Devel/PPPort/t/exception.t
ext/Devel/PPPort/t/grok.t
ext/Devel/PPPort/t/limits.t
ext/Devel/PPPort/t/mPUSH.t
ext/Devel/PPPort/t/magic.t
ext/Devel/PPPort/t/memory.t
ext/Devel/PPPort/t/misc.t
ext/Devel/PPPort/t/newCONSTSUB.t
ext/Devel/PPPort/t/newRV.t
ext/Devel/PPPort/t/podtest.t
ext/Devel/PPPort/t/ppphtest.t
ext/Devel/PPPort/t/pvs.t
ext/Devel/PPPort/t/snprintf.t
ext/Devel/PPPort/t/strlfuncs.t
ext/Devel/PPPort/t/sv_xpvf.t
ext/Devel/PPPort/t/threads.t
ext/Devel/PPPort/t/uv.t
ext/Devel/PPPort/t/variables.t
ext/Devel/PPPort/t/warn.t

index 330eb0c..6e0964e 100755 (executable)
@@ -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
index b291b4c..9e1eb7a 100644 (file)
@@ -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<HACKERS> 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
 {
index 6edb75e..1776310 100644 (file)
@@ -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 => <<ENDHEADER },
+##----------------------------------------------------------------------
+##  XSUBs for testing the implementation in __FILE__
+##----------------------------------------------------------------------
+ENDHEADER
 );
 
 if (exists $ENV{PERL_NO_GET_CONTEXT} && $ENV{PERL_NO_GET_CONTEXT}) {
@@ -79,15 +83,19 @@ __DATA__
 *
 *  !!!!! Do NOT edit this file directly! -- Edit PPPort_xs.PL instead. !!!!!
 *
+*  This file was automatically generated from the definition files in the
+*  parts/inc/ subdirectory by PPPort_xs.PL. To learn more about how all this
+*  works, please read the F<HACKERS> 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 $
 *
 ********************************************************************************
 *
index f46be30..28fddcf 100644 (file)
@@ -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?
index 792974a..64a9541 100644 (file)
@@ -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;
 }
index 4d97607..66887aa 100644 (file)
@@ -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<HACKERS> file that came with this distribution.
+#
 ################################################################################
 
 BEGIN {
index c5781e8..8d1ad77 100644 (file)
@@ -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
index 63b9ee7..b56a262 100644 (file)
@@ -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
index 14967d0..0666184 100644 (file)
@@ -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)
index b978b8c..0fc7814 100644 (file)
@@ -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
index d69d87e..284bf44 100644 (file)
@@ -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
 
index ab4b7b9..71929b9 100644 (file)
@@ -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));
 
index 9302db6..6a05d07 100644 (file)
@@ -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
index f5dc3b4..6e52fd6 100644 (file)
@@ -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 $
 ##
 ################################################################################
 ##
 
 =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);
+}
index 4503f80..26d2c4c 100644 (file)
@@ -1,5 +1,4 @@
 5.009001
-hv_assert                      # U
 hv_clear_placeholders          # U
 hv_scalar                      # U
 scan_version                   # E (Perl_scan_version)
index 56d9803..a9d57b7 100644 (file)
@@ -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
index 613e17c..0ba1985 100644 (file)
@@ -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);
index 9c94938..ca2b4a7 100644 (file)
@@ -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<HACKERS> file that came with this distribution.
+#
 ################################################################################
 
 BEGIN {
index 97901d5..55eaa99 100644 (file)
@@ -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<HACKERS> file that came with this distribution.
+#
 ################################################################################
 
 BEGIN {
index 5c1db31..cdaa750 100644 (file)
@@ -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<HACKERS> file that came with this distribution.
+#
 ################################################################################
 
 BEGIN {
index a23c7c8..6753e53 100644 (file)
@@ -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<HACKERS> file that came with this distribution.
+#
 ################################################################################
 
 BEGIN {
index 9a81619..aee8819 100644 (file)
@@ -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<HACKERS> file that came with this distribution.
+#
 ################################################################################
 
 BEGIN {
index 0bcc129..1efc43a 100644 (file)
@@ -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<HACKERS> file that came with this distribution.
+#
 ################################################################################
 
 BEGIN {
index e64e00a..3acd5fa 100644 (file)
@@ -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<HACKERS> file that came with this distribution.
+#
 ################################################################################
 
 BEGIN {
index cc2f3d6..6f30c3b 100644 (file)
@@ -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<HACKERS> file that came with this distribution.
+#
 ################################################################################
 
 BEGIN {
index 0dcb574..06bb4eb 100644 (file)
@@ -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<HACKERS> file that came with this distribution.
+#
 ################################################################################
 
 BEGIN {
index 577eda6..1ac30e8 100644 (file)
@@ -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<HACKERS> file that came with this distribution.
+#
 ################################################################################
 
 BEGIN {
index 328e773..37ccfcc 100644 (file)
@@ -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<HACKERS> file that came with this distribution.
+#
 ################################################################################
 
 BEGIN {
index 7dadecb..09fb3ee 100644 (file)
@@ -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<HACKERS> file that came with this distribution.
+#
 ################################################################################
 
 BEGIN {
index 2923ee0..a8bb234 100644 (file)
@@ -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<HACKERS> 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));
 
index d8fd929..58c174a 100644 (file)
@@ -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<HACKERS> file that came with this distribution.
+#
 ################################################################################
 
 BEGIN {
index 5866df3..2496546 100644 (file)
@@ -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<HACKERS> file that came with this distribution.
+#
 ################################################################################
 
 BEGIN {
index 2b2216b..09b870c 100644 (file)
@@ -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<HACKERS> file that came with this distribution.
+#
 ################################################################################
 
 BEGIN {
index 9a43c5d..c70c684 100644 (file)
@@ -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<HACKERS> file that came with this distribution.
+#
 ################################################################################
 
 BEGIN {
index c022d9a..3d387bc 100644 (file)
@@ -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<HACKERS> file that came with this distribution.
+#
 ################################################################################
 
 BEGIN {
index f56a64e..f9b4a88 100644 (file)
@@ -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<HACKERS> file that came with this distribution.
+#
 ################################################################################
 
 BEGIN {
index dc911ce..d058944 100644 (file)
@@ -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<HACKERS> file that came with this distribution.
+#
 ################################################################################
 
 BEGIN {
index 8af1186..1aada0a 100644 (file)
@@ -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<HACKERS> file that came with this distribution.
+#
 ################################################################################
 
 BEGIN {
index 86af3bd..ccfb863 100644 (file)
@@ -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<HACKERS> file that came with this distribution.
+#
 ################################################################################
 
 BEGIN {
index 72fac59..1ebeff9 100644 (file)
@@ -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<HACKERS> file that came with this distribution.
+#
 ################################################################################
 
 BEGIN {
index 8d071e4..0554724 100644 (file)
@@ -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<HACKERS> 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);
+}
+
index cd0d1b5..fcd8ab3 100644 (file)
@@ -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<HACKERS> file that came with this distribution.
+#
 ################################################################################
 
 BEGIN {