This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
5 years agoregen/mk_PL_charclass.pl: Revamp
Karl Williamson [Tue, 24 Apr 2018 22:47:58 +0000 (16:47 -0600)]
regen/mk_PL_charclass.pl: Revamp

The change in 5.28 to having precompiled Unicode properties leaves this
program with a chicken-and-egg problem.  Prior to this commit, it used
those properties to construct its output, relying on them to be using
the latest Unicode data, but the code that generates the tables from
that data uses the output of this program, with potentially disastrous
results.

This commit changes to use the data itself, through Unicode::UCD.

5 years agoregen/mk_PL_charclass.pl: sort output table
Karl Williamson [Tue, 24 Apr 2018 21:30:05 +0000 (15:30 -0600)]
regen/mk_PL_charclass.pl: sort output table

This makes it easier to verify that future commits don't change
anything.

5 years agonumeric.c: White-space only
Karl Williamson [Tue, 1 May 2018 22:11:39 +0000 (16:11 -0600)]
numeric.c: White-space only

Outdent after the previous commit removed an enclosing block

5 years agogrok_atoUV: allow non-C strings and document
Karl Williamson [Tue, 1 May 2018 20:23:23 +0000 (14:23 -0600)]
grok_atoUV: allow non-C strings and document

This changes the internal function grok_atoUV() to not require its input
to be NUL-terminated.  That means the existing calls to it must be
changed to set the ending position before calling it, as some did
already.

This function is recommended to use in a couple of pods, but it wasn't
documented in perlintern.  This commit does that as well.

5 years agoCreate my_atof3()
Karl Williamson [Mon, 30 Apr 2018 16:46:01 +0000 (10:46 -0600)]
Create my_atof3()

This is like my_atof2(), but with an extra argument signifying the
length of the input string to parse.  If that length is 0, it uses
strlen() to determine it.

Then my_atof2() just calls my_atof3() with a zero final parameter.
And this commit just uses the bulk of the current my_atof2() as the core
of my_atof3().  Changes were needed however, because it relied on
NUL-termination in a number of places.

This allows one to convert a string that isn't necessarily
NUL-terminated to an NV.

5 years agoembed.fnc: Fix my_atof2() entry
Karl Williamson [Mon, 30 Apr 2018 17:48:46 +0000 (11:48 -0600)]
embed.fnc: Fix my_atof2() entry

This was using the incorrect formal parameter name.  It did not generate
an error because the function declares a variable with the incorrect
name, so that this was actually asserting on the wrong thing.

5 years agoBump version to 5.29.0 and regenerate everything
Sawyer X [Sat, 23 Jun 2018 23:52:23 +0000 (01:52 +0200)]
Bump version to 5.29.0 and regenerate everything

5 years agonew perldelta for 5.29.0
Sawyer X [Sat, 23 Jun 2018 23:07:02 +0000 (01:07 +0200)]
new perldelta for 5.29.0

5 years agoAdd per5280delta.pod to MANIFEST
Sawyer X [Sat, 23 Jun 2018 02:19:08 +0000 (20:19 -0600)]
Add per5280delta.pod to MANIFEST

5 years agoUpdate release schedule
Sawyer X [Sat, 23 Jun 2018 02:13:37 +0000 (20:13 -0600)]
Update release schedule

5 years agoUpdate epigraph
Sawyer X [Sat, 23 Jun 2018 02:10:54 +0000 (20:10 -0600)]
Update epigraph

5 years agoRevise inclusion of name and email in Git history v5.28.0
Sawyer X [Fri, 22 Jun 2018 22:55:13 +0000 (16:55 -0600)]
Revise inclusion of name and email in Git history

5 years agotrailing spaces drive me nuts
Sawyer X [Fri, 22 Jun 2018 22:43:28 +0000 (16:43 -0600)]
trailing spaces drive me nuts

5 years agoadd new release to perlhist
Sawyer X [Fri, 22 Jun 2018 22:14:22 +0000 (16:14 -0600)]
add new release to perlhist

5 years agoUpdated perldelta
Sawyer X [Fri, 22 Jun 2018 22:00:12 +0000 (16:00 -0600)]
Updated perldelta

