This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
21 months agoperldelta: Fix typo
Karl Williamson [Mon, 26 Aug 2019 18:18:01 +0000 (12:18 -0600)]
perldelta: Fix typo

21 months agoAdd ability to dump pre-optimized compiled pattern
Karl Williamson [Mon, 26 Aug 2019 17:53:06 +0000 (11:53 -0600)]
Add ability to dump pre-optimized compiled pattern

in qr//

21 months agoext/re/re.pm: Clarify pod slightly
Karl Williamson [Mon, 26 Aug 2019 17:48:50 +0000 (11:48 -0600)]
ext/re/re.pm: Clarify pod slightly

21 months agoext/re/re.pm: White-space only, bump version
Karl Williamson [Mon, 26 Aug 2019 17:47:40 +0000 (11:47 -0600)]
ext/re/re.pm: White-space only, bump version

21 months agoembed.fnc: Add caution about R flag
Karl Williamson [Fri, 23 Aug 2019 18:38:50 +0000 (12:38 -0600)]
embed.fnc: Add caution about R flag

21 months agoregcomp.c: Add FAIL3 macro
Karl Williamson [Mon, 26 Aug 2019 16:02:28 +0000 (10:02 -0600)]
regcomp.c: Add FAIL3 macro

This should have been included in 0e9b0dc26af667dfb49d2d2a9537ebda6f50c6db

21 months agoregcomp.c: Emit more info if we have it in a panic msg
Karl Williamson [Mon, 26 Aug 2019 15:21:11 +0000 (09:21 -0600)]
regcomp.c: Emit more info if we have it in a panic msg

21 months agoregcomp.c: Change message into a panic
Karl Williamson [Mon, 26 Aug 2019 15:15:09 +0000 (09:15 -0600)]
regcomp.c: Change message into a panic

Because that's what is happening, and the next commit would otherwise
say we need to document this diagnostic, but it's one that the observer
can do nothing about except file a bug report

21 months agoregcomp.c: Move code within #ifdef
Karl Williamson [Mon, 26 Aug 2019 14:35:21 +0000 (08:35 -0600)]
regcomp.c: Move code within #ifdef

This code does nothing except an 'if' without acting on it, as a result
of an #ifdef within it, so might as well move the whole thing inside the
 #ifdef

21 months agoutil.c: Correct spelling in rarely compiled code
Karl Williamson [Mon, 26 Aug 2019 04:14:52 +0000 (22:14 -0600)]
util.c: Correct spelling in rarely compiled code

On Z/OS, this does get compiled, and fails due to the missepllings.

21 months agoregen/mk_invlists.pl: Fix /i rules for non-ASCII machines
Karl Williamson [Mon, 26 Aug 2019 00:49:02 +0000 (18:49 -0600)]
regen/mk_invlists.pl: Fix /i rules for non-ASCII machines

Two variable weren't getting initialized properly in one code path, with
the result that the case folding tables were pretty much garbage, but
not on ASCII platforms.

21 months agoregen/mk_invlists.pl: Never remap 0
Karl Williamson [Mon, 26 Aug 2019 00:41:44 +0000 (18:41 -0600)]
regen/mk_invlists.pl: Never remap 0

0 is a special marker, and shouldn't be remapped.  It would be
unlikely to be so, but this makes sure.

21 months agoregen/mk_invlists.pl: inversion map requires a final entry
Karl Williamson [Mon, 26 Aug 2019 00:21:54 +0000 (18:21 -0600)]
regen/mk_invlists.pl: inversion map requires a final entry

Inversion maps are supposed to have an entry for what to do above the
Unicode range.  This subroutine crafts a custom map that was missing
that.

21 months agoregcomp.c: Use macro to remove some #ifdef EBCDIC lines
Karl Williamson [Mon, 26 Aug 2019 00:19:02 +0000 (18:19 -0600)]
regcomp.c: Use macro to remove some #ifdef EBCDIC lines

21 months agoregcomp.c: Some code paths didn't terminate an inversion list iteration
Karl Williamson [Mon, 26 Aug 2019 00:13:07 +0000 (18:13 -0600)]
regcomp.c: Some code paths didn't terminate an inversion list iteration

