[perl.git] branch blead updated. v5.27.8-154-g4bfb5532d3

2018-02-04 Thread Father Chrysostomos
In perl.git, the branch blead has been updated



- Log -
commit 4bfb5532d393d56b18d13bc19f70f6f7a64ae781
Author: Father Chrysostomos 
Date:   Sun Feb 4 22:50:15 2018 -0800

[perl #132799] Fix goto within block within expr

When goto looks for a label, it builds up a list of ops to enter.  But
it begins its search a little too far out relative to the ‘goto’.
Hence, the first op gets skipped.

In 6d90e983841, I forbade same cases of inward goto-into-expression to
avoid stack corruption and crashes.  I did this by pushing a marker
on to the list of ops to enter, indicating that an error should be
thrown instead.

Because goto starts the search too far up the context stack, it would
sometimes end up looking inside an expression, which would cause the
first op on the entry list to be such a marker, meaning that the next
item, which should have been skipped, would not be.

That could really screw up the context stack for cases like:

my $e = eval { goto label; label: }

because the entry list would be:

 entertry

instead of the previous:

entertry

Hence, entertry (which enters eval{}) would be executed from *within*
the eval, causing the exit of the eval to leave an eval on the context
stack.  Crashes ensued.

This commit fixes it by checking whether we have moved past the begin-
ning of the list of entry ops before pushing a croak-marker on to it.

Goto’s implementation is really complex, and always has been.  It
could be greatly simplified now thot ops have parent pointers.  But
that should wait for another developement cycle.

---

Summary of changes:
 pp_ctl.c| 10 ++
 t/op/goto.t | 14 +-
 2 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/pp_ctl.c b/pp_ctl.c
index 4da40e39b3..89eca4b92a 100644
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -2645,6 +2645,7 @@ PP(pp_redo)
 }
 
 #define UNENTERABLE (OP *)1