5 years agoBump Module-CoreList
Sawyer X [Fri, 22 Jun 2018 21:47:21 +0000 (15:47 -0600)]
Bump Module-CoreList

5 years agoNeed to add email address in Porting/checkAUTHORS.pl
James E Keenan [Thu, 21 Jun 2018 02:22:50 +0000 (20:22 -0600)]
Need to add email address in Porting/checkAUTHORS.pl

For author who requested removal from AUTHORS.

5 years agoClarify your name and email *will* appear in AUTHORS unless asked:
Sawyer X [Wed, 20 Jun 2018 20:50:18 +0000 (14:50 -0600)]
Clarify your name and email *will* appear in AUTHORS unless asked:

Neil Bowers and Andreas Koenig spotted that, based on GDPR, we should
clarify to people that their name and email will appear in AUTHORS when
submitting a patch and that it can be removed when asked.

Neil contributed the phrasing.

5 years agoRemoval from AUTHORS based on author's request
Sawyer X [Wed, 20 Jun 2018 20:46:25 +0000 (14:46 -0600)]
Removal from AUTHORS based on author's request

5 years agoFix lack of closing ] in link.
James E Keenan [Wed, 20 Jun 2018 16:43:12 +0000 (10:43 -0600)]
Fix lack of closing ] in link.

Per afresh1 on #p5p.

5 years agoDocumenting epigraph
Sawyer X [Tue, 19 Jun 2018 21:16:50 +0000 (15:16 -0600)]
Documenting epigraph

5 years agoUpdate META files
Sawyer X [Tue, 19 Jun 2018 21:15:04 +0000 (15:15 -0600)]
Update META files

5 years agodisarm RC4 bump
Sawyer X [Tue, 19 Jun 2018 20:51:28 +0000 (14:51 -0600)]
disarm RC4 bump

5 years agoUpdate META files v5.28.0-RC4
Sawyer X [Tue, 19 Jun 2018 17:12:28 +0000 (11:12 -0600)]
Update META files

5 years agobump version to RC4
Sawyer X [Tue, 19 Jun 2018 17:12:16 +0000 (11:12 -0600)]
bump version to RC4

5 years agoAdd new release to perlhist
Sawyer X [Tue, 19 Jun 2018 17:11:27 +0000 (11:11 -0600)]
Add new release to perlhist

5 years agoUpdate perldelta for Archive::Tar 2.30
Sawyer X [Tue, 19 Jun 2018 15:41:03 +0000 (09:41 -0600)]
Update perldelta for Archive::Tar 2.30

5 years agoMerge remote-tracking branch 'origin/smoke-me/jkeenan/archive-tar-2.30' into release...
Sawyer X [Tue, 19 Jun 2018 15:36:48 +0000 (09:36 -0600)]
Merge remote-tracking branch 'origin/smoke-me/jkeenan/archive-tar-2.30' into release-5.28.0-RC4

5 years agoBump Module::CoreList
Sawyer X [Tue, 19 Jun 2018 15:34:18 +0000 (09:34 -0600)]
Bump Module::CoreList

5 years agoAdding epigraph for v5.28.0-RC3
Sawyer X [Tue, 19 Jun 2018 15:06:35 +0000 (09:06 -0600)]
Adding epigraph for v5.28.0-RC3

5 years agoSynch with CPAN: Archive::Tar v2.30.
Chris 'BinGOs' Williams [Tue, 19 Jun 2018 14:31:16 +0000 (08:31 -0600)]
Synch with CPAN: Archive::Tar v2.30.

From upstream commit message:

"Skip white_space test on Windows

"Windows will report that 'white_space ' and 'white_space' both
exist, which is obviously a 'feature'"

5 years agoMerge branch 'blead' of ssh://perl5.git.perl.org/perl into blead
Sawyer X [Tue, 19 Jun 2018 03:43:16 +0000 (21:43 -0600)]
Merge branch 'blead' of ssh://perl5.git.perl.org/perl into blead

