This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
6 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
punctuation:

  p$^V
  x@ARGV
  x\@ARGV
  x\%INC

Regressions were in d478d7a0 and 8f144dfc.

6 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

6 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 <jhi@iki.fi>
    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.

6 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

6 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

  [DELTA]

0.54        Sun Sep 24 19:46:04 2017

* Switch test URL from www.cpan.org to httpbin.org

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

  [DELTA]

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.

6 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

  [DELTA]

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 bigintpm.inc and bigfltpm.inc 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 bigintpm.inc and bigfltpm.inc.

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
   v1.999801.

 * 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
   incorrectly.

 * 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
   as_bin().

 * 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.

6 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

  [DELTA]

VERSION 3.54 (2017-09-01; sbeck)

NEW CODE(s)

VERSION 3.53 (2017-07-25; sbeck)

NEW CODE(s)

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.

6 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

6 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

  [DELTA]

1.9746 [2017-08-17]
 - Unreliable t/usleep.t and t/utime.t tests [rt.cpan.org #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

6 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

  [DELTA]

1.3202  2017-09-13
        - Fix AIX compile

6 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

  [DELTA]

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

6 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

  [DELTA]

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

6 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

[DELTA]

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. rt.cpan.org #122750
  - expanded shasum --help message
    -- to explain use of escaped FILE names

6 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.

6 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.

6 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.

6 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 buildcustomize.pl, but that isn't loaded in minitest, so it failed.

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

6 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

6 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

6 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

6 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

6 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

6 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

6 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.

6 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

6 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

6 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

6 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

6 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.

6 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

6 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

6 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.

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

6 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.

6 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

6 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

6 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
file.

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

For: RT #132008
(cherry picked from commit e4dc68d725b19f46c6fca9423e6e7a0eaeff47f4)
Signed-off-by: Nicolas R <atoomic@cpan.org>
xx

6 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.
  https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=222258

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

6 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.

6 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.

6 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
paths.

6 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

6 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

6 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

6 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

6 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 test.pl
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.

6 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

6 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

6 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.

6 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.

6 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.

6 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

6 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]

6 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.

6 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.

6 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.

6 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

6 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

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

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

https://perl5.git.perl.org/perl.git/commitdiff/c529f79d594c53d3968d464c57ac24a21137dd09

https://perl5.git.perl.org/perl.git/commitdiff/c529f79d594c53d3968d464c57ac24a21137dd09#patch68

6 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

6 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

6 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()
functions.

6 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

6 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

6 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.

6 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
fail.

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.

6 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.

6 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