+#define GOTO_DEPTH 64
 
 STATIC OP *
 S_dofindlabel(pTHX_ OP *o, const char *label, STRLEN len, U32 flags, OP 
**opstack, OP **oplimit)
@@ -2665,11 +2666,12 @@ S_dofindlabel(pTHX_ OP *o, const char *label, STRLEN 
len, U32 flags, OP **opstac
 {
*ops++ = cUNOPo->op_first;
 }
-else if (o->op_flags & OPf_KIDS
+else if (oplimit - opstack < GOTO_DEPTH) {
+  if (o->op_flags & OPf_KIDS
  && cUNOPo->op_first->op_type == OP_PUSHMARK) {
*ops++ = UNENTERABLE;
-}
-else if (o->op_flags & OPf_KIDS && PL_opargs[o->op_type]
+  }
+  else if (o->op_flags & OPf_KIDS && PL_opargs[o->op_type]
  && OP_CLASS(o) != OA_LOGOP
  && o->op_type != OP_LINESEQ
  && o->op_type != OP_SREFGEN
@@ -2678,6 +2680,7 @@ S_dofindlabel(pTHX_ OP *o, const char *label, STRLEN len, 
U32 flags, OP **opstac
OP * const kid = cUNOPo->op_first;
if (OP_GIMME(kid, 0) != G_SCALAR || OpHAS_SIBLING(kid))
*ops++ = UNENTERABLE;
+  }
 }
 if (ops >= oplimit)
Perl_croak(aTHX_ "%s", too_deep);
@@ -2752,7 +2755,6 @@ PP(pp_goto)
 OP *retop = NULL;
 I32 ix;
 PERL_CONTEXT *cx;
-#define GOTO_DEPTH 64
 OP *enterops[GOTO_DEPTH];
 const char *label = NULL;
 STRLEN label_len = 0;
diff --git a/t/op/goto.t b/t/op/goto.t
index 9b7e5ec2f7..2bd7972945 100644
--- a/t/op/goto.t
+++ b/t/op/goto.t
@@ -10,7 +10,7 @@ BEGIN {
 
 use warnings;
 use strict;
-plan tests => 121;
+plan tests => 122;
 our $TODO;
 
 my $deprecated = 0;
@@ -858,3 +858,15 @@ is sub { goto z; exit do { z: return "foo" } }->(), 'foo',
'goto into exit';
 is sub { goto z; eval do { z: "'foo'" } }->(), 'foo',
'goto into eval';
+
+# [perl #132799]
+# Erroneous inward goto warning, followed by crash.
+# The eval must be in an assignment.
+sub _routine {
+my $e = eval {
+goto L2;
+  L2:
+}
+}
+_routine();
+pass("bug 132799");

-- 
Perl5 Master Repository


[perl.git] branch blead updated. v5.27.8-153-gae315a0a3c

2018-02-04 Thread Karl Williamson
In perl.git, the branch blead has been updated



- Log -
commit ae315a0a3c51e68887704d4907bb6a502a6d4e3f
Author: Karl Williamson 
Date:   Sun Feb 4 21:47:09 2018 -0700

APItest: Add tests for utf8_to_bytes()

commit 8132136a878b27b9619d552278dd329a2f289bd4
Author: Karl Williamson 
Date:   Sun Feb 4 21:44:17 2018 -0700

APItest:t/utf8_setup.pl: Display printables as themselves

Instead of the harder to read \xXX

---

Summary of changes:
 MANIFEST |  1 +
 ext/XS-APItest/APItest.xs| 18 +++
 ext/XS-APItest/t/utf8_setup.pl   |  6 +++-
 ext/XS-APItest/t/utf8_to_bytes.t | 68 
 4 files changed, 92 insertions(+), 1 deletion(-)
 create mode 100644 ext/XS-APItest/t/utf8_to_bytes.t

diff --git a/MANIFEST b/MANIFEST
index 96c8da5b5e..4a5c649e45 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -4394,6 +4394,7 @@ ext/XS-APItest/t/underscore_length.t  Test 
find_rundefsv()
 ext/XS-APItest/t/utf16_to_utf8.t   Test behaviour of 
utf16_to_utf8{,reversed}
 ext/XS-APItest/t/utf8.tTests for code in utf8.c
 ext/XS-APItest/t/utf8_setup.pl Tests for code in utf8.c
+ext/XS-APItest/t/utf8_to_bytes.t   Tests for code in utf8.c
 ext/XS-APItest/t/utf8_warn00.t Tests for code in utf8.c
 ext/XS-APItest/t/utf8_warn01.t Tests for code in utf8.c
 ext/XS-APItest/t/utf8_warn02.t Tests for code in utf8.c
diff --git a/ext/XS-APItest/APItest.xs b/ext/XS-APItest/APItest.xs
index 0be5d95310..5e67e7fa40 100644
--- a/ext/XS-APItest/APItest.xs
+++ b/ext/XS-APItest/APItest.xs
@@ -1379,6 +1379,24 @@ bytes_cmp_utf8(bytes, utf8)
 OUTPUT:
RETVAL
 
+AV *
+test_utf8_to_bytes(bytes, lenp)
+unsigned char * bytes
+STRLEN lenp
+PREINIT:
+char * ret;
+CODE:
+RETVAL = newAV();
+sv_2mortal((SV*)RETVAL);
+
+ret = (char *) utf8_to_bytes(bytes, &lenp);
+av_push(RETVAL, newSVpv(ret, 0));
+av_push(RETVAL, newSViv(lenp));
+av_push(RETVAL, newSVpv((const char *) bytes, 0));
+
+OUTPUT:
+RETVAL
+
 AV *
 test_utf8n_to_uvchr_msgs(s, len, flags)
 char *s
diff --git a/ext/XS-APItest/t/utf8_setup.pl b/ext/XS-APItest/t/utf8_setup.pl
index ec7a5ce3d1..231b4d9494 100644
--- a/ext/XS-APItest/t/utf8_setup.pl
+++ b/ext/XS-APItest/t/utf8_setup.pl
@@ -11,7 +11,11 @@ sub isASCII { ord "A" == 65 }
 sub display_bytes_no_quotes {
 use bytes;
 my $string = shift;
-return join("", map { sprintf("\\x%02x", ord $_) } split "", $string)
+return join("", map {
+  ($_ =~ /[[:print:]]/)
+  ? $_
+  : sprintf("\\x%02x", ord $_)
+} split "", $string)
 }
 
 sub display_bytes {
diff --git a/ext/XS-APItest/t/utf8_to_bytes.t b/ext/XS-APItest/t/utf8_to_bytes.t
new file mode 100644
index 00..4c03f842f5
--- /dev/null
+++ b/ext/XS-APItest/t/utf8_to_bytes.t
@@ -0,0 +1,68 @@
+#!perl -w
+
+# This is a base file to be used by various .t's in its directory
+# It tests various malformed UTF-8 sequences and some code points that are
+# "problematic", and verifies that the correct warnings/flags etc are
+# generated when using them.  For the code points, it also takes the UTF-8 and
+# perturbs it to be malformed in various ways, and tests that this gets
+# appropriately detected.
+
+use strict;
+use Test::More;
+
+BEGIN {
+require './t/utf8_setup.pl';
+use_ok('XS::APItest');
+};
+
+$|=1;
+
+use Data::Dumper;
+
+my @well_formed = (
+"\xE1",
+"The quick brown fox jumped over the lazy dog",
+"Ces systèmes de codage sont souvent incompatibles entre eux.  
Ainsi, deux systèmes peuvent utiliser le même nombre pour deux caractères 
différents ou utiliser différents nombres pour le même caractère.",
+"Kelimelerin m\xC3\xAAme caract\xC3\xA8re ve yaz\xC3\xB1abc",
+);
+
+my @malformed = (
+"Kelimelerin m\xC3\xAAme caract\xC3\xA8re ve yaz\xC4\xB1abc",
+"Kelimelerin m\xC3\xAAme caract\xC3\xA8re ve 
yaz\xC4\xB1\xC3\xA8abc",
+"Kelimelerin m\xC3\xAAme caract\xC3re ve yazi\xC3\xA8abc",
+"Kelimelerin m\xC3\xAAme caract\xA8 ve yazi\xC3\xA8abc",
+"Kelimelerin m\xC3\xAAme caract\xC3\xA8\xC3re ve yazi\xC3\xA8abc",
+);
+
+for my $test (@well_formed) {
+my $utf8 = $test;
+utf8::upgrade($utf8);
+my $utf8_length;
+my $byte_length = length $test;
+
+{
+use bytes;
+$utf8_length = length $utf8;
+}
+
+my $ret_ref = test_utf8_to_bytes($utf8, $utf8_length);
+
+is ($ret_ref->[0], $test, "Successfully downgraded "
+. display_bytes($utf8));
+is ($ret_ref->

[perl.git] branch smoke-me/khw-utf8 created. v5.27.8-152-geda7601461

2018-02-04 Thread Karl Williamson
In perl.git, the branch smoke-me/khw-utf8 has been created



at  eda76014614ada6c83b771d33a470be78e5af652 (commit)

- Log -
commit eda76014614ada6c83b771d33a470be78e5af652
Author: Karl Williamson 
Date:   Sun Feb 4 21:52:13 2018 -0700

Significantly speed up bytes_to_utf8()

This function replaces its input into its non-UTF-8 equivalent.  For
malformed inputs or those that can't be translated into only bytes, it
returns an error, leaving the input unchanged.

Prior to this commit, the meat of this function was two loops, one to
figure out if the input was downgradable, and the second to do the
translation if the first didn't find any problems.

This commit changes that first loop to use per-word operations, at the
expense of extra shifting and masking per iteration.  But on a 64-bit
machine, there are 1/8 the iterations compared to currently.  I haven't
done the benchmarks for this, because I've done them for several similar
changes recently, and that 1/8 the conditionals is a big win.

That new loop doesn't do a full syntax check; it just verifies that
the only start bytes in it are ones that are not for wide characters.

The second loop does the translation, while verifying well-formedness.
If a malformation is found, the changes to the input so far are backed
out.  Since the first loop has ruled out all problems except
malformedness, the back out should very rarely happen.

commit 87c767ac1782b17093cd5a3adbc64dd67e61aebe
Author: Karl Williamson 
Date:   Sun Feb 4 21:47:09 2018 -0700

APItest: Add tests for utf8_to_bytes()

commit 50e3c09c17783d2d6e1edf26531cba79a0663f59
Author: Karl Williamson 
Date:   Sun Feb 4 21:44:17 2018 -0700

APItest:t/utf8_setup.pl: Display printables as themselves

Instead of the harder to read \xXX

commit 8fba606f87731f6317061e54561b8d10e4aaf8ac
Author: Karl Williamson 
Date:   Tue Jun 6 02:06:30 2017 -0600

XXX Don't push; experimental utf8_to_bytes backout if wide char

This changes utf8_to_bytes() to not do an initial scan before starting
the conversion.  If it encounters a wide character that means it should
fail, it undoes what it's already done.

This is faster if the frequency of being called on input that can't be
downgraded is small.

---

-- 
Perl5 Master Repository


[perl.git] branch blead updated. v5.27.8-151-g0b13e5291e

2018-02-04 Thread Karl Williamson
In perl.git, the branch blead has been updated



- Log -
commit 0b13e5291ebd9c786dea21905e17886c5a310454
Author: Karl Williamson 
Date:   Sun Feb 4 19:15:00 2018 -0700

regcomp.c: Comment, white-space only

commit 03a2aaa3c921884eebd5bc46c16b9ed523d8d7fd
Author: Karl Williamson 
Date:   Sun Feb 4 18:48:26 2018 -0700

regcomp.c: Simplify handling of varying loop increments

Prior to this commit, this loop added 1 to a variable each iteration as
part of the for(;;).  This created some issues for the few cases where
that increment should be something else.

Now, the addition is removed from the for(;;), and defaults to 1, so
that the code inside doesn't have to account for an automatic 1 in the
for().

---

Summary of changes:
 regcomp.c | 91 ++-
 1 file changed, 43 insertions(+), 48 deletions(-)

diff --git a/regcomp.c b/regcomp.c
index 8cfe6a1b38..6f89a8ec30 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -3706,14 +3706,16 @@ S_construct_ahocorasick_from_trie(pTHX_ RExC_state_t 
*pRExC_state, regnode *sour
  * input nodes.
  *
  * And *unfolded_multi_char is set to indicate whether or not the node contains
- * an unfolded multi-char fold.  This happens when whether the fold is valid or
- * not won't be known until runtime; namely for EXACTF nodes that contain LATIN
- * SMALL LETTER SHARP S, as only if the target string being matched against
- * turns out to be UTF-8 is that fold valid; and also for EXACTFL nodes whose
- * folding rules depend on the locale in force at runtime.  (Multi-char folds
- * whose components are all above the Latin1 range are not run-time locale
- * dependent, and have already been folded by the time this function is
- * called.)
+ * an unfolded multi-char fold.  This happens when it won't be known until
+ * runtime whether the fold is valid or not; namely
+ *  1) for EXACTF nodes that contain LATIN SMALL LETTER SHARP S, as only if the
+ *  target string being matched against turns out to be UTF-8 is that fold
+ *  valid; or
+ *  2) for EXACTFL nodes whose folding rules depend on the locale in force at
+ *  runtime.
+ * (Multi-char folds whose components are all above the Latin1 range are not
+ * run-time locale dependent, and have already been folded by the time this
+ * function is called.)
  *
  * This is as good a place as any to discuss the design of handling these
  * multi-character fold sequences.  It's been wrong in Perl for a very long
@@ -13318,6 +13320,8 @@ S_regatom(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, 
U32 depth)
  * faster to match */
 bool maybe_exact;
 
+/* The node_type may change below, but since the size of the node
+ * doesn't change, it works */
ret = reg_node(pRExC_state, node_type);
 
 /* In pass1, folded, we use a temporary buffer instead of the
@@ -13347,17 +13351,19 @@ S_regatom(pTHX_ RExC_state_t *pRExC_state, I32 
*flagp, U32 depth)
  * ones, in which case we just leave the node fully filled, and
  * hope that it doesn't match the string in just the wrong place */
 
-assert(   ! UTF /* Is at the beginning of a character */
+assert( ! UTF /* Is at the beginning of a character */
|| UTF8_IS_INVARIANT(UCHARAT(RExC_parse))
|| UTF8_IS_START(UCHARAT(RExC_parse)));
 
 /* Here, we have a literal character.  Find the maximal string of
  * them in the input that we can fit into a single EXACTish node.
  * We quit at the first non-literal or when the node gets full */
-   for (p = RExC_parse;
-len < upper_parse && p < RExC_end;
-len++)
-   {
+   for (p = RExC_parse; len < upper_parse && p < RExC_end; ) {
+
+/* In most cases each iteration adds one byte to the output.
+ * The exceptions override this */
+Size_t added_len = 1;
+
oldp = p;
 
 /* White space has already been ignored */
@@ -13647,8 +13653,8 @@ S_regatom(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, 
U32 depth)
break;
} /* End of switch on the literal */
 
-   /* Here, have looked at the literal character and 
- * contains its ordinal,  points to the character after it.
+   /* Here, have looked at the literal character, and 
+ * contains its ordinal;  points to the character after it.
  * We need to check if the next non-ignored thing is a
  * quantifier.  Move  to after anythi

[perl.git] branch blead updated. v5.27.8-149-g1e2cfe157c

2018-02-04 Thread Father Chrysostomos
In perl.git, the branch blead has been updated



- Log -
commit 1e2cfe157cae98578de3c274bc64b8ea032b91e0
Author: Father Chrysostomos 
Date:   Sun Feb 4 11:13:56 2018 -0800

Disable CV-in-stash optimization

outside of the main package.

Instead of actually reverting to the previous logic that excluded
packages other that main as a side effect of the logic being
faulty, this time I am checking for the main package explicitly.

---

Summary of changes:
 op.c   | 3 +++
 t/op/sub.t | 1 +
 2 files changed, 4 insertions(+)

diff --git a/op.c b/op.c
index 373822a349..c6f228b2e0 100644
--- a/op.c
+++ b/op.c
@@ -9847,9 +9847,12 @@ Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o, OP *proto, OP 
*attrs,
   Also, we may be called from load_module at run time, so
   PL_curstash (which sets CvSTASH) may not point to the stash the
   sub is stored in.  */
+   /* XXX This optimization is currently disabled for packages other
+  than main, since there was too much CPAN breakage.  */
const I32 flags =
   ec ? GV_NOADD_NOINIT
  :   (IN_PERL_RUNTIME && PL_curstash != CopSTASH(PL_curcop))
+  || PL_curstash != PL_defstash
   || memchr(name, ':', namlen) || memchr(name, '\'', namlen)
? gv_fetch_flags
: GV_ADDMULTI | GV_NOINIT | GV_NOTQUAL;
diff --git a/t/op/sub.t b/t/op/sub.t
index 5de358ebf3..c8bf72d680 100644
--- a/t/op/sub.t
+++ b/t/op/sub.t
@@ -399,6 +399,7 @@ is ref($main::{rt_129916}), 'CODE', 'simple sub stored as 
CV in stash (main::)';
 sub foo { 42 }
 }
 {
+local $::TODO = "disabled for now";
 is ref($RT129916::{foo}), 'CODE', 'simple sub stored as CV in stash 
(non-main::)';
 }
 

-- 
Perl5 Master Repository


[perl.git] branch smoke-me/leont/less-fragile-encoding updated. v5.27.8-150-gf4e72dbfa4

2018-02-04 Thread Leon Timmermans
In perl.git, the branch smoke-me/leont/less-fragile-encoding has been updated



  discards  849433b4f0231124f1448973fd44bc044b12e62d (commit)
- Log -
commit f4e72dbfa4b0d957dd2dcfcf63b615ddd38ae786
Author: Leon Timmermans 
Date:   Thu Jan 4 19:56:03 2018 +0100

Disallow coderef in $PerlIO::encoding::fallback

Encode allows one to pass a coderef instead of a set of flags to handle.
This however doesn't allow one to pass STOP_AT_PARTIAL, which means it
has always been buggy on buffer boundaries. With my new automatic
STOP_AT_PARTIAL passing this would result in an unpredictable value.
Instead we now disallow it in PerlIO::encoding.

---

Summary of changes:
 ext/PerlIO-encoding/encoding.xs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ext/PerlIO-encoding/encoding.xs b/ext/PerlIO-encoding/encoding.xs
index fd1d45e3de..66728734d6 100644
--- a/ext/PerlIO-encoding/encoding.xs
+++ b/ext/PerlIO-encoding/encoding.xs
@@ -168,7 +168,7 @@ PerlIOEncode_pushed(pTHX_ PerlIO * f, const char *mode, SV 
* arg, PerlIO_funcs *
 }
 
 e->chk = newSVsv(get_sv("PerlIO::encoding::fallback", 0));
-if (SvRV(e->chk))
+if (SvROK(e->chk))
Perl_croak(aTHX_ "PerlIO::encoding::fallback must be an integer");
 SvUV_set(e->chk, SvUV(e->chk) | encode_stop_at_partial);
 e->inEncodeCall = 0;

-- 
Perl5 Master Repository


[perl.git] branch smoke-me/leont/less-fragile-encoding updated. v5.27.8-150-g849433b4f0

2018-02-04 Thread Leon Timmermans
In perl.git, the branch smoke-me/leont/less-fragile-encoding has been updated



  discards  a64eaf63b9e70e502d64f489a217fd6c4ede6c31 (commit)
- Log -
commit 849433b4f0231124f1448973fd44bc044b12e62d
Author: Leon Timmermans 
Date:   Thu Jan 4 19:56:03 2018 +0100

Disallow coderef in $PerlIO::encoding::fallback

Encode allows one to pass a coderef instead of a set of flags to handle.
This however doesn't allow one to pass STOP_AT_PARTIAL, which means it
has always been buggy on buffer boundaries. With my new automatic
STOP_AT_PARTIAL passing this would result in an unpredictable value.

commit 35d99902af4832a40c4aa9d88895f98aa0b22755
Author: Leon Timmermans 
Date:   Thu Dec 28 19:23:03 2017 +0100

Enforce STOP_AT_PARTIAL in $PerlIO::encoding::fallback

PerlIO::encoding has a $fallback variable that allows one to set the
behavior on a encoding/decoding error, for example to make it throw an
exception on error. What is not documented (actually the example in the
documentation is even missing this) is that PerlIO::encoding needs the
(equally undocumented) Encode::STOP_AT_PARTIAL flag to be set, otherwise
a multi-byte character spanning buffer boundaries will be interpreted as
two invalid byte sequences. I could have fixed the documentation, but
instead I fixed the code to always pass this flag to Encode, simplifying
the use and making the current documentation correct again.

---

Summary of changes:
 AUTHORS|1 +
 Cross/Makefile-cross-SH|4 -
 Cross/config.sh-arm-linux  |   40 +-
 Cross/config.sh-arm-linux-n770 |   40 +-
 INSTALL|   30 +-
 MANIFEST   |7 +-
 META.json  |2 +-
 META.yml   |2 +-
 Makefile.SH|   12 +-
 NetWare/Makefile   |4 +-
 NetWare/config_H.wc|   10 +-
 Porting/Maintainers.pl |   17 +-
 Porting/cmpVERSION.pl  |1 -
 Porting/config.sh  |   42 +-
 Porting/config_H   |   18 +-
 Porting/epigraphs.pod  |   32 +
 Porting/perldelta_template.pod |2 +-
 Porting/release_managers_guide.pod |   10 +-
 Porting/release_schedule.pod   |4 +-
 README |3 +-
 README.haiku   |4 +-
 README.macosx  |8 +-
 README.os2 |2 +-
 README.vms |4 +-
 charclass_invlists.h   |  162 +-
 configure.com  |   28 +-
 cop.h  |   24 +-
 cpan/Encode/Encode.pm  |   38 +-
 cpan/Encode/Makefile.PL|2 +-
 cpan/Encode/lib/Encode/Alias.pm|4 +-
 cpan/Encode/t/decode.t |2 +-
 cpan/Encode/t/mime-name.t  |2 +-
 cpan/Socket/Makefile.PL|   83 +-
 cpan/Socket/Socket.pm  |   50 +-
 cpan/Socket/Socket.xs  |  170 +-
 cpan/Socket/t/getaddrinfo.t|   30 +-
 cpan/Socket/t/sockaddr.t   |   48 +-
 cpan/Socket/t/socketpair.t |6 +-
 cpan/autodie/lib/autodie/exception.pm  |   11 +-
 cpan/experimental/t/basic.t|   39 +-
 dist/Data-Dumper/Dumper.pm |4 +-
 dist/Data-Dumper/Dumper.xs |   11 +-
 dist/Data-Dumper/t/dumper.t|   32 +-
 dist/Devel-PPPort/PPPort_pm.PL |   12 +-
 dist/Devel-PPPort/parts/inc/HvNAME |2 +-
 dist/Devel-PPPort/parts/inc/call   |4 +-
 dist/Devel-PPPort/parts/inc/mess   |  518 +
 dist/Devel-PPPort/parts/inc/misc   |5 +-
 dist/Devel-PPPort/parts/inc/ppphtest   |1 +
 dist/Devel-PPPort/parts/inc/pv_tools   |6 +-
 dist/Devel-PPPort/parts/inc/threads|4 +-
 dist/Devel-PPPort/parts/todo/5006000   |2 -
 dist/Devel-PPPort/parts/t