5 years agoUpdate META files
Sawyer X [Tue, 19 Jun 2018 03:42:22 +0000 (21:42 -0600)]
Update META files

5 years agoStorable: check PERL_TEST_MEMORY before trying to allocate 2GB of memory
Tony Cook [Thu, 24 May 2018 05:07:00 +0000 (15:07 +1000)]
Storable: check PERL_TEST_MEMORY before trying to allocate 2GB of memory

5 years agodisarm RC3 bump
Sawyer X [Mon, 18 Jun 2018 22:48:29 +0000 (16:48 -0600)]
disarm RC3 bump

5 years agobump in perldelta too v5.28.0-RC3
Sawyer X [Mon, 18 Jun 2018 21:08:10 +0000 (15:08 -0600)]
bump in perldelta too

5 years agoBump Module::CoreList
Sawyer X [Mon, 18 Jun 2018 21:06:28 +0000 (15:06 -0600)]
Bump Module::CoreList

5 years agoUpdate META files
Sawyer X [Mon, 18 Jun 2018 20:29:38 +0000 (14:29 -0600)]
Update META files

5 years agobump version to RC3
Sawyer X [Mon, 18 Jun 2018 20:29:15 +0000 (14:29 -0600)]
bump version to RC3

5 years agoadd new release to perlhist
Sawyer X [Mon, 18 Jun 2018 20:28:38 +0000 (14:28 -0600)]
add new release to perlhist

5 years agoAdd last comment to perldelta
Sawyer X [Mon, 18 Jun 2018 20:07:58 +0000 (14:07 -0600)]
Add last comment to perldelta

5 years agoUpdate Module::CoreList for 5.28.0-RC3
Sawyer X [Mon, 18 Jun 2018 17:46:07 +0000 (11:46 -0600)]
Update Module::CoreList for 5.28.0-RC3

5 years agoUpdate epigraph
Sawyer X [Wed, 6 Jun 2018 22:09:30 +0000 (00:09 +0200)]
Update epigraph

5 years agobump Maintainers.pl entry for Archive-Tar
David Mitchell [Mon, 18 Jun 2018 13:29:09 +0000 (14:29 +0100)]
bump Maintainers.pl entry for Archive-Tar

2.26 -> 2.28 after recent pull.

5 years agoperldelta headings without full stops
Smylers [Thu, 7 Jun 2018 15:26:12 +0000 (16:26 +0100)]
perldelta headings without full stops

Most of the headings don't end with full stops (even when they are
complete sentences), so remove the full stops from the few that do, so
they all follow the same style