There were a couple paths through the code that failed to call
invlist_iterfinish().  This was a bug everywhere, but prevented z/OS
from completely compiling.

21 months agocompile perl with -O2 on DragonFly BSD
Tomasz Konojacki [Sun, 18 Aug 2019 02:54:53 +0000 (04:54 +0200)]
compile perl with -O2 on DragonFly BSD

[perl #134372]

21 months agoChange "--sysroot X" to "--sysroot=X" in Configure
Hauke D [Tue, 13 Aug 2019 20:05:47 +0000 (22:05 +0200)]
Change "--sysroot X" to "--sysroot=X" in Configure

21 months agoperldelta for 14d26b44a1d7
Tony Cook [Mon, 26 Aug 2019 00:27:10 +0000 (10:27 +1000)]
perldelta for 14d26b44a1d7

21 months ago(perl #134230) don't interpret 0x, 0b when numifying strings
Tony Cook [Tue, 20 Aug 2019 05:43:05 +0000 (15:43 +1000)]
(perl #134230) don't interpret 0x, 0b when numifying strings

21 months agoMake find.t work on VMS by trimming trailing dots.
Craig A. Berry [Sun, 25 Aug 2019 19:26:11 +0000 (14:26 -0500)]
Make find.t work on VMS by trimming trailing dots.

For whatever reason, find.t uses a lot of filenames with no
extension for testing purposes, but on VMS there is no such thing
as a file with no extension, so, for example 'faba' is returned
as 'faba.' with the zero-length extension explicitly specified.

For comparison purposes we have to trim that trailing dot, and
there is code to do that sprinkled throughout the test; we just
hadn't (until now) added it for a couple of the more recent tests.

21 months agoPrepare VMS linker GSMATCH for 5.32.
Craig A. Berry [Sun, 25 Aug 2019 18:50:46 +0000 (13:50 -0500)]
Prepare VMS linker GSMATCH for 5.32.

GSMATCH in the linker options file tells the image activator
whether a dynamic library being loaded is compatible with what it
originally linked against.  Ideally we would like to encode the
version number and all the options that can make a build binary
incompatible with another build of the same version, but there
are about 30 such options and only 8 bits (on Alpha) in which to
store both the version number and the options.

We've lived with only 3 bits reserved for 3 options, but as of
version 32 of Perl 5, we'll need 6 bits for the version number:

    $ perl -e "$v = 31; printf('%b', $v);"
    11111
    $ perl -e "$v = 32; printf('%b', $v);"
    100000

leaving us only 2 bits for options.

The code modified here only kicks in when PERLSHR_USE_GSMATCH is
defined in the environment.

21 months agoPATCH: [perl #134133] read beyond end of buffer
Karl Williamson [Fri, 24 May 2019 15:01:46 +0000 (09:01 -0600)]
PATCH: [perl #134133] read beyond end of buffer

The code was using the wrong limit variable.

21 months agoregcomp.c: Fix wrong limit test
Karl Williamson [Thu, 22 Aug 2019 16:16:14 +0000 (10:16 -0600)]
regcomp.c: Fix wrong limit test

Spotted by Hugo van der Sanden in code reading.

21 months agouni_keywords.h: Fix to work on EBCDIC
Karl Williamson [Wed, 21 Aug 2019 18:52:23 +0000 (12:52 -0600)]
uni_keywords.h: Fix to work on EBCDIC

The table is collated in ASCII, so convert to that when looking things
up.

This change does not affect the binary of ASCII platform compilations

21 months agoinline.h: Return proper value on EBCDIC
Karl Williamson [Wed, 21 Aug 2019 15:14:05 +0000 (09:14 -0600)]
inline.h: Return proper value on EBCDIC

The final step was missing in the conversion from UTF-EBCDIC to uv.

This adds a macro call that expands to its argument on non-EBCDIC
platforms, so this commit makes no changes to the compiled binary on
those systems.

22 months agoReset xxx_convert to empty string if none of 3 utilities is found
James E Keenan [Sun, 18 Aug 2019 13:16:56 +0000 (13:16 +0000)]
Reset xxx_convert to empty string if none of 3 utilities is found

This will cause Configure to enter the WHOA block and default to using
sprintf.

Change Gconvert checkit() prototype for [perl #134371].

In the checkit() routine inside Configure, clang++ was taking the
if (strcmp(expect, got)) branch even though the 'expect' and 'got' strings
were identical.  A first step in debugging this was to realize that
the checkit() function never returned a value, so relabel it as void.
With clang version 7.0.1-8 (tags/RELEASE_701/final) (Debian),
this change seems to work around the strcmp issue.

Further Configure gconvert probe cleanups for C++.  As part of debugging
[perl #134375] and [perl #134371], try to eliminate warnings thrown by
clang++.

22 months agoI18N::Langinfo: Add doc heading
Karl Williamson [Thu, 4 Jul 2019 17:49:14 +0000 (11:49 -0600)]
I18N::Langinfo: Add doc heading

This resolves https://rt.perl.org/Ticket/Display.html?id=134234

22 months agoBump version to 5.31.4 and update Module::Corelist
Tom Hukins [Tue, 20 Aug 2019 15:20:27 +0000 (16:20 +0100)]
Bump version to 5.31.4 and update Module::Corelist

22 months agoNew perldelta for 5.31.4
Tom Hukins [Tue, 20 Aug 2019 15:13:57 +0000 (16:13 +0100)]
New perldelta for 5.31.4

22 months agoTick off 5.31.3
Tom Hukins [Tue, 20 Aug 2019 15:05:57 +0000 (16:05 +0100)]
Tick off 5.31.3

22 months ago5.31.3 today v5.31.3
Tom Hukins [Tue, 20 Aug 2019 13:12:13 +0000 (13:12 +0000)]
5.31.3 today

22 months agoperldelta - module versions
Tom Hukins [Tue, 20 Aug 2019 11:37:32 +0000 (11:37 +0000)]
perldelta - module versions

22 months agoperldelta - acknowledgements
Tom Hukins [Tue, 20 Aug 2019 11:31:44 +0000 (11:31 +0000)]
perldelta - acknowledgements

22 months agoUpdate Module::CoreList for 5.31.3
Tom Hukins [Tue, 20 Aug 2019 11:28:07 +0000 (11:28 +0000)]
Update Module::CoreList for 5.31.3

22 months agoperldelta - remove boilerplate
Tom Hukins [Tue, 20 Aug 2019 11:22:19 +0000 (11:22 +0000)]
perldelta - remove boilerplate

22 months agoPerl_quadmath_format_single(): fix off-by-1 err
David Mitchell [Tue, 20 Aug 2019 12:03:58 +0000 (13:03 +0100)]
Perl_quadmath_format_single(): fix off-by-1 err

RT #134369

This function checks that a floating format string (%f, %e etc) on
-Dusequadmath builds has the 'Q' qualifier , and if not adds it.

However, the "adding" code  allocates a new buffer that is one byte too
short, which this commit fixes.

In practice it doesn't matter, as in core, this function is only ever
called when the 'Q' is already present.

22 months agoperldelta for 442d4b523eda1 (opslot)
David Mitchell [Tue, 20 Aug 2019 07:43:48 +0000 (08:43 +0100)]
perldelta for 442d4b523eda1 (opslot)

22 months agoFix utf8_to_uvchr_buf to match docs
Karl Williamson [Mon, 19 Aug 2019 20:43:30 +0000 (14:43 -0600)]
Fix utf8_to_uvchr_buf to match docs

It did so already except when passed a zero length input on
non-debugging builds.  This caused test failures in Devel::PPPort, and
commit 4a5ab54a18679ab24ca03190884d326c2ca85288 was used to customize
that module in blead to get the tests to pass.

This commit avoids the possibility of having to bump the version again,
which is what that commit did.

22 months agoperldelta for ab7a3d991f6e4eb554d12bf4f083c352fe40452f
James E Keenan [Mon, 19 Aug 2019 21:36:36 +0000 (17:36 -0400)]
perldelta for ab7a3d991f6e4eb554d12bf4f083c352fe40452f

22 months agoUpdate Test-Simple to CPAN version 1.302166
Chad Granum [Mon, 19 Aug 2019 21:32:29 +0000 (17:32 -0400)]
Update Test-Simple to CPAN version 1.302166

1.302166  2019-08-15 10:37:01-07:00 America/Los_Angeles

    - Fix context test on older perls

1.302165  2019-08-15 10:21:09-07:00 America/Los_Angeles

    - Better diagnostics when a context is destroyed unexpectedly
    - Add an event to notify when END phase starts

22 months agoutfebcdic.h: Fix EBCDIC compilation error
Karl Williamson [Mon, 19 Aug 2019 15:05:05 +0000 (09:05 -0600)]
utfebcdic.h: Fix EBCDIC compilation error

The #include needs to always be done, so remove the #ifdef.  The
included file has the proper setup anyway for the variables that were
used.

22 months agoperldelta: Document I8N::LangTags noteworthy change
Karl Williamson [Mon, 19 Aug 2019 15:02:56 +0000 (09:02 -0600)]
perldelta: Document I8N::LangTags noteworthy change

22 months agoperldelta: Fix typo
Karl Williamson [Mon, 19 Aug 2019 15:02:23 +0000 (09:02 -0600)]
perldelta: Fix typo

22 months agoperldelta for 105c827d9a0f
Tony Cook [Mon, 19 Aug 2019 05:49:35 +0000 (15:49 +1000)]
perldelta for 105c827d9a0f

though if anyone has a better description, please update it

22 months ago(perl #124256) disallow \K in lookahead and lookbehind
Tony Cook [Thu, 28 Sep 2017 04:40:24 +0000 (14:40 +1000)]
(perl #124256) disallow \K in lookahead and lookbehind

\K can cause infinite loops in matching in these, and we're not sure
how it really should behave, so forbid it.

22 months agoRevert "Update Scalar-List-Utils to CPAN version 1.51"
Chris 'BinGOs' Williams [Sat, 17 Aug 2019 17:38:54 +0000 (18:38 +0100)]
Revert "Update Scalar-List-Utils to CPAN version 1.51"

This reverts commit 96684a73b5f81ca2a88309182dbc2dca9ab1601a.

Failures with uselongdouble

22 months agoUpdate release schdule, still missing some
Sawyer X [Sat, 17 Aug 2019 13:46:30 +0000 (16:46 +0300)]
Update release schdule, still missing some

22 months agoperldelta for merge commit 17154110146f
Tony Cook [Thu, 15 Aug 2019 04:24:44 +0000 (14:24 +1000)]
perldelta for merge commit 17154110146f

22 months agoCleanup Time::HiRes
Tony Cook [Thu, 15 Aug 2019 04:17:49 +0000 (14:17 +1000)]
Cleanup Time::HiRes

22 months agobump $Time::HiRes::VERSION
Tony Cook [Thu, 15 Aug 2019 04:16:19 +0000 (14:16 +1000)]
bump $Time::HiRes::VERSION

22 months agoTime::HiRes: remove workaround for an ancient Devel::PPPort bug
Tomasz Konojacki [Mon, 15 Jul 2019 23:42:07 +0000 (01:42 +0200)]
Time::HiRes: remove workaround for an ancient Devel::PPPort bug

It was fixed in Devel::PPPort 3.13_02.

[perl #134288]

22 months agoTime::HiRes: remove the remains of MacOS classic support
Tomasz Konojacki [Mon, 15 Jul 2019 21:44:08 +0000 (23:44 +0200)]
Time::HiRes: remove the remains of MacOS classic support

Perl dropped MacOS classic support ages ago.

[perl #134288]

22 months agoTime::HiRes: remove code for perls older than 5.6
Tomasz Konojacki [Mon, 15 Jul 2019 21:36:40 +0000 (23:36 +0200)]
Time::HiRes: remove code for perls older than 5.6

Both Makefile.PL and HiRes.pm contain "use 5.006", so it was dead
code anyway.

[perl #134288]

22 months agoTime::HiRes: normalize indentation
Tomasz Konojacki [Mon, 15 Jul 2019 04:57:48 +0000 (06:57 +0200)]
Time::HiRes: normalize indentation

The indendation style now (roughly) matches what was specified
in the style guide in perlhack.

This commit doesn't contain any functional changes. If you're
seeing it in "git blame" output, try using -w switch, it will
hide whitespace-only changes.

[perl #134288]

22 months agoperldelta for 2f36de812bad297aa2393aee5b13ed2e3acd00e8
James E Keenan [Thu, 15 Aug 2019 00:57:44 +0000 (20:57 -0400)]
perldelta for 2f36de812bad297aa2393aee5b13ed2e3acd00e8

22 months agoGetopt::Long: sync with CPAN version 2.51
Johan Vromans [Thu, 15 Aug 2019 00:55:34 +0000 (20:55 -0400)]
Getopt::Long: sync with CPAN version 2.51

22 months agoPATCH: [perl #134357] embed.fnc missing flag for docs
Karl Williamson [Tue, 13 Aug 2019 01:14:30 +0000 (19:14 -0600)]
PATCH: [perl #134357] embed.fnc missing flag for docs

A check was recently added if a function had documentation that
embed.fnc accurately reflected that.  Commit
c1a02ccad9a1ea91206b97e66056ee354ac761c1 missed this function

22 months agoRun tests in ext/File-Find/t in series
James E Keenan [Wed, 7 Aug 2019 13:39:56 +0000 (09:39 -0400)]
Run tests in ext/File-Find/t in series

For: RT # 133771

22 months agoUpdate IO-Compress to CPAN version 2.087
Chris 'BinGOs' Williams [Mon, 12 Aug 2019 18:48:50 +0000 (19:48 +0100)]
Update IO-Compress to CPAN version 2.087

  [DELTA]

  2.087 10 August 2019

      * IO::Uncompress::Unzip
        nextStream not updating filehandle correctly
        https://github.com/pmqs/IO-Compress/issues/3
        25152f04f5b1bd9341502e42a5877c72eac3f291

      * Added travis & appveyor files for CI in GitHub

22 months agoUpdate Compress-Raw-Bzip2 to CPAN version 2.087
Chris 'BinGOs' Williams [Mon, 12 Aug 2019 18:47:03 +0000 (19:47 +0100)]
Update Compress-Raw-Bzip2 to CPAN version 2.087

  [DELTA]

  2.087 10 August 2019

      * No Changes

22 months agoUpdate Compress-Raw-Zlib to CPAN version 2.087
Chris 'BinGOs' Williams [Mon, 12 Aug 2019 18:45:34 +0000 (19:45 +0100)]
Update Compress-Raw-Zlib to CPAN version 2.087

  [DELTA]

2.087 10 August 2019

      * clang warning in ppport.h
        update to latest ppport.h
        https://github.com/pmqs/Compress-Raw-Zlib/issues/1
        664a5fbacf778acdd4cfbcc571997f3df5ee43d3

22 months agoUpdate Scalar-List-Utils to CPAN version 1.51
Chris 'BinGOs' Williams [Mon, 12 Aug 2019 09:27:18 +0000 (10:27 +0100)]
Update Scalar-List-Utils to CPAN version 1.51

  [DELTA]

1.51 -- 2019-08-08 14:31:32
  [CHANGES]
   * Add TO_JSON to List::Util::_Pair (thanks ilmari)
   * Various minor docs fixes

  [BUGFIXES]
   * Don't segfault in subname() on deleted stashes (thanks ilmari)
   * Fix uniqnum for large floats and numeric strings (thanks ilmari)

22 months agoperlapi: Document isALNUMC and variants
Karl Williamson [Fri, 9 Aug 2019 17:01:45 +0000 (11:01 -0600)]
perlapi: Document isALNUMC and variants

22 months agoperlapi: my_sprintf is a Miscellaneous function
Karl Williamson [Mon, 5 Aug 2019 00:13:39 +0000 (18:13 -0600)]
perlapi: my_sprintf is a Miscellaneous function

22 months agoperlapi: sortsv_flags is an SV function
Karl Williamson [Mon, 5 Aug 2019 00:06:07 +0000 (18:06 -0600)]
perlapi: sortsv_flags is an SV function

22 months agoperlapi: save_gp is a GV function
Karl Williamson [Mon, 5 Aug 2019 00:03:57 +0000 (18:03 -0600)]
perlapi: save_gp is a GV function

22 months agoperlapi: Reword some isFOO char classification docs
Karl Williamson [Mon, 5 Aug 2019 03:00:36 +0000 (21:00 -0600)]
perlapi: Reword some isFOO char classification docs

The input to these isn't restricted to a byte, and some minor
clarifications.

22 months agoperlapi: 5.30 promise not met; change to 5.32
Karl Williamson [Sat, 3 Aug 2019 15:17:43 +0000 (09:17 -0600)]
perlapi: 5.30 promise not met; change to 5.32

We delayed this change, but I forgot to change this documentation

22 months agoregcomp.c: Don't read off the end of buffer
Karl Williamson [Thu, 27 Jun 2019 21:39:11 +0000 (15:39 -0600)]
regcomp.c: Don't read off the end of buffer

Until this commit, it was possible that \p{nv=3/} would cause the right
brace to be considered part of the property name.

Spotted by Hugo van der Sanden

22 months agofix size-miscalculation upgrading LISTOP TO LOOPOP
David Mitchell [Fri, 9 Aug 2019 10:11:19 +0000 (11:11 +0100)]
fix size-miscalculation upgrading LISTOP TO LOOPOP

RT #134344

My recent commit v5.31.2-54-g8c47b5bce7 broke some CAN modules because
the code in Perl_newFOROP() wasn't accounting for the overhead in the
opslot struct when deciding whether an allocated LISTOP was large enough
to be upgraded in-place to a LOOPOP.

22 months agoAPIify and document several interpreter variables
Tony Cook [Thu, 8 Aug 2019 05:56:58 +0000 (15:56 +1000)]
APIify and document several interpreter variables

22 months agoPERL_DESTRUCT_LEVEL no longer requires a -DDEBUGGING build
Tony Cook [Thu, 8 Aug 2019 05:53:31 +0000 (15:53 +1000)]
PERL_DESTRUCT_LEVEL no longer requires a -DDEBUGGING build

22 months ago(perl #132777) APIify and document PL_perl_destruct_level
Tony Cook [Thu, 31 Jan 2019 04:39:39 +0000 (15:39 +1100)]
(perl #132777) APIify and document PL_perl_destruct_level

This is documented in perlembed.  It's only rarely used on CPAN
but it's pretty basic.

22 months ago(perl #132777) document (sort of) and APIify PL_runops
Tony Cook [Thu, 31 Jan 2019 04:25:05 +0000 (15:25 +1100)]
(perl #132777) document (sort of) and APIify PL_runops

This is documented in perlguts in such a way that it appears be
effectively API, so APIify it.

It's used on CPAN in a small number of modules.

22 months ago(perl #132777) document and APIify PL_parser
Tony Cook [Thu, 31 Jan 2019 04:06:41 +0000 (15:06 +1100)]
(perl #132777) document and APIify PL_parser

Used in a few places on CPAN, either to check or modify the
compilation error count, or to do a little parsing via bufptr.

22 months ago(perl #132777) document and APIify PL_defgv
Tony Cook [Thu, 31 Jan 2019 03:52:14 +0000 (14:52 +1100)]
(perl #132777) document and APIify PL_defgv

This is used occasionally on CPAN, typically to access $_.

22 months ago(perl #132777) APIify and document PL_curstash
Tony Cook [Thu, 31 Jan 2019 03:35:52 +0000 (14:35 +1100)]
(perl #132777) APIify and document PL_curstash

per leont: I can't think of any reason not to make PL_curstash API,
it's both common, useful, simple, and highly unlikely to ever need
change.

22 months ago(perl #132777) document and add PL_curcop to the API
Tony Cook [Thu, 31 Jan 2019 03:04:52 +0000 (14:04 +1100)]
(perl #132777) document and add PL_curcop to the API

PL_curcop is used fairly widely on CPAN, mostly to get the current
line number and file, to check lexical hints, or to check the
stash.

22 months ago(perl #132777) document PL_exit_flags
Tony Cook [Thu, 31 Jan 2019 02:37:44 +0000 (13:37 +1100)]
(perl #132777) document PL_exit_flags

PL_exit_flags is referred to in perlembed, perldiag and two
perldeltas, so APIify and document it.

22 months agoperldelta for 933e3e630076
Tony Cook [Thu, 8 Aug 2019 04:35:51 +0000 (14:35 +1000)]
perldelta for 933e3e630076

22 months ago(perl #134266) make sure $@ is writable when we write to it
Tony Cook [Mon, 5 Aug 2019 05:23:45 +0000 (15:23 +1000)]
(perl #134266) make sure $@ is writable when we write to it

when unwinding.

Since except_sv might be ERRSV we try to preserve it's value,
if not the actual SV (which we have an extra refcount on if it is
except_sv).

22 months agobump $Storable::VERSION and update ChangeLog
Tony Cook [Thu, 8 Aug 2019 01:58:23 +0000 (11:58 +1000)]
bump $Storable::VERSION and update ChangeLog

22 months agominimally document the stacksize tool
Tony Cook [Tue, 6 Aug 2019 00:54:25 +0000 (10:54 +1000)]
minimally document the stacksize tool

22 months agomove Storable CAN_FLOCK computation into XS
Graham Knop [Sat, 20 Apr 2019 10:53:06 +0000 (12:53 +0200)]
move Storable CAN_FLOCK computation into XS

At build time, Storable would check if it could use flock based on some
Config values, and generate the final Storable.pm file using tha value.
This was done to avoid needing to load Config at runtime.  This adds
complexity to the build process.

A simpler option is to build the constant in the XS code.  This means
the build process can be entirely standard for XS.

Some slight adjustments to the code are needed to load the XS module at
BEGIN time, so that the contant is available in the rest of the file.

22 months agoremove remains of Storable stack size detection
Graham Knop [Sat, 20 Apr 2019 10:44:52 +0000 (12:44 +0200)]
remove remains of Storable stack size detection

At build time, Storable used to detect the stack limits and store them.
This was removed in 2a0bbd31bbcc94c7c511f9575df619c5fdf3164c.  That
removed the Limit module and the setup for building it, but left behind
the script used to detect the limits.

Clean up the script and some related bits in the Makefile.PL.

TonyC: retain stacksize, so end users can use it to choose limits

22 months agoperldelta for d1bc97feec1a
Tony Cook [Thu, 8 Aug 2019 01:18:38 +0000 (11:18 +1000)]
perldelta for d1bc97feec1a

22 months ago(perl #133695) "0".."-1" should act like 0..-1
Hauke D [Fri, 30 Nov 2018 12:06:07 +0000 (13:06 +0100)]
(perl #133695) "0".."-1" should act like 0..-1

Previously, *any* string beginning with 0, including the string "0"
itself, would be subject to the magic string auto-increment, instead of
being treated like a number. This meant that "-2".."-1" was the same as
-2..-1 and "1".."-1" was the same as 1..-1, but "0".."-1" was the same
as "0".."99".

This patch fixes that inconsistency, while still allowing ranges like
"01".."31" to produce the strings "01", "02", ... "31", which is what
the "begins with 0" exception was intended for.

This patch also expands the documentation in perlop and states the rules
for the range operator in list context with both operands being strings
more explicitly.

See also #18165 and #18114.

22 months agobump $PerlIO::via::VERSION
Tony Cook [Thu, 8 Aug 2019 00:09:01 +0000 (10:09 +1000)]
bump $PerlIO::via::VERSION

22 months agoPerlIO::Via: check arg is non-NULL before using it.
Tony Cook [Wed, 7 Aug 2019 04:58:14 +0000 (14:58 +1000)]
PerlIO::Via: check arg is non-NULL before using it.

I can't find any code in core that ends up calling the _pushed handler
with arg == NULL, but PerlIO_push() is API, and there might be
CPAN or DarkPAN code out there that does, escpecially since there's
a check for arg being non-NULL further down.

CID 169261.

22 months agoStorable: make count large enough
Tony Cook [Wed, 7 Aug 2019 01:13:53 +0000 (11:13 +1000)]
Storable: make count large enough

AvARRAY() could be very large, and we check for that at line 3807,
but int was (potentially) too small to make that comparison
meaningful.

CID 174681.

22 months agolocale.c: Stop Coverity warning
Karl Williamson [Wed, 7 Aug 2019 03:29:22 +0000 (21:29 -0600)]
locale.c: Stop Coverity warning

Coverity is right, so re-order these clauses.  This code is executed
only if some very strange error occurs.

22 months agoRevert "Revert "postpone perl_parse() exit(0) bugfix""
Tony Cook [Wed, 7 Aug 2019 00:45:52 +0000 (10:45 +1000)]
Revert "Revert "postpone perl_parse() exit(0) bugfix""

This reverts commit 2773b4f50f991900e38d33daace2b9c6a0902c6a.

I haven't made much progress in resolving the problems this produces
downstream, so rather than leaving it broken, I'll revert it until
they can be solved.

22 months agoavoid use-after free in /(?{...})/
David Mitchell [Wed, 19 Jun 2019 12:03:22 +0000 (13:03 +0100)]
avoid use-after free in /(?{...})/

RT #134208

In something like

    eval { sub { " " }->() =~ /(?{ die })/ }

When the match string gets aliased to $_, the SAVE_DEFSV is done after the
SAVEDESTRUCTOR_X(S_cleanup_regmatch_info_aux).  So if croaking, the SV
gets SvREFCNT_dec()ed by the SAVE_DEFSV, then S_cleanup_regmatch_info_aux()
manipulates the SV's magic.

This doesn't cause a problem unless the match string is temporary, in
which case the only other reference keeping it alive will be removed
by the FREETMPs during the croak.

The fix is to make sure an extra ref to the sv is held.

22 months agoinclude a trailing \0 in SVs holding trie info
David Mitchell [Tue, 6 Aug 2019 13:36:45 +0000 (14:36 +0100)]
include a trailing \0 in SVs holding trie info

RT #13427

TRIE_STORE_REVCHAR() was creating SvPV()s with no trailing '\0'. This
doesn't really matter given the specialised use these are put to, but
it upset valgrind et al when perl was run with -Drv which printf("%s")'s
the contents of the string.

22 months agoUpdate Win32 to CPAN version 0.53
Chris 'BinGOs' Williams [Tue, 6 Aug 2019 10:47:02 +0000 (11:47 +0100)]
Update Win32 to CPAN version 0.53

  [DELTA]

0.53  [2019-08-05]
        - improve Win32::GetOSDisplayName
        - added Win2016/2019 detection and version information by
          Richard Leach [PR/15]
        - Include wchar.h to allow building with g++ by Tony Cook [rt#127836]

0.52_02 [2018-11-02] by Reini Urban
        - added () usage croaks.
        - Fixed a -Warray-bounds buffer overflow in LONGPATH,
        - Fix various -Wunused warnings
          and two -Wmaybe-uninitialized.

0.52_01 [2017-11-30]
        - add missing const

22 months agoop_dump(): display a wild parent pointer.
David Mitchell [Mon, 5 Aug 2019 15:22:30 +0000 (16:22 +0100)]
op_dump(): display a wild parent pointer.

Normally the PARENT is displayed only for top-level ops: lower-level
ops have the obvious parent.

This commit adds a check that a lower-level op has a valid parent (i.e.
non-null, points to an op with OPf_KIDS and one of the kids is us).
If these checks fails, the raw content of op_sibparent is displayed.

22 months agoI18N::LangTags: minor clarification
David Cantrell [Thu, 11 Jul 2019 11:04:40 +0000 (12:04 +0100)]
I18N::LangTags: minor clarification

Don't imply that there are other undocumented env vars in play

22 months agoI18N::LangTags: document IGNORE_WIN32_LOCALE
David Cantrell [Thu, 11 Jul 2019 11:03:20 +0000 (12:03 +0100)]
I18N::LangTags: document IGNORE_WIN32_LOCALE

22 months agoI18N::LangTags: bump version
David Cantrell [Thu, 11 Jul 2019 11:35:58 +0000 (12:35 +0100)]
I18N::LangTags: bump version

22 months ago[MERGE] slim down opslot structure.
David Mitchell [Mon, 5 Aug 2019 10:35:08 +0000 (11:35 +0100)]
[MERGE] slim down opslot structure.

When OPs are allocated from a slab (the normal case), what are actually
allocated from the slab are opslot structs, which consist of an OP plus
two pointers.

The branch reduces those two pointers to two U16s, which saves 8 bytes
per op on a 64-bit system.

A further 8 bytes could be saved if those two U16s were included as
extra fields in the OP structure (and the opslot struct disposed of),
but unfortunately too much code does things like Zero(o) or Copy(o1,o2)
which would obliterate the allocation info contained in those two U16s.