This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Karl Williamson [Thu, 23 May 2019 06:48:49 +0000 (00:48 -0600)]
regcomp.sym: Fix typo in comment
Karl Williamson [Sun, 5 May 2019 16:03:01 +0000 (10:03 -0600)]
numeric.c: Add #error case
It's best to have a #error case when nothing in the #if #else series is
true, as it catches the problem at compile time.
Karl Williamson [Sat, 27 Apr 2019 19:56:39 +0000 (13:56 -0600)]
S_scan_const() Properly test if need to grow
As we parse the input, creating a string constant, we may have to grow
the destination if it fills up as we go along. It allocates space in an
SV and populates the string, but it doesn' update the SvCUR until the
end, so in single stepping the debugger through the code, the SV looks
empty until the end. It turns out that as a result SvEND also doesn't
get updated and still points to the beginning of the string until SvCUR
is finally set. That means that the test changed by this commit was
always succeeding, because it was using SvEND that didn't get updated,
so it would attempt to grow each time through the loop. By moving a
couple of statements earlier, and using SvLEN instead, which does always
have the correct value, those extra growth attempts are avoided.
Karl Williamson [Mon, 29 Apr 2019 03:26:35 +0000 (21:26 -0600)]
POSIX.xs: Add NOTREACHED to silence cygwin compiler
Karl Williamson [Wed, 24 Apr 2019 22:22:08 +0000 (16:22 -0600)]
posix_bump
Karl Williamson [Mon, 29 Apr 2019 03:17:21 +0000 (21:17 -0600)]
cygwin.c: Fix misleading indentation
Karl Williamson [Thu, 14 Mar 2019 18:18:59 +0000 (12:18 -0600)]
regnodes.h: Change some regnodes' names
These were misleading, as elsewhere a leading 'N' in the name means the
complement. Instead move the N to the end of the name
Karl Williamson [Wed, 22 May 2019 20:37:20 +0000 (14:37 -0600)]
PATCH: [perl #134126] -Dusemymalloc, -Dusethreads
This was due to a missing declaration for thread context needed to
output a message.
Karl Williamson [Mon, 29 Apr 2019 21:24:18 +0000 (15:24 -0600)]
PATCH: [perl #134059] panic outputting a warning
This was due to a logic error on my part. We need to save and restore a
value. Instead, it was getting restored to the wrong value.
This particular instance of the bug was outputting a fatal error
message, so that the only harm is not giving the user the correct info,
and creating unnecessary work for them and us when it gets reported.
But this bug could manifest itself when trying to output just a warning
that the program otherwise would carry on from.
Karl Williamson [Fri, 1 Jun 2018 16:51:05 +0000 (10:51 -0600)]
perllocale: Use L</Foo Bar>, not L<Foo Bar>
Karl Williamson [Fri, 24 May 2019 15:15:59 +0000 (09:15 -0600)]
PATCH: [perl #134134] read beyond end of buffer
This turns out to be because of a special input case in myatof3(),
wherein if the input length is 0, it call strlen to find the length.
The solution is to add a test and not call the function unless the
length is positive.
Sawyer X [Fri, 24 May 2019 22:18:57 +0000 (01:18 +0300)]
Resolve merge conflict
Sawyer X [Fri, 24 May 2019 22:06:41 +0000 (01:06 +0300)]
Bump Module::CoreList
Sawyer X [Fri, 24 May 2019 21:58:31 +0000 (00:58 +0300)]
Bump the perl version in various places for 5.31.1
Sawyer X [Fri, 24 May 2019 21:44:00 +0000 (00:44 +0300)]
new perldelta for 5.31.1
Sawyer X [Fri, 24 May 2019 21:32:42 +0000 (00:32 +0300)]
Fix perldelta from 5.30.1 to 5.31.0:
perldelta was accidentally set to 5.30.1 instead of 5.31.0.
Hopefully this commit should fix it, along with the correction
of the symlink in pod/.
Sawyer X [Fri, 24 May 2019 21:21:18 +0000 (00:21 +0300)]
Fix perldelta mistake
Karen Etheridge [Fri, 24 May 2019 20:13:54 +0000 (13:13 -0700)]
fix version in perldelta
Sawyer X [Fri, 24 May 2019 19:49:37 +0000 (22:49 +0300)]
Tick off release
Sawyer X [Fri, 24 May 2019 19:46:18 +0000 (22:46 +0300)]
Update epigraph
Sawyer X [Fri, 24 May 2019 17:40:59 +0000 (20:40 +0300)]
Remove the update from perldelta
Sawyer X [Fri, 24 May 2019 17:40:11 +0000 (20:40 +0300)]
Revert "Bump Pod::Simple from 3.35 to 3.36"
This reverts commit
314f4963bff4d23e773eee5559e5fd1de2dc6cbc.
This is causing testing failures on FreeBSD-11, raised by Jim Keenan.
Sawyer X [Fri, 24 May 2019 15:59:27 +0000 (18:59 +0300)]
add new release to perlhist
Sawyer X [Fri, 24 May 2019 15:41:53 +0000 (18:41 +0300)]
Finalize perldelta
Sawyer X [Fri, 24 May 2019 15:29:24 +0000 (18:29 +0300)]
Bump Module::CoreList
Sawyer X [Fri, 24 May 2019 15:06:58 +0000 (18:06 +0300)]
Bump Socket.pm from 2.027 to 2.029
Sawyer X [Fri, 24 May 2019 14:56:15 +0000 (17:56 +0300)]
Bump Pod::Simple from 3.35 to 3.36
Sawyer X [Wed, 22 May 2019 11:36:07 +0000 (14:36 +0300)]
Prepare the next release schedule
Sawyer X [Wed, 22 May 2019 11:14:04 +0000 (14:14 +0300)]
Update Module::CoreList for 5.31.0
Sawyer X [Wed, 22 May 2019 11:07:31 +0000 (14:07 +0300)]
Bump the perl version in various places for 5.31.0
Sawyer X [Wed, 22 May 2019 09:50:21 +0000 (12:50 +0300)]
update features
Sawyer X [Wed, 22 May 2019 09:47:10 +0000 (12:47 +0300)]
New perldelta
Sawyer X [Wed, 22 May 2019 09:46:41 +0000 (12:46 +0300)]
tick off release
Sawyer X [Wed, 22 May 2019 09:40:52 +0000 (12:40 +0300)]
Update epigraph
Sawyer X [Wed, 22 May 2019 08:29:58 +0000 (11:29 +0300)]
Update perlhist
Sawyer X [Wed, 22 May 2019 08:16:07 +0000 (11:16 +0300)]
Last minute fix, thanks SHIRAKATA Kentaro
Sawyer X [Tue, 21 May 2019 22:40:22 +0000 (01:40 +0300)]
add new release to perlhist
Sawyer X [Tue, 21 May 2019 21:42:20 +0000 (00:42 +0300)]
Typo fix
Sawyer X [Tue, 21 May 2019 20:22:06 +0000 (23:22 +0300)]
Update Module::CoreList for 5.30.0
Sawyer X [Mon, 20 May 2019 17:56:21 +0000 (20:56 +0300)]
[perldelta] Typo, thanks Paul Johnson!
Sawyer X [Sun, 19 May 2019 06:31:53 +0000 (09:31 +0300)]
[perldelta] Rephrase Acknowledgements, thanks Hugo and Craig
Sawyer X [Fri, 17 May 2019 20:50:42 +0000 (23:50 +0300)]
Update epigraph, linkify later
Sawyer X [Fri, 17 May 2019 20:47:05 +0000 (23:47 +0300)]
Update META
Sawyer X [Fri, 17 May 2019 20:46:18 +0000 (23:46 +0300)]
disarm RC2 bump
Sawyer X [Fri, 17 May 2019 18:51:10 +0000 (21:51 +0300)]
Update META files
Sawyer X [Fri, 17 May 2019 18:50:51 +0000 (21:50 +0300)]
bump version to RC2
Sawyer X [Fri, 17 May 2019 18:50:18 +0000 (21:50 +0300)]
Remove selected information from non-blead-point release
Sawyer X [Fri, 17 May 2019 18:50:01 +0000 (21:50 +0300)]
update release
Sawyer X [Fri, 17 May 2019 18:30:47 +0000 (21:30 +0300)]
Fix to acknowledgements
Sawyer X [Fri, 17 May 2019 18:28:27 +0000 (21:28 +0300)]
Small update to Module::CoreList:
We bumped Devel::PPPort between RC1 and RC2. No new version of
Module::CoreList was released for this.
Sawyer X [Fri, 17 May 2019 18:18:23 +0000 (21:18 +0300)]
Merge branch 'smoke-me/khw-petr' into blead
Karl Williamson [Thu, 16 May 2019 21:47:20 +0000 (15:47 -0600)]
PATCH: [perl #133860] 5.30 regression
These bugs stem from trying to compile a user-defined \p{IsProperty}
before the data for the property is available. In the past, a bug used
the wrong package for IsProperty, and it wasn't found, so its expansion
was delayed until runtime. But that bug got fixed, and now it finds the
property and thinks its deliberately empty, at compile time.
This is a change in behavior, even if it is fixing a bug, where the real
problem is unobvious. The solution adopted in this commit is to defer
all empty properties at pattern compilation time. If they are still
empty at runtime, that's what the expansion will be.
Nicolas R [Thu, 16 May 2019 22:47:56 +0000 (16:47 -0600)]
Revert "Rename PPPort_xs.PL to RealPPPort_xs.PL"
This reverts commit
0f14f67985491207f4a0e3936307f4c565717fd6.
need to apply after current freeze
Nicolas R [Thu, 16 May 2019 22:47:37 +0000 (16:47 -0600)]
Revert "Fix compilation issues with version older than 5.010"
This reverts commit
a09f79fbc2455b7ea72a49f6627a639101ba35a2.
need to apply after current freeze
Nicolas R [Wed, 15 May 2019 14:53:26 +0000 (08:53 -0600)]
Fix compilation issues with version older than 5.010
By adding more Perl versions to the Travis CI configuration
file we discovered that versions earlier 5.010 are broken.
Note that the uv.t does not raise the overflow warning
as expected by the test and we probably want to fix this in
a short future.
The test uv.t is simply not passing with 5.006 versions and
has several failures. I've currently disabled it.
Patch provided by Pali
Nicolas R [Tue, 14 May 2019 19:53:45 +0000 (13:53 -0600)]
Rename PPPort_xs.PL to RealPPPort_xs.PL
Fixes Devel-PPPort GH #21
To avoid confusion rename the template for RealPPPort.xs
file as RealPPPort_xs.PL so it's now clear what file
it generates.
Nicolas R [Wed, 15 May 2019 16:02:55 +0000 (10:02 -0600)]
Adjust perlvar doc for @INC
RT #134108
dot is not in @INC anymore since 5.26
Sawyer X [Thu, 16 May 2019 16:13:56 +0000 (10:13 -0600)]
Linkify B::Debug and Locale::Codes to CPAN in a uniform way
Karl Williamson [Thu, 16 May 2019 16:10:33 +0000 (10:10 -0600)]
perldelta: Improvements
This includes some small wording changes, reordering by importance,
collapsing near-duplicate entries.
Sawyer X [Wed, 15 May 2019 04:36:57 +0000 (07:36 +0300)]
[perldelta] Missing =item
Karl Williamson [Mon, 13 May 2019 16:11:06 +0000 (10:11 -0600)]
Fix up perldelta in regard to Unicode versions
Sawyer X [Wed, 15 May 2019 04:27:48 +0000 (07:27 +0300)]
Revert "[perldelta] Merge Unicode 11.0, 12.0, and 12.1"
This reverts commit
d4c6f1162051dc6f5ddb49bb9598500047458e03.
Sawyer X [Wed, 15 May 2019 04:27:33 +0000 (07:27 +0300)]
Revert "[perldelta] Missing 'of'"
This reverts commit
78ccf50b87776a7a9e721f24512c10a2b7cd0f06.
Sawyer X [Wed, 15 May 2019 04:18:49 +0000 (07:18 +0300)]
[perldelta] Missing 'of'
Sawyer X [Wed, 15 May 2019 04:15:21 +0000 (07:15 +0300)]
[perldelta] Merge Unicode 11.0, 12.0, and 12.1
Sawyer X [Wed, 15 May 2019 04:09:59 +0000 (07:09 +0300)]
Linkify epigraph
Nicolas R [Tue, 14 May 2019 18:15:54 +0000 (12:15 -0600)]
sync with cpan release of Devel-PPPort 3.52
Karen Etheridge [Mon, 13 May 2019 20:32:14 +0000 (13:32 -0700)]
minor wording changes, rt links
Sawyer X [Sun, 12 May 2019 13:12:07 +0000 (16:12 +0300)]
Remove references to 5.29
Sawyer X [Sat, 11 May 2019 23:14:49 +0000 (02:14 +0300)]
Regen for some reason
Sawyer X [Sat, 11 May 2019 23:03:34 +0000 (02:03 +0300)]
Epigraph update
Sawyer X [Sat, 11 May 2019 22:58:43 +0000 (01:58 +0300)]
disarm RC1 bump
Sawyer X [Sat, 11 May 2019 22:08:35 +0000 (01:08 +0300)]
Remove unnecessary MANIFEST entry
Sawyer X [Sat, 11 May 2019 22:06:59 +0000 (01:06 +0300)]
Whoops
Sawyer X [Sat, 11 May 2019 22:01:29 +0000 (01:01 +0300)]
Remove symlink
Sawyer X [Sat, 11 May 2019 21:38:01 +0000 (00:38 +0300)]
update MANIFEST
Sawyer X [Sat, 11 May 2019 21:34:55 +0000 (00:34 +0300)]
Update perl.pod with 5300delta
Sawyer X [Sat, 11 May 2019 20:52:54 +0000 (23:52 +0300)]
Update META files
Sawyer X [Sat, 11 May 2019 20:52:37 +0000 (23:52 +0300)]
bump version to RC1
Sawyer X [Sat, 11 May 2019 20:48:58 +0000 (23:48 +0300)]
add new release to perlhist
Sawyer X [Sat, 11 May 2019 20:39:25 +0000 (23:39 +0300)]
Finalize perldelta
Karl Williamson [Fri, 10 May 2019 22:18:35 +0000 (16:18 -0600)]
5.30 utf8_to_uvchr_buf still has wrong retval
Wrong for some failure conditions, anyway. It should get fixed early in
5.31, make the cutoff here 5.31.2 to give us some leeway, so don't have
to change Devel::PPPort again.
Sawyer X [Fri, 10 May 2019 20:26:59 +0000 (23:26 +0300)]
Update Module::CoreList for 5.30.0
Sawyer X [Fri, 10 May 2019 19:44:00 +0000 (22:44 +0300)]
Bump the perl version in various places for 5.30.0
Karen Etheridge [Thu, 9 May 2019 03:47:04 +0000 (20:47 -0700)]
fix version number in Changes
Tony Cook [Thu, 9 May 2019 00:29:17 +0000 (10:29 +1000)]
perldelta for
9f300641fc6f
Tony Cook [Fri, 3 May 2019 04:49:50 +0000 (14:49 +1000)]
(perl #133958) preserve errno on successful malloc/realloc
In general perl doesn't try to preserve errno (aka $!) since we're
aiming at the same behaviour as for C code - errno is only meaningful
if a function returned an error.
The exception to that is when perl is working without an explicit
request from the perl programmer.
When code is performing assignments, concatenating strings, pushing on
arrays etc, perl is exercising the memory allocation machinery,
calling malloc() and realloc().
It turns out that at least on one platform, realloc() can modify errno
on success.
It appears to be happening when jemalloc (the malloc() implementation
used on FreeBSD) tries to extend a memory arena and fails, leaving the
error number from that failure in errno, from truss:
mmap(0x80142f000,32768,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_ANON|MAP_EXCL,-1,0x0) ERR#12 'Cannot allocate memory'
This magic call appears to be a FreeBSD specific mechanism to resize
the anonymous mapping. On Linux the equivalent seems to be calling
mremap().
In each case for the test code mmap() is successfully called
immediately afterwards:
mmap(0x0,69632,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),-1,0x0) =
34390323200 (0x801d2b000)
and realloc() succeeds.
glibc() realloc seems to be simpler, AFAICT from reading the code it
only uses mremap() when the memory block is the entire mapping,
ie. for large blocks rather than for memory arenas, and it doesn't
request the same address, so it doesn't fail.
For blocks that are part of arenas, glibc tries to expand in-place
within the current arena (with no extending the arena itself) or falls
back to malloc, so there's no chance for errno to be changed on a
successful realloc().
Craig A. Berry [Fri, 3 May 2019 21:45:41 +0000 (16:45 -0500)]
Hide clock_gettime() from macOS 10.12+ for pre-10.12.
When building on current Darwin but deploying to macOS 10.11.x or
earlier, we need to convince Time::HiRes to use its override of
clock_gettime() rather than the system-supplied one.
Addresses [perl #128972].
Karl Williamson [Mon, 6 May 2019 13:41:42 +0000 (07:41 -0600)]
Revert "PATCH: [perl #134031] BBC breake Math::Clipper"
This reverts commit
9ddfdb573eecc4201e23e59c82335dbdd9e7c7d3.
It turns out that strtod() isn't less accurate than atof() on this
platform; it's generally more accurate. We still don't fully understand
the situation, but the answer isn't this commit.
Karl Williamson [Sat, 27 Apr 2019 20:30:02 +0000 (14:30 -0600)]
S_scan_const: Make sure room for NUL in dest
At the end of a constant, we add a trailing NUL. This commit makes sure
there's room for it. But the code earlier was supposed to have already
made enough space, so its a bug if there isn't enough space. So on
DEBUGGING builds, we panic, as we've done before. But otherwise we can
continue on with no actual harm having been done.
Karl Williamson [Sat, 27 Apr 2019 20:04:58 +0000 (14:04 -0600)]
PATCH: [perl #134067] heap buffer overflow in lexing
This bug happens under tr///. In some circumstances, a byte is inserted
in the output that wasn't in the input, and it did not check that there
was space available for this character. The result could be a write
after the buffer end.
I suspect that this bug has been there all along, and the blamed commit
rearranged things so that it is more likely to happen; it depends on
needing to malloc in just the wrong place.
Yves Orton [Fri, 3 May 2019 11:15:40 +0000 (13:15 +0200)]
add "see also" reference to newRV_inc and newRV_noinc to newSVrv() docs
Tony Cook [Fri, 3 May 2019 00:21:48 +0000 (10:21 +1000)]
Tony Cook [Fri, 3 May 2019 00:09:06 +0000 (10:09 +1000)]
(perl #134061) move the test to t/uni/parser.t
porting/test_bootstrap prevents most use of use in t/comp
Aaron Crane [Fri, 26 Apr 2019 13:02:47 +0000 (14:02 +0100)]
RT#134061: don't call pad_findmy_pvn() with invalid flags
Karl Williamson [Fri, 26 Apr 2019 20:42:37 +0000 (14:42 -0600)]
PATCH: [perl #134064] Assertion failure in toke.c
The blamed commit simplified some code based on the assumption that
UTF-8 well-formedness had already been verified. It had an assertion to
verify this. The test case shows that there is a path, through 'eval',
that bypasses this usual checking.
The checking was based on the assumption that the program started not in
UTF-8, and something like a 'use utf8' would be needed to get it there,
at which point a flag would be set to the effect that well-formedness
should be checked. But it turns out that a string eval (perhaps other
things) gets parsed separately and so the flag wasn't set, so no
well-formedness checking was being done.
The solution is a one word change, to initialize the flag to TRUE "'yes,
check" instead of FALSE "no, don't check" in the initialization routine
run at the beginning of lexing a code unit. This catches eval and
presumably anything else that was being bypassed.
The checking is only actually done if the code being lexed is known to
be in UTF-8. This will continue to get turned on by the ways it
currently gets turned on, such as 'use utf8'.
Karl Williamson [Tue, 30 Apr 2019 00:46:51 +0000 (18:46 -0600)]
PATCH: [perl #134031] BBC breake Math::Clipper
This turns out to be that strtod() is less accurate on this platform
than atof(). I looked at the difference, and a test failed that was
failing in this module was the difference between a 0 and a 1 in the
final digit.
The solution is to forbid in the hints file using strtod
Tony Cook [Wed, 24 Apr 2019 05:01:48 +0000 (15:01 +1000)]
(perl #134046) list form system/exec/pipe open limits on Win32
Karen Etheridge [Tue, 30 Apr 2019 23:10:29 +0000 (16:10 -0700)]
sync up with cpan release of Devel-PPPort 3.51
3.51 - 2019-05-01
* include the module version in metadata for proper PAUSE indexing
Karen Etheridge [Tue, 30 Apr 2019 19:02:21 +0000 (12:02 -0700)]
whitespace