5 years agoClarify that /({...)/ is deprecated
Smylers [Thu, 7 Jun 2018 15:21:11 +0000 (16:21 +0100)]
Clarify that /({...)/ is deprecated

Previously this was just a noun phrase, describing the thing that is
deprecated. Turn that into a statement, explicitly saying it is
deprecated.

Admittedly, the noun phrase is in a section headed ‘Deprecations’, but
some of the items in the list are about changes to deprecations, and
everything else in the list is a full sentence, so make this be one too.

5 years agoDocument delete %hash{key} return value
Smylers [Thu, 7 Jun 2018 15:17:33 +0000 (16:17 +0100)]
Document delete %hash{key} return value

cc0776d64 introduced delete on key-value hash slices. That intuitively
returns a list of key- value pairs, which is two elements per specified
hash key. Update the docs to reflect this.

5 years agoPod fix: Escape / inside L</>
Smylers [Thu, 7 Jun 2018 15:06:28 +0000 (16:06 +0100)]
Pod fix: Escape / inside L</>

When linking to a section name that contains a literal slash, podchecker
complains.

In practice this isn't ambiguous (the first slash separates the page name
from the section name, and everything after that, including subsequent
slashes, must be the section name) and the link was working on MetaCpan.
But since podcheck complains, it seems safer to fix this.

5 years agoClarify key-value slices are of hashes
Smylers [Thu, 7 Jun 2018 15:05:40 +0000 (16:05 +0100)]
Clarify key-value slices are of hashes

For somebody reading the perldelta without context, make it clear that the
‘key/value’ slices that are mentioned are hash slices, with a link to
their documentation.

5 years agoUpdate Archive-Tar to CPAN version 2.28
David Mitchell [Mon, 18 Jun 2018 13:00:04 +0000 (14:00 +0100)]
Update Archive-Tar to CPAN version 2.28

  [DELTA]

+- fix creating file with trailing whitespace on filename - fixes 103279
+- allow archiving with absolute pathnames - fixes 97748
+- small POD fix
+- Speed up extract when archive contains lots of files
+- CVE-2018-12015 directory traversal vulnerability [RT#125523]

5 years agorun Porting/makemeta
David Mitchell [Wed, 6 Jun 2018 19:23:11 +0000 (20:23 +0100)]
run Porting/makemeta

Don't know why this needs doing, but t/porting/regen.t was failing:

not ok - Porting/makemeta META.json

and this seems to fix it.

5 years agodisarm RC2 bump
Sawyer X [Wed, 6 Jun 2018 12:35:11 +0000 (15:35 +0300)]
disarm RC2 bump

5 years agobump date v5.28.0-RC2
Sawyer X [Wed, 6 Jun 2018 06:24:34 +0000 (09:24 +0300)]
bump date

5 years agoRegen acknowledgement
Sawyer X [Wed, 6 Jun 2018 06:24:05 +0000 (09:24 +0300)]
Regen acknowledgement

5 years agoProperly bump Module::CoreList
Sawyer X [Wed, 6 Jun 2018 06:14:07 +0000 (09:14 +0300)]
Properly bump Module::CoreList

5 years agoCorrect date of release
Sawyer X [Wed, 6 Jun 2018 06:08:10 +0000 (09:08 +0300)]
Correct date of release

5 years agoBump again
Sawyer X [Wed, 6 Jun 2018 06:07:13 +0000 (09:07 +0300)]
Bump again

5 years agoFix new version in perlhist
Sawyer X [Tue, 5 Jun 2018 20:10:42 +0000 (23:10 +0300)]
Fix new version in perlhist

5 years agofix version numbers in perldelta's description
Vitali Peil [Tue, 5 Jun 2018 05:51:13 +0000 (07:51 +0200)]
fix version numbers in perldelta's description

5 years agoUpdate Module::CoreList for 5.28.0-RC2
Sawyer X [Tue, 5 Jun 2018 17:00:50 +0000 (20:00 +0300)]
Update Module::CoreList for 5.28.0-RC2

5 years agoUpdate META files
Sawyer X [Sat, 26 May 2018 14:10:13 +0000 (17:10 +0300)]
Update META files

5 years agobump version to RC2
Sawyer X [Sat, 26 May 2018 14:09:48 +0000 (17:09 +0300)]
bump version to RC2

5 years agoadd new release to perlhist
Sawyer X [Sat, 26 May 2018 14:05:43 +0000 (17:05 +0300)]
add new release to perlhist

5 years agoperldelta tweaks
David Mitchell [Tue, 29 May 2018 12:17:58 +0000 (13:17 +0100)]
perldelta tweaks

Improve some descriptions, eliminate some entries for changes which were
later reverted or for bugs which only appeared and were fixed within the
5.27.x development cycle; and wrap some long lines.

5 years agomore link to RT
SHIRAKATA Kentaro [Thu, 24 May 2018 19:49:16 +0000 (04:49 +0900)]
more link to RT

5 years agorevert perl_run() 0 -> 256 return mapping
David Mitchell [Mon, 28 May 2018 14:54:57 +0000 (15:54 +0100)]
revert perl_run() 0 -> 256 return mapping

RT #133220

This commit partially reverts v5.27.6-180-g0301e89953.

That commit changed the return values of perl_parse() and perl_run()
so that an exit(0) wouldn't return 0 (which indicates a normal finish)
and instead return 0x100, which a indicates non-normal return, but with
a value which if used as an 8-bit process exit value on UNIX, has the
modulo value of 0.

However, it turns out that perl_run() (via S_run_body()) does a my_exit(0)
rather than just running to completion. So it turns out that it's not
possible to distinguish between perl code finishing normally, and perl
code doing exit(0).

This broke code which embedded perl and expected perl_run() to return 0
on normal completion.

It may be possible to fix this by getting S_run_body() to not call
my_exit(0), but that's too unpredictable change while we're at -RC1.

So just revert the new perl_run() 0x100 behaviour for now.

5 years agoExcessively long line made t/porting/podcheck.t unhappy.
James E Keenan [Thu, 24 May 2018 19:42:35 +0000 (15:42 -0400)]
Excessively long line made t/porting/podcheck.t unhappy.

5 years agoUpdate information on which gcc versions are supported on Windows
Steve Hay [Thu, 24 May 2018 12:37:04 +0000 (13:37 +0100)]
Update information on which gcc versions are supported on Windows

See [perl #128631] (MinGW with runtimes >= 3.21 currently don't work) and
[perl #132955] (MinGW 3.4.5 and 4.7.2+ and MinGW64 x64 6.3.0+ currently
don't work in C++ mode).

5 years agofix Mingw GCC C++ build errors PL_inf/PL_nan
Daniel Dragan [Tue, 24 Apr 2018 18:12:46 +0000 (14:12 -0400)]
fix Mingw GCC C++ build errors PL_inf/PL_nan

Trying a USE_CPLUSPLUS=define build with dmake (USE_CPLUSPLUS not
implemented in GNUMakefile) causes the following error

---------
gcc -c -xc++ -I.\include -I. -I.. -DWIN32 -DPERLDLL -DPERL_CORE -s -O2 -fwrapv -
fno-strict-aliasing -DPERL_EXTERNAL_GLOB -DPERL_IS_MINIPERL -omini\globals.o  ..
\globals.c
In file included from ..\globals.c:32:0:
..\perl.h:6754:50: error: too many initializers for 'U8 [8] {aka unsigned char [
8]}'
 INFNAN_U8_NV_DECL PL_inf = { { LONGDBLINFBYTES } };
                                                  ^
..\perl.h:6790:50: error: too many initializers for 'U8 [8] {aka unsigned char [
8]}'
 INFNAN_U8_NV_DECL PL_nan = { { LONGDBLNANBYTES } };
                                                  ^
