This is a live mirror of the Perl 5 development currently hosted at
3 years agoFix UTF8_IS_START on EBCDIC
Karl Williamson [Thu, 5 Dec 2019 19:26:21 +0000 (12:26 -0700)]

3 years agoUpdate IO-Compress to CPAN version 2.093
Chris 'BinGOs' Williams [Sat, 7 Dec 2019 20:10:12 +0000 (20:10 +0000)]
Update IO-Compress to CPAN version 2.093

3 years agoUpdate Compress-Raw-Bzip2 to CPAN version 2.093
Chris 'BinGOs' Williams [Sat, 7 Dec 2019 20:09:35 +0000 (20:09 +0000)]
Update Compress-Raw-Bzip2 to CPAN version 2.093

3 years agoUpdate Compress-Raw-Zlib to CPAN version 2.093
Chris 'BinGOs' Williams [Sat, 7 Dec 2019 20:08:41 +0000 (20:08 +0000)]
Update Compress-Raw-Zlib to CPAN version 2.093

3 years agoUpdate IO-Compress to CPAN version 2.092
Chris 'BinGOs' Williams [Fri, 6 Dec 2019 14:44:28 +0000 (14:44 +0000)]
Update IO-Compress to CPAN version 2.092


  2.092 4 December 2019

      * No changes

3 years agoUpdate Compress-Raw-Bzip2 to CPAN version 2.092
Chris 'BinGOs' Williams [Fri, 6 Dec 2019 14:42:54 +0000 (14:42 +0000)]
Update Compress-Raw-Bzip2 to CPAN version 2.092


  2.092 4 December 2019

      * No changes

3 years agoUpdate Compress-Raw-Zlib to CPAN version 2.092
Chris 'BinGOs' Williams [Fri, 6 Dec 2019 14:41:39 +0000 (14:41 +0000)]
Update Compress-Raw-Zlib to CPAN version 2.092


  2.092 4 December 2019

      * No Changes

3 years agoLocal variable 'last' hides a parameter of the same name
James E Keenan [Tue, 3 Dec 2019 14:16:07 +0000 (09:16 -0500)]
Local variable 'last' hides a parameter of the same name

LGTM static analysis identified a situation where it recommended
renaming a variable.


Better variable name per khw review

3 years agoUpdate link to Birrell's threads paper
brian d foy [Thu, 5 Dec 2019 18:49:36 +0000 (13:49 -0500)]
Update link to Birrell's threads paper

3 years agoLocal variable 'imode' hides a parameter of the same name
James E Keenan [Tue, 3 Dec 2019 02:50:17 +0000 (21:50 -0500)]
Local variable 'imode' hides a parameter of the same name

LGTM static code analysis of Perl 5 source code issued this
recommendation.  Implement fix.

3 years agoperldelta for 5e91ca38cafa2b006f7671e941287e05d31c2d97
James E Keenan [Thu, 5 Dec 2019 02:58:47 +0000 (21:58 -0500)]
perldelta for 5e91ca38cafa2b006f7671e941287e05d31c2d97

3 years agoperldelta for 41fb88e3240, b34c1a7ee25
Tony Cook [Thu, 5 Dec 2019 00:06:08 +0000 (11:06 +1100)]
perldelta for 41fb88e3240b34c1a7ee25

3 years agoupdates to $^H{feature_validname} now update cop_features
Tony Cook [Mon, 2 Dec 2019 04:50:49 +0000 (15:50 +1100)]
updates to $^H{feature_validname} now update cop_features

This removes $^{FEATURE_BITS}, since it's no longer needed.

3 years agotests for the faster features problem sprout pointed out
Tony Cook [Mon, 2 Dec 2019 04:22:48 +0000 (15:22 +1100)]
tests for the faster features problem sprout pointed out

3 years agoCorrect inconsistent version numbers in
James E Keenan [Wed, 4 Dec 2019 15:05:35 +0000 (10:05 -0500)]
Correct inconsistent version numbers in

