This is a live mirror of the Perl 5 development currently hosted at
4 years agoDon’t assign PL_curstash twice in init_main_stash
Father Chrysostomos [Mon, 28 Aug 2017 19:52:10 +0000 (12:52 -0700)]
Don’t assign PL_curstash twice in init_main_stash

This commit:

commit 8990e3071044a96302560bbdb5706f3e74cf1bef
Author: Larry Wall <>
Date:   Fri Mar 18 00:00:00 1994 +0000

    perl 5.0 alpha 6

added ‘curstash = defstash’ to perl.c:init_main_stash, which already
had such an assignment a few lines above.  So it is redundant, and
always has been.

4 years agoSet PL_curstname in pp_ctl.c:doeval
Father Chrysostomos [Mon, 28 Aug 2017 19:40:58 +0000 (12:40 -0700)]
Set PL_curstname in pp_ctl.c:doeval

Otherwise we get the wrong name in sub error and warning messages:

$ ./miniperl -we 'package bar { sub bar { eval q"sub foo ([)" } } bar::bar'
Missing ']' in prototype for main::foo : [ at (eval 1) line 1.

(PL_curstname is probably used for other things too.  I didn’t check.)

I can arbitrarily set the package name in the warning to what-
ever I want:

$ ./miniperl -we 'package bar { sub bar { eval q"sub foo ([)" } } package fwipm; BEGIN { bar::bar }'
Missing ']' in prototype for fwipm::foo : [ at (eval 1) line 1.

4 years agoMove PERL_INTERNAL_RAND_SEED set-up after init_stacks().
Craig A. Berry [Sat, 7 Oct 2017 18:31:29 +0000 (13:31 -0500)]
Move PERL_INTERNAL_RAND_SEED set-up after init_stacks().

This code may be calling things that put SVs on the stack, so
we should have a stack before doing so.  That risk might be
theoretical on most platforms, but on VMS, the getenv
implementation mortalizes an SV when doing lookups.  This meant
that on a DEBUGGING build with PERL_DESTRUCT_LEVEL set, any code
or no code at all would warn like so:

  $ perl -e ";"
  Attempt to free temp prematurely: SV 0x845718 during global destruction.
  Scalars leaked: 1

Getting the stack initialized first fixes that.

4 years agoUpdate Test-Simple to CPAN version 1.302098
Chris 'BinGOs' Williams [Thu, 5 Oct 2017 12:35:08 +0000 (13:35 +0100)]
Update Test-Simple to CPAN version 1.302098


1.302098  2017-10-03 06:13:49-07:00 America/Los_Angeles

    - Add docs for test2_stdout and test2_stderr
    - Fix 5.6 support

4 years agoUpdate Digest-SHA to CPAN version 5.98
Chris 'BinGOs' Williams [Thu, 5 Oct 2017 12:32:45 +0000 (13:32 +0100)]
Update Digest-SHA to CPAN version 5.98


5.98  Wed Oct  4 00:40:02 MST 2017
  - removed "portable" mode from shasum and addfile
    -- rarely used, mostly in outdated systems
    -- potentially confusing features (e.g. \r\r\n -> \n)
    -- Universal Newlines mode (-U) a much cleaner approach
      -- mimics Universal Newlines in Python
  - shasum now uses Digest::SHA explicitly
    -- no longer loads Digest::SHA::PurePerl as an option
      -- hence no need for -R switch
    -- Digest::SHA::PurePerl has its own shasum: shasumpp

4 years agoperldelta for 0cbfaef69bb7
Tony Cook [Wed, 4 Oct 2017 22:39:17 +0000 (09:39 +1100)]
perldelta for 0cbfaef69bb7

4 years agopp_require: return earlier when module is already loaded
Nicolas R [Tue, 26 Sep 2017 23:07:47 +0000 (18:07 -0500)]
pp_require: return earlier when module is already loaded

4 years agoNote that vutil.c is customized in blead
Steve Hay [Wed, 4 Oct 2017 12:55:19 +0000 (13:55 +0100)]
Note that vutil.c is customized in blead

This was done by 7394beb140 but didn't make it into the last version
upgrade (0.9918).

4 years agoFix mapping of Filter-Util-Call/
Steve Hay [Wed, 4 Oct 2017 12:40:10 +0000 (13:40 +0100)]
Fix mapping of Filter-Util-Call/

and note that t/z_manifest.t is excluded.

4 years agoNote Devel-PPPort/parts/embed.fnc is customized in blead
Steve Hay [Wed, 4 Oct 2017 12:33:06 +0000 (13:33 +0100)]
Note Devel-PPPort/parts/embed.fnc is customized in blead

4 years agoChange BadMETA.yml EOLs to match CPAN distro's version
Steve Hay [Wed, 4 Oct 2017 12:30:41 +0000 (13:30 +0100)]
Change BadMETA.yml EOLs to match CPAN distro's version

4 years agoNote perlfaq/lib/perlfaq[58].pod are customized in blead
Steve Hay [Wed, 4 Oct 2017 12:24:58 +0000 (13:24 +0100)]
Note perlfaq/lib/perlfaq[58].pod are customized in blead

4 years agoNote pod/perlpodstyle.pod is customized in blead
Steve Hay [Wed, 4 Oct 2017 12:20:10 +0000 (13:20 +0100)]
Note pod/perlpodstyle.pod is customized in blead

4 years agoNote Net-Ping/t/510_ping_udp.t is also customized in blead
Steve Hay [Wed, 4 Oct 2017 12:19:11 +0000 (13:19 +0100)]
Note Net-Ping/t/510_ping_udp.t is also customized in blead

4 years agoRegen customized.dat
Steve Hay [Wed, 4 Oct 2017 12:14:27 +0000 (13:14 +0100)]
Regen customized.dat

4 years agoPod-Simple-3.35 is KHW, not MARCGREEN
Steve Hay [Wed, 4 Oct 2017 12:13:39 +0000 (13:13 +0100)]
Pod-Simple-3.35 is KHW, not MARCGREEN

4 years agosync-with-cpan: curl support
Father Chrysostomos [Sun, 24 Sep 2017 21:05:56 +0000 (14:05 -0700)]
sync-with-cpan: curl support

4 years agoPorting/sync-with-cpan: 5.12 compatibility
Father Chrysostomos [Sun, 24 Sep 2017 20:27:18 +0000 (13:27 -0700)]
Porting/sync-with-cpan: 5.12 compatibility

So I can type simply ‘Porting/sync-with-cpan Test::Simple’ and run
it with the system perl.

4 years agoUpgrade Test-Simple from version 1.302096 to 1.302097
Steve Hay [Tue, 3 Oct 2017 07:12:02 +0000 (08:12 +0100)]
Upgrade Test-Simple from version 1.302096 to 1.302097

4 years agoUpgrade Test-Simple from version 1.302073 to 1.302096
Steve Hay [Mon, 2 Oct 2017 13:03:48 +0000 (14:03 +0100)]
Upgrade Test-Simple from version 1.302073 to 1.302096

(includes regen/

4 years agofix some thinkos in the new hash code
Yves Orton [Mon, 2 Oct 2017 13:00:58 +0000 (15:00 +0200)]
fix some thinkos in the new hash code

pointed out by Tux on irc. I dont think this will solve
all his problems, but it is a first step....

4 years agoAdd tests for 'p' and 'x' commands without subsequent whitespace.
James E Keenan [Sun, 3 Sep 2017 02:28:20 +0000 (22:28 -0400)]
Add tests for 'p' and 'x' commands without subsequent whitespace.

Tests pass on perl-5.16.3 but should fail (until source code is corrected) on
subsequent versions.

For: RT #120174

4 years agoDebugger cmds not requiring spaces
Smylers [Wed, 6 Sep 2017 11:32:09 +0000 (12:32 +0100)]
Debugger cmds not requiring spaces

Make debugger commands like these work again, not requiring a space
between a single-letter command and a following argument which starts with


Regressions were in d478d7a0 and 8f144dfc.

4 years agoRemove outdated references to 'swap'.
James E Keenan [Thu, 8 Jun 2017 12:19:53 +0000 (08:19 -0400)]
Remove outdated references to 'swap'.

Per: RT # 131532

4 years agoRevert "Revert "Fallbacks for Perl_fp_class_denorm().""
Sawyer X [Thu, 28 Sep 2017 20:34:39 +0000 (22:34 +0200)]
Revert "Revert "Fallbacks for Perl_fp_class_denorm().""

This reverts commit 2749d0395cc1e21d69af38cde41490699fc6e3ab.

The original commit:

    commit e77299d3416e7e737523afdc0642734205e46d59
    Author: Jarkko Hietaniemi <>
    Date:   Mon May 29 09:28:30 2017 +0300

        Fallbacks for Perl_fp_class_denorm().

        These may be needed if the compiler doesn't expose the C99 math
        without some special switches.

This provides a fix for CentOS 5.

4 years agoDocument that POSIX::localtime needs explicit argument.
James E Keenan [Tue, 26 Sep 2017 12:52:15 +0000 (08:52 -0400)]
Document that POSIX::localtime needs explicit argument.

For: RT #132145

4 years agoUpdate File-Fetch to CPAN version 0.54
Chris 'BinGOs' Williams [Mon, 25 Sep 2017 08:54:23 +0000 (09:54 +0100)]
Update File-Fetch to CPAN version 0.54


0.54        Sun Sep 24 19:46:04 2017

* Switch test URL from to

4 years agoMore than twist in my sobriety
Chris 'BinGOs' Williams [Sat, 23 Sep 2017 09:03:43 +0000 (10:03 +0100)]
More than twist in my sobriety

4 years agoTick off 5.24.3 and 5.26.1
Steve Hay [Fri, 22 Sep 2017 22:42:13 +0000 (23:42 +0100)]
Tick off 5.24.3 and 5.26.1

4 years agoAdd perldeltas for 5.24.3 and 5.26.1
Steve Hay [Fri, 22 Sep 2017 22:40:38 +0000 (23:40 +0100)]
Add perldeltas for 5.24.3 and 5.26.1

4 years agoImport Module::CoreList data for 5.24.3 and 5.26.1
Steve Hay [Fri, 22 Sep 2017 22:28:01 +0000 (23:28 +0100)]
Import Module::CoreList data for 5.24.3 and 5.26.1

4 years agoEpigraphs for 5.24.3 and 5.26.1
Steve Hay [Fri, 22 Sep 2017 21:49:24 +0000 (22:49 +0100)]
Epigraphs for 5.24.3 and 5.26.1

4 years ago5.24.3 and 5.26.1 today
Steve Hay [Fri, 22 Sep 2017 19:50:51 +0000 (20:50 +0100)]
5.24.3 and 5.26.1 today

4 years agoTwo-space indent for 5.27.4's epigraph
Steve Hay [Fri, 22 Sep 2017 18:30:07 +0000 (19:30 +0100)]
Two-space indent for 5.27.4's epigraph

and really correct release date for 5.27.3

4 years agoWe already have version-0.9918
Chris 'BinGOs' Williams [Fri, 22 Sep 2017 12:31:43 +0000 (13:31 +0100)]
We already have version-0.9918

4 years agoUpdate Math-BigInt-FastCalc to CPAN version 0.5006
Chris 'BinGOs' Williams [Fri, 22 Sep 2017 11:55:42 +0000 (12:55 +0100)]
Update Math-BigInt-FastCalc to CPAN version 0.5006


2017-01-11 v0.5006 pjacklam

 * Fix syntax for required version of Math::BigInt::Lib.

 * Better checking of POD coverage.

 * Sync test files with Math-BigInt-1.999808.

4 years agoUpdate Math-BigInt to CPAN version 1.999811
Chris 'BinGOs' Williams [Fri, 22 Sep 2017 11:52:34 +0000 (12:52 +0100)]
Update Math-BigInt to CPAN version 1.999811


2017-03-15 v1.999811 pjacklam

 * Fix an old in the Math::BigFloat methods as_hex(), as_oct(), and as_bin()
   methods resulting in loss of accuracy. This bug was introduced in bug in
   Math-BigInt-1.76. Due to a naive copy and paste by me, and lack of tests,
   this bug was also present in the newer to_hex(), to_oct(), and to_bin()
   methods. This shows the bug, as it did not print "0xffff...":

       print Math::BigFloat -> from_hex("f" x 30) -> as_hex();

 * Fix incorrect formatting in the output from the Math::BigFloat methods
   to_hex(), to_oct(), and to_bin() when the output was zero. A prefix was
   added when it shouldn't have been.

 * Add tests to and for better testing of as_hex(),
   as_oct(), and as_bin() as well as to_hex(), to_oct(), and to_bin().

 * "Synchronize" tests and code formatting in and

2017-03-01 v1.999810 pjacklam

 * CPAN RT #120240 revealed that the problems with undefined values is still
   present. After a close examination, I believe the only way to get this
   really working is to to make blog() call objectify() differently depending
   on whether the base for the logarithm is undefined or not. That way we can
   avoid objectify() converting the undefined value to a zero. Ideally, we
   should warn about undefined values when used in any other context, but we'll
   handle that in a later release. See also the related changelog entry for

 * Fix the way the argument count is computed in objectify(). When an argument
   count of 0 is given, it means that we should objectify all input arguments.
   However, it turned out that the actual argument count was computed

 * Fix CPAN RT #120242 rearding c3 method resolution.

2017-02-10 v1.999809 pjacklam

 * When a new method is added to Math::BigInt or Math::BigFloat, and this new
   method requires a new backend library method, die with a suitable error
   message if the installed backend library does not support this new method.
   The error message says that the method requires a newer version of the
   backend library.

 * Fix typos in Math::BigFloat and Math::BigInt.

 * Add bfib() and blucas() to Math::BigInt. They return Fibonacci and Lucas
   numbers, respectively. The actual computation of the numbers is done by the
   backend library. Documented both methods in POD. Add test files bfib-mbi.t
   and blucas-mbi.t.

 * Add _fib() and _lucas() to Math::BigInt::Lib. They return Fibonacci and
   Lucas numbers, respectively. Document both methods in POD. Add test files
   author-lib-arithmetic-unary-_fib.t and author-lib-arithmetic-unary-_lucas.t.

2017-01-11 v1.999808 pjacklam

 * In Math::BigInt and Math::BigFloat, add methods bdfac() for double
   factorial. Add tests for this method.

 * In Math::BigInt and Math::BigFloat, add methods to_hex(), to_oct(), and
   to_bin() for hexadecimal, octal, and binary string output without prefix.
   Even for Math::BigFloat there is still only support for integer output. Add
   tests for these methods.

 * Add test for as_oct() corresponding to the old tests for as_hex() and

 * In Math::BigInt::Lib, add method _dfac() for double factorial. Add
   corresponding tests.

 * In Math::BigInt::Lib, fix bug in overloaded "int".

 * In Math::BigInt::Lib, implement much faster versions of _from_hex(),
   _from_oct(), and _from_bin().

 * In Makefile.PL, improve the wording in the message displayed if some of
   the installed backend libraries are not a subclass of Math::BigInt::Lib (and
   hence will not provide

 * Fix minor bugs in some of the author library test files (t/author-lib*.t).

 * Allow leading and trailing whitespace in the input to from_hex(),
   from_oct(), and from_bin().  Add tests to verify. This is a regressions
   (CPAN RT #119805).

2016-12-23 v1.999807 pjacklam

 * Add a message to Makefile.PL recommending upgrade if old libraries are
   installed. This message is more or less equivalent to the one appearing in
   Math-BigInt up until v1.997.

 * Improve the documentation (POD) in Math::BigInt::Lib.

 * Speed up _sqrt() and _root() in Math::BigInt::Lib.

 * Remove checking for exception cases (cases that would return +Inf, -Inf, or
   NaN) in Math::BigInt::Lib. It has been documented for a long time that such
   checking should be done by the caller.

 * Add library methods _to_bin(), _to_oct(), _to_hex(), which are equivalent to
   the _as_bin(), _as_oct(), and _as_hex() methods respectively, except that
   the _to_*() methods don't use a prefix in the output. This removes the need
   for the frequent removal of the various prefixes. Now each _as_*() method
   calls the equivalent _to_*() method, adds a prefix, and returns the output.
   The _to_*() methods are faster than the equivalent _as_*() methods were.

 * Add author test files for the methods _to_bin(), _to_oct(), and _to_hex().

 * Add library method _to_bytes(). The method _as_bytes() would have been
   called _to_bytes() if I had thought of it earlier. The method _as_bytes() is
   now just an alias to _to_bytes(). The _to_bytes() method also fixes a bug
   that was present in the _as_bytes() method. (CPAN RT #119346).

 * Add author test files for the method _to_bytes().

 * Add more tests for library methods _inc() and _dec(). When trying to bring
   the Math::BigInt::BitVect library back to life I realized that the test
   suite didn't catch certain errors in _inc() and _dec().

 * Die if trying to use as_bytes() or from_bytes() with a backend library that
   doesn't support the corresponding library methods.

 * Correct minor errors in the output messages in the test files.

 * Improve/correct various comments in the source code.

 * More diagnostic output is displayed by the author test files if the
   AUTHOR_DEBUGGING environment variable is set.

4 years agoUpdate Locale-Codes to CPAN version 3.54
Chris 'BinGOs' Williams [Fri, 22 Sep 2017 11:43:50 +0000 (12:43 +0100)]
Update Locale-Codes to CPAN version 3.54


VERSION 3.54 (2017-09-01; sbeck)


VERSION 3.53 (2017-07-25; sbeck)


Fixed the default error condition in legacy modules.

    With the addition of the OO module, better error handling was added (and it was on by default). The non-OO (legacy) modules did not report errors, so code that uses them, would now behave differently if invalid data were passed in.

    I have turned off error handling by default in the legacy modules. The show_errors method was added to each of the non-OO modules to report errors if desired.

    Reported by dmaestro on GitHub.

4 years agoUpdate EUCB version from CPAN
Chris 'BinGOs' Williams [Fri, 22 Sep 2017 11:41:19 +0000 (12:41 +0100)]
Update EUCB version from CPAN

4 years agoUpdate Time-HiRes to CPAN version 1.9746
Chris 'BinGOs' Williams [Fri, 22 Sep 2017 10:15:28 +0000 (11:15 +0100)]
Update Time-HiRes to CPAN version 1.9746


1.9746 [2017-08-17]
 - Unreliable t/usleep.t and t/utime.t tests [ #122819]
   Avoid testing for $dt = $t2 - $t1 and assuming $dt is less than
   some value since a heavily loaded machine can delay the $t2.
   Testing for greater than is fine.
 - Tweak the configuring messages about subsecond stat/utime.

1.9745 [2017-08-14]
  - Properly check for futimens/utimensat actually doing something.
    This should handle 'gnukfreebsd' (which has only stubs, so far
    we have been skipping the test) and as a new thing 'gnu' (Hurd)
    (also only stubs).  Thanks to Nigel Horne.
  - Scan in t/utime.t whether the filesystem (wherever File::Temp
    puts it tempfiles) supports subsecond timestamps.  This removes
    the fragile Linux/ext3 specific hack.  As a side effect, the
    setting of subsecond timestamps is tested only if reading of
    them is supported.  Thanks to Carsten Gaebler for the test idea,
    and Ryan Voots for testing.

1.9744 [2017-07-27]
  - add more potential clock constants, like CLOCK_MONOTONIC_FAST
    (available in FreeBSD), and not all potentially found clock
    constants were properly exported to be available from Perl,
    see your system's clock_gettime() documentation for the available ones

1.9743 [2017-07-20]
  - correct declared minimum Perl version (should be 5.6, was declared
    as 5.8 since 1.9727_03): blead af94b3ac
  - fix the fix for 'do file' to load hints in Makefile.PL: blead 3172fdbc

4 years agoUpdate Time-Piece to CPAN version 1.3202
Chris 'BinGOs' Williams [Fri, 22 Sep 2017 10:13:52 +0000 (11:13 +0100)]
Update Time-Piece to CPAN version 1.3202


1.3202  2017-09-13
        - Fix AIX compile

4 years agoUpdate Scalar-List-Utils to CPAN version 1.49
Chris 'BinGOs' Williams [Fri, 22 Sep 2017 10:10:18 +0000 (11:10 +0100)]
Update Scalar-List-Utils to CPAN version 1.49


1.49 -- 2017-09-08 12:25:54
   * Fixes for unit tests to pass on perl 5.6.2
   * Fix typo in documentation

4 years agoUpdate File-Path to CPAN version 2.15
Chris 'BinGOs' Williams [Fri, 22 Sep 2017 10:08:35 +0000 (11:08 +0100)]
Update File-Path to CPAN version 2.15


2.15 2017-07-29
    - Correct documentation error re possible arguments for rmtree().

4 years agoUpdate Digest-SHA to CPAN version 5.97
Chris 'BinGOs' Williams [Fri, 22 Sep 2017 10:05:46 +0000 (11:05 +0100)]
Update Digest-SHA to CPAN version 5.97


5.97  Wed Sep  6 02:23:02 MST 2017
  - added 'quiet' option to shasum
    -- thanks to Chris David for suggestion and initial patch
    -- ref. #122750
  - expanded shasum --help message
    -- to explain use of escaped FILE names

4 years agoAdd CvGvNAME_HEK helper
Nicolas R [Mon, 18 Sep 2017 20:37:48 +0000 (14:37 -0600)]
Add CvGvNAME_HEK helper

CvGvNAME_HEK can be used instead of the boilerplate:
CvNAMED(sv) ? CvNAME_HEK((CV *)sv) : GvNAME_HEK(CvGV(sv))

This is also saving an extra CvNAMED check from CvNAME_HEK.

4 years agoWhat a show, there they go smokin' up the sky, yeah.
Chris 'BinGOs' Williams [Thu, 21 Sep 2017 08:47:55 +0000 (09:47 +0100)]
What a show, there they go smokin' up the sky, yeah.

4 years agoChange save/restore behavior for comparisons
jpl [Mon, 28 Aug 2017 13:54:15 +0000 (09:54 -0400)]
Change save/restore behavior for comparisons

S_mergesortsv was saving the current comparison routine only when the
SORTf_DESC flag was set, but "restoring" it when ANY flag was set.
When some flag other than SORTf_DESC was set, this could lead to
the pointer to the comparison routine being set to NULL,
triggering a segfault when the routine was subsequently invoked.

4 years ago(perl #127663) skip the new in-place edit tests if File::Spec not loadable
Tony Cook [Thu, 21 Sep 2017 00:35:25 +0000 (10:35 +1000)]
(perl #127663) skip the new in-place edit tests if File::Spec not loadable

I expected File::Spec to be loadable at this point, since PathTools is
in, but that isn't loaded in minitest, so it failed.

The new tests in-place edit tests are now conditional on File::Spec

4 years agoBump perl version to 5.27.5, including Module::CoreList bits
John SJ Anderson [Wed, 20 Sep 2017 22:27:28 +0000 (15:27 -0700)]
Bump perl version to 5.27.5, including Module::CoreList bits

4 years agoNew perldelta for 5.27.5
John SJ Anderson [Wed, 20 Sep 2017 22:16:51 +0000 (15:16 -0700)]
New perldelta for 5.27.5

4 years agoPorting/release_schedule.pod: Record release of 5.27.4
John SJ Anderson [Wed, 20 Sep 2017 22:07:30 +0000 (15:07 -0700)]
Porting/release_schedule.pod: Record release of 5.27.4

4 years agoPorting/epigraphs.pod: correct release date for 5.27.3
John SJ Anderson [Wed, 20 Sep 2017 22:03:50 +0000 (15:03 -0700)]
Porting/epigraphs.pod: correct release date for 5.27.3

4 years agoEpigraph for 5.27.4
John SJ Anderson [Wed, 20 Sep 2017 22:03:28 +0000 (15:03 -0700)]
Epigraph for 5.27.4

4 years agoMerge branch 'release-5.27.4' into blead
John SJ Anderson [Wed, 20 Sep 2017 21:59:39 +0000 (14:59 -0700)]
Merge branch 'release-5.27.4' into blead

4 years agoRevert "test - Do not run test output at compilation time" v5.27.4
John SJ Anderson [Wed, 20 Sep 2017 19:54:16 +0000 (12:54 -0700)]
Revert "test - Do not run test output at compilation time"

This reverts commit d190dde9b72a7c306622389007b0dba86901ce52.

Changes in this commit broken `make minitest`, as discovered during
the 5.27.4 release process.

4 years agoadd new release to perlhist
John SJ Anderson [Wed, 20 Sep 2017 18:11:39 +0000 (11:11 -0700)]
add new release to perlhist

4 years agoFinalize perldelta for 5.27.4
John SJ Anderson [Wed, 20 Sep 2017 17:58:00 +0000 (10:58 -0700)]
Finalize perldelta for 5.27.4

4 years agoUpdate Module::CoreList for 5.27.4
John SJ Anderson [Wed, 20 Sep 2017 13:53:25 +0000 (06:53 -0700)]
Update Module::CoreList for 5.27.4

4 years agoprevent pod/builttoc spewing bad UTF-8 errors under PERL_UNICODE
Tony Cook [Wed, 20 Sep 2017 03:44:59 +0000 (13:44 +1000)]
prevent pod/builttoc spewing bad UTF-8 errors under PERL_UNICODE

4 years agoavoid sysread()/syswrite() warnings from the default :utf8 from PERL_UNICODE
Tony Cook [Wed, 20 Sep 2017 03:27:11 +0000 (13:27 +1000)]
avoid sysread()/syswrite() warnings from the default :utf8 from PERL_UNICODE

In a UTF-8 locale, if the PERL_UNICODE environment variable is set,
perl may add a :utf8 layer.

v5.23.1-197-gfb10a8a deprecated using sysread(), syswrite() etc on such
handles, which meant that a test run under PERL_UNICODE could produce
a significant number of deprecation warnings.

Prevent those warnings, typically by binmode(), but in one case by
disabling the warning.

4 years agouconfig.h: Regenerate for release
John SJ Anderson [Tue, 19 Sep 2017 16:04:05 +0000 (09:04 -0700)]
uconfig.h: Regenerate for release

4 years agoregen Configure and friends after backports
H.Merijn Brand [Tue, 19 Sep 2017 10:50:05 +0000 (12:50 +0200)]
regen Configure and friends after backports

4 years ago(perl #132008) make sure the test behaves without a tty
Tony Cook [Tue, 19 Sep 2017 07:40:52 +0000 (17:40 +1000)]
(perl #132008) make sure the test behaves without a tty

The test is intended to test how Term::ReadLine behaves without a tty
and mocks up an invalid tty.

Unfortunately some of the checks it does fail if the test starts without
a tty.

Modified the test to handle the lack of a tty.

4 years agoperldelta for 08ccc8101277
Tony Cook [Tue, 19 Sep 2017 01:25:59 +0000 (11:25 +1000)]
perldelta for 08ccc8101277

4 years ago(perl #131777) prevent non-'=' assign ops tokens in sub signatures
Tony Cook [Tue, 25 Jul 2017 04:36:28 +0000 (14:36 +1000)]
(perl #131777) prevent non-'=' assign ops tokens in sub signatures

The yacc grammar introduced in d3d9da4a7 uses ASSIGNOP to
represent the '=' used to introduce default values in subroutine
signatures, unfortunately the parser returns ASSIGNOP for non-simple
assignments, which allowed:

  sub foo ($x += 1) { ... }

to default $x to 1.

Modify yylex to accept only the simple assignment operator after a
subroutine parameter.

I'm not especially happy with the error recovery here.

4 years agoAPItest/t/locale.t: Fix to not show failures on OpenBsd
Karl Williamson [Sun, 17 Sep 2017 03:59:20 +0000 (21:59 -0600)]
APItest/t/locale.t: Fix to not show failures on OpenBsd

It turns out that this OS does not implement all of POSIX 2008, and so
certain tests were failing.  This moves the eval earlier and makes sure
it succeeds before calling the API function

4 years ago(perl #132008) try to prevent the similar mistakes in the future
Tony Cook [Mon, 18 Sep 2017 05:07:21 +0000 (15:07 +1000)]
(perl #132008) try to prevent the similar mistakes in the future

4 years agoTerm::ReadLine generates empty &STDERR files
James E Keenan [Fri, 1 Sep 2017 02:57:06 +0000 (22:57 -0400)]
Term::ReadLine generates empty &STDERR files

Revert to 2-arg open in one case.

If /dev/tty is inaccessible, redirecting file handles to STDERR:

       open (my $fh, ">&STDERR))

... cannot be done as a 3 arg open or it'll actually try to write to that

Bump $Term::ReadLine::VERSION.
Add unit test for RT #132008

For: RT #132008
(cherry picked from commit e4dc68d725b19f46c6fca9423e6e7a0eaeff47f4)
Signed-off-by: Nicolas R <>

4 years ago(127663) fix some portability issues with the new in-place edit
Tony Cook [Mon, 18 Sep 2017 01:18:55 +0000 (11:18 +1000)]
(127663) fix some portability issues with the new in-place edit

- renameat() is present but broken for absolute paths on FreeBSD 11,
  add a workaround.

- the new implementation uses linkat() but the availability checks
  in doio.c and the tests didn't check for it.

4 years agoRevise tests to account for d_linkat.
James E Keenan [Thu, 14 Sep 2017 16:38:13 +0000 (12:38 -0400)]
Revise tests to account for d_linkat.

4 years agoMake use of *at functions dependent upon HAS_LINKAT.
James E Keenan [Thu, 14 Sep 2017 14:12:01 +0000 (10:12 -0400)]
Make use of *at functions dependent upon HAS_LINKAT.

As suggested by Zefram.

For: RT #132087.

4 years ago(perl #127663) work around what appears to be a freebsd bug
Tony Cook [Mon, 18 Sep 2017 00:39:48 +0000 (10:39 +1000)]
(perl #127663) work around what appears to be a freebsd bug

renameat() on FreeBSD 11 fails if the paths supplied are absolute

4 years ago(perl #132087) correct *at() function detection on older darwin
Tony Cook [Fri, 15 Sep 2017 00:25:10 +0000 (10:25 +1000)]
(perl #132087) correct *at() function detection on older darwin

4 years agoRevert changes to t/op/threads-dirh.t in 1ce8be81dfaf09bc8a07.
James E Keenan [Fri, 15 Sep 2017 23:46:03 +0000 (19:46 -0400)]
Revert changes to t/op/threads-dirh.t in 1ce8be81dfaf09bc8a07.

They were causing failures on smoke testers running threaded builds on Linux.

For: RT #132092

4 years agotest - Do not run test output at compilation time
Nicolas R [Thu, 14 Sep 2017 20:52:37 +0000 (14:52 -0600)]
test - Do not run test output at compilation time

Even if in most of the cases it seems ok to print
output during compilation time, this is a pretty
bad idea (when compiling the test for example).

Run all the tests at compile time, but only
print the test status at run time.

(Trailing whitespace cleanup by committer.)

For: RT # 132092

4 years agotest - Do not use B which is a reserved namespace
Nicolas R [Thu, 14 Sep 2017 20:52:19 +0000 (14:52 -0600)]
test - Do not use B which is a reserved namespace

B is already a reserved namespace. This is a bad idea
to use B during unit test, as this increase the complexity
when using one of the B subpackage to run the test.

Simply rename B to BB ( and A to AA ).

(Whitesapce cleanup by committer.)

For: RT # 132092

4 years agotests - remove useless setting in BEGIN
Nicolas R [Thu, 14 Sep 2017 20:51:42 +0000 (14:51 -0600)]
tests - remove useless setting in BEGIN

These two tests are not using
and do not need to load any special file.

No need for fancy setup in BEGIN, all the most
we cannot use the generic set_up_inc helper.

Simply remove the useless BEGIN block.

4 years agotests - Use set_up_inc helper to set @INC
Nicolas R [Thu, 14 Sep 2017 20:51:13 +0000 (14:51 -0600)]
tests - Use set_up_inc helper to set @INC

Test plan should not be declared at compile time

4 years agoParenthesize macro arguments to ninstr()
Karl Williamson [Fri, 15 Sep 2017 03:58:14 +0000 (21:58 -0600)]
Parenthesize macro arguments to ninstr()

This did not work properly if called if expressions for arguments.

Could someone write a porting test to look for non-parenthesized macro
arguments involved in expressions

4 years agot/run/locale.t: Move function call
Karl Williamson [Mon, 11 Sep 2017 18:30:14 +0000 (12:30 -0600)]
t/run/locale.t: Move function call

I think its better form to call the function after the 'use' statement that
imported the function being called, even though it's available
throughout the enclosing block.

4 years agolocale.c: Show how the number '112' was derived
Karl Williamson [Mon, 11 Sep 2017 15:48:33 +0000 (09:48 -0600)]
locale.c: Show how the number '112' was derived

It's unclear why the code uses this number, so expand out the expression
that yields that, which makes it clearer.

4 years agoTest for 0e3f4440d849cf8fca676f87e574164e33cf2e13
Abigail [Wed, 13 Sep 2017 22:17:53 +0000 (00:17 +0200)]
Test for 0e3f4440d849cf8fca676f87e574164e33cf2e13

Commit 0e3f4440d849cf8fca676f87e574164e33cf2e13 fixes issue #131868
by silencing a warning which should not happen. This patch checks
that the warning is not happening.

4 years agoFix #131868 - silence quantifier warnings for regex gosub
Yves Orton [Wed, 13 Sep 2017 16:04:43 +0000 (18:04 +0200)]
Fix #131868 - silence quantifier warnings for regex gosub

We check that numerically quantified subpatterns can match something,
so that we can detect things like (){4}. However, we produce false positives
when using regex recursion. This is related to slow-downs in grammar matches
in Perl 5.20 which were fixed by a51d618a82a7057c3aabb600a7a8691d27f44a34.

In an ideal world we would do a lot of work and this false-positive would not
happen, but that requires more round tuits than I have available

4 years agoin hash init code preserve constness
Yves Orton [Wed, 13 Sep 2017 11:34:17 +0000 (13:34 +0200)]
in hash init code preserve constness

This causes warnings in some our builds as can be seen in some
smoke reports:

  zaphod32_hash.h:185:17: warning: cast discards '__attribute__((const))'
  qualifier from pointer target type [-Wcast-qual]

4 years agoavoid 'the address of ... will always evaluate as ...' warns in mem macros
Yves Orton [Wed, 13 Sep 2017 11:30:25 +0000 (13:30 +0200)]
avoid  'the address of ... will always evaluate as ...' warns in mem macros

In f14cf363205 we added asserts to our memory macros (Copy(), Zero() etc)
to ensure that the target is non-null. These asserts throw warnings like

    perl.c: In function ‘Perl_eval_sv’:
    perl.c:2976:264: warning: the address of ‘myop’ will always evaluate
    as ‘true’ [-Waddress]
         Zero(&myop, 1, UNOP);

which is annoying. This patch changes how these asserts are coded so
we avoid the warning. Thanks to Zefram for the fix.

4 years agoCheck for Unicode replacement character in t/porting/podcheck.t
Dagfinn Ilmari Mannsåker [Mon, 11 Sep 2017 15:55:17 +0000 (16:55 +0100)]
Check for Unicode replacement character in t/porting/podcheck.t

Pod::Simple replaces bytes that aren't valid according to the
document's encoding (declared or auto-detected) \N{REPLACEMENT
CHARACTER}, so catch that.

4 years agoFix misplaced =back in t/porting/podcheck.t
Dagfinn Ilmari Mannsåker [Mon, 11 Sep 2017 15:51:28 +0000 (16:51 +0100)]
Fix misplaced =back in t/porting/podcheck.t

The list of pedantic checks was mistakenly nested inside the last
mandatory check.

4 years agoFix Windows-1252 em-dashes in latest epigraphs
Dagfinn Ilmari Mannsåker [Mon, 11 Sep 2017 15:53:50 +0000 (16:53 +0100)]
Fix Windows-1252 em-dashes in latest epigraphs

4 years agoperldelta for ae2cf9f6 and f6107ca2
Dagfinn Ilmari Mannsåker [Mon, 11 Sep 2017 14:49:32 +0000 (15:49 +0100)]
perldelta for ae2cf9f6 and f6107ca2

4 years agoperldelta for 9c6681cc159f
Tony Cook [Mon, 11 Sep 2017 05:28:55 +0000 (15:28 +1000)]
perldelta for 9c6681cc159f

4 years agoNot jhi, lwall.
Jarkko Hietaniemi [Mon, 11 Sep 2017 04:53:23 +0000 (07:53 +0300)]
Not jhi, lwall.

4 years ago[perl #127663] safer in-place editing
Tony Cook [Mon, 11 Sep 2017 04:48:21 +0000 (14:48 +1000)]
[perl #127663] safer in-place editing

4 years ago(perl #127663) fallback to looking for work file if st_ino unusable
Tony Cook [Tue, 15 Aug 2017 23:17:25 +0000 (09:17 +1000)]
(perl #127663) fallback to looking for work file if st_ino unusable

4 years ago(perl #127663) reject a changed directory for relative in-place filenames
Tony Cook [Wed, 12 Jul 2017 04:25:32 +0000 (14:25 +1000)]
(perl #127663) reject a changed directory for relative in-place filenames

based in the inode/device numbers when we don't have the *at()

4 years ago(perl #127663) test we fail if the work file can't be renamed
Tony Cook [Thu, 12 Jan 2017 02:52:04 +0000 (13:52 +1100)]
(perl #127663) test we fail if the work file can't be renamed

and ensure we (attempt to) clean up the work file

4 years ago(perl #127663) test we fail if the backup rename fails
Tony Cook [Thu, 12 Jan 2017 02:51:01 +0000 (13:51 +1100)]
(perl #127663) test we fail if the backup rename fails

and that we clean up the temp file

4 years ago(perl #127663) clean up any files left behind
Tony Cook [Thu, 12 Jan 2017 00:02:52 +0000 (11:02 +1100)]
(perl #127663) clean up any files left behind

The rename work file test will leave the work file, if the other tests
fail for some reason they might also leave files.

4 years ago(perl #127663) don't do inplace renaming etc in child processes
Tony Cook [Wed, 11 Jan 2017 23:58:58 +0000 (10:58 +1100)]
(perl #127663) don't do inplace renaming etc in child processes

This avoids trying to rename the work file over the original
multiple times, which could make the implicit (or explicit) close

This is an incompatibility with the pre-workfile version of in-place
editing, since you could previously fork a child to do process a
given file, but hopefully this is a rare case.

4 years ago(perl #127663) don't do inplace renaming etc in child threads
Tony Cook [Wed, 11 Jan 2017 23:26:47 +0000 (10:26 +1100)]
(perl #127663) don't do inplace renaming etc in child threads

This also avoids double closedir()ing the directory handle.

4 years ago(perl #127663) test chdir() within an in-place edit loop
Tony Cook [Mon, 9 Jan 2017 06:02:38 +0000 (17:02 +1100)]
(perl #127663) test chdir() within an in-place edit loop