dmake:  Error code 129, while making 'mini\globals.o'
---------
in plain C mode builds, this error was just a warning and nobody paid
attention to it for a while
---------
gcc -c  -I.\include -I. -I.. -DWIN32 -DPERLDLL -DPERL_CORE -s -O2 -fwrapv -fno-s
trict-aliasing -DPERL_EXTERNAL_GLOB -DPERL_IS_MINIPERL -omini\globals.o  ..\glob
als.c
In file included from ..\globals.c:32:0:
..\perl.h:5432:42: warning: excess elements in array initializer
 #define INFNAN_U8_NV_DECL EXTCONST union { U8 u8[NVSIZE]; NV nv; }
                                          ^
..\perl.h:6754:1: note: in expansion of macro 'INFNAN_U8_NV_DECL'
 INFNAN_U8_NV_DECL PL_inf = { { LONGDBLINFBYTES } };
 ^
..\perl.h:5432:42: warning: (near initialization for 'PL_inf.u8')
 #define INFNAN_U8_NV_DECL EXTCONST union { U8 u8[NVSIZE]; NV nv; }
                                          ^
..\perl.h:6754:1: note: in expansion of macro 'INFNAN_U8_NV_DECL'
 INFNAN_U8_NV_DECL PL_inf = { { LONGDBLINFBYTES } };
 ^
..\perl.h:5432:42: warning: excess elements in array initializer
 #define INFNAN_U8_NV_DECL EXTCONST union { U8 u8[NVSIZE]; NV nv; }
                                          ^
-------------

Now on VC C++ build, LONGDBLINFBYTES is 8 bytes, as defined in
LONGDBLINFBYTES macro in config_H.vc, and for VC, "long double" is always
typedefed by the CC to "double", so there was no warning, but on GCC,
"long double" is the 80 bit/10 byte type and in config_H.gc the 12 byte
version of INF is inside LONGDBLINFBYTES macro. Because LONG_DOUBLESIZE
define was previously "8" because of makefile logic regardless of CC,