Per commit message by David Mitchell in 142a37fd (Jul 24 2013), the code
changes affecting the performance of $`, $&, $' weren't fully enabled
until 5.20.  Hence, the documentation should caution for 5.18 and

As reported by peterdd++ in

3 years agoperldelta for 62fc08893a06fdb5633e7656e3c783d705682fd1
James E Keenan [Wed, 4 Dec 2019 14:59:38 +0000 (09:59 -0500)]
perldelta for 62fc08893a06fdb5633e7656e3c783d705682fd1

3 years agoUpdate Test-Simple to CPAN version 1.302170
Chad Granum [Wed, 4 Dec 2019 14:36:07 +0000 (09:36 -0500)]
Update Test-Simple to CPAN version 1.302170

From Changes:

    1.302170  2019-12-02 13:25:48-08:00 America/Los_Angeles

    - Fix unwanted END phase event (#840)

3 years agoskip code that requires dynamic loading and minitest works
Tony Cook [Mon, 18 Nov 2019 03:34:13 +0000 (14:34 +1100)]
skip code that requires dynamic loading and minitest works

3 years agofix skip for loop over locales
Tony Cook [Mon, 18 Nov 2019 03:33:31 +0000 (14:33 +1100)]
fix skip for loop over locales

Any skips inside this loop was skipping over the entire loop,
not just the current iteration, from the conditions tested in
the loop this seemed incorrect (besides messing up the test count.)

3 years agoPOSIX isn't loadable in miniperl
Tony Cook [Sun, 17 Nov 2019 21:29:47 +0000 (08:29 +1100)]
POSIX isn't loadable in miniperl

3 years agomove the implementation of %-, %+ into core
Tony Cook [Wed, 13 Nov 2019 21:02:34 +0000 (08:02 +1100)]
move the implementation of %-, %+ into core

Previousl this could cause problems during minitest.

Fixes #17293

3 years agoRegenerate Configure and friends after metaconfig changes
Karl Williamson [Mon, 2 Dec 2019 16:52:14 +0000 (09:52 -0700)]
Regenerate Configure and friends after metaconfig changes

A probe for wcrtomb() and one for attribute always inline have been
added, and the ones for:
1) checking if there is a C backtrace facility; and
2) character data alignedness
have been revised

3 years agometaconfig.h: Add entry for wcrtomb()
Karl Williamson [Mon, 2 Dec 2019 15:42:20 +0000 (08:42 -0700)]
metaconfig.h: Add entry for wcrtomb()

3 years agometaconfig.h: Rmv temporary entries
Karl Williamson [Mon, 2 Dec 2019 15:41:43 +0000 (08:41 -0700)]
metaconfig.h: Rmv temporary entries

These are no longer needed

3 years agoUpdate documentation for UTF8f
Pali [Tue, 3 Dec 2019 09:53:03 +0000 (10:53 +0100)]
Update documentation for UTF8f

3 years agoregcomp.c: Silence compiler warning
Karl Williamson [Mon, 2 Dec 2019 17:05:38 +0000 (10:05 -0700)]
regcomp.c: Silence compiler warning

3 years agoStorable: Fix compile warning: comparison between signed and unsigned integer expressions
Pali [Mon, 2 Dec 2019 15:09:46 +0000 (16:09 +0100)]
Storable: Fix compile warning: comparison between signed and unsigned integer expressions

gcc -m32 -c   -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -Wall -Werror=declaration-after-statement -Werror=pointer-arith -Wextra -Wc++-compat -Wwrite-strings -O2   -DVERSION=\"3.18\" -DXS_VERSION=\"3.18\" -fPIC "-I../.."   Storable.c
Storable.xs: In function ‘retrieve_lvstring’:
Storable.xs:1238:46: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         else if (PerlIO_read(cxt->fio, x, y) != y) {            \
Storable.xs:1238:46: note: in definition of macro ‘SAFEPVREAD’
         else if (PerlIO_read(cxt->fio, x, y) != y) {            \

3 years agoStorable: Fix compile warning: format ‘%d’ expects argument of type ‘int’, but argume...
Pali [Mon, 2 Dec 2019 15:09:43 +0000 (16:09 +0100)]
Storable: Fix compile warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘I32 {aka long int}’

gcc -m32 -c   -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -Wall -Werror=declaration-after-statement -Werror=pointer-arith -Wextra -Wc++-compat -Wwrite-strings -O2   -DVERSION=\"3.18\" -DXS_VERSION=\"3.18\" -fPIC "-I../.."   Storable.c
Storable.xs: In function ‘get_regexp’:
Storable.xs:3446:14: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘I32 {aka long int}’ [-Wformat=]
       CROAK(("re::regexp_pattern returned only %d results", count));
Storable.xs:583:55: note: in definition of macro ‘CROAK’
 #define CROAK(x) STMT_START { cxt->s_dirty = 1; croak x; } STMT_END
Storable.xs: In function ‘retrieve_regexp’:
Storable.xs:6867:16: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘I32 {aka long int}’ [-Wformat=]
         CROAK(("Bad count %d calling _make_re", count));
Storable.xs:583:55: note: in definition of macro ‘CROAK’
 #define CROAK(x) STMT_START { cxt->s_dirty = 1; croak x; } STMT_END

3 years agolocale.c: Use proper #ifdef to enable behavior
Karl Williamson [Thu, 28 Nov 2019 02:18:13 +0000 (19:18 -0700)]
locale.c: Use proper #ifdef to enable behavior

This changes to use USE_POSIX_2008_LOCALE instead of
HAS_POSIX_2008_LOCALE.  Rarely do they differ, but someone may choose to
configure their installation to not use these more modern functions,
even if available, perhaps because they're buggy on that system.

3 years agolocale.c white space only
Karl Williamson [Wed, 30 Jan 2019 16:56:15 +0000 (09:56 -0700)]
locale.c white space only

3 years agoPATCH: GH #17081: Workaround glibc bug with LC_MESSAGES
Karl Williamson [Thu, 28 Nov 2019 02:15:11 +0000 (19:15 -0700)]
PATCH: GH #17081: Workaround glibc bug with LC_MESSAGES

Please see the ticket for a full explanation.  This bug has been
submitted to glibc, without any real action forthcoming so far.

This invalidates the message cache each time the locale of LC_MESSAGES
is changed, as glibc should be doing this when uselocale changes that,
but glibc fails to do so.

This patch is an extension to the one submitted by Niko Tyni++.

I don't know how to test it, since a test would rely on several
different locales in different languages being available, and that
depends on what's installed on the platform.  I suppose that one could
go through the available locales, and try to find three with different
wording for the same message.  Doing so however would trigger the bug,
and at the end, if we didn't get three that differed, we wouldn't know
we wouldn't know if it is because of the bug, or that they just didn't
exist on the system.

However, below is a perl program that demonstrated the patch worked.
You could adjust it to the available locales.  The buggy code shows the
same text for all locales.  The fixed shows three different languages.

use strict;

use Locale::gettext;
use POSIX;

$ENV{LANG} = 'C.UTF-8';

for my $lang (qw(fi_FI fr_FR en_US)) {
    $ENV{LANGUAGE} = $lang;
    setlocale(LC_MESSAGES, '');
    my $d = Locale::gettext->domain("bash");
    print $d->get('syntax error'), "\n";

3 years Catch more errors
Karl Williamson [Sat, 30 Nov 2019 15:20:54 +0000 (08:20 -0700)] Catch more errors

The previous commit fixed an error in an =for apidoc line.  This commit
fixes to catch bugs like it, and also that there aren't
multiple places that document the same function.  This necessitated a
way to note that sample documentation wasn't the real stuff.

3 years agoFix wrong apidoc line
Karl Williamson [Sat, 30 Nov 2019 15:11:19 +0000 (08:11 -0700)]
Fix wrong apidoc line

3 years agoWe don't need to switch branches in git at all
Max Maischein [Tue, 26 Nov 2019 20:51:48 +0000 (21:51 +0100)]
We don't need to switch branches in git at all

We can directly determine the (authors of) the commits
in a pull request by using the latest branch-off point
between bleadperl and the pull request branch and the
SHA that Github gives us.

3 years agoRemove -Dissymlink='test -h'
Max Maischein [Tue, 26 Nov 2019 18:43:31 +0000 (19:43 +0100)]
Remove -Dissymlink='test -h'

This is a vestige of previously failed attempts. The previous attempts
failed due to non-Cygwin test.exe being in $ENV{PATH}.

3 years agoperlguts: Add missing '=for apidoc' lines
Karl Williamson [Fri, 29 Nov 2019 14:34:15 +0000 (07:34 -0700)]
perlguts: Add missing '=for apidoc' lines

Spotted by Pali++

3 years agoPOSIX/t/time.t: Reset LC_CTYPE to C
Karl Williamson [Thu, 28 Nov 2019 05:32:53 +0000 (22:32 -0700)]
POSIX/t/time.t: Reset LC_CTYPE to C

The C standard says about the format in strftime(): "The format shall be
a multibyte character sequence, beginning and ending in its initial
shift state"

Tony Cook and I interpret that as meaning that to be sure, not only does
LC_TIME have to be reset, but LC_CTYPE to account for all possible
variations in these tests.

3 years agot/ Silence 'undef' warning
Karl Williamson [Thu, 28 Nov 2019 05:30:57 +0000 (22:30 -0700)]
t/ Silence 'undef' warning

3 years agoregcomp.c: Silence (stupid) compiler warning
Karl Williamson [Wed, 27 Nov 2019 04:19:56 +0000 (21:19 -0700)]
regcomp.c: Silence (stupid) compiler warning

This can't really happen, but some compilers don't realize it.

3 years agoMove data for PL_InBitmap to charclass_invlists.h
Karl Williamson [Mon, 25 Nov 2019 04:21:39 +0000 (21:21 -0700)]
Move data for PL_InBitmap to charclass_invlists.h

This makes it consistent with the other inversion lists for this sort of
thing, and finishes the fix for GH #17154

3 years agoMove regex global variables to interpreter level
Karl Williamson [Mon, 25 Nov 2019 03:48:54 +0000 (20:48 -0700)]
Move regex global variables to interpreter level

This is part of fixing gh #17154

This scenario from the ticket
shows why this fix is necessary:

    main interpreter initializes PL_AboveLatin1 to an SV it owns

    loads threads::lite and creates a new thread/interpreter which
    initializes PL_AboveLatin1 to a SV owned by the new interpreter

    threads::lite child interpreter finishes, freeing all of its SVs,
    PL_AboveLatin1 is now invalid

    main interpreter uses a regexp that relies on PL_AboveLatin1, dies

By making these interpreter level variables, this is avoided.  There is
extra copying, but it is just the SV headers, as the real data is kept
as static C arrays.

3 years agoUpdate perlpolicy to reference GitHub issue tracker
Dan Book [Wed, 27 Nov 2019 00:12:33 +0000 (19:12 -0500)]
Update perlpolicy to reference GitHub issue tracker

3 years agoConvert issue links from to GitHub
Dan Book [Wed, 27 Nov 2019 00:04:57 +0000 (19:04 -0500)]
Convert issue links from to GitHub

3 years agoUpdate Porting documents to reference GitHub issues
Dan Book [Wed, 27 Nov 2019 00:02:22 +0000 (19:02 -0500)]
Update Porting documents to reference GitHub issues

3 years agoThe version for PPPort in CPAN is 3.56
Chris 'BinGOs' Williams [Tue, 26 Nov 2019 20:41:55 +0000 (20:41 +0000)]
The version for PPPort in CPAN is 3.56

3 years agoPATCH: gh #16045: add test descriptions for some basic tests
Vitali Peil [Fri, 23 Jun 2017 11:47:53 +0000 (13:47 +0200)]
PATCH: gh #16045: add test descriptions for some basic tests

Committer's note:  I'm belatedly applying the rest of the patches from
the original ticket.

3 years agore-work the cygwin action
Tony Cook [Sun, 24 Nov 2019 23:24:14 +0000 (10:24 +1100)]
re-work the cygwin action

This does a few things:

- checks out perl under the cygwin "home" directory, since cygwin only
  tries to make POSIX permissions work under that.  This allows a test
  of the copied file mode to work in lib/File/Copy.t

- checkout using cygwin's checkout, rather than checking out using Win32
  then refreshing it.

The checkout code is a bit ugly, it might be possible to use
action/checkout's path option to fix it.

3 years agoRevert "cygwin 2.1.0 can test -r just fine, incl. under admin"
Tony Cook [Mon, 25 Nov 2019 22:32:34 +0000 (09:32 +1100)]
Revert "cygwin 2.1.0 can test -r just fine, incl. under admin"

and re-work it to match what the core does to check for an admin user
under Cygwin.

I misunderstood what this was testing when submitted.

Yes, -r works under admin, and returns the correct result, but this is
specifically testing the behaviour as a non-admin.

3 years agomore closely match File::stat's -X behaviour to built-in on cygwin
Tony Cook [Mon, 25 Nov 2019 22:48:58 +0000 (09:48 +1100)]
more closely match File::stat's -X behaviour to built-in on cygwin

3 years agoMake FindBin dual-life
Tony Cook [Mon, 25 Nov 2019 04:37:12 +0000 (15:37 +1100)]
Make FindBin dual-life

3 years agomake test (via TestInit) in core and TAP::Harness set @INC
Tony Cook [Mon, 25 Nov 2019 04:30:36 +0000 (15:30 +1100)]
make test (via TestInit) in core and TAP::Harness set @INC

so we don't need the test code to do it

3 years agoUpdate gitignore:
Sawyer X [Wed, 6 Nov 2019 07:10:23 +0000 (09:10 +0200)]
Update gitignore:

This was done by calling:

    ./perl -Ilib regen/

3 years agoUpdate
Sawyer X [Wed, 6 Nov 2019 07:10:17 +0000 (09:10 +0200)]

3 years agoRegenerate META:
Sawyer X [Wed, 6 Nov 2019 07:09:58 +0000 (09:09 +0200)]
Regenerate META:

Regenerate the META by calling:

    make regen_meta

3 years agoUpdate MANIFEST:
Sawyer X [Wed, 6 Nov 2019 07:09:36 +0000 (09:09 +0200)]

This was done by calling:

    ./perl -Ilib Porting/

3 years agoChange regex to look for t/ dir
Sawyer X [Wed, 6 Nov 2019 07:09:25 +0000 (09:09 +0200)]
Change regex to look for t/ dir

3 years agoMove FindBin to dist/
Sawyer X [Wed, 6 Nov 2019 07:09:13 +0000 (09:09 +0200)]
Move FindBin to dist/

3 years agoUpdate Storable's bugtracker
James E Keenan [Fri, 15 Nov 2019 23:52:33 +0000 (18:52 -0500)]
Update Storable's bugtracker

3 years agoFilter::Simple: fix and sanity check for executable_no_comments
Tony Cook [Thu, 29 Aug 2019 01:24:35 +0000 (11:24 +1000)]
Filter::Simple: fix and sanity check for executable_no_comments

fixes #17122

3 years agobump $Storable::VERSION
Tony Cook [Mon, 18 Nov 2019 20:59:39 +0000 (07:59 +1100)]
bump $Storable::VERSION

3 years agodisallow vstring magic strings over 2GB-1
Tony Cook [Wed, 21 Aug 2019 01:37:58 +0000 (11:37 +1000)]
disallow vstring magic strings over 2GB-1

On reads this could result in buffer overflows, so avoid writing
such large vstrings to avoid causing problems for older Storable.

Since we no longer write such large vstrings, we don't want to accept

I doubt that restricting versions strings to under 2GB-1 will have
a practical effect on downstream users.

fixes #17306

3 years agoutf8.h: Rmv obsolete macros
Karl Williamson [Sun, 24 Nov 2019 19:12:19 +0000 (12:12 -0700)]
utf8.h: Rmv obsolete macros

These macros were missed in dd1a3ba7882ca70c1e85b0fd6c03d07856672075
and 059703b088f44d5665f67fba0b9d80cad89085fd.

Using them would cause things to fail to compile

3 years agoAdd missing back compat macros
Karl Williamson [Sun, 24 Nov 2019 19:11:09 +0000 (12:11 -0700)]
Add missing back compat macros

These are needed only to allow some modules to stay updated with blead.

3 years agoUpdate IO-Compress to CPAN version 2.091
Chris 'BinGOs' Williams [Sun, 24 Nov 2019 18:43:54 +0000 (18:43 +0000)]
Update IO-Compress to CPAN version 2.091


  2.091 23 November 2019

      * 000prereq.t: Drop LZMA Module as optional

      * 011streamzip.t: Fixes for 5.6

3 years agoUpdate Compress-Raw-Bzip2 to CPAN version 2.091
Chris 'BinGOs' Williams [Sun, 24 Nov 2019 18:42:47 +0000 (18:42 +0000)]
Update Compress-Raw-Bzip2 to CPAN version 2.091


  2.091 23 November 2019

      * Silence compiler warnings

3 years agoUpdate Compress-Raw-Zlib to CPAN version 2.091
Chris 'BinGOs' Williams [Sun, 24 Nov 2019 18:41:32 +0000 (18:41 +0000)]
Update Compress-Raw-Zlib to CPAN version 2.091


  2.091 23 November 2019

      * Silence "macro expands to multiple statements" warning
        Change sourced upstream from

3 years agoWell, she turned me into a newt!
Chris 'BinGOs' Williams [Sun, 24 Nov 2019 18:34:23 +0000 (18:34 +0000)]
Well, she turned me into a newt!

3 years agoregcomp.sym: Add comment
Karl Williamson [Fri, 22 Nov 2019 22:36:50 +0000 (15:36 -0700)]
regcomp.sym: Add comment

3 years agoregcomp.h: Delete obsolote macro
Karl Williamson [Fri, 22 Nov 2019 22:34:40 +0000 (15:34 -0700)]
regcomp.h: Delete obsolote macro

3 years agoregcomp.sym: Simplify a couple regnode defns
Karl Williamson [Fri, 22 Nov 2019 22:33:14 +0000 (15:33 -0700)]
regcomp.sym: Simplify a couple regnode defns

Under the given circumstances, these work precisely like others that
already have good descriptions.

3 years agoregcomp.c: Add assertion
Karl Williamson [Fri, 22 Nov 2019 22:31:51 +0000 (15:31 -0700)]
regcomp.c: Add assertion

This will catch illegal things a little earlier.

3 years agoPATCH: gh #17319 Segfault
Karl Williamson [Fri, 22 Nov 2019 22:28:13 +0000 (15:28 -0700)]
PATCH: gh #17319 Segfault

It turns out that one isn't supposed to fill in the offset to the next
regnode at node creation time.  And this node is like EXACTish, so the
string stuff isn't accounted for in its regcomp.sym definition

3 years agoMerge branch 'ppport' into blead
Karl Williamson [Fri, 22 Nov 2019 13:50:28 +0000 (06:50 -0700)]
Merge branch 'ppport' into blead

This includes the functionality for the forthcoming 3.56 release on

3 years agoD:P: parts/inc/misc: Silence Wide char warnings
Karl Williamson [Thu, 21 Nov 2019 20:35:59 +0000 (13:35 -0700)]
D:P: parts/inc/misc: Silence Wide char warnings

3 years agoD:P: Update parts/base, parts/todo to latest
Karl Williamson [Wed, 13 Nov 2019 23:11:03 +0000 (16:11 -0700)]
D:P: Update parts/base, parts/todo to latest

3 years agoD:P: parts/embed.fnc: Update to latest blead
Karl Williamson [Sun, 3 Nov 2019 22:22:46 +0000 (15:22 -0700)]
D:P: parts/embed.fnc: Update to latest blead

3 years agoD:P: HACKERS: Correct misstatement
Karl Williamson [Fri, 15 Nov 2019 01:49:31 +0000 (18:49 -0700)]
D:P: HACKERS: Correct misstatement

Replacement regions work the opposite way round what it said.

3 years agoD:P: HACKERS: Update for modern test infrastructure
Karl Williamson [Wed, 13 Nov 2019 19:18:19 +0000 (12:18 -0700)]
D:P: HACKERS: Update for modern test infrastructure

3 years agoD:P: PATCH: gh #156 sync_locale doesn't work in 5.20 maint
Karl Williamson [Wed, 13 Nov 2019 16:15:17 +0000 (09:15 -0700)]
D:P: PATCH: gh #156 sync_locale doesn't work in 5.20 maint

It turns out that there was special code added in the 5.20 maint series
that needed to be accounted for.

3 years agoD:P: devel/regenerate: Update script name
Karl Williamson [Tue, 12 Nov 2019 20:20:20 +0000 (13:20 -0700)]
D:P: devel/regenerate: Update script name

which has changed from .sh to .pl

3 years agoD:P: parts/apidoc.fnc: Update to latest blead
Karl Williamson [Sun, 3 Nov 2019 22:22:05 +0000 (15:22 -0700)]
D:P: parts/apidoc.fnc: Update to latest blead

3 years agoD:P: Convert ok() to is()
Karl Williamson [Sun, 3 Nov 2019 21:57:52 +0000 (14:57 -0700)]
D:P: Convert ok() to is()

There are some ok() that need to remain so, but this converts all the
ones that are really is() to be that.

After this commit, the remaining ok() can have a test description added
to them.

3 years agoD:P: Change to use modern skip functionality
Karl Williamson [Sun, 3 Nov 2019 03:18:03 +0000 (21:18 -0600)]
D:P: Change to use modern skip functionality

The new skip() has a count of tests.  Previously you had to loop

3 years agoD:P: Convert to use modern Test functions
Karl Williamson [Fri, 1 Nov 2019 19:09:11 +0000 (13:09 -0600)]
D:P: Convert to use modern Test functions

This commit copies much of from blead to replace the Test ones.

These versions are much friendlier to use.  Several .t files required
minor changes to work with these.  pv_tools.t was the only file using
the old obsolete skip() functionality fully.  The new version does not
do a 'last SKIP', for compatibility.

like and unlike were not ported because of the absence of qr// in perls
this is supposed to work on.

And the portions of that were copied also required a few minor
changes to work back to 5.3.7.

Not all the ported functionality is currently in used.  It may be that
changes will have to be made to it to get it to work; or will have to be

3 years agoD:P: fix mess.t failures when $0 contains backslashes
Tomasz Konojacki [Wed, 13 Nov 2019 17:43:33 +0000 (18:43 +0100)]
D:P: fix mess.t failures when $0 contains backslashes

This seems to happen only when Devel::PPPort was built with
Visual C++ and nmake as a standalone distribution.

perl/perl5@1ddd2f5fcd8802a45ffd773aec3af107f37613f6 had fixed that
before, but the change was made only in the autogenerated test file
and it was discarded when the tests were regenerated.

3 years agoDevel::PPPort: Bump version to 3.56
Karl Williamson [Fri, 22 Nov 2019 13:36:16 +0000 (06:36 -0700)]
Devel::PPPort: Bump version to 3.56

3 years agoFix MYMALLOC (PERL_MALLOC) build on Windows
Steve Hay [Fri, 22 Nov 2019 11:37:13 +0000 (11:37 +0000)]
Fix MYMALLOC (PERL_MALLOC) build on Windows

Commit 34716e2a6e changed the WIN32 version of Perl_my_setenv() from using
Newx() to using safesysmalloc() (in S_env_alloc()), but neglected to make
the corresponding change from Safefree() to safesysfree().

3 years agoPATCH: gh #17275 Silence new warning
Karl Williamson [Sat, 16 Nov 2019 23:13:57 +0000 (16:13 -0700)]
PATCH: gh #17275 Silence new warning

This was caused by a static inline function in a header that was
 #included in a file that didn't use it.  Normally, these functions are
 #ifdef'd so as to be visible only to files in which they are used.
 Some compilers warn that the function is defined but not used
 otherwise.  The solution is to remove this function's visibility from
 the file that didn't use it.

3 years agoregcomp.c: Fix order of fcn declaration
Karl Williamson [Thu, 21 Nov 2019 21:21:07 +0000 (14:21 -0700)]
regcomp.c: Fix order of fcn declaration

The static comes before the return type

3 years agoProperly handle filled /il regnodes and multi-char folds
Karl Williamson [Sat, 16 Nov 2019 22:44:42 +0000 (15:44 -0700)]
Properly handle filled /il regnodes and multi-char folds

Previously we were ignoring this possibility.  Suppose a pattern being
compiled under /il contains 'SS', and that it so happens that a regnode
becomes filled with the first 'S', so that the next regnode would begin
with the second one.  If at runtime, the locale is UTF-8, the pattern
should match match a LATIN SHARP S.  Until this commit, it wouldn't.
The commit just extends the current mechanism used in this situation (of
a filled regnode) for non-/l patterns.

If the locale isn't a UTF-8 one, the 'SS' sequence shouldn't match the
SHARP S, and it won't, but we have to construct the node so that it can
handle the UTF-8 case.

3 years agoTry to find the appropriate SHAs
Max Maischein [Tue, 19 Nov 2019 17:25:30 +0000 (18:25 +0100)]
Try to find the appropriate SHAs

We want all the patches between the branch-off point from
blead and the current branch. The current branch position lives in
$ENV{GITHUB_SHA}, and the (latest) branch-off point from blead is
found by running


We don't want to use the last commit, as it's a merge commit.

That commit will also have the Github mail address, not the real
git mail address of the author . Instead we use the (second)
parent commit to that merge commit.

3 years agoUpdate Module::CoreList for 5.31.7
Chris 'BinGOs' Williams [Wed, 20 Nov 2019 22:55:53 +0000 (22:55 +0000)]
Update Module::CoreList for 5.31.7

3 years agoBump the perl version in various places for 5.31.7
Chris 'BinGOs' Williams [Wed, 20 Nov 2019 22:52:35 +0000 (22:52 +0000)]
Bump the perl version in various places for 5.31.7

3 years agonew perldelta for v5.31.7
Chris 'BinGOs' Williams [Wed, 20 Nov 2019 22:37:45 +0000 (22:37 +0000)]
new perldelta for v5.31.7

3 years agoUpdate epigraphs.pod for v5.31.6 one
Chris 'BinGOs' Williams [Wed, 20 Nov 2019 22:31:43 +0000 (22:31 +0000)]
Update epigraphs.pod for v5.31.6 one

3 years agoMerge branch 'release-5.31.6' into blead
Chris 'BinGOs' Williams [Wed, 20 Nov 2019 22:27:33 +0000 (22:27 +0000)]
Merge branch 'release-5.31.6' into blead

3 years agoregcomp.c: Add invlist_lowest() and use it
Karl Williamson [Sun, 31 Mar 2019 20:00:25 +0000 (14:00 -0600)]
regcomp.c: Add invlist_lowest() and use it

This makes it less complicated to find the lowest code point in an
inversion list.  This makes the place where it's used clearer as to what
is going on.  And it may eventually be used in more than one place.

3 years agoAdd ANYOFHs regnode
Karl Williamson [Wed, 20 Nov 2019 02:15:38 +0000 (19:15 -0700)]
Add ANYOFHs regnode

This node is like ANYOFHb, but is used when more than one leading byte
is the same in all the matched code points.

ANYOFHb is used to avoid having to convert from UTF-8 to code point for
something that won't match.  It checks that the first byte in the UTF-8
encoded target is the desired one, thus ruling out most of the possible
code points.

But for higher code points that require longer UTF-8 sequences, many
many non-matching code points pass this filter.  Its almost 200K that it
is ineffective for for code points above 0xFFFF.

This commit creates a new node type that addresses this problem.
Instead of a single byte, it stores as many leading bytes that are the
same for all code points that match the class.  For many classes, that
will cut down the number of possible false positives by a huge amount
before having to convert to code point to make the final determination.

This regnode adds a UTF-8 string at the end.  It is still much smaller,
even in the rare worst case, than a plain ANYOF node because the maximum
string length, 15 bytes, is still shorter than the 32-byte bitmap that
is present in a plain ANYOF.  Most of the time the added string will
instead be at most 4 bytes.

3 years agoregcomp.c: DTRT in av_store()
Karl Williamson [Wed, 20 Nov 2019 02:08:15 +0000 (19:08 -0700)]
regcomp.c: DTRT in av_store()

We should be increasing the ref count in the scalars.  If those aren't
needed past the end of the function doing the av_store, their ref count
can be decremented there.

Otherwise, things are inconsistent, and error prone.

3 years agofind_first_differing_byte_pos
Karl Williamson [Tue, 19 Nov 2019 04:54:57 +0000 (21:54 -0700)]