6 years ago(perl #127663) use *at() functions to handle perl code that chdirs
Tony Cook [Mon, 12 Dec 2016 22:03:08 +0000 (09:03 +1100)]
(perl #127663) use *at() functions to handle perl code that chdirs

Unfortunately this means systems that don't have the *at() functions
aren't protected from code that chdir()s in the middle of in-place
editing a file.

6 years agoadd probes for openat, unlinkat, renameat, linkat and fchmodat
Tony Cook [Mon, 12 Dec 2016 03:26:30 +0000 (14:26 +1100)]
add probes for openat, unlinkat, renameat, linkat and fchmodat

6 years ago(perl #127663) provide limited control for the internal drand48()
Tony Cook [Wed, 7 Dec 2016 22:38:55 +0000 (09:38 +1100)]
(perl #127663) provide limited control for the internal drand48()

perl can be built without PERL_INTERNAL_RAND_SEED support to reduce
it's attack surface.

6 years ago(perl #127663) test that die/exit leave the original file
Tony Cook [Tue, 2 Aug 2016 06:05:22 +0000 (16:05 +1000)]
(perl #127663) test that die/exit leave the original file

6 years ago(perl #127663) discard any output if not closed properly
Tony Cook [Wed, 3 Aug 2016 04:43:59 +0000 (14:43 +1000)]
(perl #127663) discard any output if not closed properly

It can be closed by either iterating to the next file, or by
an explicit close(ARGVOUT);

6 years ago(perl #127663) add more in-place edit tests
Tony Cook [Mon, 23 May 2016 23:06:18 +0000 (09:06 +1000)]
(perl #127663) add more in-place edit tests

test that setuid is preserved with nested in-place editing, which
fails previously.

6 years ago(perl #127663) all platforms no longer require a backup file
Tony Cook [Thu, 19 May 2016 05:22:32 +0000 (15:22 +1000)]
(perl #127663) all platforms no longer require a backup file

Platforms that disallow deleting an open file, like Win32, Cygwin,
previously required a backup extension (defaulted for Cygwin), but
since we now write to a work file that's no longer necessary (but
might still be desirable.)

6 years ago(perl #127663) safer in-place editing
Tony Cook [Wed, 11 Jan 2017 03:49:53 +0000 (14:49 +1100)]
(perl #127663) safer in-place editing

Previously in-place editing opened the file then immediately
*replaced* the file, so if an error occurs while writing the output,
such as running out of space, the content of the original file is lost.

This changes in-place editing to write to a work file which is renamed
over the original only once the output file is successfully closed.

It also fixes an issue with setting setuid/setgid file modes for
recursive in-place editing.

6 years ago(perl #127663) only test renaming directories with rename() available.
Tony Cook [Thu, 4 Aug 2016 04:34:21 +0000 (14:34 +1000)]
(perl #127663) only test renaming directories with rename() available.

Perl's rename implementation falls back to link() to rename when
rename() isn't available, which is either disallowed or dangerous.

6 years ago(perl #127663) add our own mkstemp() implementation
Tony Cook [Thu, 4 Aug 2016 04:30:13 +0000 (14:30 +1000)]
(perl #127663) add our own mkstemp() implementation

Needed to generate temp files for safer in-place editing.

Not based on any particular implementation, the BSD implementations
tend to be wrappers around a megafunction that also does a few variations
of mkstemp() and mkdtemp(), which we don't need (yet.)

This might also be useful as a replacement for broken mkstemp()
implementations that use a mode of 0666 when creating the file, though
we'd need to add Configure probing for that.

6 years ago(perl #127663) create a separate random source for internal use
Tony Cook [Wed, 18 May 2016 05:03:14 +0000 (15:03 +1000)]
(perl #127663) create a separate random source for internal use

and use it to initialize hash randomization and to innoculate against
quadratic behaviour in pp_sort

6 years agoAdd epigraphs for 5.24.3-RC1 and 5.26.1-RC1
Steve Hay [Sun, 10 Sep 2017 15:54:31 +0000 (16:54 +0100)]
Add epigraphs for 5.24.3-RC1 and 5.26.1-RC1

6 years ago5.24.3-RC1 and 5.26.1-RC1 today
Steve Hay [Sun, 10 Sep 2017 14:09:34 +0000 (15:09 +0100)]
5.24.3-RC1 and 5.26.1-RC1 today

6 years agoperldelta for 96c83ed78a, 2be4edede4 and 8586647e33
Steve Hay [Sun, 10 Sep 2017 12:18:50 +0000 (13:18 +0100)]
perldelta for 96c83ed78a2be4edede4 and 8586647e33

6 years ago(perl #131665) avoid a buffer overflow in a buffer we didn't need
Tony Cook [Thu, 27 Jul 2017 00:12:02 +0000 (10:12 +1000)]
(perl #131665) avoid a buffer overflow in a buffer we didn't need

since Lookup() treats its argument as NUL or '=' terminated.

Previously environment variable names longer than the size of the
buffer would result in a buffer overflow.

6 years agoPATCH: [perl #131598]
Karl Williamson [Fri, 25 Aug 2017 17:33:58 +0000 (11:33 -0600)]
PATCH: [perl #131598]

The cause of this is that the vFAIL macro uses RExC_parse, and that
variable has just been changed in preparation for code after the vFAIL.
The solution is to not change RExC_parse until after the vFAIL.

This is a case where the macro hides stuff that can bite you.

6 years agoregcomp [perl #131582]
Karl Williamson [Wed, 21 Jun 2017 17:33:37 +0000 (11:33 -0600)]
regcomp [perl #131582]

6 years agoreduce error surface of reginsert, set flags to 0 for inserted node
Yves Orton [Sun, 10 Sep 2017 09:25:18 +0000 (11:25 +0200)]
reduce error surface of reginsert, set flags to 0 for inserted node

this means that callers do not have to worry about resetting the flags,
which reduces the chance of error in using reginsert.

6 years agofix #132017 - OPFAIL insert needs to set flags to 0
Yves Orton [Sun, 10 Sep 2017 08:59:05 +0000 (10:59 +0200)]
fix #132017 - OPFAIL insert needs to set flags to 0

why reginsert doesnt do this stuff I dont know.

6 years agoutil.c: Add comments
Karl Williamson [Sun, 10 Sep 2017 04:36:37 +0000 (22:36 -0600)]
util.c: Add comments

Better describe my_strftime(), and indicate authorship of long comment
that has a bunch of 'I' statements.

6 years agosv.c: Use modern macro names
Karl Williamson [Mon, 28 Aug 2017 19:53:45 +0000 (13:53 -0600)]
sv.c: Use modern macro names

This used older names for some locale functions, that have been
superseded by more meaningful ones.

6 years agoutf8.c: Use mnemonic for repeatedly used number
Karl Williamson [Thu, 10 Aug 2017 21:27:15 +0000 (15:27 -0600)]
utf8.c: Use mnemonic for repeatedly used number