#  elif NVSIZE == LONG_DOUBLESIZE && defined(LONGDBLINFBYTES)
INFNAN_U8_NV_DECL PL_inf = { { LONGDBLINFBYTES } };

was being hit on GCC, even though NVSIZE is 8 as it should be, but
LONGDBLINFBYTES was 12. Hence the warning. I didnt research why this
warning on GCC didn't cause test failures. Perhaps full perl recomputes
the correct initializer in config_sh.PL and doesn't rely on what was in the
miniperl initializer for PL_inf.

To fix things, always emit the correct value for LONG_DOUBLESIZE and dont
hardcode it at 8 for miniperl. 8 must stay for all VCs, and 12/16 is for
GCC. Although GNUMakefile doesn't support a USE_CPLUSPLUS build option,
it has provisons to support it one day. To keep things in sync, copy
miniperl config.h append changes from makefile.mk to GNUMakefile. Also
collapse 2 shell cmd lines in "ifeq ($(USE_LONG_DOUBLE),define)" to reduce
number of proc launches of cmd.exe by the maketool (perf issue).

Next C++ build issue.

APItest.xs: In function 'void XS_XS__APItest__Backrefs_Comctl32Version(Perl
Interpreter*, CV*)':
APItest.xs:6806:37: error: cast from 'LPSTR {aka char*}' to 'WORD {aka shor
t unsigned int}' loses precision [-fpermissive]
                                     MAKEINTRESOURCE(VS_FILE_INFO));
                                     ^
dmake:  Error code 129, while making 'APItest.o'

VS_FILE_INFO is internally "RT_VERSION" which is MAKEINTRESOURCE(16). The
output type of MAKEINTRESOURCE is a char *. GCC complains about casting
that char * back down to a WORD (aka short). Put in a size_t used for
pointer arithimitic to silence the error. Another option is to
remove the outer MAKEINTRESOURCE in APItest.xs since RT_VERSION has
MAKEINTRESOURCE internally, but that assumes implementation details of
headers so pick the less dependency on header design option.

5 years agoAdd link to release for epigraph
Sawyer X [Wed, 23 May 2018 13:47:46 +0000 (16:47 +0300)]
Add link to release for epigraph

5 years agoperldelta: Clarify we refer to perl -i in in-place editing
Sawyer X [Wed, 23 May 2018 13:37:37 +0000 (16:37 +0300)]
perldelta: Clarify we refer to perl -i in in-place editing

5 years agoperldelta: Remove mention of reverted change
Sawyer X [Wed, 23 May 2018 13:35:37 +0000 (16:35 +0300)]
perldelta: Remove mention of reverted change

5 years agoperldelta: convert all RT ticket references to links
Aaron Crane [Tue, 22 May 2018 08:23:58 +0000 (09:23 +0100)]
perldelta: convert all RT ticket references to links

5 years agoMinor edits to perldelta
Aaron Crane [Tue, 22 May 2018 08:12:47 +0000 (09:12 +0100)]
Minor edits to perldelta

- Delete some mentions of bugs that were both introduced and fixed in the
  5.27.x series

- Fix a POD infelicity

- Add one word for clarity

5 years agoFixes for perldelta
Karl Williamson [Mon, 21 May 2018 19:26:58 +0000 (13:26 -0600)]
Fixes for perldelta

This commit makes some changes to perldelta.

1) Reorders some sections so that a new feature is presented before
being referred to.

2) Typos

3) Confused wording

4) =head text should all be on the same line

5) script runs are experimental

5 years agoupdate with perl527*delta removal
David Mitchell [Mon, 21 May 2018 15:26:10 +0000 (16:26 +0100)]
update with perl527*delta removal

Update a few build files so that they know that the perl527*delta.pod
files no longer exist.

5 years agoRemove 5.27.x perldelta files
Sawyer X [Mon, 21 May 2018 13:54:21 +0000 (16:54 +0300)]
Remove 5.27.x perldelta files

