This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Karl Williamson [Thu, 29 Aug 2019 22:52:45 +0000 (16:52 -0600)]
warnings.h: Add pod about finding the XS warning category
The XS category names are easily derivable from the chart of perl-space
categories.
Karl Williamson [Sun, 1 Sep 2019 02:53:03 +0000 (20:53 -0600)]
regen/embed.pl: Enforce 'b' without 'M' requires 'D'
Karl Williamson [Sun, 1 Sep 2019 02:03:04 +0000 (20:03 -0600)]
embed.fnc: Functions in mathoms are deprecated
(unless there is a macro to bypass them)
These functions can be removed at any time, and any installation may
disallow them. So they are effectively deprecated. Make this explicit.
Karl Williamson [Sun, 1 Sep 2019 02:51:52 +0000 (20:51 -0600)]
regen/embed.pl: Enforce mutual exclusivity of 'b', 'm'
Karl Williamson [Sat, 31 Aug 2019 22:43:35 +0000 (16:43 -0600)]
embed.fnc: pack_cat, pad_compname_type have macro
contrary to what was specified here
Karl Williamson [Tue, 20 Aug 2019 18:35:49 +0000 (12:35 -0600)]
embed.fnc: Use M flag generally with b, not m.
Commit
54c193aee0eb1f20806952d8fcd2ddadd5e57600 introduced the M flag,
to indicate an extra macro in addition to a regular function, beyond the
m flag which indicates a macro that replaces the function. This
distinction matters to downstream processes.
But some of the functions with the b flag (hence in mathoms) still had
an m flag, but the macro is actually extra. This commit changes those
from m to M.
Karl Williamson [Sat, 31 Aug 2019 23:00:26 +0000 (17:00 -0600)]
embed.fnc: There is no macro for sv_nolocking()
Contrary to what this said.
Karl Williamson [Mon, 5 Aug 2019 03:03:42 +0000 (21:03 -0600)]
perlapi: Formally give prototypes for isFOO variants
These macros are documented unconventionally, with the main one of a
type documented, and the corresponding variants listed with a pointer to
how the variant differs from the main entry. This is because they all
have similar corresponding variants, and doing it this way makes the
documentation more compact. But downstream software is looking for
an apidoc entry to know about the existence of these. This commit adds
that, using the new 'h', or hidden flag to suppress them from being
displayed.
Karl Williamson [Thu, 29 Aug 2019 22:28:33 +0000 (16:28 -0600)]
autodoc.pl: Add h flag for hidden documentation
This is to be used when the documentation exists, but isn't the typical
sort in perlapi or perlintern.
Karl Williamson [Mon, 5 Aug 2019 00:26:16 +0000 (18:26 -0600)]
perlapi: Document memEQs memNEs
Karl Williamson [Mon, 5 Aug 2019 00:25:31 +0000 (18:25 -0600)]
perlapi: Document C_ARRAY_LENGTH, END
Karl Williamson [Mon, 5 Aug 2019 00:23:03 +0000 (18:23 -0600)]
perlapi: Document __ASSERT_
Karl Williamson [Mon, 5 Aug 2019 00:22:16 +0000 (18:22 -0600)]
perlapi: Document cBOOL
Karl Williamson [Mon, 5 Aug 2019 00:21:11 +0000 (18:21 -0600)]
perlapi: Document XST_mUV
This one was missing from the set
Karl Williamson [Mon, 5 Aug 2019 00:19:25 +0000 (18:19 -0600)]
perlapi: Document GROK_NUMERIC_RADIX, PERL_ABS
Karl Williamson [Mon, 5 Aug 2019 00:17:48 +0000 (18:17 -0600)]
perlapi: Document my_strotod, Strtod
Karl Williamson [Mon, 5 Aug 2019 00:16:10 +0000 (18:16 -0600)]
perlapi: Document IN_LOCALE, and related
Karl Williamson [Mon, 5 Aug 2019 00:14:43 +0000 (18:14 -0600)]
perlapi: Document LIKELY, UNLIKELY
Karl Williamson [Mon, 5 Aug 2019 00:03:03 +0000 (18:03 -0600)]
perlapi: Document SvUVXx()
I'm doing so because Devel::PPPort provides this function.
Karl Williamson [Mon, 5 Aug 2019 00:01:11 +0000 (18:01 -0600)]
perlapi: Document UNICODE_REPLACEMENT
Karl Williamson [Mon, 5 Aug 2019 00:00:01 +0000 (18:00 -0600)]
perlapi: Document NATIVE_to_foo, converse functions
Karl Williamson [Sat, 31 Aug 2019 17:16:40 +0000 (11:16 -0600)]
perlapi: Generalize SEE ALSO lists
This makes sure perlintern and perlapi are consistent
Karl Williamson [Sun, 1 Sep 2019 02:45:08 +0000 (20:45 -0600)]
regen/embed.pl: Improve error msg
by indicating which function the problem occurs in
Karl Williamson [Fri, 30 Aug 2019 19:06:18 +0000 (13:06 -0600)]
regen/embed.pl: Sort accepted flags list; N n s are legal
This makes it easier to look up a flag in the list. It had gotten out
of order due to an earlier renaming of a flag. And several legal flags
(though not used in embed.fnc) were missing
Karl Williamson [Sat, 31 Aug 2019 20:13:57 +0000 (14:13 -0600)]
perlapi: Clarify pod for cop_store_label
Karl Williamson [Sat, 31 Aug 2019 19:01:24 +0000 (13:01 -0600)]
perlapi: Fix pod for perl_clone()
There were grammar mistakes, and the example it cited is no longer
valid.
Karl Williamson [Fri, 30 Aug 2019 16:32:15 +0000 (10:32 -0600)]
t/re/pat.t: Use ASCII ' in comment, not Unicode char
Tony Cook [Tue, 3 Sep 2019 01:15:23 +0000 (11:15 +1000)]
perldelta for
6c3320363f6cd
Tony Cook [Wed, 24 Jul 2019 05:56:08 +0000 (15:56 +1000)]
(perl #133981) fix for Win32 setlocale() abort
This appears to abort because the supplied locale string isn't validly
encoded in the current code page, so we see the following steps:
1) an internal sizing call to mbstowcs_s() fails, but
2) the calling (CRT) code doesn't handle that, allocating a zero length
buffer
3) mbstowcs_s() is called with a buffer and a zero size, causing the
exception.
Since it's the conversion that fails, perform our own conversion.
Rather than using the current code page always use CP_UTF8, since
this is perl's typical non-Latin1 encoding.
Unfortunately we don't have the SVf_UTF8 flag at this point, so
all we can do is assume UTF-8.
This introduces a change in behaviour - previously locale names
were interpreted in the current code page, but most locale names
are ASCII, so it shouldn't matter.
One issue is that the return value is freed on the next LEAVE, but
all callers immediately use or copy the string.
Tony Cook [Mon, 2 Sep 2019 23:19:52 +0000 (09:19 +1000)]
perldelta for
05a03c0da6f3
Tony Cook [Mon, 2 Sep 2019 05:35:36 +0000 (15:35 +1000)]
(perl #134390) don't leak the SV we just created on an early return
Tony Cook [Mon, 2 Sep 2019 01:35:47 +0000 (11:35 +1000)]
More SvPV* macros
Tony Cook [Mon, 2 Sep 2019 01:28:16 +0000 (11:28 +1000)]
bump $XS::APItest::VERSION
Pali [Sat, 10 Feb 2018 14:10:04 +0000 (15:10 +0100)]
Implement SvPV*_or_null*
Pali [Sat, 10 Feb 2018 12:41:46 +0000 (13:41 +0100)]
Implement SvPVutf8_nomg and SvPVbyte_nomg
Tony Cook [Tue, 19 Mar 2019 23:53:17 +0000 (10:53 +1100)]
test for desired magic fetches/stores for vec()
for #132782
Pali [Sat, 10 Feb 2018 12:41:19 +0000 (13:41 +0100)]
Fix do_vecget and do_vecset to process GET magic only once
Pali [Sat, 10 Feb 2018 12:40:47 +0000 (13:40 +0100)]
Implement sv_utf8_downgrade_nomg
James E Keenan [Sat, 31 Aug 2019 23:18:36 +0000 (19:18 -0400)]
Supply missing right brace in regex example
As suggested by Jim Avera in RT 134395.
Craig A. Berry [Sat, 31 Aug 2019 19:10:07 +0000 (14:10 -0500)]
-DDEBUGGING does not go in ccflags on VMS.
But there is a platform-specific %Config entry for it so use that
and avoid the assertion-induced failure of uv.t in debugging builds.
Craig A. Berry [Fri, 30 Aug 2019 16:28:42 +0000 (11:28 -0500)]
Fix parent directory in pod2usage auxiliary script.
File::Basename::dirname does not always remove the last component
of the path if that component is already a directory, depending on
platform. This behavior is documented. pod2usage.t has been
failing on VMS because we get the wrong directory into @INC.
So, since we already have File::Spec loaded, just use the more
obvious and portable method for getting the parent directory.
Reported upstream at:
<https://rt.cpan.org/Ticket/Display.html?id=130418>
Tony Cook [Tue, 27 Aug 2019 04:44:35 +0000 (14:44 +1000)]
(perl #134365) IFF -> iff and talk about strict a bit
The IFF can be confusing, since "iff" for "if and only if" is
normally presented in lower case.
Since we really want people using strict, firstly tell users about
the behaviour under strict.
Dan Book [Wed, 28 Aug 2019 22:41:34 +0000 (18:41 -0400)]
Avoid 2 arg open and bareword handles
Dan Book [Wed, 28 Aug 2019 22:34:51 +0000 (18:34 -0400)]
Rewrite paragraph on using strict and warnings
Karl Williamson [Fri, 23 Aug 2019 18:40:24 +0000 (12:40 -0600)]
PATCH: [perl #134329] Use after free in regcomp.c
A compiled regex is composed of nodes, forming a linked list, with
normally a maximum of 16 bits used to specify the offset of the next
link. For patterns that require more space than this, the nodes that
jump around are replaced with ones that have wider offsets. Most nodes
are unaffected, as they just contain the offset of the next node, and
that number is always small. The jump nodes are the ones affected.
When compiling a pattern, the 16 bit mechanism is used, until it
overflows, at which point the pattern is recompiled with the long jumps
instead.
When I rewrote the compiler last year to make it generally one pass, I
noticed a lot of the cases where a node was added didn't check if the
result overflowed (the function that does this returns FALSE in that
case). I presumed the prior authors knew better, and did not change
things, except to put in a bogus value in the link (offset) field that
should cause a crash if it were used. That's what's happening in this
ticket.
But seeing this example, it's clear that the return value should be
checked every time, because you can reach the limit at any time. This
commit changes to do that, and to require the function's return value to
not be ignored, to guard against future changes.
My guess is that the reason it generally worked when there were multiple
passes is that the first pass didn't do anything except count space, and
that at some point before the end of the pass the return value did get
checked, so by the time the nodes were allocated for real, it knew
enough to use the long jumps.
Chris 'BinGOs' Williams [Tue, 27 Aug 2019 15:42:37 +0000 (16:42 +0100)]
Elvis has left the building
Karl Williamson [Sun, 25 Aug 2019 01:17:19 +0000 (19:17 -0600)]
PATCH: [perl #134325] Heap buffer overflow
This was the result of trying to continue to parse after realizing that
we were going to have to reparse using long jumps. This continuing only
happened when we realized we were going to have to reparse in order to
count parentheses anyway, and it was an attempt to save a pass in the
regex compiler, as without doing the continuing we'd restart the parse
to use long jumps from the beginning, and then when finished, would
restart the parse to count the parentheses.
However, in most cases this doesn't help, as when we get towards the end
of the parse (as in the test case in this ticket), we need the long
jump, and will segfault because we don't have it. So we need the extra
pass anyway.
So this commit restarts the parse as soon as we discover we are going to
need longjumps
sisyphus [Fri, 23 Aug 2019 11:58:00 +0000 (21:58 +1000)]
NVMANTBITS is 64 on mingw-w64 'long double' builds
Karl Williamson [Mon, 26 Aug 2019 18:18:01 +0000 (12:18 -0600)]
perldelta: Fix typo
Karl Williamson [Mon, 26 Aug 2019 17:53:06 +0000 (11:53 -0600)]
Add ability to dump pre-optimized compiled pattern
in qr//
Karl Williamson [Mon, 26 Aug 2019 17:48:50 +0000 (11:48 -0600)]
ext/re/re.pm: Clarify pod slightly
Karl Williamson [Mon, 26 Aug 2019 17:47:40 +0000 (11:47 -0600)]
ext/re/re.pm: White-space only, bump version
Karl Williamson [Fri, 23 Aug 2019 18:38:50 +0000 (12:38 -0600)]
embed.fnc: Add caution about R flag
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
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
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
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
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.
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.
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.
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.
Karl Williamson [Mon, 26 Aug 2019 00:19:02 +0000 (18:19 -0600)]
regcomp.c: Use macro to remove some #ifdef EBCDIC lines
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.
Tomasz Konojacki [Sun, 18 Aug 2019 02:54:53 +0000 (04:54 +0200)]
compile perl with -O2 on DragonFly BSD
[perl #134372]
Hauke D [Tue, 13 Aug 2019 20:05:47 +0000 (22:05 +0200)]
Change "--sysroot X" to "--sysroot=X" in Configure
Tony Cook [Mon, 26 Aug 2019 00:27:10 +0000 (10:27 +1000)]
perldelta for
14d26b44a1d7
Tony Cook [Tue, 20 Aug 2019 05:43:05 +0000 (15:43 +1000)]
(perl #134230) don't interpret 0x, 0b when numifying strings
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.
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.
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.
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.
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
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.
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++.
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
Tom Hukins [Tue, 20 Aug 2019 15:20:27 +0000 (16:20 +0100)]
Bump version to 5.31.4 and update Module::Corelist
Tom Hukins [Tue, 20 Aug 2019 15:13:57 +0000 (16:13 +0100)]
New perldelta for 5.31.4
Tom Hukins [Tue, 20 Aug 2019 15:05:57 +0000 (16:05 +0100)]
Tick off 5.31.3
Tom Hukins [Tue, 20 Aug 2019 13:12:13 +0000 (13:12 +0000)]
5.31.3 today
Tom Hukins [Tue, 20 Aug 2019 11:37:32 +0000 (11:37 +0000)]
perldelta - module versions
Tom Hukins [Tue, 20 Aug 2019 11:31:44 +0000 (11:31 +0000)]
perldelta - acknowledgements
Tom Hukins [Tue, 20 Aug 2019 11:28:07 +0000 (11:28 +0000)]
Update Module::CoreList for 5.31.3
Tom Hukins [Tue, 20 Aug 2019 11:22:19 +0000 (11:22 +0000)]
perldelta - remove boilerplate
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.
David Mitchell [Tue, 20 Aug 2019 07:43:48 +0000 (08:43 +0100)]
perldelta for
442d4b523eda1 (opslot)
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.
James E Keenan [Mon, 19 Aug 2019 21:36:36 +0000 (17:36 -0400)]
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
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.
Karl Williamson [Mon, 19 Aug 2019 15:02:56 +0000 (09:02 -0600)]
perldelta: Document I8N::LangTags noteworthy change
Karl Williamson [Mon, 19 Aug 2019 15:02:23 +0000 (09:02 -0600)]
perldelta: Fix typo
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
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.
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
Sawyer X [Sat, 17 Aug 2019 13:46:30 +0000 (16:46 +0300)]
Update release schdule, still missing some
Tony Cook [Thu, 15 Aug 2019 04:24:44 +0000 (14:24 +1000)]
perldelta for merge commit
17154110146f
Tony Cook [Thu, 15 Aug 2019 04:17:49 +0000 (14:17 +1000)]
Cleanup Time::HiRes
Tony Cook [Thu, 15 Aug 2019 04:16:19 +0000 (14:16 +1000)]
bump $Time::HiRes::VERSION
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]
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]