This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Karl Williamson [Sat, 28 Apr 2018 16:16:08 +0000 (10:16 -0600)]
lib/locale.t: Mark a test problematic
We now have found a system that fails this test. Tests that are listed
as problematic automatically get marked as TODO when they fail with
specified platforms. The next commit will specify the platform that
this is fails on.
Karl Williamson [Thu, 19 Apr 2018 20:43:43 +0000 (14:43 -0600)]
t/run/locale.t: Skip some Solaris locales
Solaris is buggy in dealing with locales that have a multi-byte UTF-8
decimal radix character. Skip using these, like we do on cygwin, which
has a similar problem.
Tomasz Konojacki [Sun, 22 Apr 2018 21:49:59 +0000 (23:49 +0200)]
getcwd() doesn't fail on non-existent directories on DragonFly BSD.
Until it's fixed upstream, we should skip tests that don't expect
this behaviour.
[RT #133141]
Karl Williamson [Wed, 25 Apr 2018 22:28:37 +0000 (16:28 -0600)]
PATCH: [perl #133136] bisect runner
bisect runner is supposed to keep going if the particular revision being
tested fails to compile. But it wasn't.
Nicholas graciously diagnosed the problem. When the enhancement for
testing when a module got broken, the code to do so was placed before
the check to see if the build for this revision crashed. It's simply a
matter of moving that module code to after that check.
Daniel Dragan [Sat, 28 Apr 2018 01:09:49 +0000 (21:09 -0400)]
utf8.c: use TRUE not true
"true" token was added in commit
394d2d3f37 but "true" is C++ and C99,
"TRUE" is portable perl API
Win32 VC 2003 C mode (C89) build faiure
..\utf8.c(6177) : error C2065: 'true' : undeclared identifier
Steve Hay [Sat, 28 Apr 2018 12:56:05 +0000 (13:56 +0100)]
Finally fix C++ build with VS2017
Dodge the "offsetof has a builtin meaning; use /Zc:offsetof- to revert to
old, non-conforming definition" error when compiling Socket.xs by reverting
to an old definition of STRUCT_OFFSET for that compiler.
David Mitchell [Fri, 27 Apr 2018 09:35:09 +0000 (10:35 +0100)]
[MERGE] temporarily revert weak in-place sort fix
David Mitchell [Thu, 26 Apr 2018 10:46:22 +0000 (11:46 +0100)]
Revert "Strengthen weak refs when sorting in-place"
This reverts commit
f6107ca24b4cf22dcf7fd69d65612ad718c48fca.
See RT #132142.
For now, re-introduce the bug that fails to convert weak refs to strong
refs when sorting in place.
This is commit 2 of 2.
David Mitchell [Thu, 26 Apr 2018 10:42:54 +0000 (11:42 +0100)]
Revert "Unweaken refs in in-place reverse"
This reverts commit
5bad3c4f3a4515aaa622eecdf6f5a84fcaff7ed9.
See RT #132142.
For now, re-introduce the bug that fails to convert weak refs to strong
refs when sorting in place.
This is commit 1 of 2.
Tony Cook [Thu, 12 Apr 2018 11:11:12 +0000 (21:11 +1000)]
(perl #133030) make utime() available only if we have both fd and name setting
David Mitchell [Tue, 24 Apr 2018 14:07:51 +0000 (15:07 +0100)]
fix linkage of PL_inf/nan under C++
RT #132955
Commit
0879cd66ef3f00 fixed perl to still build under C++ after changes
to PL_inf and PL_nan. Unfortunately this seems to have broken C++ builds
under Windows.
Handle the extern 'C' stuff in a different way - as suggested by Leon T -
that hopefully satisfies all platforms.
Yves Orton [Tue, 24 Apr 2018 10:45:29 +0000 (12:45 +0200)]
fixup for NO_TAINT_SUPPORT
Steve Hay [Mon, 23 Apr 2018 12:53:55 +0000 (13:53 +0100)]
Make gets() declaration extern "C"
This, together with the previous commit, fixes the C++-mode build on
Windows using VS2017 except for the remaining problem with PL_nan when
linking POSIX - see RT#132955.
Leon Timmermans [Thu, 19 Apr 2018 17:05:35 +0000 (19:05 +0200)]
Make PERLIO_FILE_file() an lvalue
Karen Etheridge [Sat, 21 Apr 2018 10:42:03 +0000 (12:42 +0200)]
remove Storable::__Storable__ from Module::CoreList
It was mistakenly picked up starting in 5.27.6 due to
ad2ec6b54c and we
didn't notice: it should have never been added. Remove historical entries
and blacklist it so it doesn't come back.
Daniel Dragan [Fri, 20 Apr 2018 14:46:39 +0000 (10:46 -0400)]
#133125 revise -DNO_MATHOM logic again in makedef.pl
Revision of patch in #133098.
There is a problem described in #133125 with XS-APITest using with "Perl_"
mathomed C symbols instead of the Perl_-less ones which would get
preprocessor redirected to newer C funcs, then link failure of XS-APITest
on Win32 because missing symbols. These symbols were missing because they
were marked "m" and I thought in commit
1545ba5b04 "m" means no C symbol,
ever, but that isn't true. It seems that "b" means must export on a
with-mathoms default perl. So put back part of the original code before
commit
1545ba5b04 from commit
3f1866a8f6, so that on with mathoms builds
all "b"s are exported, but on no mathom builds, all "b"s are removed/not
exported.
There are some logic holes here for strange or impossible combinations
of flags, like flags "Abi" or just "b" without "A", that I wont address
here.
Aaron Crane [Fri, 20 Apr 2018 15:45:04 +0000 (17:45 +0200)]
RT#133131: pp_hot.c: deoptimise pp_iter() when non-standard OP_AND op_ppaddr
Commit
7c114860c0fa8ade5e00a4b609d2fbd11d5a494c introduced an optimisation
in pp_iter(). Before the optimisation, pp_iter() pushed either &PL_SV_yes or
&PL_sv_no to the stack, and returned the op_next in the obvious way.
The optimisation takes advantage of the fact that the op_next of an OP_ITER
always points to an OP_AND node, so pp_iter() now directly jumps to either
the op_next or the op_other of the OP_AND as appropriate.
The commit message for the optimisation also says this:
It's possible that some weird optree-munging XS module may break this
assumption. For now I've just added asserts that the next op is OP_AND
with an op_ppaddr of Perl_pp_and; if that assertion fails, it may be
necessary to convert pp_iter()s' asserts into conditional statements.
However, Devel::Cover does change the op_ppaddr of the ops it can see, so
the assertions on op_ppaddr were being tripped when Devel::Cover was run
under a -DDEBUGGING Perl. But even if the asserts didn't trip, skipping the
OP_AND nodes would prevent Devel::Cover from determining branch coverage in
the way that it wants.
This commit converts the asserts into conditional statements, as outlined in
the commit message above, and undoes the optimisation when the op_ppaddr
doesn't match.
Leon Timmermans [Sat, 21 Apr 2018 10:16:29 +0000 (12:16 +0200)]
Adapt acknowledgements.pl to perl being in its fourth decade
Sawyer X [Sat, 21 Apr 2018 08:30:07 +0000 (10:30 +0200)]
Add announcement URL
Sawyer X [Sat, 21 Apr 2018 07:53:35 +0000 (09:53 +0200)]
Update Module::CoreList for 5.28.0, I hope correctly
Sawyer X [Fri, 20 Apr 2018 21:01:01 +0000 (23:01 +0200)]
Now META.json finally works
Sawyer X [Fri, 20 Apr 2018 20:57:13 +0000 (22:57 +0200)]
Regen, again
Sawyer X [Fri, 20 Apr 2018 20:57:08 +0000 (22:57 +0200)]
Fix Module::CoreList versions
Sawyer X [Fri, 20 Apr 2018 15:37:46 +0000 (17:37 +0200)]
new perldelta for 5.27.12 or 5.28.0
Chris 'BinGOs' Williams [Fri, 20 Apr 2018 17:07:00 +0000 (18:07 +0100)]
Fix Storable indexing issue with PAUSE
Sawyer X [Fri, 20 Apr 2018 15:31:50 +0000 (17:31 +0200)]
Tick off release
Sawyer X [Fri, 20 Apr 2018 15:30:13 +0000 (17:30 +0200)]
Upgrade paragraph:
I'll put the link once I see the ID.
Sawyer X [Fri, 20 Apr 2018 13:32:49 +0000 (15:32 +0200)]
Add new release to perlhist
Sawyer X [Fri, 20 Apr 2018 12:05:59 +0000 (14:05 +0200)]
Finalizing perldelta
Sawyer X [Fri, 20 Apr 2018 11:22:50 +0000 (13:22 +0200)]
Update Module::CoreList for 5.27.11
Aaron Crane [Fri, 20 Apr 2018 12:28:35 +0000 (14:28 +0200)]
Document that `use v5.12` and `use feature ":5.12"` differ
Chris 'BinGOs' Williams [Fri, 20 Apr 2018 11:18:15 +0000 (12:18 +0100)]
Change in the house of flies
Chris 'BinGOs' Williams [Fri, 20 Apr 2018 11:13:14 +0000 (12:13 +0100)]
Bump Module-CoreList so is higher than version on CPAN
Dagfinn Ilmari Mannsåker [Fri, 20 Apr 2018 09:12:31 +0000 (11:12 +0200)]
Add ppport.h to IO
Karl Williamson [Fri, 20 Apr 2018 07:12:22 +0000 (01:12 -0600)]
Merge branch 'bring unicode properties into core' into blead
Most \p{} constructs will now use inversion lists compiled into core.
This significantly lowers the start up cost of using Unicode properties.
The theory is that the properties not used will stay paged out by the
operating system.
Certain constructs continue to use the old mechanism. The design here
is that if a property is not found, the old mechanism is used as a
fail safe. In particular,
1) if the property name is invalid, this new system won't find it, and
the old system will be invoked, and also won't find it, and the
compilation will abort.
2) This new system does not handle user-defined properties, so the old
mechanism will be used for those
3) In the numeric_value property (nv), if the input is not in canonical
form, this new mechanism won't find it, and the old system will be
used. "3/4" is in canonical form, so the new system will be used;
but "6/8" and 0.75 are not, so the old system will be used.
Karl Williamson [Fri, 20 Apr 2018 07:07:41 +0000 (01:07 -0600)]
perldelta for this moving uniprops to core
Karl Williamson [Fri, 20 Apr 2018 06:21:46 +0000 (00:21 -0600)]
regen/mk_invlists.pl: Omit #defines
mph.pl is somewhat more flexible than Devel::Tokenizer::C, and so we can
avoid a bunch of #defines, and use the desired value directly.
Karl Williamson [Fri, 20 Apr 2018 05:16:33 +0000 (23:16 -0600)]
Use a perfect hash for Unicode property lookups
The previous commits in this series have been preparing to allow the
Devel::Tokenizer::C code to be swapped out for the much smaller perfect
hash code.
Karl Williamson [Fri, 20 Apr 2018 05:51:32 +0000 (23:51 -0600)]
regen/mph.pl: Add comments to gen'd file
This adds a comment showing for each rule what the input is for it.
Karl Williamson [Thu, 19 Apr 2018 14:58:22 +0000 (08:58 -0600)]
regen/mph.pl: Split function into two
Instead of directly printing as it goes along, a new function generates
the text to print, and the print function is refactored to be a wrapper
that calls that function and prints.
This is in preparation for that text to be printed outside mph.pl
Karl Williamson [Thu, 19 Apr 2018 14:56:00 +0000 (08:56 -0600)]
regen/mph.pl: Move a print around
This needs to be placed elsewhere so it is always output, in preparation
for the next commits when not everything gets generated
Karl Williamson [Thu, 19 Apr 2018 14:36:52 +0000 (08:36 -0600)]
regen/mph.pl: Use U16, etc, not uint16_t etc
Use the perl type names
Yves Orton [Thu, 19 Apr 2018 04:04:53 +0000 (22:04 -0600)]
Add regen/mph.pl for generating a perfect hash
This is copied unchanged from github,
https://github.com/demerphq/uni_prop_parser.git
where it is more of a stand-alone program. Later commits will customize
it for perl use.
Karl Williamson [Fri, 20 Apr 2018 03:08:24 +0000 (21:08 -0600)]
Bring all Unicode property definitions into core
This commit causes the looking up of \p{} Unicode properties to be done
without having to use the swash mechanism.s, with certain exceptions.
This will all be explained in the merge commit.
This commit uses Devel::Tokenizer::C to generate the code that turns the
property string as keywords into numbers that can be understood by the
computer. This mechanism generates relatively large code. The next
commits will replace this with a smaller mechanism.
Karl Williamson [Wed, 11 Apr 2018 19:05:08 +0000 (13:05 -0600)]
Set up initial \p{} parse function.
This function will parse the interior of \p{} Unicode property names in
regular expression patterns.
The design of this function will be to return NULL on the properties it
cannot handle; otherwise it returns an inversion list representing the
property it did find. The current mechanism will be used to handle the
cases where this function returns NULL.
This initial state is just to have the function return NULL always, so
the existing mechanism is always used. A later commit will add
the functionality in 5.28 that bypasses the existing mechanism.
Karl Williamson [Fri, 20 Apr 2018 02:52:24 +0000 (20:52 -0600)]
regen/mk_invlists.pl: Keep core tables adjacent
The expectation is that most of the Unicode tables won't be used in any
given run, and since they reside in the text segment, won't get paged
in. But that's not true of the tables used by the perl core. So make
them adjacent so that paging one in will get some of the others.
Karl Williamson [Fri, 20 Apr 2018 02:06:27 +0000 (20:06 -0600)]
Generate all binary Unicode property tables
This is in preparation for future commits. All the tables are
generated, but the newly generated ones remain unused by the core. The
tables also are renamed to have a prefix 'PL_' in front of them, and
some casing changes. The code that explicitly mentions to generate the
current tables is removed, so that these are part of the grander scheme
of things.
Karl Williamson [Fri, 20 Apr 2018 01:43:18 +0000 (19:43 -0600)]
regen/mk_invlists.pl: Use one table if applies everywhere
If a table is the same under all EBCDIC code pages and ASCII, only one
copy need be output, instead of one for each page. This happens if the
table either includes the entire range of native code points (0-255) or
has no native code points.
At this commit, only \p{Assigned} falls into this category.
Karl Williamson [Fri, 20 Apr 2018 01:13:25 +0000 (19:13 -0600)]
regen/mk_invlists.pl: White space only
This outdents a for loop initialization section that previously was
nested
Karl Williamson [Fri, 20 Apr 2018 00:02:30 +0000 (18:02 -0600)]
regen/mk_invlists.pl: Reverse order of table vs EBCDIC
This changes the order of the loops so that the outer one is the table,
and the inner one is the codeset. This means that the different tables
for each codeset are together.
This prepares the way for the next commit
Karl Williamson [Thu, 19 Apr 2018 23:06:39 +0000 (17:06 -0600)]
regen/mk_invlists.pl: Extract code into subs
This is in preparation for it to be used in more places
Karl Williamson [Thu, 19 Apr 2018 22:34:04 +0000 (16:34 -0600)]
regen/mk_invlists.pl: Move some code around
This moves the switching of #if's to be adjacent to the area it is used
Karl Williamson [Thu, 19 Apr 2018 17:04:37 +0000 (11:04 -0600)]
regen/mk_invlists.pl: Move some code around
This is in preparation for a future commit
Karl Williamson [Thu, 19 Apr 2018 16:29:28 +0000 (10:29 -0600)]
regen/mk_invlists.pl: Better handle preprocessor directives
Prior to this patch it was possible for the code to get confused about
what to do when an #ifdef had multiple conditions
Karl Williamson [Mon, 9 Apr 2018 16:43:06 +0000 (10:43 -0600)]
Move inversion lists to utf8.c
These previously were statics in perl.c. A future commit would need
access to these from regcomp.c. We could create an access function in
perl.c so that regcomp.c could access them, or we could move them to
regcomp.c. But doing that means also they would be statics in
re_comp.c, and that would mean two copies.
So that means an access function is needed. Their use is really
unrelated to perl.c, which merely initializes them, so that could have
an access function instead. But the most logical place for their home
is utf8.c, which is described as for Unicode things, not just UTF-8
things.
So this commit moves these inversion lists to utf8.c, and creates an
initialization function called on perl startup from perl.c
Todd Rinaldo [Thu, 19 Apr 2018 20:36:11 +0000 (15:36 -0500)]
Update IO ChangeLog since last public release to CPAN
Todd Rinaldo [Thu, 19 Apr 2018 20:32:55 +0000 (15:32 -0500)]
Remove pre-5.8 logic no longer relevant in IO unit tests
Todd Rinaldo [Thu, 19 Apr 2018 19:54:52 +0000 (14:54 -0500)]
Bump all IO modules to 1.39 and set required Perl to 5.8.1
Even with ppport.h, providing a dual life IO that supports 5.6.2 is impractical.
Given the toolchain policy of 5.8.1, we don't think this is a significant change
Aaron Crane [Thu, 19 Apr 2018 17:55:11 +0000 (19:55 +0200)]
RT#132744: clarify subs/vars documentation
That ticket points out that subs.pm mentions using declared sub names
"without parentheses". That is indeed misleading; using the term "list
operators" would be better.
While changing that, I've also tweaked the wording about lexical scopes and
the inability to rescind these declarations, and ensured that the vars.pm
has the same revised text.
Aaron Crane [Thu, 19 Apr 2018 17:39:31 +0000 (19:39 +0200)]
perlapio: fix another out-of-date count of I/O implementations
Aaron Crane [Thu, 19 Apr 2018 17:37:23 +0000 (19:37 +0200)]
perlfunc: clarify that keys/values reset the iterator first
Aaron Crane [Thu, 19 Apr 2018 17:32:48 +0000 (19:32 +0200)]
perlfunc: clarify why next/last/redo don't affect sub{} et al
Aaron Crane [Thu, 19 Apr 2018 17:30:50 +0000 (19:30 +0200)]
op.c: fix weird indentation
This is a remnant of an edit made in
230834321e308444d408bdbf755d181b67e82d4c
Sergey Aleynikov [Thu, 19 Apr 2018 00:44:46 +0000 (03:44 +0300)]
PATCH: [perl #133121] Fix crash in gv_fetchmeth_sv
S_gv_fetchmeth_internal supports its arguments being either an SV or
a (name, len) pair. But when performing an ISA traversal to get method from
a parent class, it accounted only for the latter.
Aaron Crane [Thu, 19 Apr 2018 16:13:46 +0000 (18:13 +0200)]
Add HAS_STRTOD_L to metaconfig.h and rebuild Configure
Karl Williamson [Tue, 3 Apr 2018 17:30:16 +0000 (11:30 -0600)]
PATCH: [perl #131670] Document Wide char msg better
Aaron Crane [Thu, 19 Apr 2018 13:38:17 +0000 (15:38 +0200)]
Rebuild Configure using metaconfig langinfo change
We are now in sync with perl5-metaconfig/metaconfig@
2d3a3017b8d44d778ed765d529ca114924b3ee14
Aaron Crane [Thu, 19 Apr 2018 13:07:16 +0000 (15:07 +0200)]
Rebuild Configure from latest units
Most of the change here comes from a single unit being moved in the
generated Configure, but there are some substantive changes:
- config_h.SH was missing HAS_DUPLOCALE and d_duplocale
- d_duplocale was also missing from the platform-specific config-var files
This still doesn't quite ensure that rebuilding Configure makes no changes,
because there are differences to nl_langinfo() handling that need a change
in our metaconfig units. That will come next.
David Mitchell [Thu, 19 Apr 2018 13:10:35 +0000 (14:10 +0100)]
Encode: truncated_utf8.t TODO passes
This TODO test has been passing since the combination of:
v5.27.8-40-g37657a5b6c
which added utf8n_to_uvchr_msgs to the perl API
v5.27.8-252-gc31ca2013f
which upgraded blead to Encode 2.96, which makes use of this new
function if available.
So stop marking it as TODO in blead.
This is patching a cpan/ distribution, but its only a test, and its a
bit late in code freeze to install a newer Encode released, while we
don't want a production perl with spurious passing TODO tests.
Alexandr Savca [Wed, 18 Apr 2018 20:28:00 +0000 (16:28 -0400)]
Spelling corrections in pod/*.pod from Alexandr Savca.
Alexandr Savca is now a Perl AUTHOR.
For: RT #133120
Committer: holding off on the corrections to pod/perlartistic.pod until
clarification of change to license text.
Aaron Crane [Thu, 19 Apr 2018 12:08:18 +0000 (14:08 +0200)]
[MERGE] Documentation tweaks in I18N::Langinfo
Aaron Crane [Thu, 19 Apr 2018 12:00:35 +0000 (14:00 +0200)]
I18N::Langinfo: add a POD link
Aaron Crane [Thu, 19 Apr 2018 11:55:30 +0000 (13:55 +0200)]
I18N::Langinfo: reword list items
Aaron Crane [Thu, 19 Apr 2018 11:51:49 +0000 (13:51 +0200)]
I18N::Langinfo: clarify POD with a list
Aaron Crane [Thu, 19 Apr 2018 09:35:13 +0000 (11:35 +0200)]
I18N::Langinfo: fix POD typo
Karl Williamson [Thu, 19 Apr 2018 03:55:16 +0000 (21:55 -0600)]
perldiag: Add diagnostic
This diagnostic already gets emitted, but was not in perldiag. It was
not caught by the tests for such omissions, as it is currently generated
by a perl program (called from the core)
Karl Williamson [Wed, 18 Apr 2018 23:44:04 +0000 (17:44 -0600)]
t/run/locale.t: Silence perl warning
This pattern that contains [:ascii:] is executed under /l, and can raise
"wide character" warnings when matched against a UTF-8 string. But we
really are interested in strict ASCII, so /u works perfectly and avoids
any such warnings.
Karl Williamson [Wed, 18 Apr 2018 16:01:34 +0000 (10:01 -0600)]
locale.c: Reorder some debugging statements
I found these confusing trying to debug a field problem. This reorders
them, adjusting the wording slightly to compensate
Nicholas Clark [Wed, 18 Apr 2018 05:49:31 +0000 (07:49 +0200)]
Bump version to 0.25.
This release contains only the 1 byte fix for perl RT #132974
The Changes file is still incomplete (see cpan RT #122854)
Daniel Dragan [Wed, 14 Mar 2018 03:38:23 +0000 (23:38 -0400)]
ExtUtils::Constant fix "panic: failed to extend arg stack"
"$XS_Constant{$type}" is almost always a 2nd PUSH on stack, but EU::C
only extended by 1, not 2. This mistake didn't become visible until
the panic assert was added 5.27.2
panic: XSUB Compress::Raw::Bzip2::constant (Bzip2.c) failed to extend arg
stack: base=1b13010, sp=1b13020, hwm=1b13018
Numbers in message are from my 64bit perl, so 0x1b13020-0x1b13018=0x8
which is one 64 bit pointer stack slot, which is exactly the mistake that
this patch fixes in EU::C. See RT ticket associated with this commit for
details.
Nicholas Clark [Fri, 23 Jun 2017 15:06:25 +0000 (17:06 +0200)]
Bump version to 0.24_50.
Karl Williamson [Tue, 17 Apr 2018 19:53:25 +0000 (13:53 -0600)]
t/run/locale.t; Suppress wide char warnings
If there is an error, the characters involved are simply printed from
within fresh_perl. It those characters are wide, we also get Wide char
warnings, which clouds the issue.
Karl Williamson [Sun, 1 Apr 2018 19:58:47 +0000 (13:58 -0600)]
PATCH [perl #132164] regcomp.c: Don't try to increment infinity
This value can be infinity (which is here SSize_t_MAX). Leave it there.
Karl Williamson [Thu, 5 Apr 2018 18:19:09 +0000 (12:19 -0600)]
Fixes found by coverity
I didn't get any feedback as to if this fixed the issues found by
coverity, but smoke tests didn't find any problem with it, and I believe
it does addess these issues, so with the freeze date upon us, I'm
committing it.
Karl Williamson [Mon, 19 Mar 2018 15:11:24 +0000 (09:11 -0600)]
t/loc_tools.pl: Special case openbsd
The openbsd setlocale() doesn't behave at all like what one would expect
from that function. The comments added in this commit give some
details.
Karl Williamson [Tue, 17 Apr 2018 18:06:53 +0000 (12:06 -0600)]
t/run/locale.t: Refactor to use done_testing()
Various platforms have different locale abilities. It was getting
complicated to make sure the skip counts are valid for each combination.
Karl Williamson [Thu, 15 Feb 2018 04:25:41 +0000 (21:25 -0700)]
t/run/locale.t: Add debugging code
This has proved useful at times
Karl Williamson [Sun, 8 Apr 2018 21:03:56 +0000 (15:03 -0600)]
re/regexp_unicode_prop.t: Add test
User-defined properties can have the same name as, and override an
official property definition. This may or may not be the correct
behavior going forward, but it shouldn't be changed inadvertently.
Karl Williamson [Sun, 8 Apr 2018 20:40:49 +0000 (14:40 -0600)]
mktables: Add tests for t/re/unipropsFOO
Make sure that a non-binary property doesn't get mistakenly matched in
\p{}, which is only for binary ones. There are some ambiguities that
this test keeps us from falling victim to.
Karl Williamson [Fri, 6 Apr 2018 02:40:19 +0000 (20:40 -0600)]
regen/mk_invlists.pl: Remove improper line
I don't know what this line was supposed to do, but it wasn't working.
This commit also uses DeMorgan's law to clarify, and makes sure that
before looking at an entry in an array, that the entry exists
Karl Williamson [Tue, 17 Apr 2018 16:17:54 +0000 (10:17 -0600)]
regcomp.c: Fix typo in comment
Karl Williamson [Tue, 17 Apr 2018 16:08:28 +0000 (10:08 -0600)]
t/re/reg_mesg.t: Add test for [perl #132055]
Karl Williamson [Tue, 17 Apr 2018 04:58:55 +0000 (22:58 -0600)]
t/thread_it.pl: Increase stack size on AIX
This is starting to core dump. I increased it arbitrarily by 50%.
Karl Williamson [Tue, 17 Apr 2018 04:13:30 +0000 (22:13 -0600)]
heap-buffer-overflow
The fix is simpler than in the maintenance releases due to prior changes
in 5.27.
The problem is that under some circumstances the sharp s takes up two
bytes when space for only one had been allocated. Just the right set of
circumstances are required for this to happen.
Karl Williamson [Tue, 17 Apr 2018 03:12:03 +0000 (21:12 -0600)]
Revert "PATCH: (perl #132227 CVE-2018-6797] heap-buffer-overflow"
This reverts commit
2407a17ad5d780a1625dddfb668056ab05459194.
It turns out that I applied the wrong patch, which was a preliminary one
that did not solve the entire problem. The next commit will apply a
correct fix, with test.
Yves Orton [Tue, 13 Feb 2018 23:29:26 +0000 (10:29 +1100)]
fix TRIE_READ_CHAR and DECL_TRIE_TYPE to account for non-utf8 target
This is the third commit involved in [perl #132063, and the bottom line
cause of it. The problem is that the code is incorrectly branching to a
portion of the code that expects it is handling UTF-8. And the input
isn't UTF-8. The fix is to handle this case and branch correctly. This
bug requires the following things in order to manifest:
1) the pattern is compiled under /il
2) the pattern does not contain any characters below 256
3) the target string is not UTF-8.
(The committer changed the test to test this issue on EBCDIC, as the
original \xFF is an invariant there that wouldn't exercise the problem.
We want a start byte for a long UTF-8 sequence for a single character.
On the EBCDIC pages we support, \xFE fits that bill.
Karl Williamson [Tue, 6 Feb 2018 21:50:48 +0000 (14:50 -0700)]
Subject: PATCH: [perl #132063]: Heap buffer overflow
There were three things that were fixed as a result of this ticket, any
one of which would have avoided the issue.
Commit
421da25c4318861925129cd1b17263289db3443c already has fixed
one of those. The issue was reading beyond the end of a buffer, and
that commit keeps from reading beyond a NUL, which normally should be
present, marking the end of the buffer.
This commit fixes the issue where the code was told that reading that
many bytes was ok to do. This is several instances in regexec.c of the
code assuming that the input was valid UTF-8, whereas the input was too
short for what the start byte claimed it would be.
I grepped through the core for any other similar uses, and did not find
any.
The next commit will fix the third thing.
Daniel Dragan [Thu, 12 Apr 2018 18:53:09 +0000 (14:53 -0400)]
fix SEGV in XS::APItest::Backrefs::Comctl32Version()
really old Mingw GCCs (3.4.5 specifically) dont implement _alloca
correctly, switch to a simpler variation
a follow on to perl #133084 and see also problems I had with alloca on
very old GCCs in https://rt.cpan.org/Public/Bug/Display.html?id=80217
Tony Cook [Tue, 17 Apr 2018 01:21:26 +0000 (11:21 +1000)]
regen uconfig.h
H.Merijn Brand [Mon, 16 Apr 2018 17:16:10 +0000 (19:16 +0200)]
Regen after backporting and merging
I am aware that this might break a few tests