5 years agoRegen META files
Sawyer X [Mon, 21 May 2018 13:42:02 +0000 (16:42 +0300)]
Regen META files

5 years agoAdding epigraph, correct previous
Sawyer X [Mon, 21 May 2018 13:25:41 +0000 (16:25 +0300)]
Adding epigraph, correct previous

5 years agodisarm RC1 bump
Sawyer X [Mon, 21 May 2018 12:52:19 +0000 (15:52 +0300)]
disarm RC1 bump

5 years agoUpdate META files v5.28.0-RC1
Sawyer X [Mon, 21 May 2018 10:50:38 +0000 (13:50 +0300)]
Update META files

5 years agobump version to RC1
Sawyer X [Mon, 21 May 2018 10:50:13 +0000 (13:50 +0300)]
bump version to RC1

5 years agoUpdate perlhist for 5.28.0-RC1
Sawyer X [Mon, 21 May 2018 10:49:21 +0000 (13:49 +0300)]
Update perlhist for 5.28.0-RC1

5 years agoFinally
Sawyer X [Mon, 21 May 2018 10:44:16 +0000 (13:44 +0300)]
Finally

5 years agoFinalize perldelta
Sawyer X [Mon, 21 May 2018 09:19:57 +0000 (12:19 +0300)]
Finalize perldelta

5 years agoUpdate Module::CoreList for 5.28.0
Sawyer X [Mon, 21 May 2018 08:47:26 +0000 (11:47 +0300)]
Update Module::CoreList for 5.28.0

5 years agoRemove symlink and MANIFEST entry
Sawyer X [Sun, 20 May 2018 16:08:46 +0000 (19:08 +0300)]
Remove symlink and MANIFEST entry

5 years agoFixes for 5.28.0
Sawyer X [Sun, 20 May 2018 15:38:08 +0000 (18:38 +0300)]
Fixes for 5.28.0

5 years agoMerged all perldeltas for 5.28.0
Sawyer X [Sun, 20 May 2018 15:37:59 +0000 (18:37 +0300)]
Merged all perldeltas for 5.28.0

5 years agoUpdate Module::CoreList for 5.28.0-RC1
Sawyer X [Mon, 14 May 2018 20:48:21 +0000 (23:48 +0300)]
Update Module::CoreList for 5.28.0-RC1

5 years agoUpdate perlpolicy for 5.28.0
Sawyer X [Mon, 14 May 2018 20:36:48 +0000 (23:36 +0300)]
Update perlpolicy for 5.28.0

5 years agoregcomp.c: White space only
Karl Williamson [Sun, 13 May 2018 03:58:56 +0000 (21:58 -0600)]
regcomp.c: White space only

Indent code that now has a newly formed block around it.

5 years agoregcomp.c: Avoid a panic on malformed qr/\N{..}/i
Karl Williamson [Sun, 13 May 2018 03:40:02 +0000 (21:40 -0600)]
regcomp.c: Avoid a panic on malformed qr/\N{..}/i

Input constructs that expand to more than one character are handled very
very specially when they occur within a bracketed character class.  What
happens effectively is that they are removed from the class and parsed
separately, using the regular code in regcomp.c to generate something
like a trie for them.  The other characters within the class are handled
normally.

The specially handled stuff is parsed from a separate string.  In the
case where that stuff is of the form \N{U+...}, I neglected to
adequately consider that the syntax could trigger an error.  When such
an error is raised, it can violate our assumptions about the state of
things, and lead to a panic.

THe code actually parses the construct twice.  The first time while
deciding if this expands to multiple characters (so that it can be
separated out), and the second time to actually figure out and return
the expansion.  This commit fixes the bug by adding error checking
during the first pass.  Previously, the minimal amount of work was done
to be able to find the count of characters in the expansion.  Now, more
work is done to do the checking, as we go along with the counting.  This
actually results in less special case code needing to be executed, so
there is a net code removal from this commit.

