This is a live mirror of the Perl 5 development currently hosted at
5 years agoPorting/ protect against data loss
Jim Cromie [Sun, 10 Apr 2016 04:51:48 +0000 (22:51 -0600)]
Porting/ protect against data loss

Due to %data storage using $perl_name (rather than $label),
blead silently loses data when running like so:

   perl Porting/ -- perl perl

patch complains about above, but allows following:

   perl Porting/ -- perl=FOO perl=BAR

With this 1/2 fix, we can further probe the underlying key probs,
evident in the results from above

   empty for loop with lexical var and 4 integer range

         BAR    BAR
      ------ ------
   Ir 100.00 100.00
   Dr 100.00 100.00

5 years agoprep grind-run to accept args from PUTs
Jim Cromie [Sun, 10 Apr 2016 04:45:25 +0000 (22:45 -0600)]
prep grind-run to accept args from PUTs

5 years agoPorting/ --verbose assist on tests failure
Jim Cromie [Sun, 10 Apr 2016 04:33:10 +0000 (22:33 -0600)]
Porting/ --verbose assist on tests failure

with --verbose, --tests=foo will fail loudly, so user can pick a test.

5 years ago(perl #128199) rmscopy() is VMS specific and not exported
Tony Cook [Wed, 15 Jun 2016 00:11:26 +0000 (10:11 +1000)]
(perl #128199) rmscopy() is VMS specific and not exported

The first is kind of implied by the text, but make it explicit.

Added minor punctuation fixes suggested by Reuben Thomas.

5 years agoFix customised for Encode
Chris 'BinGOs' Williams [Tue, 14 Jun 2016 17:19:40 +0000 (18:19 +0100)]
Fix customised for Encode

5 years agoUpdate META.json after JSON-PP update
Chris 'BinGOs' Williams [Tue, 14 Jun 2016 16:42:32 +0000 (17:42 +0100)]
Update META.json after JSON-PP update

5 years ago[PATCH] Bump Locale-Codes from 3.38 to 3.39
Sullivan Beck [Tue, 14 Jun 2016 16:33:26 +0000 (17:33 +0100)]
[PATCH] Bump Locale-Codes from 3.38 to 3.39

Signed-off-by: Chris 'BinGOs' Williams <>
5 years agoUpdate JSON-PP to CPAN version 2.27400
Chris 'BinGOs' Williams [Tue, 14 Jun 2016 16:26:00 +0000 (17:26 +0100)]
Update JSON-PP to CPAN version 2.27400


2.27400  2016-04-23
  [JSON::PP] appleid and merged long term neglected patches & PRs.
             thanks to charsbar

  - document patches
    by AM909, leon[at], dsteinbrunner, jwilk, alfiedotwtf
  - modified Makefile.PL to set UNINST=1 if needed on old perls
    by dagolden
  - decode decimals to Perl's internal NV type
    by dagolden

  see to

5 years agoUpdate HTTP-Tiny to CPAN version 0.058
Chris 'BinGOs' Williams [Tue, 14 Jun 2016 16:24:30 +0000 (17:24 +0100)]
Update HTTP-Tiny to CPAN version 0.058


0.058     2016-05-03 11:29:57-04:00 America/New_York

    - No changes from 0.057

0.057     2016-04-18 10:17:00-04:00 America/New_York (TRIAL RELEASE)


    - Added support for the SSL_CERT_FILE environment variable.

    - Added 'peer' attribute to force a connection to a particular

    - Added 'connected' method to allow introspection of persistent

    - An array reference of redirection result hash references is included
      in the final response hash reference (but only if redirects occur).


    - Because folded headers are obsoleted in the revised RFCs, if CRLF is
      found in header values followed by one or more spaces, they are all
      replaced by a single space.


    - Per the RFC, control headers are now sent first before other headers
      (which are sent in arbitrary order).

    - Only well-known headers have their case canonicalized; all other
      headers are sent in the case provided by the user.

    - The 'keep_alive' option now also sets the SO_KEEPALIVE option
      on the underlying socket to help with long-lived, idle connections.

    - Request header field values are now validated against the RFC rules
      (i.e. empty or else space-or-tab separated tokens of printable

5 years agoUpdate Getopt-Long to CPAN version 2.49
Chris 'BinGOs' Williams [Tue, 14 Jun 2016 16:22:41 +0000 (17:22 +0100)]
Update Getopt-Long to CPAN version 2.49


Changes in version 2.49

* Fix bug

  Thanks Roy Ivy III for finding and fixing this.

* Fix bug

  Thanks Tom Wyant for finding and fixing this.

5 years agoAPItest.xs: silence compiler warning
David Mitchell [Tue, 14 Jun 2016 09:34:12 +0000 (10:34 +0100)]
APItest.xs: silence compiler warning

5 years agoperlio.c: silence a couple of warnings
David Mitchell [Tue, 14 Jun 2016 09:24:30 +0000 (10:24 +0100)]
perlio.c: silence a couple of warnings

5 years ago[perl #128313] test for memory leak in POSIX classes
Dan Collins [Wed, 8 Jun 2016 20:26:07 +0000 (16:26 -0400)]
[perl #128313] test for memory leak in POSIX classes

5 years agoPOSIX.xs: avoid "defined but not used" warning
David Mitchell [Mon, 13 Jun 2016 10:36:06 +0000 (11:36 +0100)]
POSIX.xs: avoid "defined but not used" warning

The static function not_here() is used for any methods that aren't
implemented. On Linux at least, *all* methods are implemented, so you get:

POSIX.xs:1639:1: warning: ‘not_here’ defined but not used [-Wunused-function]
 not_here(const char *s)

Ensure at least one use of this function to avoid that warning.
A bit hacky, but I couldn't think of a better way.

5 years agoperldelta for 31b6f23ed55c
Tony Cook [Mon, 13 Jun 2016 01:12:47 +0000 (11:12 +1000)]
perldelta for 31b6f23ed55c

5 years ago[perl #126710] only touch pm_to_blib if files are copied
Tony Cook [Tue, 1 Dec 2015 05:10:55 +0000 (16:10 +1100)]
[perl #126710] only touch pm_to_blib if files are copied

Add checks similar to what the Makefile would do: only copy the
files if the source file is newer than pm_to_blib

5 years ago[perl #128260] Fix \substr %h
Father Chrysostomos [Sun, 12 Jun 2016 13:19:47 +0000 (06:19 -0700)]
[perl #128260] Fix \substr %h

This is a follow-up to 79409ac8, which propagated substr’s own lvalue
context to the first argument only if it was one that would not croak
at compile time.

We can’t propagate OP_REFGEN lvalue context to the first argument,
as it causes the same bug for which #128260 was originally reported;
namely, that it prevents a hash or array from being flattened, causing
an unflattened aggregate to follow code paths that expect only sca-
lars, resulting in assertion failures:

$ ./perl -Ilib -e '%h=1..100; print ${\substr %h, 0}'
Assertion failed: (SvTYPE(sv) != SVt_PVAV && SvTYPE(sv) != SVt_PVHV && SvTYPE(sv) != SVt_PVFM), function Perl_sv_2pv_flags, file sv.c, line 2924.
Abort trap: 6
$ ./perl -Ilib -e '@h=1..100; print ${\vec @a, 0, 1}'
Assertion failed: (SvTYPE(sv) != SVt_PVAV && SvTYPE(sv) != SVt_PVHV && SvTYPE(sv) != SVt_PVFM), function Perl_sv_2pv_flags, file sv.c, line 2924.
Abort trap: 6

5 years agoUpdate the notes on Synology/DSM
H.Merijn Brand [Sun, 12 Jun 2016 09:37:03 +0000 (11:37 +0200)]
Update the notes on Synology/DSM

5 years ago[perl #128260] Fix lvalue cx for substr and vec
Father Chrysostomos [Sat, 11 Jun 2016 01:08:50 +0000 (18:08 -0700)]
[perl #128260] Fix lvalue cx for substr and vec

When lvalue context was applied to the substr and vec at compile time,
that context was propagated to the first argument.  That meant that

    substr %foo, 1, = 3;

would correctly die, but give the wrong op in the error message, say-
ing ‘in scalar assignment’ whereas ‘in substr’ is more appropriate.


    (substr %foo, 1) = 3;

would apply list lvalue context to %foo, which does not die at compile
time and prevents flattening (that’s what allows %foo=... to work).

The unflattened hash would be passed to internal functions that only
expect scalars, resulting in assertion failures.

The fix is to introduce two new types of scalar lvalue context, namely
OP_SUBSTR and OP_VEC, and apply those to the first argument, causing
both the examples above to die at compile time with ‘Can't modify hash
dereference in substr’.

If the surrounding context is only potential modifiable context (such
as \substr), then that same non-fatal context is applied to the
first argument.

5 years agoop.c: Factor out common code for potential lv cx
Father Chrysostomos [Fri, 10 Jun 2016 15:54:56 +0000 (08:54 -0700)]
op.c: Factor out common code for potential lv cx

5 years agoMake lv keys distinguish scalar/list cx properly
Father Chrysostomos [Fri, 10 Jun 2016 15:49:59 +0000 (08:49 -0700)]
Make lv keys distinguish scalar/list cx properly

keys(%h) was special in that it did not use the same code path as
other ops that distinguish between scalar and list lvalue context.
Consequently, some scalar lvalue contexts worked:

    keys %h = 3;
    ${\scalar keys %h} = 3;
    sub { $_[0] = 3 }->(scalar keys %h);
    foreach(scalar keys %h) { $_ = 3 }
    grep { $_ = 3 } scalar keys %h;
    substr keys %h, 0, = 3;

while others did not:

    keys %h .= 0;
    read FH, keys %h, 0;

Fixing other bugs in the same code paths without breaking keys (or
adding *more* exceptions) is harder to do if keys is not consistent.
So this commit allows .= and read to assign to keys, by using the same
internal code (scalar_mod_type) that determines whether %h assignment
is allowed.  The logic is reversed (since %h is list-only and keys %h
is scalar-only), so where %h is a valid lvalue keys %h is not, and
vice versa.

5 years Correct --no-module-tests example
Father Chrysostomos [Thu, 9 Jun 2016 19:30:14 +0000 (12:30 -0700)] Correct --no-module-tests example

Copy-&-paste strikes again!

5 years agopod/*: remove deprecated L<"section"> and L<section> syntax
Lukas Mai [Sat, 11 Jun 2016 10:40:42 +0000 (12:40 +0200)]
pod/*: remove deprecated L<"section"> and L<section> syntax

5 years agoREADME*: remove deprecated L<"section"> and L<section> syntax
Lukas Mai [Sat, 11 Jun 2016 10:39:18 +0000 (12:39 +0200)]
README*: remove deprecated L<"section"> and L<section> syntax

5 years agoperldeltas: remove deprecated L<"section"> and L<section> syntax
Lukas Mai [Sat, 11 Jun 2016 10:07:23 +0000 (12:07 +0200)]
perldeltas: remove deprecated L<"section"> and L<section> syntax

5 years agohandy.h: remove deprecated L<"section"> syntax
Lukas Mai [Sat, 11 Jun 2016 10:06:41 +0000 (12:06 +0200)]
handy.h: remove deprecated L<"section"> syntax

5 years agoperlsyn: remove deprecated L<"section"> syntax
Lukas Mai [Sat, 11 Jun 2016 09:42:46 +0000 (11:42 +0200)]
perlsyn: remove deprecated L<"section"> syntax

... and fix a typo.

5 years agofixup, guard av_top_index() for null RExC_warn_text
Yves Orton [Fri, 10 Jun 2016 11:34:37 +0000 (13:34 +0200)]
fixup, guard av_top_index() for null RExC_warn_text

5 years agomove warning text to RExC_state (via RExC_warn_text)
Yves Orton [Fri, 10 Jun 2016 10:20:20 +0000 (12:20 +0200)]
move warning text to RExC_state (via RExC_warn_text)

This way we reuse the same AV each time, and avoid various refcount bookkeeping issues, all at a relatively modest cost (IMO)

5 years agoUpdates to ANDK/CPAN-2.14-TRIAL.tar.gz
Sandbox [Wed, 8 Jun 2016 21:15:41 +0000 (23:15 +0200)]
Updates to ANDK/CPAN-2.14-TRIAL.tar.gz

5 years ago[perl #128313] Fix leak in perl 5.24 with strict and regex posix char classes
Yves Orton [Wed, 8 Jun 2016 16:42:30 +0000 (18:42 +0200)]
[perl #128313] Fix leak in perl 5.24 with strict and regex posix char classes

This patch is a refinement of one written by Dan Collins.

Any thanks for this patch should go to him.

5 years agoperldelta for the 79881ad71252 merge
Tony Cook [Wed, 8 Jun 2016 06:41:38 +0000 (16:41 +1000)]
perldelta for the 79881ad71252 merge

5 years agoOnly produce perlio debug output when the -Di switch is supplied
Tony Cook [Wed, 8 Jun 2016 05:12:37 +0000 (15:12 +1000)]
Only produce perlio debug output when the -Di switch is supplied

5 years ago(perl #127380) Update PERLIO_DEBUG documentation.
Craig A. Berry [Thu, 14 Apr 2016 19:23:52 +0000 (14:23 -0500)]
(perl #127380) Update PERLIO_DEBUG documentation.

Now defaults to stderr if unspecified, and requires -Di (and thus

TonyC: modify a couple of verbatim lines to bring them under the limit
enforced by the new podcheck.t changes

5 years ago(perl #127380) default PERLIO_DEBUG/-Di to use STDERR
Tony Cook [Thu, 7 Apr 2016 05:35:42 +0000 (15:35 +1000)]
(perl #127380) default PERLIO_DEBUG/-Di to use STDERR

This includes under taint, just as other -D switches write to stderr
when taint is on.

5 years ago(perl #127380) add tests for -Di
Tony Cook [Tue, 3 May 2016 00:41:15 +0000 (10:41 +1000)]
(perl #127380) add tests for -Di

5 years ago(perl #127380) only trace to $PERLIO_DEBUG if -Di is supplied
Tony Cook [Mon, 28 Mar 2016 03:58:56 +0000 (14:58 +1100)]
(perl #127380) only trace to $PERLIO_DEBUG if -Di is supplied

5 years agoUpdate to Test-Simple 1.302026
Chad Granum [Tue, 7 Jun 2016 15:04:02 +0000 (08:04 -0700)]
Update to Test-Simple 1.302026

    - Fix SHM leak
    - Update Porting/

5 years agoPorting/todo.pod: refaliasing needs fixing still
Father Chrysostomos [Tue, 7 Jun 2016 21:36:58 +0000 (14:36 -0700)]
Porting/todo.pod: refaliasing needs fixing still

I don’t know when I’ll be able to get to this.  This seems like a good
place to jot down the ideas that existed only in my head till now.

5 years agoPorting/todo.pod: Suggest Deparse improvements
Father Chrysostomos [Tue, 7 Jun 2016 21:17:38 +0000 (14:17 -0700)]
Porting/todo.pod: Suggest Deparse improvements

5 years agoop/lex_assign.t: fix intermittent failures
David Mitchell [Tue, 7 Jun 2016 16:41:20 +0000 (17:41 +0100)]
op/lex_assign.t: fix intermittent failures

The bulk of this test script tests whether ops which are capable of
the OA_TARGLEX optimisation return the same results with lexical and
package var assignments, i.e.

    my $a;
    $a = OP;
    $b = OP;

When OP is 'time', the two calls can return different times, resulting in
occasional intermittent failures. So move time into it's custom test which
can cope with a delta of 1.

Similarly if the op is <*>, parallel testing can result in temporary files
appearing in the current directory, resulting in different returns.
However, since glob doesn't actually have the 'T' (OA_TARGLEX) set in
regen/opcodes, this test is moot - so skip it.

If glob ever does ever get OA_TARGLEX, and so need to be tested, it may
require some subtlety, such as globbing for a pattern that won't match any
temporary files.

5 years agoFix Pod-Checker version
Chris 'BinGOs' Williams [Tue, 7 Jun 2016 14:49:51 +0000 (15:49 +0100)]
Fix Pod-Checker version

5 years agoPorting/todo.pod: Add note to ‘repack the optree’
Father Chrysostomos [Tue, 7 Jun 2016 05:30:17 +0000 (22:30 -0700)]
Porting/todo.pod: Add note to ‘repack the optree’

5 years agoPorting/todo.pod: Hey, we have refaliasing
Father Chrysostomos [Tue, 7 Jun 2016 05:26:11 +0000 (22:26 -0700)]
Porting/todo.pod: Hey, we have refaliasing

5 years agoPorting/todo.pod: Rmv ‘LVALUE functions for lists’
Father Chrysostomos [Tue, 7 Jun 2016 05:25:19 +0000 (22:25 -0700)]
Porting/todo.pod: Rmv ‘LVALUE functions for lists’

$ ./perl -Ilib -e 'sub foo :lvalue{@hash{"foo","bar"}} (foo) = (3,4); use Data::Dumper; warn Dumper \%hash'
$VAR1 = {
          'foo' => 3,
          'bar' => 4
$ ./perl -Ilib -e 'sub foo :lvalue{@arr[1,2]} (foo) = (3,4); use Data::Dumper; warn Dumper \@arr'
$VAR1 = [

Apparently slices do work.

5 years agoPorting/todo.pod: Update file name in ‘truncate() prototype’
Father Chrysostomos [Tue, 7 Jun 2016 05:21:11 +0000 (22:21 -0700)]
Porting/todo.pod: Update file name in ‘truncate() prototype’

5 years agoPorting/todo.pod: Point out problem with readpipe(LIST)
Father Chrysostomos [Tue, 7 Jun 2016 05:19:46 +0000 (22:19 -0700)]
Porting/todo.pod: Point out problem with readpipe(LIST)

5 years agoPorting/todo.pod: Suggest documenting XS & lex subs
Father Chrysostomos [Tue, 7 Jun 2016 05:13:42 +0000 (22:13 -0700)]
Porting/todo.pod: Suggest documenting XS & lex subs

5 years agoPorting/todo.pod: Delete strcat/strcpy test entry
Father Chrysostomos [Tue, 7 Jun 2016 05:11:15 +0000 (22:11 -0700)]
Porting/todo.pod: Delete strcat/strcpy test entry

We have t/porting/libperl.t.

5 years agoperldelta for 0a44e30b028e99
Tony Cook [Tue, 7 Jun 2016 05:11:44 +0000 (15:11 +1000)]
perldelta for 0a44e30b028e99

5 years ago[perl #127333] add warning for until(assignment)
Dan Collins [Tue, 7 Jun 2016 01:04:46 +0000 (21:04 -0400)]
[perl #127333] add warning for until(assignment)

while ($a = 1) emits a warning "Found = in conditional, should be ==".
However, until ($a = 1) does not. The parser breaks down until
(condition) into while (!(condition)), which defeats the check in
S_scalarboolean, since it is looking for a conditional that /is/ an
assignment, but we have a conditional that is a thinly veiled assignment.

A similar bug is [perl #127122]. That bug was fixed by treating
unless (a) {b} else {c} as if (a) {c} else {b}, instead of treating it
as if (!a) {b} else {c}. That approach will not work here.

Instead, the test in S_scalarboolean has been widened. It previously
looked for an OP_SASSIGN with op_first OP_CONST, it now also detects an
OP_NOT surrounding that construct.

Tests for both while() and until() were also added to t/lib/warnings/op.

5 years agoskip a Tets-Simple test that's leaking shm blocks
Tony Cook [Tue, 7 Jun 2016 01:30:03 +0000 (11:30 +1000)]
skip a Tets-Simple test that's leaking shm blocks

Reported upstream as

5 years agoPorting/todo.pod: Don't need pod fixes anymore
Karl Williamson [Mon, 6 Jun 2016 21:12:53 +0000 (15:12 -0600)]
Porting/todo.pod: Don't need pod fixes anymore

I recently fixed just about all the core perl pod errors that are
fixable, so this task can be considered completed.

5 years agoFix compiler warning -Wuninitialized
Andy Lester [Mon, 6 Jun 2016 19:13:53 +0000 (14:13 -0500)]
Fix compiler warning -Wuninitialized

5 years agoIncrease $XS::APItest::VERSION to 0.82
Father Chrysostomos [Mon, 6 Jun 2016 20:41:39 +0000 (13:41 -0700)]
Increase $XS::APItest::VERSION to 0.82

5 years agoAdd intro_my to XS::APItest::lexical_import
Father Chrysostomos [Mon, 6 Jun 2016 20:40:12 +0000 (13:40 -0700)]
Add intro_my to XS::APItest::lexical_import

so that code thieves will have some correct code to steal.

Without intro_my(), the lexical subs installed in a ‘use’ block will
not be visible to the following statement, but only the one after it.
BEGIN blocks already get intro_my called, so it worked already with a
BEGIN block, but not with ‘use’.

5 years ago(perl #127993) test reporting of multiple conflict markers
Tony Cook [Mon, 6 Jun 2016 00:43:48 +0000 (10:43 +1000)]
(perl #127993) test reporting of multiple conflict markers

5 years agouse yyerror instead of croaking immediately (RT #127993)
Lukas Mai [Sat, 4 Jun 2016 11:05:36 +0000 (13:05 +0200)]
use yyerror instead of croaking immediately (RT #127993)

5 years agoconstant: don't skip the E2BIG test on Hurd, but improve comments
Dominic Hargreaves [Sun, 5 Jun 2016 10:44:51 +0000 (11:44 +0100)]
constant: don't skip the E2BIG test on Hurd, but improve comments

As Father Chrysostomos explained on [perl #128319] the previous change
was based on a misunderstanding of the purpose of the test, which is
only to test that can create a dualvar out of $! which
has an error string, and nothing specifically to do with E2BIG.

The new comments, also suggested by Father Chrysostomos, make this more

5 years agoconstant: skip E2BIG test on GNU/Hurd
Dominic Hargreaves [Sat, 4 Jun 2016 13:36:26 +0000 (14:36 +0100)]
constant: skip E2BIG test on GNU/Hurd

Hurd doesn't use 7 for E2BIG, so this string test would fail if the
test itself were more precise.

5 years agofix bogus "at end of line" error message for "my (my $x, $y, $z)"
Lukas Mai [Sat, 4 Jun 2016 10:44:57 +0000 (12:44 +0200)]
fix bogus "at end of line" error message for "my (my $x, $y, $z)"

5 years agospelling: s/delimeter/delimiter/
Lukas Mai [Sat, 4 Jun 2016 10:23:06 +0000 (12:23 +0200)]
spelling: s/delimeter/delimiter/

5 years ago[perl #128307] Fix ‘foo ? require : bar’
Father Chrysostomos [Fri, 3 Jun 2016 05:35:10 +0000 (22:35 -0700)]
[perl #128307] Fix ‘foo ? require : bar’

The lexer’s bareword-parser that kicks in after it sees ‘require’ was
getting confused by the single colon, since it assumed that if the
thing that followed began with a letter or colon it must be a package
or module name.  Hence, require with : after it was parsed as
require "", but with a ‘bareword’ "".  The lexer should be checking
for two colons, not just one.

5 years agoDon’t use yyerror for each($scalar) experiment err
Father Chrysostomos [Fri, 3 Jun 2016 05:10:04 +0000 (22:10 -0700)]
Don’t use yyerror for each($scalar) experiment err

This is a follow-up to 69e7f50e50.  69e7f50e50 resulted in yyerror
being called twice for the same error, resulting in double diagnos-
tics for where the error occurred:

$ ./perl -e 'keys $scalar, $1'
Experimental keys on scalar is now forbidden at -e line 1, near "$scalar,"
Type of arg 1 to keys must be hash or array (not scalar dereference) at -e line 1, near "$scalar,"
Execution of -e aborted due to compilation errors.

We don’t need ‘near "$scalar,"’ twice.

For the first one we should queue the error directly, using qerror()
(which yyerror itself normally calls), so we don’t get double

5 years agoAdd Configure probe for strerror_l()
Aaron Crane [Thu, 2 Jun 2016 18:11:12 +0000 (19:11 +0100)]
Add Configure probe for strerror_l()

As requested by khw++

Until the relevant symbol is used, HAS_STRERROR_L must be mentioned
explicitly in metaconfig.h.

This corresponds to metaconfig d0838744f03cfe7642950ea91dd48f575d0bfd15.

5 years agoAdd Configure probe for querylocale()
Aaron Crane [Thu, 2 Jun 2016 18:04:49 +0000 (19:04 +0100)]
Add Configure probe for querylocale()

As requested by khw++

Until the relevant symbol is used, HAS_QUERYLOCALE must be mentioned
explicitly in metaconfig.h.

This corresponds to metaconfig 541f0dd272df4f9326996727898393ac8f6626f7.

5 years agoRebuild Configure from current metaconfig
Aaron Crane [Thu, 2 Jun 2016 17:56:02 +0000 (18:56 +0100)]
Rebuild Configure from current metaconfig

  Relevant changes:

  commit 5d3ffa97290d2d3d65a42a0ed8b69d945b661ee7
  Author: H.Merijn Brand - Tux <>
  Date:   Sun May 29 15:30:33 2016 +0200

      Finish.U isn't modified anymore

      All changes accepted by upstream. One down, 164 to go

  commit 5d805d83bd4663831594540ddadeeb6213d19736
  Author: H.Merijn Brand - Tux <>
  Date:   Sat May 14 18:48:26 2016 +0200

      Remove trailing whitespace on meta-lines in unit files

      This change has also been proposed as PR to dist upstream

  commit b9807b5fe3f4c97fa34e19b8a9b265f91f0e4aca
  Author: H.Merijn Brand - Tux <>
  Date:   Sat May 14 18:30:03 2016 +0200

      Merged changes to Finish.U

5 years agoGet EUMM basic.t passing again on Win32.
Craig A. Berry [Thu, 2 Jun 2016 12:18:20 +0000 (07:18 -0500)]
Get EUMM basic.t passing again on Win32.

There are dueling uses of PERL_CORE.  On Windows, the FIXIN macro
assumes it can run pl2bat.bat from the installed Perl if PERL_CORE
is not set, so deleting PERL_CORE from the environment as this
test was doing makes you get the wrong one (or none at all).

But if PERL_CORE is set, the metafile target is not generated in
the Makefile, so you can't test that or things that depend on it
(e.g. disttest).  So at least for now, get basic.t passing by
skipping those tests.

5 years agoRenée Bäcker will be doing the October release, 5.25.10
Sawyer X [Wed, 1 Jun 2016 09:21:33 +0000 (11:21 +0200)]
Renée Bäcker will be doing the October release, 5.25.10

5 years agoallow ext/XS-APItest/t/win32.t to pass with both E: and T: drives
Tony Cook [Wed, 1 Jun 2016 07:23:05 +0000 (17:23 +1000)]
allow ext/XS-APItest/t/win32.t to pass with both E: and T: drives

Encountered while testing locally on Windows 7 x64.

cmd.exe stores the current directory for each drive as entries in the
environment, like:

  C:\Users\tony>set "" | findstr "^="

When a Win32 build of perl built with USE_IMP_SYS starts up it saves
the current directories of each drive in a per-thread structure so
that each pseudo-forked process can have it's own set of drive current

If you run an external command, some versions of cmd.exe will add
an entry to the environment storing the result of that command, for

  C:\Users\tony>set "" | find "ExitCode"

  C:\Users\tony>git status
  fatal: Not a git repository (or any of the parent directories): .git

  C:\Users\tony>set "" | find "ExitCode"

which is similar to the current directory entries.

The sloppy parsing by VDir::FromEnv[WA]() would treat that as a
current directory entry for the E: drive, copying the "tCode=...."
into the current directory.  Normally these values include a leading
drive letter and \, like "E:\", but this case leaves us without that.

Later, when harness spawns the child process it builds a new environment
block, including the drive current directories, which is done by
VDir::BuildEnvironmentSpace().  This, rather than using the index of
the drive to build the "=C:=..." entries above, uses the first
letter of the stored entry, so the environment block would have
something like:


which the child perl would treat as the current directory for the T:

5 years ago[perl #128294] --no-module-tests
Father Chrysostomos [Tue, 31 May 2016 13:32:16 +0000 (06:32 -0700)]
[perl #128294] --no-module-tests

5 years agoUnicode/UCD.t: better handling of errors
Karl Williamson [Mon, 30 May 2016 16:39:05 +0000 (10:39 -0600)]
Unicode/UCD.t: better handling of errors

This now looks for the PERL_DIFF_TOOL environment variable, and if found
uses that to display some problems.  If not found, it uses is(), with a
message that better output is available through setting this variable.

PERL_DIFF_TOOL is a convention I wasn't familiar with.

5 years agoAdd an example of the '0x' string format.
Jarkko Hietaniemi [Sat, 28 May 2016 17:56:27 +0000 (13:56 -0400)]
Add an example of the '0x' string format.

I am not certain that I find the 'leading zero means hex' format
recommendable ('0123' meaning '0x123', the octal format has poisoned
the well); but water under the bridge.

5 years agoModify hints for Hurd per Debian ticket 825020.
Samuel Thibault [Mon, 30 May 2016 15:11:00 +0000 (11:11 -0400)]
Modify hints for Hurd per Debian ticket 825020.

For:  RT #128279

Patch written by Samuel Thibault, forwarded by Dominic Hargreaves.

5 years agoUpdate Test-Simple in blead
Chad Granum [Mon, 30 May 2016 12:56:31 +0000 (05:56 -0700)]
Update Test-Simple in blead

This updates to the latest Test-Simple. This fixes several small bugs
including noisy STDERR in the test suite, and leaking TEMP files.

5 years agoop.c:S_my_kid: Remove obsolete comment
Father Chrysostomos [Sun, 29 May 2016 22:48:24 +0000 (15:48 -0700)]
op.c:S_my_kid: Remove obsolete comment

/* XXX does this let anything illegal in? */

The commit that added that comment indeed allowed ‘our $$x’ and even
‘my $$x’, so it was a problem at the time.  It was this commit:

commit 77ca0c92d2c0e47301d906d355d9ab3afb6f6bcb
Author: Larry Wall <>
Date:   Fri Sep 24 14:59:37 1999 -0700

    Re: [PATCH 5.005_61] "our" declarations

This commit fixed the problem:

commit b6512f489e761186d508cf0b8b7705805cfefc52
Author: Mark-Jason Dominus <>
Date:   Mon Dec 24 13:14:48 2001 -0500

    PATCH: Restore "Can't declare scalar dereference in my" error

so the comment is no longer relevant.

5 years ago[perl #128266] libperl.t: Ignore $UNIX2003 suffix
Father Chrysostomos [Sun, 29 May 2016 21:18:07 +0000 (14:18 -0700)]
[perl #128266] libperl.t: Ignore $UNIX2003 suffix

5 years agoext/POSIX/t/sigaction.t: Skip uid and pid tests on GNU/Hurd
Dominic Hargreaves [Sat, 28 May 2016 14:51:53 +0000 (15:51 +0100)]
ext/POSIX/t/sigaction.t: Skip uid and pid tests on GNU/Hurd

SA_SIGINFO does not include uid and pid on GNU/Hurd, and this is
unlikely to change in the near future, so skip these tests.

Thanks to Samuel Thibault for the report.


5 years agopodcheck.t: Include tr// and y// detection
Karl Williamson [Wed, 25 May 2016 19:22:26 +0000 (13:22 -0600)]
podcheck.t: Include tr// and y// detection

These are like regular expressions, and for syntactic purposes can be
treated as such.

5 years agoMerge branch to update Pod::Checker into blead
Karl Williamson [Fri, 27 May 2016 17:24:57 +0000 (11:24 -0600)]
Merge branch to update Pod::Checker into blead

This merge branch contains two commits, which should be considered
inseperable.  The first updates Pod::Checker, and the second changes
podcheck.t to use the new Pod::Checker.

This is the biggest remaining step in allowing Pod::Parser to be
removed from core.  podcheck.t still uses Pod::Parser to extract just
the pod from files.  That dependency can be removed when Pod::Simple
changes to allow equivalent functionality, something I myself am working

There are two cpan .t files (both in pod2usage) that use subcomponents
of Pod::Parser (Pod::Find and Pod::PlainText).  There appears to be
similar functionality in Pod::Simple, so that shouldn't be too hard to
fix, but I haven't looked further than finding that these aren't drop-in
replacements.  The pod2usage maintainer has been notified.

5 years agopodcheck.t: Use new Pod::Checker
Karl Williamson [Wed, 25 May 2016 17:10:18 +0000 (11:10 -0600)]
podcheck.t: Use new Pod::Checker

podcheck.t extends the Pod::Checker class.  Pod::Checker has been
rewritten to base off of Pod::Simple instead of Pod::Parser, and so
podcheck.t must switch to use use the completely new methods defined.

5 years agoUpdate Pod::Checker to CPAN version 1.72
Karl Williamson [Wed, 25 May 2016 17:10:23 +0000 (11:10 -0600)]
Update Pod::Checker to CPAN version 1.72

This is now based on Pod::Simple instead of Pod::Parser

podcheck.t will fail until the next commit is done.

5 years agoSubject: Pod::Checker: convert files from DOS to unix
Karl Williamson [Thu, 26 May 2016 23:33:32 +0000 (17:33 -0600)]
Subject: Pod::Checker: convert files from DOS to unix

This is in preparation for applying patches to these.  git am failed on
these.  Only files that need to be DOS should be.

The version is bumped to 1.72, which is what version the real patches
are from.

5 years agopodcheck.t: Move a declaration
Karl Williamson [Wed, 25 May 2016 16:40:51 +0000 (10:40 -0600)]
podcheck.t: Move a declaration

This just moves a variable declaration and initialization to elsewhere
in the file where it can be used in a different place in a future
commit.  And it is now placed where it is more visible, as it really is
a program-level definition.

The code is outdented as well, and the comment unwrapped to be on a
single line, but no other changes were made.

5 years agoregcomp.c: Add shortcuts to some inversion list ops
Karl Williamson [Thu, 3 Mar 2016 21:24:39 +0000 (14:24 -0700)]
regcomp.c: Add shortcuts to some inversion list ops

When taking the union or intersection of two inversion lists, not
infrequently the result is the same as one of the inputs.  An example is
the union of a set that contains all code points with any other set.
The result is the set that contains all code points.  Also, not
infrequently, the result is to overwrite one of the inputs.  If the
other input contributed nothing to the result, the whole operation is
effectively a no-op, as the result has the same contents as the input it

It turns out that it is cheap to keep track of if just one input
contributes to the result.  This commit does that, and short-circuits
the rest of the code if it is going to turn out to be a no-op.

5 years agoext/VMS-DCLsym/ Fix missing pod reference
Karl Williamson [Thu, 26 May 2016 01:23:57 +0000 (19:23 -0600)]
ext/VMS-DCLsym/ Fix missing pod reference

This looks like it was meant to point to a later heading or item in the
document, but which was removed at some point, with the reference left
dangling.  I confirmed with Craig Berry that what it is referring to is
the text in the next paragraph.

5 years agoDevel::Peek: Fix a couple of pod glitches
Karl Williamson [Wed, 25 May 2016 04:14:59 +0000 (22:14 -0600)]
Devel::Peek: Fix a couple of pod glitches

5 years agoporting/dual-life.t: Clarify test messages
Karl Williamson [Wed, 25 May 2016 01:35:17 +0000 (19:35 -0600)]
porting/dual-life.t: Clarify test messages

This changes the message output by the ok() sub to show precisely what
is being tested

5 years agofix locale.c under -DPERL_GLOBAL_STRUCT(_PRIVATE)
David Mitchell [Wed, 25 May 2016 18:15:27 +0000 (19:15 +0100)]
fix locale.c under -DPERL_GLOBAL_STRUCT(_PRIVATE)

With that build option initialised statics aren't allowed (no BSS).
So just disable using $ENV{PERL_DEBUG_LOCALE_INIT} under

5 years agoporting/libperl.t: better diag output
David Mitchell [Wed, 25 May 2016 17:50:10 +0000 (18:50 +0100)]
porting/libperl.t: better diag output

when it complains about unexpected BSS symbols, list them

5 years agoadd missing dVAR in pp_avhvswitch
David Mitchell [Wed, 25 May 2016 17:30:17 +0000 (18:30 +0100)]
add missing dVAR in pp_avhvswitch

make it build under -DPERL_GLOBAL_STRUCT.

5 years agoExtUtils::ParseXS: Silence some pod warnings
Karl Williamson [Wed, 25 May 2016 03:31:13 +0000 (21:31 -0600)]
ExtUtils::ParseXS: Silence some pod warnings

These were found by the new Pod::Checker, soon to be committed.

5 years agoPathTools: fix Pod::Checker warning for pod
Karl Williamson [Wed, 25 May 2016 03:23:59 +0000 (21:23 -0600)]
PathTools: fix Pod::Checker warning for pod

The new Pod::Checker soon to be commited doesn't like lines with only
white space.

5 years agoPod::Functions/Functions_pm.PL: Fix pod error
Karl Williamson [Thu, 28 Apr 2016 22:53:40 +0000 (16:53 -0600)]
Pod::Functions/Functions_pm.PL: Fix pod error

This is trailing white space, that is warned against by the
new version of Pod::Checker that is soon to be committed.

5 years agolocale.c: don't use strcpy()
David Mitchell [Tue, 24 May 2016 22:45:48 +0000 (23:45 +0100)]
locale.c: don't use strcpy()

A recent commit added a strcpy() to locale.c.

This is Frowned Upon, and was making porting/libperl.t fail.

Since PL_strxfrm_min_char appears to be a 3-byte buffer, I've just changed
it to manually copy 3 individual bytes - which is probably more efficient
than a full-blown Copy(). But I haven't looked closely at whether this is
correct - this is more of quick fix to get smoking passing again.

5 years agolocale.c: Make locale collation predictions adaptive
Karl Williamson [Fri, 13 May 2016 17:32:44 +0000 (11:32 -0600)]
locale.c: Make locale collation predictions adaptive

We try to avoid calling strxfrm() more than needed by predicting its
needed buffer size.  This generally works because the size of the
transformed string is roughly linear with the size of the input string.
But the key word here is "roughly".  This commit changes things, so that
when we guess low, we change the coefficients in the equation to guess
higher the next time.

5 years agolocale.c: Not so aggressive collation memory use guess
Karl Williamson [Tue, 12 Apr 2016 20:28:57 +0000 (14:28 -0600)]
locale.c: Not so aggressive collation memory use guess

On platforms where  strxfrm() is not well-behaved, and it fails because
it needs a larger buffer, prior to this commit, the size was doubled
before trying again.  This could require a lot of memory on large
inputs.  I'm uncomfortable with such a big delta on very large strings.
This commit changes it so it is not so aggressive.  Note that this now
only gets called on platforms whose strxfrm() is not well behaved, and I
think the size prediction is better due to a recent commit, and there
isn't really much of a downside in not gobbling up memory so fast.

5 years agolocale.c: Add some debugging statements
Karl Williamson [Wed, 18 May 2016 19:18:01 +0000 (13:18 -0600)]
locale.c: Add some debugging statements

5 years agolocale.c: Minor cleanup
Karl Williamson [Wed, 18 May 2016 19:17:25 +0000 (13:17 -0600)]
locale.c: Minor cleanup

This replaces an expression with what I think is an easier to understand
macro, and eliminates a couple of temporary variables that just
cluttered things up.

5 years agolocale.c: Fix some debugging so will output during init
Karl Williamson [Sun, 15 May 2016 00:23:02 +0000 (18:23 -0600)]
locale.c: Fix some debugging so will output during init

Because the command line options are currently parsed after the locale
initialization is done, an environment variable is read to allow
debugging of the function that is called to do the initialization.
However, any functions that it calls, prior to this commit, were unaware
of this and so did not output debugging.  This commit fixes most of