In perl.git, the branch smoke-me/khw-yaroslav has been created
<https://perl5.git.perl.org/perl.git/commitdiff/a8ddcbaf57cdb27776d92178465ce29f876eb87b?hp=0000000000000000000000000000000000000000>
at a8ddcbaf57cdb27776d92178465ce29f876eb87b (commit)
- Log -----------------------------------------------------------------
commit a8ddcbaf57cdb27776d92178465ce29f876eb87b
Author: Karl Williamson <[email protected]>
Date: Tue Apr 17 13:53:25 2018 -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.
commit 6d964f5d76db59648c323128dc482855645c4fed
Author: Karl Williamson <[email protected]>
Date: Sun Apr 1 13:58:47 2018 -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.
commit 02d9ad7f0ecc1c9c1461e42452028cbb41895b38
Author: Karl Williamson <[email protected]>
Date: Thu Apr 5 12:19:09 2018 -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.
commit a7df894219430814eed646f8307e8a6858e61d30
Author: Karl Williamson <[email protected]>
Date: Mon Mar 19 09:11:24 2018 -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.
commit 4cc97dba9ec462294d0d9c1510907e77914940cb
Author: Karl Williamson <[email protected]>
Date: Tue Apr 17 12:06:53 2018 -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.
commit 64451d4a98cff6ef051a04d8b0cd29fbb550ddf2
Author: Karl Williamson <[email protected]>
Date: Wed Feb 14 21:25:41 2018 -0700
t/run/locale.t: Add debugging code
This has proved useful at times
commit 34e1dfc877495dbc93325e623a14e70e076bd804
Author: Karl Williamson <[email protected]>
Date: Sun Apr 8 15:03:56 2018 -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.
commit 76035358e070f06add02ead6bb8dc6d96e7d29e3
Author: Karl Williamson <[email protected]>
Date: Sun Apr 8 14:40:49 2018 -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.
commit ac5c9c9bca46a90c6f174d983d6bef637831be06
Author: Karl Williamson <[email protected]>
Date: Thu Apr 5 20:40:19 2018 -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
commit 5ec949446298c249dd63e327d146a3ebad05d0b2
Author: Karl Williamson <[email protected]>
Date: Tue Apr 17 10:17:54 2018 -0600
regcomp.c: Fix typo in comment
commit cc6ee16ac629b9e230785417b921827db763672d
Author: Karl Williamson <[email protected]>
Date: Tue Apr 17 10:08:28 2018 -0600
t/re/reg_mesg.t: Add test for [perl #132055]
commit e1db7e8d76320b98dff5e0d24e3e7919052d86b2
Author: Karl Williamson <[email protected]>
Date: Mon Apr 16 22:58:55 2018 -0600
t/thread_it.pl: Increase stack size on AIX
This is starting to core dump. I increased it arbitrarily by 50%.
commit 641db40cf27603ee6141ac82278325cb8e769b23
Author: Karl Williamson <[email protected]>
Date: Mon Apr 16 22:13:30 2018 -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.
commit 42531b5083d9f2abd2bfa5207f7bc7d75445cdf4
Author: Karl Williamson <[email protected]>
Date: Mon Apr 16 21:12:03 2018 -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.
commit 8ffc3777236a2de8b10a68d231a0d05b914ef9c7
Author: Yves Orton <[email protected]>
Date: Wed Feb 14 10:29:26 2018 +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.
commit 747f89d8ddd417e7b91957990ee74cf9f3651652
Author: Karl Williamson <[email protected]>
Date: Tue Feb 6 14:50:48 2018 -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.
commit cd73414408526a2f107f34573b720d34199a38d3
Author: Daniel Dragan <[email protected]>
Date: Thu Apr 12 14:53:09 2018 -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
commit 526bb492578c73ed4d12e1cda5f2a2707f7126e0
Author: Tony Cook <[email protected]>
Date: Tue Apr 17 11:21:26 2018 +1000
regen uconfig.h
commit 1046611b9a04b8a4b56fa7ac41e546ef4bfa3cb1
Author: H.Merijn Brand <[email protected]>
Date: Mon Apr 16 19:16:10 2018 +0200
Regen after backporting and merging
I am aware that this might break a few tests
commit d48258fe098848a1d25704a317520c28b6f61af1
Author: David Mitchell <[email protected]>
Date: Mon Apr 16 11:47:00 2018 +0100
Revert "S_regmatch: eliminate WHILEM_A_min paren saving"
This reverts commit 77584140f7cbfe714083cacfa671085466e98a7b.
This optimisation of mine from 5.25.9 is ill-conceived; under the right
permutations of backtracking, it is possible for the current positions
of one of more captures not to restored to their previous positions.
This commit reverts the code change, but keeps the benchmark part of
that commit, and adds a test
commit 516a41953626afa5ba92b7157878599d7e99f196
Author: Karl Williamson <[email protected]>
Date: Thu Apr 5 20:35:22 2018 -0600
regen/mk_invlists.pl: stop at 256 for latin1 lists
This changes the max of a range down from the platform's infinity to
256 when calculating things dealing with the 0-255 range. Otherwise, on
some properties, it could go 256..infinity using up all the machine's
memory.
commit 2322facc99464b4090d7854b911b30cb9ebd2955
Author: Karl Williamson <[email protected]>
Date: Thu Apr 5 20:29:29 2018 -0600
regen/mk_invlists.pl: Add comment
This gives the paradigm to use should this be needed
commit e83edfa047eb773649a318b31932fb576f5e992b
Author: Tony Cook <[email protected]>
Date: Tue Aug 8 09:32:58 2017 +1000
(perl #131844) fix various space calculation issues in pp_pack.c
- for the originally reported case, if the start/cur pointer is in the
top 75% of the address space the add (cur) + glen addition would
overflow, resulting in the condition failing incorrectly.
- the addition of the existing space used to the space needed could
overflow, resulting in too small an allocation and a buffer overflow.
- the scaling for UTF8 could overflow.
- the multiply to calculate the space needed for many items could
overflow.
For the first case, do a space calculation without making new pointers.
For the other cases, detect the overflow and croak if there's an
overflow.
Originally this used Size_t_MAX as the maximum size of a memory
allocation, but for -DDEBUGGING builds realloc() throws a panic for
allocations over half the address space in size, changing the error
reported for the allocation.
For non-DEBUGGING builds the Size_t_MAX limit has the small chance
of finding a system that has 3GB of contiguous space available, and
allocating that space, which could be a denial of servce in some cases.
Unfortunately changing the limit to half the address space means that
the exact case with the original issue can no longer occur, so the
test is no longer testing against the address + length issue that
caused the original problem, since the allocation is failing earlier.
One option would be to change the test so the size request by pack is
just under 2GB, but this has a higher (but still low) probability that
the system has the address space available, and will actually try to
allocate the memory, so let's not do that.
commit 7ba338d378a6cffee115077dc76ac752b056aabc
Author: John Peacock <[email protected]>
Date: Sun Apr 15 21:19:38 2018 -0400
Synch cpan/version/* and other files with CPAN version 0.9923.
Per recommendation of Karl Williamson. Used this program to perform
synchronization:
https://github.com/jkeenan/scripts-misc/blob/master/sync-version-pm.pl
commit 859616612fc1ca03127b145a697780c54ffab8bc
Author: Karl Williamson <[email protected]>
Date: Tue Apr 3 10:27:25 2018 -0600
perlbug: Ask confirmation if would overwrite existing file
This adds a prompt asking for confirmation if the perlbug report would
overwrite an existing file. My guess is that the normal answer will be
yes.
commit baeda3cc1a10ac78f8582a32cc6aab8f38567bf4
Author: Karl Williamson <[email protected]>
Date: Fri Feb 2 15:14:27 2018 -0700
PATCH: (perl #132227 CVE-2018-6797] heap-buffer-overflow
Restart an EXACTFish node if we change to uni rules within the node and
encounter a sharp S. Otherwise we might size too small in pass1,
leading to a buffer overflow.
commit 426f0f4a23d15307d2c7187639d4a200da77b227
Author: Karl Williamson <[email protected]>
Date: Tue Feb 13 07:03:43 2018 -0700
utf8.c: Don't dump malformation past first NUL
When a UTF-8 string contains a malformation, the bytes are dumped out as
a debugging aid. One should exercise caution, however, and not dump out
bytes that are actually past the end of the string. Commit 99a765e9e37
from 2016 added the capability to signal to the dumping routines that
we're not sure where the string ends, and to dump the minimal possible.
It occurred to me that an additional safety measure can be easily added,
which this commit does. And that is, in the dumping routines to stop at
the first NUL. All PVs in SVs automatically get a traiing NUL added,
even if they contain embedded NULs. A NUL can never be part of a
malformation, and so its presence likely signals the end of the string.
commit 61862fbd10e8f50797a55fb671f07b4df63b809a
Author: Karl Williamson <[email protected]>
Date: Sat Mar 24 10:38:59 2018 -0600
PATCH: [perl #132055] Assertion failure
This checks for and aborts if it find control characters in a supposed
Unicode property name. Code further along could not handle these.
This also fixes #132553 and #132658
commit a28f548290912ef1220a6e717420353982eb6465
Author: Daniel Dragan <[email protected]>
Date: Wed Apr 11 02:15:18 2018 -0400
fix -DNO_MATHOMS build, mathomed syms were not removed from perldll.def
Commit 3f1866a8f6 assumed "A" flag means a function can't be mathomed. Not
true. Many funcs were listed in embed.fnc as "A" yet were in mathoms.c.
This caused a missing symbol link failure on Win32 with -DNO_MATHOMS,
since the "A" mathomed funcs were now put into perlldll.def while
previously they were parsed out of mathoms.c by makedef.pl. Revise the
logic so "b" means instant removal from the export list on a no mathoms
build.
embed.fnc "b" flag adds were generated from a missing symbol list from my
linker, some funcs not in my build/platform config might need to be "b"
flagged in future. Some funcs like ASCII_TO_NEED were already marked "b"
but still being by mistake exported because they were also "A".
sv_2bool, sv_eq and sv_collxfrm also needed a "p" flag or a Perl_-less
symbol was declared in proto.h. sv_2bool and sv_collxfrm also failed
porting/args_assert.t so add those macros to mathoms.c
commit c2473a53b64eb1615820db12a5cf749c1ed20996
Author: Karl Williamson <[email protected]>
Date: Sat Apr 14 22:53:14 2018 -0600
Move utf8_to_uvchr out of mathoms.c
This function can't be in mathoms because of its use in Devel::PPPort.
I tried fixing that, but the tools just hung, so this commit moves it
back to utf8.c, while still deprecated.
commit 635800d279aace65d9829c155be119dab927c3db
Author: Chris 'BinGOs' Williams <[email protected]>
Date: Sat Apr 14 18:20:34 2018 +0100
Them bones
commit ce6cf368af3a477b8e8917d6cc34c2bb0f9bdc1d
Author: Steve Hay <[email protected]>
Date: Sat Apr 14 13:11:29 2018 +0100
Tick off 5.24.4 and 5.26.2
commit 809e7146e186cb248b971cada136467186a9f09e
Author: Steve Hay <[email protected]>
Date: Sat Apr 14 10:24:59 2018 +0100
5.26.2 today
(cherry picked from commit b4140ca05cb1b2f60e143219cfdc57a8808662c2)
commit 2c55b22ecac391b6b7bfe0978291b0f4bc3b2b74
Author: Steve Hay <[email protected]>
Date: Sat Apr 14 10:24:48 2018 +0100
5.24.4 today
(cherry picked from commit 3e87ffef3c714f1b79cd46c90c0f45012290c35b)
commit 375466fc88519a7ef5cc796c620f0a42716d56df
Author: Steve Hay <[email protected]>
Date: Sat Apr 14 12:59:41 2018 +0100
Import perl5244delta.pod and perl5262delta.pod
commit 0da5138fd52431b709aebab16db2ad79332e7779
Author: Steve Hay <[email protected]>
Date: Sat Apr 14 12:54:13 2018 +0100
Update Module-CoreList with data for 5.24.4 and 5.26.2
commit f843f7bfeedd407892999ba279d4ee7bd45fba97
Author: Steve Hay <[email protected]>
Date: Sat Apr 14 12:41:40 2018 +0100
Epigraphs for 5.24.4 and 5.26.2
commit 86f71b4ae7ce6844416cc9c0ea5eafeb2c8ad154
Author: John Peacock <[email protected]>
Date: Thu Apr 12 11:22:58 2018 -0400
Synch cpan/version/* and other files with CPAN version 0.9921.
Committer's note: In large part probably due to the CUSTOMIZED aspect of
'version' in Porting/Maintainer.pl, the regular 'Porting/sync-with-cpan'
program did not give good results when I attempted to use it for version.pm.
So I hacked together my own program, available here:
https://github.com/jkeenan/scripts-misc/blob/master/sync-version-pm.pl
commit 494fb65b2d0068efc0ce1b99ba8713309d39d76a
Author: Daniel Dragan <[email protected]>
Date: Fri Apr 6 18:41:22 2018 -0400
fix win32 with Ming.org GCC 3.4.5 build
dlltool 2.20.51.20100123 from Strawberry 5.12 and
dlltool 2.17.50 20060824 from Strawberry 5.8.9 were making a libperl527.a
that caused perl.exe and all XS DLLs to import "perl527.exp.dll" while
the disk file is called perl527.dll.
This bug was eventually fixed, since in my testing dlltool 2.25 no date
code, Copyright 2014 from Strawberry 5.22.1 doesn't have this problem. I
suspect the bug was fixed in binutils commit 04276a0cf5
"2010-12-01 Kai Tietz <[email protected]>"
https://sourceware.org/bugzilla/show_bug.cgi?id=11065
in version "AM_INIT_AUTOMAKE(bfd, 2.21.51)" or 1 ver bump higher. Just
always pass an explicit DLL name to dlltool instead of any kind of
dlltool version checking at build time and then optional arg.
The breakage for Mingw.org 3.4.5 was introduced in
commit bf543eaf90d "add parallelness to win32/GNUmakefile" where I added
parallelness by making the import lib .a file from just perldll.def,
rather than the import lib being a build product coming out of g++
linking perl527.dll. The old serial build recipie passed --dllname
to dlltool, my newer code didn't.
Passing $(PERLDLL) to dlltool's -D causes this harmless but scary warning
"dlltool: Path components stripped from dllname, '..\perl527.dll'."
So create PERLDLLBASE to silence the warning.
win32.h: In old GCCs,
https://sourceforge.net/p/mingw/mailman/message/22184185/ a function marked
declspec(dllimport) is not a constant. VC from day 1, and newer GCCs use
the address of a 1 instruction jump stub function if a constant function
pointer is needed to a function from a DLL that wont be known till runtime.
This can be worked around in older GCCs by deoptimizing them to always
use the jump stub for all references, and not the newer GCC and VC way
where x86 call instructions directly read the import table in the caller,
while constant functions ptrs in data or vars always refer to the jump
stubs. Since these are old GCCs, performance isn't the highest priority
and building at all is a more important goal. I suspect gcc 3.4.5 has
been broken since 5.13.6 when the declspec(dllimport) code was added.
commit d9fcdd66cd3edf0dc63f9fd9d9c6c8717900c0d2
Author: H.Merijn Brand <[email protected]>
Date: Thu Apr 12 14:16:08 2018 +0200
Update Config::Perl::V with test on 5.27.11 (rsync version)
commit ee00d6d013395430b8d83f22d4534f91a9c73ac2
Author: Ricardo Signes <[email protected]>
Date: Tue Apr 10 08:42:08 2018 -0400
perlvar: update the docs on "my $_" to note its removal
commit c9c8ef8466e7ccf6d9ad309c7764fc937855028c
Author: David Mitchell <[email protected]>
Date: Tue Apr 3 14:19:42 2018 +0100
S_regmatch(): improve debugging output
Make the various debugging outputs identify where the message is coming
from; e,g, change
trying longer...
to
WHILEM: B min fail: trying longer...
and change some existing "whilem: ..." messages to "WHILEM: ..." for
consistency.
commit 496ba6d075ed8afca052484d80f01974512196e6
Author: Daniel Dragan <[email protected]>
Date: Fri Apr 6 09:12:48 2018 -0400
fix parallel ALL_STATIC Win32 build
Normalize depends on mktables's output. Mktables is a very long serial CPU
intensive build product. No other modules except Normalize depend on
mktables. Normalize XS module must be split out from all other XS modules
to fill CPU cores with parallel work, so that the 2 longest running
tagets, Mktables and all XS modules, run in parallel instead of 1 after
another. Since Normalize was hardcoded as a dynamic module, in an
ALL_STATIC build, Normalize was build twice, once as a static in the
big Extensions_static target, and once as a dynamic module, a race
happened if a parallel build was done, and if the Extensions_static target
got around to trying to build Normalize static, before by chance Normalize
dyn was build, Normalize static failed. This can be demostrated by cleaning
the src tree and building each target individually explicitly. Fix the race
by creating a Normalize static and dynamic target and dropout the deps
depending on if its ALL_STATIC or not. Also the now "big" Extensions_static
target when doing an ALL_STATIC build also failed because the general XS
modules that need lib.pm to build didn't have lib.pm available when their
Makefile.PL'es were run. For example cpan/Compress-Raw-Bzip2 needs lib.pm
to build. So separate out lib.pm from Dynaloader target so both dyn
extensions and static exts have lib.pm available. Technically, static exts
dont need lib.pm unless its ALL_STATIC, since for dyn win32 perl Win32CORE
is the only static module, but lib.pm is relativly fast and easy and low
dep to build so build it anyways for static ext target in non-ALL_STATIC
mode rather than special case the dep between ALL_STATIC and
non-ALL_STATIC.
-re.pm doesn't need lib.pm
-normalize doesn't need lib.pm
Reverts "Fix static builds with MinGW" commit 9999704e7ac and adds fixes.
This is a follow on to [perl #132992].
To reduce the diff-ness between the dmake and gmake mkfs. Make the
distclean identical. For dmkf, dont delete Storable.pm twice. And for gmfk
add Amiga dir deletion since lib_cleanup.pl requires it for dmkf but the
original day 1 of gmkf in commit 342634f3c8 "kmx's original GNUmakefile"
never had the Amiga line, but that day 1 commit also never added
GNUmakefile to lib_cleanup.pl the way makefile.mk was already added and
chked for its dir clean list. So add GNUmakefile to be chked by
lib_cleanup.pl the way the other 2 win32 mkfs are checked. In gmfk move
Storable.pm line to match dmfk which is more psuedo-alpha sorted. Also
fix the Test vs Test2 typo.
Some more text is available in the ticket associated with this patch.
commit 1955709796aa736fca3ee1897fae534708b62d2e
Author: Tony Cook <[email protected]>
Date: Thu Mar 29 11:11:23 2018 +1100
prevent warnings from building Storable on x64 Win32 with gcc
commit 20ae4d87e8a21aebd466ef848c7365d70a2c1567
Author: Marc-Philip <[email protected]>
Date: Sun Apr 8 12:15:29 2018 -0600
PATCH: [perl #133074] 5.26.1: some coverity fixes
we have some coverity code scans here. They have found this
uninilialized variable in pp.c and the integer overrun in toke.c.
Though it might be possible that these are false positives (no
reasonable control path gets there), it's good to mute the scan here to
see the real problems easier.
commit fa6648a425101db58af2969eb3b55af5aaa223f4
Author: Karl Williamson <[email protected]>
Date: Sun Apr 8 12:24:32 2018 -0600
Add Marc-Philip Werner to AUTHORS
commit 114d070b0937699f3886f55648a93b15c0e768d8
Author: Daniel Dragan <[email protected]>
Date: Sun Apr 8 00:19:11 2018 -0400
fix utf8.c overflowed VC6's preproc macro buffer and syntax errored
Only happened with CFG=Debug/-DDEBUGGING. Non-debugging VC6 build not
affected.
cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE -DNO_STRICT
-DPERLDLL -DPERL_CORE -Od -MD -Zi -DDEBUGGING -DPERL_EXTERNAL_GLOB
-DPERL_IS_MINIPERL -Fomini\utf8.obj -Fdmini\utf8.pdb ..\utf8.c
utf8.c
..\utf8.c(4057) : error C2017: illegal escape sequence
..\utf8.c(4057) : error C2017: illegal escape sequence
..\utf8.c(4057) : error C2017: illegal escape sequence
..\utf8.c(4057) : error C2017: illegal escape sequence
..\utf8.c(4057) : error C2143: syntax error : missing ')' before 'string'
..\utf8.c(4057) : error C2017: illegal escape sequence
..\utf8.c(4057) : error C2017: illegal escape sequence
..\utf8.c(4057) : error C2017: illegal escape sequence
..\utf8.c(4057) : error C2059: syntax error : ')'
..\utf8.c(4057) : error C2059: syntax error : ')'
..\utf8.c(4057) : error C2059: syntax error : ')'
..\utf8.c(4057) : error C2017: illegal escape sequence
..\utf8.c(4057) : fatal error C1013: compiler limit : too many open
parentheses
GNUmakefile:1439: recipe for target 'mini\utf8.obj' failed
The VC6 C preprocessor breaks down and messes up the number of \s
in escaping asserts in asserts in asserts to make a double quote string
litteral for an assert message. VC7/VC 2003 doesn't have this problem.
Fix the asserts in asserts by factoring out EIGHT_BIT_UTF8_TO_NATIVE
macro which has asserts inside it from L1_func aka toFOLD_LC which is
another macro that has asserts inside it.
Some adtl details in RT ticket associated with the patch.
commit d31341e16ca9ec4e0077ed20e00b58316777fb40
Author: Karl Williamson <[email protected]>
Date: Thu Apr 5 08:27:32 2018 -0600
PATCH: [perl #133037] new warning in inline.h
This just uses an intermediate variable of the correct type to store the
result, and then casts it, as the value is guaranteed to be a number
between 0 and 7.
commit f659e33f9d9b2652212f35154a68a38b059db0d6
Author: James E Keenan <[email protected]>
Date: Sun Apr 8 10:12:20 2018 -0400
Spelling correction for consistency with pod/perldebguts.pod.
commit 00b9232e11f524e1bdbda009894724140f3c5c5e
Author: James E Keenan <[email protected]>
Date: Sun Apr 8 10:09:37 2018 -0400
Spelling correction for consistency with pod/perldebguts.pod.
commit 3c365a3ae7e08b491084ff3bbfd56a4190218464
Author: James E Keenan <[email protected]>
Date: Sun Apr 8 09:56:06 2018 -0400
One more spelling correction from Ville Skyttä.
The original patch had a problem during 'git apply', so the committer
chopped
it up and applied all parts except this in commit
f0d9624a416d3eb926048f8054b82304fba159.
commit 3221564f5da56b1325361c44e278c07bf5163e34
Author: James E Keenan <[email protected]>
Date: Sun Apr 8 09:53:31 2018 -0400
Provide additional email address for author.
commit a49c6a2c10069f9404fec36dddbabe4622917f39
Author: James E Keenan <[email protected]>
Date: Sun Apr 8 09:49:22 2018 -0400
Spelling corrections from Ville Skytt.
For: RT # 133071
commit f2137488d65c8ea2e313f82b4f44df5232feecdb
Author: Karl Williamson <[email protected]>
Date: Wed Apr 4 09:24:02 2018 -0600
Revert "inline.h: Silence compiler warning"
This reverts commit 0cb291171cc75e1aed1c415a7178c1ea9441259b which was
causing real failures. Since I don't have access to this platform, I
think the way to go is to get the OP to work with me to come up with a
solution before committing to blead. [perl #13307]
commit c7ddf547dbee4511d7b64d657c8271ba537db540
Author: David Mitchell <[email protected]>
Date: Wed Apr 4 11:30:19 2018 +0100
bytes.pm: remove 'use utf8' from example
It's not needed.
RT #125619
commit 72cd7f350983536867f90f3af536c0ac934e6614
Author: Tony Cook <[email protected]>
Date: Wed Apr 4 14:28:41 2018 +1000
(perl #127743) don't use a freed context
With fa575cfed I made the TRACEME() macro use a cached
$Storable::DEBUGME value stored in the Storable context.
Unfortunately I missed a few cases where the TRACEME() macro is
used but the context value is invalid.
Reported privately by Dave Mitchell.
commit 8b17aeb40fc70653684d1aa401f2874b891680d4
Author: Karl Williamson <[email protected]>
Date: Tue Apr 3 09:35:46 2018 -0600
Use unsigned to avoid compiler warning
The code points that Unicode furnishes will always be unsigned. This
changes to uniformly treat the ones in the constructed tables of Unicode
properties to be unsigned, avoiding possible signedness compiler
warnings on some systems.
Spotted by Dave Mitchell.
commit 2c9c9eebd42ed7d9894b7514ba722222acc53d34
Author: David Mitchell <[email protected]>
Date: Tue Apr 3 08:50:19 2018 +0100
POSIX.pm: resolve ambiguous #If
In an XS file,
# If ...
is being interpreted by at least one compiler / build system as a
CPP macro rather than as an XS code comment.
Indent it to remove ambiguity.
http://nntp.perl.org/group/perl.perl5.porters/250229
commit 99681a5ad4c2aee9b24ca571dd37003cf847d9c9
Author: Karl Williamson <[email protected]>
Date: Mon Apr 2 21:57:10 2018 -0600
inline.h: Silence compiler warning
Some compilers depending on memory and pointer size, emitted a warning
here.
commit ddb152b4b07df6e7b23e9fe825d8087334db4067
Author: Karl Williamson <[email protected]>
Date: Mon Apr 2 21:54:59 2018 -0600
PATCH: [perl #132167] Parse error in regex_sets
When popping the stack, the code inappropriately also subtracted one
from the result. This is probably left over from an earlier change in
the implementation. The top of the stack contained the correct value;
subtracting was a mistake.
commit e6f9dd8f9eee9cb357134ddd1cbeb70a9c7f32cc
Author: Daniel Dragan <[email protected]>
Date: Mon Apr 2 10:49:54 2018 -0400
RT #133039 dont build a Storable.so/.dll with a static perl build
All static perls aren't capable of making shared libs that will never
execute anyways. Commit c0e3b4b51c make Limit.pm depend on Storable.so/.dll
which isnt supposed to exist in a static build but the EUMM makefile still
has enough logic/targets defined that "dynamic ext on static perl" will
probably generate a disk file to satisfy that target (execution is another
story). Except on Win32, where global data vars must be declared in C if
they are stored inside or outside the DLL where the reference will be made.
PL_sv_placeholder is one such var. On no-threads static win32 Perl I assume
even more breakage and missing symbol warnings.
Fix the problem by making sure the .a/.lib and perlstatic.exe or .so/.dll
are built respectfully before running stacksize.pl.
I also noticed dist/Storable/lib was untracked and unignored, so put it
on ignore list because it is a build product.
See more details in #133039.
Related to RT #127743
commit cbe5650fb77efa8a0d56742957de376935ec9481
Author: Karl Williamson <[email protected]>
Date: Wed Mar 7 10:27:20 2018 -0700
regexec.c: Use macro intended for the purpose
The macro hides the underlying implementation detail.
commit c769f16a6fba4e628b977eadcf20af9a482b22f0
Author: Tony Cook <[email protected]>
Date: Wed Feb 21 14:50:13 2018 +1100
(perl #132876) define API macros on if the NEED_ macro is defined
Rather then always defining an API macro such as "croak_xs_usage",
only define it if the NEED_ macro is defined.
This means that code that checks if the API macro is defined won't
get a false positive and try to use an API that's neither available nor
emulated.
If the including code attempts to define its own fallback, as EU::PXS
code does, it also prevents a macro redefinition, most likely with a
different token sequence which the C standard forbids.
This change has the (I think unlikely) risk that a user of ppport.h
might include ppport.h for the macro definition and then define their
own DPPP_some_api() function. I attempted to check via grep.cpan.me,
but it wasn't working at the time.
commit 2c03936a4fc3835732a19ebc0d3a3360b5c219a1
Author: Tony Cook <[email protected]>
Date: Wed Feb 21 11:24:00 2018 +1100
(perl #132876) only define croak_xs_usage()'s assert macro if cxu requested
This avoids an interaction with the code ExtUtils::ParseXS generates to
define a fallback croak_xs_usage().
That code checks whether the assert macro is defined rather than checking
if croak_xs_usage() is defined, and since ppport.h was always defining
the assert macro, the EU::PXS code would fail to define its own
croak_xs_usage() fallback.
commit 6a41ac7fb70e69479515a85d100f193b4dbd0874
Author: Tony Cook <[email protected]>
Date: Mon Apr 2 09:54:14 2018 +1000
(perl #133009) *nix builds need Cwd.pm too
commit 164eef19d58b20232b05d671825adc3f4cd67743
Author: Tony Cook <[email protected]>
Date: Thu Mar 29 14:34:37 2018 +1100
Storable: the Limit.pm should depend on the code generating it
commit c48d39cb1e041e48ba693237f5f2956b24bb9fb7
Author: Tony Cook <[email protected]>
Date: Thu Mar 22 11:48:29 2018 +1100
(perl #133009) handle the XP fallback after we're ready to write
Also, check we can use Storable before trying to probe recursion
limits.
As bulk88 points out, Win32 may return 0 from system even if the
probe crashes, so instead have the probe output some text after the
recursion check and test that the text is output.
commit 155e1ca67c58a69eb178b5de9e9813aac1c90fb4
Author: Karl Williamson <[email protected]>
Date: Sun Apr 1 08:55:46 2018 -0600
PATCH: [perl #133405] POSIX.xs: Silence compiler warning
commit 4006934fe0c62831269ef7d9a688c40b20cc944e
Author: Karl Williamson <[email protected]>
Date: Sat Mar 31 15:56:12 2018 -0600
regexec.c: Silence a compiler warning
The argument is 32 bits, but only the lowest 8 are used.
commit 7e2c6f9d12c454ba16bb3daf915733ed642043e5
Author: Karl Williamson <[email protected]>
Date: Sat Mar 31 13:01:42 2018 -0600
regcomp.c: Simplify a function
Now that the case folding rules are compiled-in, we don't have to avoid
using them so much. This removes some #ifdef'd code. The remaining
hard-coded rules could have also been removed, but since they don't
require #ifdef's and were already there, I left them in.
commit 9b9f7007a8bc7b346d0c3d3b3225661b4501cc70
Author: Karl Williamson <[email protected]>
Date: Sat Mar 31 15:29:34 2018 -0600
utf8.c: Add missing const in formal parameter
Only the win32 compiler caught this
commit 52009627ec03919f19d1ca97f65420c08a726978
Author: Karl Williamson <[email protected]>
Date: Sat Mar 31 12:47:32 2018 -0600
utf8.c: Remove unused thread context for core-only fcn
commit f52e32806d57978b1ec754371e6108d5859649e2
Author: Karl Williamson <[email protected]>
Date: Sat Mar 31 12:39:46 2018 -0600
regexec.c: Simplify a little
A Previous commit has changed the circumstances of this code so that we
know certain things to be true that we didn't use to.
commit 7c803ae703c5c7cc71df8f279519cc8ac307aa5c
Author: Karl Williamson <[email protected]>
Date: Sat Mar 31 12:34:01 2018 -0600
regexec.c: White-space only
This outdents to to the removal of an enclosing block by a previous
commit
commit 7ec1c4db5f10e37433386c968a572a3b8588d65c
Author: Karl Williamson <[email protected]>
Date: Sat Mar 31 12:28:51 2018 -0600
regcomp.c: White-space only
Adjust the indentation given that a prior commit removed an enclosing
block
commit a9e056d84540a879d4378813591218d736b15cab
Author: Karl Williamson <[email protected]>
Date: Sat Mar 31 12:23:29 2018 -0600
regcomp.c: Rmv no longer used variable
commit c5e68eb598c6b4791a3eb3537f62e76fd1bf5dfc
Author: Karl Williamson <[email protected]>
Date: Sat Mar 31 12:20:50 2018 -0600
regcomp.c: Rmv no longer used core-only function
commit e3b209bfd5ecbdb177e9433019099a65ba9d369e
Author: Karl Williamson <[email protected]>
Date: Sat Mar 31 12:04:40 2018 -0600
regen/mk_invlists.pl: Fix to work on early Unicode
The earliest Unicode release only had 2**16 code points. Add a test for
that so it will generate the proper tables if perl is compiled with that
Unicode
commit b3272306cc1e1d8e93c53370785c240ffce0cf6f
Author: Karl Williamson <[email protected]>
Date: Sat Mar 31 12:01:27 2018 -0600
regen/mk_invlists.pl: Improve error message
commit aa9f648d3317a6f20c81adf3e6e83d214a6c1b60
Author: Karl Williamson <[email protected]>
Date: Sat Mar 31 12:14:45 2018 -0600
utf8.c: Rmv no longer used function
The previous commit completely stopped using this core-only function.
Remove it.
commit 2529515cd7d7fd3d93da5dbeee3df4795fe38822
Author: Karl Williamson <[email protected]>
Date: Thu Mar 29 16:32:49 2018 -0600
Use compiled-in C structure for inverted case folds
This commit changes to use the C data structures generated by the
previous commit to compute what characters fold to a given one. This is
used to find out what things should match under /i.
This now avoids the expensive start up cost of switching to perl
utf8_heavy.pl, loading a file from disk, and constructing a hash from
it.
commit 4ff6a503857966d42610af77a85cff665ad6f190
Author: Karl Williamson <[email protected]>
Date: Wed Mar 28 18:20:10 2018 -0600
regen/mk_invlists.pl: Generate tables for inverted case folds
This table will be used in the next commit
commit 9be0f1c39e6ef950e158c9ac28bf33d6fb4f5e06
Author: Karl Williamson <[email protected]>
Date: Wed Mar 28 18:01:50 2018 -0600
regen/mk_invlists.pl: Inversion maps don't have to be IV
An inversion map currently is used only for Unicode-range code points,
which can fit in an int, so don't use the space unnecessarily
commit d7131fbe863668c7d9b75bd0cd250a1665c7cd34
Author: Karl Williamson <[email protected]>
Date: Wed Mar 28 18:00:30 2018 -0600
regexec.c: Remove no longer used macros
These are unused now that all the POSIX class lookups are done through
inversion lists, instead of swashes.
commit 240f08edfc049c268f42c08e1b4aeb64898991a9
Author: Karl Williamson <[email protected]>
Date: Wed Mar 28 09:55:52 2018 -0600
regen/mk_invlists.pl: Change some fcns to return a ref
They previously returned an array. This is in preparation for a future
commit, where a similar function will return multiple arguments.
commit b1c8bcc7d116c4b68e1f4441a5280b638ccd3df1
Author: Karl Williamson <[email protected]>
Date: Tue Mar 27 15:56:30 2018 -0600
Remove obsolete variables
These were for when some of the Posix character classes were implemented
as swashes, which is no longer the case, so these can be removed.
commit 7a7c1b0a1c8d7745d870f31665538748db6a3cfb
Author: Karl Williamson <[email protected]>
Date: Tue Mar 27 15:38:04 2018 -0600
regexec.c: White-space, comment only
Fix up indentation based on the previous few commits
commit 0d5ebaf48a93bb522b0b0e958f0079ab61e7332c
Author: Karl Williamson <[email protected]>
Date: Tue Mar 27 15:19:55 2018 -0600
regexec.c: Convert swash lookup to inversion list
commit 563b7a9ac710ef7f40fba5f082033b3cff019d15
Author: Karl Williamson <[email protected]>
Date: Tue Mar 27 15:03:50 2018 -0600
regexec.c: Convert swash lookup to inversion list
Previously this had two loops, the first one was used to keep from
loading the swash for as long as possible. Now that it is loaded by
default, there is no need to do this. This overwrites the first loop
with the second loop
commit a254e6892bd61dc1b41640ec8c01f3a3f561d1a1
Author: Karl Williamson <[email protected]>
Date: Tue Mar 27 14:15:54 2018 -0600
regexec.c: Convert swash lookup to inversion list
commit 3e1746a6e8a8da5a10c3b3e4ebacc7368708eb62
Author: Karl Williamson <[email protected]>
Date: Tue Mar 27 14:06:03 2018 -0600
regexec.c: Explicitly use case: instead of default:
This is so the default: can be used for another purpose in the next
commit.
commit 63070effff1b9f191132621ed5a5dbe6efce5990
Author: Karl Williamson <[email protected]>
Date: Tue Mar 27 15:49:06 2018 -0600
regexec.c: Check for UTF-8 fitting
We've been burned before by malformed UTF-8 causing us to read outside
the buffer bounds. Here is a case I saw during code inspection, and
it's easy to add the buffer end limit
commit 39826d168d51f8d3c07cb02277584677bcc0a88f
Author: Karl Williamson <[email protected]>
Date: Tue Mar 27 13:43:50 2018 -0600
regexec.c: Convert one swash to inversion list
I'm doing this one-at-a-time for bisection reasons, in case I make a
mistake.
commit 1357ebdcf05ff4f84c55b2b2dae95a11fdff15c6
Author: Karl Williamson <[email protected]>
Date: Tue Mar 27 13:33:41 2018 -0600
regexec.c: Rmv obsolete macro
This macro is obsolete because the inversion list for this property is
now always loaded, so no need to load.
commit 228dea0e4ebfa31aa71ec09f1fd988edd144d896
Author: Karl Williamson <[email protected]>
Date: Sat Mar 31 11:18:38 2018 -0600
Use charnames inversion lists
This commit makes the inversion lists for parsing character name global
instead of interpreter level, so can be initialized once per process,
and no copies are created upon new thread instantiation. More
importantly, this is another instance where utf8_heavy.pl no longer
needs to be loaded, and the definition files read from disk.
commit 0aa49409040f7005bb7038482355cfc47069aa4d
Author: Karl Williamson <[email protected]>
Date: Tue Mar 27 13:00:38 2018 -0600
regen/mk_invlists.pl: Generate charnames inversion lists
This is so we won't have to load utf8_heavy.pl and read them from disk
when they are first encountered.
commit 0c3eb0cc2667933aa654947d74b21576b2246c3d
Author: Karl Williamson <[email protected]>
Date: Tue Mar 27 12:52:35 2018 -0600
Remove no longer used constant and #if checks.
This is now obsolete as a result of the last few commits.
commit b4db006d9f3647fc601b0e6f04e397f4731e6d0f
Author: Karl Williamson <[email protected]>
Date: Tue Mar 27 12:44:54 2018 -0600
utf8.c: Change no longer used params to dummys
The previous commits have caused certain parameters to be ignored in
some calls to these functions. Change them to dummys, so if a mistake
is made, it can be caught, and not promulgated
commit d7cee79721cbc09c620d68cc43297e986c69e693
Author: Karl Williamson <[email protected]>
Date: Tue Mar 27 11:55:56 2018 -0600
Move init of 2 inversion lists to perl.c
These read-only globals can be initialized in perl.c, which allows us to
remove runtime checks that they are initialized. This commit also takes
advantage of the fact that they are now always initialized to use them
as inversion lists, avoid swash creation.
commit dbe3600705926273542fb85e69e75b0fce022fcb
Author: Karl Williamson <[email protected]>
Date: Tue Mar 27 11:55:23 2018 -0600
Fix bug in mathoms fcn _is_utf8_xidcont()
This was using the wrong variable, the one used by plain
_is_utf8_idcont()
Since both of these are in mathoms.c, and deprecated, this really wasn't
causing an issue in the field.
commit dfd24ab67a8a337e6f9d816418ab160263a59769
Author: Karl Williamson <[email protected]>
Date: Tue Mar 27 10:50:28 2018 -0600
utf8.c: Avoid calling swash code
Now that we prefer inversion lists over swashes, we can just use the
inversion lists functions if we have an inversion list, avoiding the
swash code altogether in these instances.
This commit stops using inversion lists for two internal properties, but
the next commit will restore that.
commit c749d0f7ee2fa21dd1654e40edc1cd1c274511d2
Author: Karl Williamson <[email protected]>
Date: Tue Mar 27 10:18:03 2018 -0600
utf8.c: Prefer an inversion list over a swash
Measurements I took in 8946fcd98c63bdc848cec00a1c72aaf232d932a1 indicate
that at the sizes that Unicode inversion lists are, there is no slowdown
in retrieval of data using an inversion list vs a hash. Converting to
use an inversion list, when possible, avoids the hash construction
overhead, and eventually to the removal of a bunch of code.
commit 0f6fe43568fa3d246fdfeaf21b0b0b2f34dc2002
Author: Karl Williamson <[email protected]>
Date: Sat Mar 31 10:30:14 2018 -0600
utf8.c: Clarify comment
commit 529cb4a2695c970c4b946a4cc6fab766aaee13c6
Author: Karl Williamson <[email protected]>
Date: Fri Mar 30 14:31:48 2018 -0600
perl.h: Clarify comment
commit 3736a9d73ffa4362efc82bf5b692d7a129724e35
Author: Karl Williamson <[email protected]>
Date: Sat Mar 31 11:04:34 2018 -0600
utf8.c: Add comments
This adds comments, and some white space changes to the function
dealing with changing case changed in
8946fcd98c63bdc848cec00a1c72aaf232d932a1
commit 36286ced67417b2036785cfd2009d416c741bc5d
Author: Karl Williamson <[email protected]>
Date: Sat Mar 31 12:09:40 2018 -0600
regexec.c: Silence compiler warning
When this #ifdef'd code is compiled, there was a warning
commit cf0b718094384ae5d9cfecc7008a5d7072071ca1
Author: Karl Williamson <[email protected]>
Date: Sat Mar 31 11:08:50 2018 -0600
utf8.c: Allow to compile for early Unicode versions
Commit 8946fcd98c63bdc848cec00a1c72aaf232d932a1 broke the compilation of
utf8.c when perl is compiled against very early Unicode versions, as
some tables this is expecting don't exist in them. But it is easily
solvable by a few #ifdefs
commit ad3f99cc9f565c9c3e2cf860a67dfaf021b57b30
Author: Zefram <[email protected]>
Date: Sat Mar 31 00:06:26 2018 +0100
fix versions in doc of signature/attribute diag
The documentation for the new diagnostic about attributes and signatures
being provided in the wrong order, for [perl #132760], mentions the
versions of perl in which the order changed. It had the versions slightly
wrong, implying introduction of signatures in 5.18 and the change to
signatures being before attributes in 5.20. In fact signatures were
introduced in 5.20, and the order was first changed in 5.22.
commit 8b20d7ebf94fbc1fbacd0491f97e450cc0ac041a
Author: Zefram <[email protected]>
Date: Fri Mar 30 23:07:36 2018 +0100
delete unreliable test of Carp crash avoidance
rt52610_crash.t was introduced by commit
4764858cb80e76fdba33cc1b3be8fcdef26df754, and is predicated on
the mythical effectiveness of that commit's code change in avoiding
stack-not-refcounted crashes, an effectiveness also expressed in that
commit's very inaccurate commit message. In fact the code change will
avoid *some* crashes, but cannot guarantee to avoid crashing in any
particular situation of the kind that it targets. It is therefore not
possible to have a test for it avoiding a stack-not-refcounted crash,
with any expectation that the test would reliably pass or even reliably
avoid crashing. rt52610_crash.t must therefore be deleted.
commit 9f072a21b8f0bd758502c17c982a8193844230d0
Author: James E Keenan <[email protected]>
Date: Thu Mar 29 18:31:14 2018 -0400
Remove 'our' from one non-Exporter-related variable.
commit 59e7c4336a673e2eefe1eac81a489ffe5115b1f3
Author: James E Keenan <[email protected]>
Date: Thu Mar 29 09:36:57 2018 -0400
Use lexically scoped ('our') variables in POD examples.
Per Dan Book recommendation, as this is code likely to be copied-and-pasted
by
people new to Perl.
Keep podcheck happy.
For: RT # 133040
commit b8a4005dab6f6ff91c01f398d7883a72046c0f85
Author: Karl Williamson <[email protected]>
Date: Thu Mar 29 10:08:43 2018 -0600
Update proto.h
It turns out I didn't do a format-patch after fixing this unregenerated
proto.h bug in 0dc258e2b8d107ef76f2d62c1a1a68222fd1e769, so I ended up
pushing an outdated version.
commit ca793781f08cbca7c8d1c0f6e9fa9ba4430074f8
Author: Karl Williamson <[email protected]>
Date: Thu Mar 29 10:08:43 2018 -0600
embed.fnc: Add a const to parameter
To match what the file declares it as.
commit c57471a17ee1a9579112add1d3a8050027d2f177
Author: Sergey Aleynikov <[email protected]>
Date: Wed Mar 28 23:53:32 2018 +0300
Maintain extralibs order for linker
As per discussion in RT # 132992
commit cb6700d6cffcb9a985eb8d4ec6697221bb351b75
Author: Sergey Aleynikov <[email protected]>
Date: Wed Mar 28 23:28:56 2018 +0300
Fix ALL_STATIC builds with MinGW
ALL_STATIC required BUILD_STATIC set but that was not documented.
commit f371b944ddecd46844070a7ecc675df797d18424
Author: Sergey Aleynikov <[email protected]>
Date: Wed Mar 28 23:26:20 2018 +0300
Fix spelling in windows makefiles
commit 3560d98a8d4377924154ebbcfaa4438afd315884
Author: Sergey Aleynikov <[email protected]>
Date: Wed Mar 28 22:35:05 2018 +0300
Fix static builds with MinGW
Move Extensions_normalize target before Extensions
target to satisfy dependencies.
commit 2edc24b638d3b04cdfe7f434ed3b7c3954f6c25b
Author: Sergey Aleynikov <[email protected]>
Date: Mon Mar 26 23:39:45 2018 +0300
Update links in Devel::PPPort documentation
So they no longer point to github, as it's now maintained in-core.
(The committer fixed the links to be mailto:s and bumped the version
number
commit d53ed08d1508c2d0465589448f1dc8149ce5a5c4
Author: Sergey Aleynikov <[email protected]>
Date: Mon Mar 26 23:26:47 2018 +0300
Update RT path for Devel::PPPort
commit bc3e1889cebb12f233f75564e9b29675e95c4e15
Author: Karl Williamson <[email protected]>
Date: Tue Mar 27 09:57:44 2018 -0600
utf8.c: fix leak
Commit 8946fcd98c63bdc848cec00a1c72aaf232d932a1 failed to free a scalar
it created. I meant to do so, but in the end, forgot.
commit dbe7e85d6a00b09c051196c2bd0bebd1eec05dcc
Author: Karl Williamson <[email protected]>
Date: Tue Mar 27 12:17:50 2018 -0600
Regen uconfig.h
After 0cc3cc274e71bf1211f53331f706d17b75acdd54
commit 1c4ca04046e44771b9e988d8a9772ac36f8b6a0c
Author: Dagfinn Ilmari Mannsåker <[email protected]>
Date: Tue Mar 27 13:22:57 2018 +0100
Mark unused dl_unload_all_files() argument
commit 97cf1014c39724e5254c69dcaf0a2e4b7ea94676
Author: H.Merijn Brand <[email protected]>
Date: Tue Mar 27 11:13:53 2018 +0200
Whitespace consistency
commit 3b56ece257ad03b0207a3d44e1a71b5369e250e1
Author: Dagfinn Ilmari Mannsåker <[email protected]>
Date: Tue Mar 27 09:10:11 2018 +0100
Fix building with -Accflags=-DDL_UNLOAD_ALL_AT_EXIT
Commit bb6a367ad5d replaced an XPUSHs inside a loop with an EXTEND
outside it, but didn't move the dSP to match. Even if it did, that
would have been wrong, since the loop might push more than one value.
Revert that bit of the commit.
In passing, move the declaration of dl_librefs and dl_libref into the
scope where they're used.
commit 707b0b306c4e8dadd7ec2188d01df91f83836ae8
Author: H.Merijn Brand <[email protected]>
Date: Tue Mar 27 09:17:48 2018 +0200
d_strchr is C89 and has been removed from Configure
commit 8c1f6b31d78d116496317f88df168829187e29cc
Author: Karl Williamson <[email protected]>
Date: Sun Mar 25 11:58:55 2018 -0600
Move some inversion list init to perl.c
The initialization time spent here is trivial, and this saves a copy of
these arrays on some systems. This is because there is only one perl.c,
and there is both regcomp.c and re_comp.c which would contain the
identical static const array. Some OS's won't remove the duplicate
copies.
commit ee5525bb23b6f6adcd4bd1a5db696ab6b414ac58
Author: Karl Williamson <[email protected]>
Date: Sun Mar 25 11:41:15 2018 -0600
Move case change invlists from interpreter to global
These are now constant through the life of the program, so don't need to
be duplicated at each new thread instantiation.
commit 75fb9c59f1db8e809a8974e011d215a678b268d7
Author: Karl Williamson <[email protected]>
Date: Sat Mar 24 22:21:45 2018 -0600
regen/mk_invlists.pl: Fix comment gobbleldy gook
commit 72065bacf5e2cc7e44594b56349811ebae7a374f
Author: Karl Williamson <[email protected]>
Date: Fri Mar 23 13:43:56 2018 -0600
Move UTF-8 case changing data into core
Prior to this commit, if a program wanted to compute the case-change of
a character above 0xFF, the C code would switch to perl, loading
lib/utf8heavy.pl and then read another file from disk, and then create a
hash. Future references would use the hash, but the start up cost is
quite large. There are five case change types, uc, lc, tc, fc, and
simple fc. Only the first encountered requires loading of utf8_heavy,
but each required switching to utf8_heavy, and reading the appropriate
file from disk.
This commit changes these functions to use compiled-in C data structures
(inversion maps) to represent the data. To look something up requires a
binary search instead of a hash lookup.
An individual hash lookup tends to be faster than a binary search, but
the differences are small for small sizes. I did some benchmarking some
years ago, (commit message 87367d5f9dc9bbf7db1a6cf87820cea76571bf1a) and
the results were that for fewer than 512 entries, the binary search was
just as fast as a hash, if not actually faster. Now, I've done some
more benchmarks on blead, using the tool benchmark.pl, which wasn't
available back then. The results below indicate that the differences
are minimal up through 2047 entries, which all Unicode properties are
well within.
A hash, PL_foldclosures, is still constructed at runtime for the case of
regular expression /i matching, and this could be generated at Perl
compile time, as a further enhancement for later. But reading a file
from disk is no longer required to do this.
======================= benchmarking results =======================
Key:
Ir Instruction read
Dr Data read
Dw Data write
COND conditional branches
IND indirect branches
_m branch predict miss
_m1 level 1 cache miss
_mm last cache (e.g. L3) miss
- indeterminate percentage (e.g. 1/0)
The numbers represent raw counts per loop iteration.
"\x{10000}" =~ qr/\p{CWKCF}/"
swash invlist Ratio %
fetch search
------ ------- -------
Ir 2259.0 2264.0 99.8
Dr 665.0 664.0 100.2
Dw 406.0 404.0 100.5
COND 406.0 405.0 100.2
IND 17.0 15.0 113.3
COND_m 8.0 8.0 100.0
IND_m 4.0 4.0 100.0
Ir_m1 8.9 17.0 52.4
Dr_m1 4.5 3.4 132.4
Dw_m1 1.9 1.2 158.3
Ir_mm 0.0 0.0 100.0
Dr_mm 0.0 0.0 100.0
Dw_mm 0.0 0.0 100.0
These were constructed by using the file whose contents are below, which
uses the property in Unicode that currently has the largest number of
entries in its inversion list, > 1600. The test was run on blead -O2,
no debugging, no threads. Then the cut-off boundary was changed from
512 to 2047 for when we use a hash vs an inversion list, and the test
run again. This yields the difference between a hash fetch and an
inversion list binary search
===================== The benchmark file is below ===============
no warnings 'once';
my @benchmarks;
push @benchmarks, 'swash' => {
desc => '"\x{10000}" =~ qr/\p{CWKCF}/"',
setup => 'no warnings "once"; my $re = qr/\p{CWKCF}/; my $a =
"\x{10000}";',
code => '$a =~ $re;',
};
\@benchmarks;
commit 964118fab63ee2a62aa9c178ffebf74c3827aa87
Author: Karl Williamson <[email protected]>
Date: Fri Mar 23 13:27:25 2018 -0600
regen/mk_invlists.pl: Add case changing tables
This will be used by a future commit.
commit 1344742d60709bf20c3892dd17f42040b5bc0a50
Author: Karl Williamson <[email protected]>
Date: Fri Mar 23 12:26:12 2018 -0600
regen/mk_invlists.pl: White space only
This properly indents some code blocks.
commit 5af4ec4b2fc7bad2ae42b1c3b5750d7921796107
Author: Karl Williamson <[email protected]>
Date: Fri Mar 23 12:22:06 2018 -0600
regen/mk_invlists.pl: Allow to Generate code point mappings
This expands the code to handle code point mapping inversion maps. This
capability will be used in a future commit to handle case changing
operations in utf8.c.
commit 84fa48d435895c37efc912f29d4500fc2e856381
Author: Karl Williamson <[email protected]>
Date: Sat Mar 24 18:52:44 2018 -0600
regen/mk_invlists.pl: Fix bug with adjusted inputs
This doesn't affect any current uses, but we need to better account for
adjusted inversion maps.
commit b0e6b4b2894d2976294643952250613e4db5d309
Author: Karl Williamson <[email protected]>
Date: Fri Mar 23 12:11:48 2018 -0600
regen/mk_invlists.pl: Suppress empty enum declarations
This diverts the outputting of the enum typedefs until after they are
fully known, so that an empty one can be suppressed.
A future commit will need this
commit 5820b95b72e450b648b24c2b50ed239ffbc3f543
Author: Karl Williamson <[email protected]>
Date: Fri Mar 23 11:55:28 2018 -0600
regen/mk_invlists.pl: Allow enum defns to be public
This adds the ability for an enum typedef to be able to be made public.
Earlier in 5.27, commit c0221e16334efbe9723722578949dc3916d669d4 was
made to revert fea79782ed31ac4faa71eb6193faff54b4bbe249, because it
created bloat due to multiple statics of large arrays
This current commit is an alternative approach to
fea79782ed31ac4faa71eb6193faff54b4bbe249, but which doesn't create
bloat. But the capability is commented out because it isn't needed in
5.28
commit 597d4418c8c507cce77d30d3bb7e69e2fb2f6052
Author: Karl Williamson <[email protected]>
Date: Thu Mar 22 14:25:44 2018 -0600
regen/mk_invlists.pl: Handle EBCDIC
The code and comment here were out-of-date. When we are constructing
EBCDIC we need to modify the code points that are the result of a case
change that expands to more than one code point. This code is not
currently in used.
commit 905fbe677f8e376112310fcac54ac8e840ef4e2c
Author: Karl Williamson <[email protected]>
Date: Fri Mar 23 09:52:57 2018 -0600
regen/mk_invlists.pl: Remove Currency_Symbol definition
This is unused in 5.28.
commit b6dec0fed9a548efbb1c6a174de3782305c750e3
Author: Steve Hay <[email protected]>
Date: Sat Mar 24 19:54:23 2018 +0000
Add epigraphs for 5.24.4-RC1 and 5.26.2-RC1
commit 6f13012aadacafeebfccdd764bf8d675cf6c6181
Author: Steve Hay <[email protected]>
Date: Sat Mar 24 17:23:37 2018 +0000
5.24.4-RC1 and 5.26.2-RC1 today
commit a400260581829bc6033ff994ebd3a67e8af33afb
Author: Todd Rinaldo <[email protected]>
Date: Fri Mar 23 11:48:39 2018 -0500
Bump Time-HiRes to 1.9759 to revert changes from 1.9754..1.9758 on CPAN
Tag Porting/Maintainers.pl so it is clear that a release to CPAN is
outstanding.
commit 63c2dbfe39b07d3d2d49405a33a771f0d264d92a
Author: Todd Rinaldo <[email protected]>
Date: Fri Mar 23 11:36:08 2018 -0500
Revert "Upgrade Time::HiRes from version 1.9753 to 1.9757"
This reverts commit 13813507385079199d99d90776780dcd653f6919.
On recommendation of the Author, we are reverting these changes for
now in order to stabilize blead.
commit c2034ee9226b8c7f9d726cf9f03b243c8ad2c364
Author: Todd Rinaldo <[email protected]>
Date: Fri Mar 23 11:35:45 2018 -0500
Revert "Upgrade Time::HiRes from version 1.9757 to 1.9758"
This reverts commit 554c20fe6eab1dc262c2fb2d036b76fa09153f1c.
commit b48d89a3f8ddae886b4a631eb723f0e99de1b09b
Author: Steve Hay <[email protected]>
Date: Thu Mar 22 21:33:12 2018 +0000
Maint releases are now expected mid-April; RC1s will be out soon
commit b46fa24cd8ba647723984afdfc76865ff0a5ca5a
Author: Todd Rinaldo <[email protected]>
Date: Thu Mar 22 15:31:20 2018 -0500
Remove redundant advice in the RMG about using pod2html which you were just
shown how to use
commit f6e2c0c3b357a42965d23cdc0f1e58ad3ffac552
Author: Todd Rinaldo <[email protected]>
Date: Thu Mar 22 14:31:54 2018 -0500
Update Porting/Maintainers.pl to match CPAN for Module::CoreList
commit 5a12a69c3236ebdb6bfeedddd538e14c5d90e09a
Author: Todd Rinaldo <[email protected]>
Date: Thu Mar 22 14:22:25 2018 -0500
Upgrade Time::HiRes from version 1.9757 to 1.9758
[DELTA]
1.9758 [2018-03-21]
- fix build in Win32 with Visual C by introducing a fake struct timezone
[rt.cpan.org #124844]
- in utime.t detect better being run in a noatime filesystem,
and if so, skip the test (for the HAMMER filesystem of DragonflyBSD)
- also for the HAMMER fs (if not in noatime), lower the expected subsecond
timestamp granularity to microseconds
- fix the version number typo in Changes: 1.9577 -> 1.9757
commit 65407c31035e52708085a1c151f8ac6cd1991f41
Author: Karl Williamson <[email protected]>
Date: Thu Mar 22 08:27:11 2018 -0600
utf8.c: Update comment
commit 71a1dcc6d5c0d393df78265cc6a56e35a6d80479
Author: Karl Williamson <[email protected]>
Date: Sun Mar 18 18:19:48 2018 -0600
I18N::Langinfo/t/Langinfo.t: Skip tests on early netbsd
The names of the months and weekdays are swapped with the abbreviated
names before netbsd 7, so skip the tests on those platforms. See their
commit:
revision 1.12.2.1
date: 2013-09-07 20:11:41 +0400; author: bouyer; state: Exp; lines:
+38 -38; commitid: HURUJwL5bnZmww4x;
Apply patch, requested by joerg in ticket #934:
lib/libc/locale/global_locale.c: patch
provide consistent and correct data for the C locale.
commit 7bb20b9135de9c13939ce574e7815775867be178
Author: Karl Williamson <[email protected]>
Date: Thu Mar 15 11:37:16 2018 -0600
locale.c: Really silence compiler warning
Commit 32a62865ef662fce2b2250a7e0eca15861e7fe20 did not work, as gcc
doesn't recognize a void cast as handling a return value. This should
hopefully work, though we discard the value before looking at it, which
could cause another warning.
commit d7930b2fb4f754c8025b3674b75f7590e097c18d
Author: David Mitchell <[email protected]>
Date: Tue Mar 20 16:21:20 2018 +0000
op_dump(): display PARENT of top-most node
When dumping a subtree, display the op_parent() value for
the top-most node of the subtree.
commit df53c7e513185b494a5300e8b98f69aeb884af4b
Author: Sawyer X <[email protected]>
Date: Wed Mar 21 11:05:54 2018 +0200
Push release of 5.28 by a month to May
commit 55b8063e06c40eedfca6257e289a3b49bc19925d
Author: Karl Williamson <[email protected]>
Date: Tue Mar 20 22:42:31 2018 -0600
mktables: Add aliases to the Present_In property
This property parallels the Age property (but is cumulative). Each
table in it should have the same property value possibilities as the
corresponding Age table.
commit 0b88bc9324e38caf0dc147aaaa9bfaf112d1b082
Author: Todd Rinaldo <[email protected]>
Date: Tue Mar 20 19:47:24 2018 -0500
Adjust code which did not get automatically switched over to 5.027011
The following changes were still required after doing
$ ./perl -Ilib Porting/bump-perl-version -i 5.27.10 5.27.11
Module::CoreList had to be updated by hand.
Op_private.pm had to be updated by doing regen/opcode.pl lib/B/Op_private.pm
commit f68a8d587f400b7e5fc723faa6ccc6415be92a07
Author: Pali <[email protected]>
Date: Thu Mar 15 20:51:30 2018 +0100
Devel::PPPort: Use prefix D_PPP_ for helper macros
Prefix D_PPP_ is already handled by ppptools.pl. This change cleanups code,
makes code more consistent and avoids specifying helper macros in =dontwarn
section.
commit 82a9925d7d8c0c43883614a96d2b69ef71d6efef
Author: Todd Rinaldo <[email protected]>
Date: Tue Mar 20 16:48:46 2018 -0500
Bump the perl version in various places for 5.27.11
commit cf09962fafa2f3fe1458efce32cc54808b8f2255
Author: Todd Rinaldo <[email protected]>
Date: Tue Mar 20 16:47:13 2018 -0500
New Perldelta for 5.27.11
commit 49f2335711b0fcfd03cdb0b843e6abdf3b4bcf8e
Author: Chris 'BinGOs' Williams <[email protected]>
Date: Tue Mar 20 21:30:35 2018 +0000
Tick another dev release off
commit b46552466af9f3af2c96e7769174ca8281b3e259
Author: Todd Rinaldo <[email protected]>
Date: Tue Mar 20 16:29:53 2018 -0500
Epigraph for 5.27.10
commit b8229c523463079a4e49eb8d8a9db6d3575c8e95
Author: Todd Rinaldo <[email protected]>
Date: Tue Mar 20 12:31:44 2018 -0500
Perlhist entry for 5.27.10
commit 767e960f59188c788f2d0b8eeb61cc5a7ae84c34
Author: Todd Rinaldo <[email protected]>
Date: Tue Mar 20 12:17:27 2018 -0500
Finalize perldelta for 5.27.10
commit 8ca197c0835fa39d42e446372a45219a2d99f3ae
Author: Todd Rinaldo <[email protected]>
Date: Tue Mar 20 12:11:12 2018 -0500
update Module::CoreList for v5.27.10
commit a9e224fdae7cfbd237af78ab46069947601effd2
Author: David Mitchell <[email protected]>
Date: Tue Mar 20 12:05:13 2018 +0000
Deparse.pm: handle postfix $r->$#*
(\my @a)->$#*
was being deparsed as
$#{\my @a}
which incorrectly reduced the scope of the lexical @a.
Make Deparse.pm recognise this case and use the new postfix notation
instead.
This fixes
./TEST -deparse op/array.t
which was using ->$#*.
commit 2a3342cd0acf1656585f8285620a3137a2c76157
Author: David Mitchell <[email protected]>
Date: Tue Mar 20 09:51:37 2018 +0000
Deparse: handle \our @a
\our @a
was being deparsed as
\our(@a)
which incorrectly converts the \ from a scalar op to a list op
commit 6c50b19a6a4d251d2880bd3aaadee23ef6b410e2
Author: David Mitchell <[email protected]>
Date: Mon Mar 19 23:42:05 2018 +0000
add entries to Porting/deparse-skips.txt
Two test scripts are newly failing under
./TEST -deparse
op/array.t
there are two issues:
1)
\our @a
is getting deparsed as
\our (@a)
and so being misinterpreted as refgen rather than srefgen
2)
->$#*
isn't deparsed, so
(\my @a)->$#*
gets deparsed as
$#{\my @a}
with an incorrect scope for the my delcaration
lib/Config.t
for some reason, some functions from ./lib/Config_heavy.pl
are being output as part of lib/Config.t, and so things
like strict throw a wobbly.
Not sure yet why its happening
commit 87af5cdc6635708c4ce85101a613f26a546e7402
Author: David Mitchell <[email protected]>
Date: Mon Mar 19 23:46:39 2018 +0000
Deparse.pm: bump version
commit e18faa8207d83d3ec8952cb815d931e2fd046fe0
Author: David Mitchell <[email protected]>
Date: Mon Mar 19 20:35:26 2018 +0000
Deparse -l: set correct line num at end of sub
A sub declaration like
sub f { ...}
will be deparsed under -l as
#line 1 "foo"
sub f {
#line 1 "foo"
....
}
which means that the closing '}' of the sub is incorrectly seen as being
on the next line.
This matters when a glob is created based on a sub being compiled: the
glob's gp_line field is set to the line containing the '}'.
This was causing some tests in ext/B/t/xref.t to fail under
./TEST -deparse
This commit causes an extra #line directive to be emitted:
#line 1 "foo"
sub f {
#line 1 "foo"
....
#line 1 "foo" <=== NEW
}
Whether xref.t failed depended on another factor. The optimisation
which created the GV for a just-compiled sub as an RV to a CV rather than
a GV to CV, causes the later-vifified GV (upgraded from an RV) to instead
have a gp_line corresponding to the first cop in the sub's body.
Arguably this difference (gp_line being set to the line number of first
line of the sub rather than the last line) is a bug, but it's not obvious
how to fix it, and I don't address it here.
However, the optimisation originally only applied to GVs in the main
stash; it was later extended to all stashes but then reverted again,
in the sequence of commits
v5.27.4-66-g6881372
v5.27.4-127-g6eed25e
v5.27.5-321-gd964025
v5.27.8-149-g1e2cfe1
which caused xref.t to pass, then fail again.
commit 80f2c65b62382df4f7b8b237cc50d0d37aa72913
Author: David Mitchell <[email protected]>
Date: Tue Mar 13 12:20:03 2018 +0000
Deparse.pm: tr/...//c was failing
Deparsing a tr/....//c (complement and an empty replacement list)
was failing due to the 'delete RHS if LHS == RHS' action not triggering,
due the LHS having already been complemented.
At the same time, expand the set deparse tr/// tests;
commit adc82d40b33d1760ca4349e83d374aa5863ebb87
Author: David Mitchell <[email protected]>
Date: Mon Mar 12 12:20:23 2018 +0000
Deparse.pm: add some code comments
commit 20cc7374ed9054641265990b64ca67458c9d9cbd
Author: David Mitchell <[email protected]>
Date: Sun Mar 11 18:04:53 2018 +0000
Deparse: remove spurious tr/// debugging
I accidentally left a debugging print statement in after my recent tr///
work
commit 716a866437e18d39bc356f37cf2afe99c6fdd85d
Author: Karl Williamson <[email protected]>
Date: Mon Mar 19 20:52:25 2018 -0600
Fix locale failures introduced 5 hours ago
Commit 9fe4122e6defd7e9204ed6f2370d926d4c3b261b broke threaded builds
because it changed to free a global variable upon thread exit (I had
forgotten that it wasn't an interpreter variable).
I do not know why this passed before pushing; others have had trouble
reproducing it. But the same tests were failing for me now. The one
difference is that I had been using clang with address sanitizer
compiled in but turned off when I made that commit. Now I'm using g++
Spotted by Dave Mitchell
commit 082cc8a255d50009d86f02adf8c0c4ad2389d519
Author: Todd Rinaldo <[email protected]>
Date: Mon Mar 19 20:54:17 2018 -0500
First draft of perldelta for 5.27.10
commit 5369c2029a72a27a71848e6ebac7cb51523b1de4
Author: Todd Rinaldo <[email protected]>
Date: Mon Mar 19 20:49:35 2018 -0500
Spelling correction in perldiag.pod
commit 6a4da008939ef7cc51ac803cfcfa12e163564104
Author: Karl Williamson <[email protected]>
Date: Mon Mar 19 16:00:21 2018 -0600
perl.c: Free some locale stuff on exit
This stops potential memory leaks when using POSIX 2008 locale handling,
by freeing the current locale object and two special ones.
commit 54fcffd3e83c49cff515473b3921aab6a3650b62
Author: Karl Williamson <[email protected]>
Date: Mon Mar 19 15:53:04 2018 -0600
locale.c: Add detail to debugging statement
so that it is easier to debug memory leaks.
commit 90634b6bb02d044f874f6eb8b3c08b99d9ec4717
Author: Karl Williamson <[email protected]>
Date: Mon Mar 19 15:36:56 2018 -0600
locale.c: Fix memory leak
This was caused by doing some initialization work out-of-order. This
commit just moves some code to later in the function, revising some
comments to make sense after the move.
commit b218e90847a2f6ec4e54d0c031c9edfd0e4ceedb
Author: Todd Rinaldo <[email protected]>
Date: Mon Mar 19 16:33:52 2018 -0500
Update File::Glob to 1.31 to account for changes in 5.27.10
Includes:
- C89 changes from Aaron Crane
- Unit test timing fixes
- Don't use loop: as a label to avoid struct loop confusion
commit fc23309a583c2a0d1c8f1e32f734627a3b9d70a9
Author: Todd Rinaldo <[email protected]>
Date: Mon Mar 19 15:35:27 2018 -0500
Upgrade Test-Harness from version 3.39 to 3.41
[DELTA]
3.42 19-03-2018
- Enable rulesfile.t to run in core
... 6188 lines suppressed ...
--
Perl5 Master Repository