5 years agoPATCH: [perl #133194] Heap buffer overflow
Karl Williamson [Sun, 13 May 2018 04:20:33 +0000 (22:20 -0600)]
PATCH: [perl #133194] Heap buffer overflow

On debugging builds, the code in the ticket instead fails an assert.  I
thought I had previous failures figured out, but it turns out I was
wrong.  To prevent potential security failures by going ahead and
printing memory known to be outside what we are expecting on
non-debugging builds, instead panic.

This doesn't fix the underlying problem of how we came to be trying to
output bad stuff, but it keeps all such cases from being security
bugs.

5 years agoPATCH: [perl #133185] Infinite loop in qr//
Karl Williamson [Tue, 8 May 2018 18:13:18 +0000 (12:13 -0600)]
PATCH: [perl #133185] Infinite loop in qr//

This loop was inadvertently introduced as part of patches to fix
(perl #132227 CVE-2018-6797] heap-buffer-overflow".  The commit in 5.27
responsible was f8fb8615ddc5a80e3bbd4386a8914497f921b62d.

To be vulnerable, the pattern must start out as /d (hence no use 5.012
or higher), and then there must be something that implicitly forces /u
(which the \pp does in the test case added by this patch), and then
(?aa), and then the code point \xDF.  (German Sharp S).  The /i must be
in effect by the time the DF is encountered, but it needn't come in the
(?aa) which the test does.

The problem is that the conditional that is testing that we switched
away from /d rules is assuming that this happened during the
construction of the current EXACTFish node.  The comments I wrote
indicate this assumption.  But this example shows that the switch can
come before this node started getting constructed, and so it loops.

The patch explicitly saves the state at the beginning of this node's
construction, and only retries if it changed during that construction.
Therefore the next time through, it will see that it hasn't changed
since the previous time, and won't loop.

5 years agoPATCH: [perl # 133179] heap-buffer-overflow write
Karl Williamson [Sun, 6 May 2018 08:27:01 +0000 (02:27 -0600)]
PATCH: [perl # 133179] heap-buffer-overflow write

The code did not consider the case of a trailing slash with no
denominator following it.  Simply add a check.

5 years agoWork around for [perl $133136]
Karl Williamson [Tue, 1 May 2018 17:51:19 +0000 (11:51 -0600)]
Work around for [perl $133136]

This commit is a blatant kludge to work around a failing test in
Lexical::SealRequireHints.  The test is wrong, checking for an internal
detail that has changed.

This commit adds a conditional for the exact input that's failing, and
if found, uses the old method, so the test passes.

The failing input is the regex pattern

    foo\p{Alnum}

'foo' is unlikely to be found in practice outside of .t files, and
this particular pattern rarely even in those.  So this should not slow
down real production code.

5 years agoRevert "set PERL_EXIT_DESTRUCT_END in all embeddings"
David Mitchell [Wed, 9 May 2018 09:54:55 +0000 (10:54 +0100)]
Revert "set PERL_EXIT_DESTRUCT_END in all embeddings"

This reverts commit 8e920bd341e241f50a74dbf8aa343319f204e200.
Also skip the tests in t/op/blocks.t

RT #132863

8e920bd341 sets the PERL_EXIT_DESTRUCT_END flag on non-UNIXy platforms,
like is already done on UNIXy platforms.  This makes things like
BEGIN { exit(1) } call END blocks on those platforms (like they already
do on UNIX).

But it caused problems with win32 pseudo-forks, so revert for 5.28
and re-address the issues sometime later.

5 years agot/op/blocks.t: indent 6 tests in a new skip block
David Mitchell [Wed, 9 May 2018 12:52:50 +0000 (13:52 +0100)]
t/op/blocks.t: indent 6 tests in a new skip block

Apart from the whitespace change, this just wraps 6 tests in
a SKIP: { ... } block which isn't (yet) used.

5 years agot/op/blocks.t: consolidate VMS-skips together
David Mitchell [Wed, 9 May 2018 12:49:14 +0000 (13:49 +0100)]
t/op/blocks.t: consolidate VMS-skips together

Put the three tests skipped under VMS together into a single SKIP
block rather than 3 separate skips.

As well as being tidier, as a side effect, it makes 6 tests contiguous
that are shortly to be skipped under win32,