This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Karl Williamson [Mon, 9 Mar 2020 23:29:22 +0000 (17:29 -0600)]
cop.h: Add comment
Karl Williamson [Sat, 15 Feb 2020 21:28:32 +0000 (14:28 -0700)]
Implement \p{Name=/.../} wildcards
This commit adds wildcard subpatterns for the Name and Name Aliases
properties.
Karl Williamson [Mon, 9 Mar 2020 22:57:23 +0000 (16:57 -0600)]
charnames.pm: Make a variable ReadOnly
This is in preparation for exporting it in the next commit.
Karl Williamson [Mon, 24 Feb 2020 20:35:01 +0000 (13:35 -0700)]
mktables: Calculate legal chars in algorithmic names
Many ideographic character names are of the form 'prefix-code_point'.
For these, we know that the legal names are just the ones in the prefix,
the dash, and uppercase hex digits. This commit for each series of
these types of names figures out what characters are legal in that
series, and adds that info to the hash describing the series. This will
be used in a later commit to rule out entire series when matching
under some circumstances, without having to try any individual matches
within it.
Karl Williamson [Mon, 9 Mar 2020 22:26:52 +0000 (16:26 -0600)]
lib/_charnames.pm: Fix comment
Karl Williamson [Thu, 13 Feb 2020 16:04:41 +0000 (09:04 -0700)]
Reformat lib/unicore/Name.pl
This changes the format of this generated file so that it can more
easily be used with the Unicode Name property in wildcard matching.
Each line will now end with \n\n, and the \t characters are replaced by
\n. Thus an entry will look like
00001\nSTART OF HEADING\n\n
This makes matching of user-defined patterns using anchors work under
/m, which commit
4829f32decd128e6a122bd8ce35fe944bd87f104 forces. That
commit also changed some anchors' defintions to make them match \n under
/m with wildcards, so this makes it all transparent to user patterns.
The double \n\n at the end of an entry is so that the code can
distinguish between a line that contains a code point vs a name without
relying on the content; it is a disambiguator, like the \t that used to
be.
Karl Williamson [Thu, 5 Mar 2020 03:19:01 +0000 (20:19 -0700)]
ext/re/re.pm: Fix up setting debug option defaults
This was not setting the defaults properly for 'debug', and 'Debug'
Karl Williamson [Thu, 5 Mar 2020 02:58:33 +0000 (19:58 -0700)]
regcomp.h: Combine two macros into one
One of these macros is no longer used, so just combine them.
Richard Leach [Sun, 8 Mar 2020 13:09:30 +0000 (13:09 +0000)]
regexp.h: no subbeg move when reordering regexp struct
Richard Leach [Tue, 25 Feb 2020 00:15:32 +0000 (00:15 +0000)]
regexp.h -reorder regexp to close x86-64 alignment holes
David Cantrell [Fri, 6 Mar 2020 10:15:01 +0000 (10:15 +0000)]
add the missing =back
David Cantrell [Fri, 6 Mar 2020 00:21:47 +0000 (00:21 +0000)]
minor changes from review
David Cantrell [Thu, 5 Mar 2020 22:58:30 +0000 (22:58 +0000)]
documentation on how -I, -M, PERL5LIB and PERL5OPT interact
Hugo van der Sanden [Wed, 11 Mar 2020 14:29:40 +0000 (14:29 +0000)]
regexp.h: remove redundant comment
14 years of churn have so far removed this comment from its original
referents that it has no current relevance.
Karl Williamson [Wed, 11 Mar 2020 03:46:09 +0000 (21:46 -0600)]
Unicode 13.0 is now official
There were no changes in the files since blead was last updated with the
beta versions.
John Lightsey [Thu, 5 Mar 2020 15:52:14 +0000 (09:52 -0600)]
Improve handling missing data in t/porting/authors.t with github actions.
On cygwin smoke runs, the "merge-base" calculation results in an error, but
the test is functional if it traverses the full git history.
John Lightsey [Thu, 5 Mar 2020 04:25:48 +0000 (22:25 -0600)]
Add clang and 32bit gcc to linux smoke test matrix.
John Lightsey [Thu, 5 Mar 2020 03:50:49 +0000 (21:50 -0600)]
Add additional email addresses for John Lightsey
John Lightsey [Thu, 5 Mar 2020 03:29:55 +0000 (21:29 -0600)]
Fix cygwin smoker configuration.
Checkouts in the cygwin smoke action were performed without authentication.
This made the action fail in private repos.
This also fixes a mistake in the way shell commands were quoted.
James E Keenan [Wed, 11 Mar 2020 00:22:54 +0000 (20:22 -0400)]
Encode: synch with CPAN version 3.04
James E Keenan [Tue, 10 Mar 2020 02:24:37 +0000 (02:24 +0000)]
Time-Piece: synch with CPAN version 1.34
Karl Williamson [Mon, 9 Mar 2020 23:08:25 +0000 (17:08 -0600)]
regcomp.c: Fix comments
Spotted by Hugo van der Sanden
Karl Williamson [Mon, 9 Mar 2020 22:23:37 +0000 (16:23 -0600)]
perlunicode: Fix typo
Spotted by Hugo van der Sanden
Karl Williamson [Sun, 8 Mar 2020 18:29:01 +0000 (12:29 -0600)]
malloc.c: Fix compiler warnings/error
This needed a const to compile, and there were warnings as well.
Tomasz Konojacki [Mon, 2 Mar 2020 23:45:05 +0000 (00:45 +0100)]
optimize sort by inlining comparison functions
This makes special-cased forms such as sort { $b <=> $a }
even faster.
Also, since this commit removes PL_sort_RealCmp, it fixes the
issue with nested sort calls mentioned in gh #16129
Tomasz Konojacki [Mon, 2 Mar 2020 23:45:04 +0000 (00:45 +0100)]
pp_sort.c: small refactoring
This will make the future changes a bit easier.
Tomasz Konojacki [Mon, 2 Mar 2020 23:45:03 +0000 (00:45 +0100)]
pp_sort.c: call Perl_sortsv_flags directly
That pointer isn't needed.
Tomasz Konojacki [Mon, 2 Mar 2020 23:45:02 +0000 (00:45 +0100)]
pp_sort.c: normalize indentation
According to perlhack, code should be indented with four spaces.
This commit doesn't contain any functional changes. If you're
seeing it in "git blame" output, try using -w switch, it will
hide whitespace-only changes.
Tomasz Konojacki [Wed, 4 Mar 2020 22:34:38 +0000 (23:34 +0100)]
new function specifier: PERL_STATIC_FORCE_INLINE
It's the same thing as PERL_STATIC_INLINE but it also adds
__attribute__(always_inline) or __forceinline if the compiler
supports that.
Tomasz Konojacki [Wed, 4 Mar 2020 22:17:31 +0000 (23:17 +0100)]
regen/embed.pl: handle PERL_STATIC_INLINE_NO_RET properly
Tomasz Konojacki [Wed, 4 Mar 2020 22:13:16 +0000 (23:13 +0100)]
regen/embed.pl: fix error message
Karl Williamson [Sat, 7 Mar 2020 14:33:32 +0000 (07:33 -0700)]
symbian/symbianish.h: Fix broken macro name
The name was misspelled, and could never have compiled.
This indicates that no one on a Symbian system has tried perls since
2016.
Craig A. Berry [Fri, 6 Mar 2020 13:27:23 +0000 (07:27 -0600)]
fix typo in perlivp
Karl Williamson [Mon, 24 Feb 2020 19:16:46 +0000 (12:16 -0700)]
Allow wildcard pattern debugging
This fixes #17026
Patterns can have subpatterns since 5.30. These are processed when
encountered, by suspending the main pattern compilation, compiling the
subpattern, and then matching that against the set of all legal
possibilities, which Perl knows about.
Debugging info for the compilation portion of the subpattern was added
by
be8790133a0ce8fc67454e55e7849a47a0858d32, without fanfare. But,
prior to this new commit, debugging info was not available for that
matching portion of the compilation, except under DEBUGGING builds, with
-Drv. This commit adds a new option to 'use re qw(Debug ...)',
WILDCARD, to enable subpattern match debugging. Whatever other match
debugging options have been turned on will show up when a wildcard
subpattern is compiled iff WILDCARD is specified.
The output of this may be voluminous, which is why you have to ask for
it specifically. Or, the EXTRA option turns it on, along with several
other things.
Karl Williamson [Wed, 4 Mar 2020 23:01:24 +0000 (16:01 -0700)]
regcomp.c: Rmv use of extraneous macro
I added this becuase the name of another macro confused me into thinking
this was necessary, whereas that other macro was all that was needed.
This is the only use of the extraneous macro.
Karl Williamson [Wed, 4 Mar 2020 22:59:29 +0000 (15:59 -0700)]
regex: Change internal macro name
It wasn't clear to me that the macro did more than a declaration, given
its name. Rename it to be clear as to what it does.
Stefan Seifert [Thu, 5 Mar 2020 10:57:28 +0000 (11:57 +0100)]
Fix variable name in wrap_keyword_plugin documentation
Hugo van der Sanden [Thu, 5 Mar 2020 12:23:19 +0000 (12:23 +0000)]
regcomp.h: remove redundant comment
This 1989 comment stopped being true in 1997 with commit
c277df4222.
Tony Cook [Wed, 4 Mar 2020 04:52:41 +0000 (15:52 +1100)]
bump $XS::APItest::VERSION
Tony Cook [Wed, 22 Jan 2020 04:40:05 +0000 (15:40 +1100)]
add casts to IV_MAX, UV_MAX so they match the IVdf, UVdf macros
fixes #17338
Tony Cook [Wed, 22 Jan 2020 04:38:15 +0000 (15:38 +1100)]
APItest: get a compile-time warning if IVdf doesn't match IV_MAX
and similarly for UVuf/UV_MAX.
This already warns in PPPort, but that's for testing PPPort, not
the core.
Karl Williamson [Mon, 2 Mar 2020 17:15:25 +0000 (10:15 -0700)]
regcomp.c: Get rid of meaningless test
Since ea3daa5, parts of this test became nonsensical as max_offset
cannot be larger than OPTIMIZE_INFIINITY. (I don't know why compilers
didn't say that this branch is always false.)
Hugo van der Sanden suggested something like this commit to keep the
still valid part of the test.
Karl Williamson [Mon, 24 Feb 2020 19:13:16 +0000 (12:13 -0700)]
Allow more debugging in re_comp.c
This adds two main functions that were previously only defined in
regcomp.c to also be defined in re_comp.c. This allows re.pm to use
debugging with them. To avoid duplicating large data structures,
several lightweight wrapper functions are added to regcomp.c that
re_comp.c calls to access those structures.
Karl Williamson [Mon, 24 Feb 2020 18:20:13 +0000 (11:20 -0700)]
char_class_invlists.h: Give re_comp.c access to enums,#defines
The previous commit changed the code so that enums and #defines could be
requested to be in re_comp.c. This commit changes to use that new
capability.
Karl Williamson [Mon, 24 Feb 2020 16:31:02 +0000 (09:31 -0700)]
regen/mk_invlists.pl: Allow enums/defines to be in re_comp.c
Tables, to save memory, that are for regcomp.c are excluded from
re_comp.c, but enums use no resources, and a later commit will want them
accessible from re_comp.c. So change the code so that they can be
requested to be in re_comp.c
Karl Williamson [Mon, 24 Feb 2020 04:00:14 +0000 (21:00 -0700)]
Move two regex functions so that can use re debug
These have to have a version in re_comp.c for re.pm to work on them.
Karl Williamson [Mon, 24 Feb 2020 03:46:35 +0000 (20:46 -0700)]
embed.fnc: Reorder the entries dealing with regexes
This moves a bunch of entries around so that they make more sense, and
consolidates some blocks that had the same #ifdefs. There should be no
change in what gets compiled.
Karl Williamson [Mon, 24 Feb 2020 02:32:03 +0000 (19:32 -0700)]
regen/mk_invlists.pl: Move #define in output
This value will be needed outside of where it currently is defined; this
commit makes it available elsewhere
Karl Williamson [Mon, 24 Feb 2020 02:29:02 +0000 (19:29 -0700)]
regcomp.c: Add comments
I finally took the time to figure out about re.pm and debugging, and how
the functions in regcomp.c should be structured to work. And now I
commented it.
Karl Williamson [Mon, 2 Mar 2020 01:21:19 +0000 (18:21 -0700)]
makedef.pl: Add comment
Tony Cook [Tue, 25 Feb 2020 22:51:25 +0000 (09:51 +1100)]
make freed op re-use closer to O(1)
previously freed ops were stored as one singly linked list, and
a failed search for a free op to re-use could potentially search
that entire list, making freed op lookups O(number of freed ops),
or given that the number of freed ops is roughly proportional to
program size, making the total cost of freed op handling roughly
O((program size)**2). This was bad.
This change makes opslab_freed into an array of linked list heads,
one per op size. Since in a practical sense the number of op sizes
should remain small, and insertion is amortized O(1), this makes
freed op management now roughly O(program size).
fixes #17555
Karl Williamson [Fri, 30 Aug 2019 16:28:47 +0000 (10:28 -0600)]
Replace value with a macro: OPTIMIZE_INFTY
This is more mnemonic, and allows us to change things if needed.
James E Keenan [Sun, 1 Mar 2020 22:52:49 +0000 (17:52 -0500)]
csh shell needed to build with PERL_EXTERNAL_GLOB defined
For: https://github.com/Perl/perl5/issues/16733
Richard Leach [Mon, 24 Feb 2020 23:31:16 +0000 (23:31 +0000)]
parser.h -reorder yy_parser to close x86-64 alignment holes
Richard Leach [Tue, 25 Feb 2020 00:04:53 +0000 (00:04 +0000)]
regcomp.h -reorder regexp_internal to close x86-64 alignment holes
James E Keenan [Sun, 1 Mar 2020 23:32:27 +0000 (18:32 -0500)]
Bisection example using '--target=test_prep' and '-e'
Add an example where we're bisecting to identify source of a problem in
a test file found in a CPAN distribution which ships with core.
Reworked code example per feedback from Hugo. Also reworked description
of problem.
Tomasz Konojacki [Mon, 2 Mar 2020 01:36:16 +0000 (02:36 +0100)]
decrease github actions timeout to 120 minutes
That will make hung actions fail faster. The default 360 minutes
timeout was way too generous, typically none of our actions needs
more than 1 hour to complete.
Tomasz Konojacki [Mon, 2 Mar 2020 06:04:10 +0000 (06:04 +0000)]
pp_sort.c: remove the remains of quicksort
e2091bb6ea87111c32936c9170405a44995be338 removed most of it but
some dead code remained.
James E Keenan [Sun, 1 Mar 2020 21:56:57 +0000 (16:56 -0500)]
undef Tie::File objects before untie-ing arrays
This test file was added before we converted all .pm and .t files under
dist/Tie-File to 'use strict' and 'use warnings'. So at that point the
test ran without warnings. Once we subsequently began to run with
warnings, we failed to note two instances of "untie attempted while 1
inner references still exist" warnings. So we should undef the
Tie::File objects before calling 'untie' on the arrays holding records
of tied files.
(Indeed, undef-ing the Tie::File objects may in itself be sufficient to
avert these warnings. However, the pre-existing SYNOPSIS shows use of
'untie', so we'll include it in this file, whose point is to test what
is asserted in that document.)
Hauke D [Tue, 11 Feb 2020 09:11:01 +0000 (10:11 +0100)]
Add to perl5313delta for
d1bc97feec1a description
Documents one of the additional side effects of the change to the range operator with magic string increment that was introduced in
d1bc97feec1ac3a922c2.
Paul "LeoNerd" Evans [Sun, 27 Oct 2019 17:50:39 +0000 (17:50 +0000)]
Inline the SvGETMAGIC call directly rather than via the macro
Paul "LeoNerd" Evans [Sun, 27 Oct 2019 17:47:17 +0000 (17:47 +0000)]
SvTRUE might need to take aTHX
Paul "LeoNerd" Evans [Sun, 27 Oct 2019 16:25:13 +0000 (16:25 +0000)]
Initial experiment at moving SvTRUE into a static inline macro
Karl Williamson [Sun, 1 Mar 2020 16:18:11 +0000 (09:18 -0700)]
regcomp.c: Silence some compiler warnings
Precision specifiers should be int, and commit
29f5f37e4b04514c3cc2ee0be3463b4868b88e74 introduced some valid warnings
that this commit also corrects.
Karl Williamson [Sun, 1 Mar 2020 17:46:48 +0000 (10:46 -0700)]
perlfunc: Note that z modifier works on signed
That is, variables declared as any of, STRLEN, SSize_t, and Size_t
should be output with this format size modifier.
Karl Williamson [Thu, 27 Feb 2020 15:58:11 +0000 (08:58 -0700)]
regcomp.c: Fix wrong type for format
The previous commit showed this bug exists where a format wasn't matched
by the type of its argument
Karl Williamson [Thu, 27 Feb 2020 15:19:32 +0000 (08:19 -0700)]
regen/embed.pl: Force F or f flags on ... fcns
This makes sure that a function with varargs arguments is marked as
format or non-format, so that a such a new function can't be added
without considering if it should be marked as 'f'.
Karl Williamson [Thu, 27 Feb 2020 15:13:51 +0000 (08:13 -0700)]
embed.fnc: Fix comments
Karl Williamson [Thu, 27 Feb 2020 14:56:17 +0000 (07:56 -0700)]
embed.fnc: Make re_croak a format fcn
This enables compiler warnings when argument types don't match the
format
Karl Williamson [Thu, 27 Feb 2020 14:48:07 +0000 (07:48 -0700)]
regcomp.c: Change re_croak2 to re_croak
This changes this function from taking two format parameters to instead
taking a single one. The reason is that the generality isn't actually
currently needed, and it prevents the function from being declared as
taking a format, which adds extra checking. If this checking had been
in effect, GH #17574 would have generated a warning message.
The reason the second format isn't required is that in all cases, both
formats are literal strings. In the macros that call this, simply
removing the comma separators between them causes the two literals to
automagically become one by the C preprocessor.
Steve Hay [Sat, 29 Feb 2020 19:37:49 +0000 (19:37 +0000)]
Add epigraph for 5.30.2-RC1
Richard Leach [Mon, 24 Feb 2020 23:51:08 +0000 (23:51 +0000)]
regcomp.c -reorder RExC_state_t to close x86-64 alignment holes
Karl Williamson [Sat, 29 Feb 2020 16:02:15 +0000 (09:02 -0700)]
regcomp.c: Remove never used struct element
Noted in
https://github.com/Perl/perl5/pull/17580#issuecomment-
592957998
this #define has never been set, and the element hence has never been
used.
Steve Hay [Sat, 29 Feb 2020 12:20:58 +0000 (12:20 +0000)]
5.30.2-RC1 today
Dan Book [Fri, 28 Feb 2020 23:48:46 +0000 (18:48 -0500)]
Mention perlbug emails in issue template
Richard Leach [Wed, 26 Feb 2020 00:10:16 +0000 (00:10 +0000)]
perlguts.pod: fix typo when describing scope stack
Karl Williamson [Mon, 24 Feb 2020 20:52:20 +0000 (13:52 -0700)]
perl.h: Add comment, reorder conditional branches
This clarifies things a bit
Karl Williamson [Mon, 24 Feb 2020 20:50:12 +0000 (13:50 -0700)]
re_intuit_string: fix to work with empty pattern
This would fail should it ever be called with a pattern that only
matched nothing.
Karl Williamson [Thu, 20 Feb 2020 22:39:52 +0000 (15:39 -0700)]
regcomp.c: Add some comments
Karl Williamson [Thu, 27 Feb 2020 16:03:45 +0000 (09:03 -0700)]
Revert "Test 32bit Perl build on Travis"
This reverts commit
83067d4902203c0bd0a6e901cd25f3b871668331.
Tony Cook [Wed, 26 Feb 2020 23:40:46 +0000 (10:40 +1100)]
bump $Storable::VERSION and update ChangeLog
Tony Cook [Wed, 26 Feb 2020 23:40:26 +0000 (10:40 +1100)]
Storable: fix a format string vs argument error
Karl Williamson [Wed, 26 Feb 2020 17:48:03 +0000 (10:48 -0700)]
PATCH: #17574 reg_mesg.t failures on 32-bit builds
This turned out to be because I was printing a UV with %c.
Karl Williamson [Wed, 26 Feb 2020 16:01:20 +0000 (09:01 -0700)]
regcomp.h: Use pre-existing macro to hide variable
Instead of repeating this variable name all over the place, use the
macro that had been created to refer to it.
Karl Williamson [Tue, 25 Feb 2020 04:11:56 +0000 (21:11 -0700)]
regexec.c: Fix Debug statement
A proper debugging statement isn't just controlled by DEBUG_r, it needs
what sort of class of debugging controls this, so that re.pm can operate
properly.
This is the second of two cases in the code where it was wrong.
Karl Williamson [Tue, 25 Feb 2020 04:09:29 +0000 (21:09 -0700)]
regexec.c: Fix Debug statement
A proper debugging statement isn't just controlled by DEBUG_r, it needs
what sort of class of debugging controls this, so that re.pm can operate
properly.
This is one of two cases in the code where it was wrong.
Pali [Thu, 5 Dec 2019 11:58:12 +0000 (12:58 +0100)]
Test 32bit Perl build on Travis
Daniel Dragan [Mon, 17 Feb 2020 01:57:46 +0000 (20:57 -0500)]
fix VC perlglob.exe segv with wrong default libc
commit "win32: separate $Config{ccflags} and $Config{optimize}"
4be1bfd74 removed -Md and -MDd from $(OPTIMIZE), so perlglob.exe whose
build recipe is special in that it is compiled and linked in 1 step lost
the -Md flag, this causes "stdout" global var that is linked in from MSVC
libc to resolve to a broken symbol and segv since the FILE * is a pointer
to machine code instead to a FILE struct in the CRT DLL. This is with MSVC
2003 32b CC.
Disassembly shows that after that commit perlglob.exe is
push 8000h
mov edi, offset __imp____getmainargs
push edi ; File
call _fileno_0
which is a pointer to machine code instead of
mov eax, ds:__imp___iob
add eax, 20h
push 8000h ; int
push eax ; File
call ds:__imp___fileno
where _iob is a pointer to start of static global array of FH structs in
MS CRT.
-Md controls ".drectve" section in .obj file that contains
"/DEFAULTLIB:"MSVCRT"" (proper) or "/DEFAULTLIB:"LIBC"" (SEGV)
crash stack
ntdll.dll!_RtlpWaitForCriticalSection@4
ntdll.dll!_RtlEnterCriticalSection@4
msvcr71.dll!_lock_file
msvcr71.dll!fwrite
perlglob.exe!main
perlglob.exe!mainCRTStartup
kernel32.dll!_BaseProcessStart@4
The CS struct is gibberish because the FILE * is gibberish.
Karen Etheridge [Sat, 22 Feb 2020 21:25:17 +0000 (13:25 -0800)]
correct starting version for isa feature
This was added in commit
813e85a03d, which first appeared in the 5.31.7 release.
Karen Etheridge [Sat, 22 Feb 2020 20:26:44 +0000 (12:26 -0800)]
punctuation
Karen Etheridge [Sat, 22 Feb 2020 20:24:28 +0000 (12:24 -0800)]
linkify GH links in last delta
Karen Etheridge [Sat, 22 Feb 2020 20:23:06 +0000 (12:23 -0800)]
minor grammar fixes
H.Merijn Brand [Sat, 22 Feb 2020 11:26:21 +0000 (12:26 +0100)]
Increase required macro-space for HP-UX C-ANSI-C
125000 was too small!
H.Merijn Brand [Sat, 22 Feb 2020 10:57:43 +0000 (11:57 +0100)]
HP-UX 11.11 and below do not have wcrtomb
At least not with HP C-ANSI-C, but as mbrlen and mbrtowc are already
disabled, it is in kine with expectation.
This makes perl compilable again on 11.11 with HP C-ANSI-C
Chris 'BinGOs' Williams [Fri, 21 Feb 2020 15:25:01 +0000 (15:25 +0000)]
Shim update of Module::CoreList for v5.31.10
Chris 'BinGOs' Williams [Fri, 21 Feb 2020 09:19:14 +0000 (09:19 +0000)]
Coal fire crackdown
reneeb [Fri, 21 Feb 2020 01:03:02 +0000 (02:03 +0100)]
Bump the perl version in various places for 5.31.10
reneeb [Fri, 21 Feb 2020 00:11:01 +0000 (01:11 +0100)]
generated new perldelta after 5.31.9 release
reneeb [Fri, 21 Feb 2020 00:04:41 +0000 (01:04 +0100)]
tick release 5.31.9 in release schedule
reneeb [Thu, 20 Feb 2020 23:54:44 +0000 (00:54 +0100)]
add epigraph of 5.31.9