This is a live mirror of the Perl 5 development currently hosted at
13 months agoTick 5.31.11 in another place and correct its release date
Steve Hay [Thu, 14 May 2020 11:13:55 +0000 (12:13 +0100)]
Tick 5.31.11 in another place and correct its release date

13 months agotypo "set_locale" should be "setlocale"
Paul Marquess [Tue, 12 May 2020 07:57:41 +0000 (08:57 +0100)]
typo "set_locale" should be "setlocale"

(Committer changed author address to the already-known @cpan one, so
this would pass porting tests.)

13 months agoFixed typemap in perlxs.
Håkon Hægland [Thu, 7 May 2020 18:57:31 +0000 (20:57 +0200)]
Fixed typemap in perlxs.

Fixed quoting and string concatenation mistakes in C++ typemap in perlxs.

Committer: Håkon Hægland is now a Perl author.

13 months agoStore github token after workflow v1 checkout.
John Lightsey [Tue, 14 Apr 2020 23:50:55 +0000 (18:50 -0500)]
Store github token after workflow v1 checkout.

The i386 smoke runs uses the v1 checkout action to function on
an i386 base OS. The v1 checkout action did not persist credentials,
making the subsequent git commands fail on private repos.

13 months agoperlguts.pod - add C<> around a mention of dTHX;
Richard Leach [Sun, 3 May 2020 22:30:29 +0000 (23:30 +0100)]
perlguts.pod - add C<> around a mention of dTHX;

13 months agoSync Encode version 3.06 into blead
Dan Kogai [Sun, 3 May 2020 00:11:05 +0000 (20:11 -0400)]
Sync Encode version 3.06 into blead

Pumpking okayed merge during code freeze.  This addresses:

13 months agohandle_names_wildcard: better avoid compiler warning
Dagfinn Ilmari Mannsåker [Thu, 30 Apr 2020 16:56:31 +0000 (17:56 +0100)]
handle_names_wildcard: better avoid compiler warning

instead of casting away the const from a string literal,
declare the variable as a pointer to const char

13 months agohandle_names_wildcard: avoid compiler warning
Hugo van der Sanden [Thu, 30 Apr 2020 13:20:39 +0000 (14:20 +0100)]
handle_names_wildcard: avoid compiler warning

13 months agoFix panic in Unicode wildcard matching
Karl Williamson [Sun, 26 Apr 2020 14:27:25 +0000 (08:27 -0600)]
Fix panic in Unicode wildcard matching

The reason this bug occurs is that wildcard matching changes the anchor
assertions \A, \Z, and \z, without corresponding changes in regexec.c.

We earlier noticed that all these were being marked SIMPLE, and a
zero-width construct shouldn't really be.  But it was considered too
late in the development cycle to make that change.  So the plan was to
live with this bug in an experimental feature in 5.32.

But I eventually realized that the change could be effected for just the
wildcard versions, and this commit does that.  If there is some issue
with making these non-SIMPLE, it will affect only the wildcard feature,
and those potential bugs are better than a known bug.  I also seems
unlikely that this will introduce any bug.  What removing SIMPLE does is
merely remove potential optimizations in the handling.  The most general
case should work.\7f; it's doing an improper optimization that gets one
into trouble.

This fixes #17677

13 months agoregcomp.c: Add assert
Karl Williamson [Tue, 28 Apr 2020 16:27:01 +0000 (10:27 -0600)]
regcomp.c: Add assert

The code's proper functioning currently depends on bracketed character
classes not returning a sequence of characters to the regex sets feature

Add an assert to validate that.

13 months agoregcomp.c: Fix named sequences in (?[...])
Karl Williamson [Wed, 22 Apr 2020 21:37:23 +0000 (15:37 -0600)]
regcomp.c: Fix named sequences in (?[...])

The regex_sets feature cannot yet handle named sequences possibly
returned by \p{name=...}.  I forgot to check for this possibility which
led to a null pointer dereference.  Also, the called function was
returning success when it should have failed in this circumstance.

This fixes #17732

13 months agoregcomp.c: Avoid use after free
Karl Williamson [Tue, 21 Apr 2020 23:30:42 +0000 (17:30 -0600)]
regcomp.c: Avoid use after free

It turns out that the SV returned by re_intuit_string() may be freed by
future calls to re_intuit_start().  Thus, the caller doesn't get clear
title to the returned SV.  (This wasn't documented until the
commit immediately prior to this one.)

Cope with this situation by making a mortalized copy.  This commit also
changes to use the copy's PV directly, simplifying some 'if' statements.

re_intuit_string() is effectively in the API, as it is an element in the
regex engine structure, callable by anyone.  It should not be returning
a tenuous SV.  That returned scalar should not freed before the pattern
it is for is freed.  It is too late in the development cycle to change
this, so this workaround is presented instead for 5.32.

This fixes #17734.

13 months agoregcomp.c: Add comments
Karl Williamson [Wed, 29 Apr 2020 16:47:44 +0000 (10:47 -0600)]
regcomp.c: Add comments

13 months agoWhat can we make with pasta and toilet roll?
Chris 'BinGOs' Williams [Wed, 29 Apr 2020 18:29:00 +0000 (19:29 +0100)]
What can we make with pasta and toilet roll?

13 months agoUpdate repository and bugtracker meta for Module-CoreList
Chris 'BinGOs' Williams [Wed, 29 Apr 2020 18:26:38 +0000 (19:26 +0100)]
Update repository and bugtracker meta for Module-CoreList

13 months agoLink to the definition of true and false from perlsyn
E. Choroba [Tue, 28 Apr 2020 23:43:40 +0000 (01:43 +0200)]
Link to the definition of true and false from perlsyn

There used to be a section on Truth and Falsehood there, as the
following paragraphs talk about conditions and booleans a lot. It was
moved to perldata in 77fae4394e3ad9f159a74a6731a8d347cd2466c7, but
without a trace. Let's have a link to the new destination in the old one.

13 months agoperldiag: Alphabetize two entries
Karl Williamson [Tue, 28 Apr 2020 23:28:18 +0000 (17:28 -0600)]
perldiag: Alphabetize two entries

The order of these  was swapped

13 months agoperldiag: Update text about '{' warnings/death
Karl Williamson [Tue, 28 Apr 2020 23:22:24 +0000 (17:22 -0600)]
perldiag: Update text about '{' warnings/death

13 months agoperldeprecation: Update for 5.32 changed behavior
Karl Williamson [Tue, 28 Apr 2020 23:20:16 +0000 (17:20 -0600)]
perldeprecation: Update for 5.32 changed behavior

13 months agoBump Module::CoreList for 5.31.12
Sawyer X [Tue, 28 Apr 2020 21:45:36 +0000 (00:45 +0300)]
Bump Module::CoreList for 5.31.12

13 months agoBump the perl version in various places for 5.31.12
Sawyer X [Tue, 28 Apr 2020 21:41:05 +0000 (00:41 +0300)]
Bump the perl version in various places for 5.31.12

13 months agonew perldelta for 5.31.11
Sawyer X [Tue, 28 Apr 2020 21:06:16 +0000 (00:06 +0300)]
new perldelta for 5.31.11

13 months agotick release
Sawyer X [Tue, 28 Apr 2020 21:01:13 +0000 (00:01 +0300)]
tick release

13 months agoAdd new release to perlhist v5.31.11
Sawyer X [Tue, 28 Apr 2020 18:02:50 +0000 (21:02 +0300)]
Add new release to perlhist

13 months agoUpdate perldelta
Sawyer X [Tue, 28 Apr 2020 18:02:10 +0000 (21:02 +0300)]
Update perldelta

13 months agoUpdate Module::CoreList for 5.31.11
Sawyer X [Tue, 28 Apr 2020 14:59:46 +0000 (17:59 +0300)]
Update Module::CoreList for 5.31.11

13 months agoClarifying the note about "list form" and Windows.
Jason McIntosh [Sat, 18 Apr 2020 02:34:45 +0000 (22:34 -0400)]
Clarifying  the note about "list form" and Windows.

13 months agoFurther PR fixes and whitespace/fill tweaks
Jason McIntosh [Fri, 17 Apr 2020 15:34:46 +0000 (11:34 -0400)]
Further PR fixes and whitespace/fill tweaks

13 months agoMore fixes from PR review.
Jason McIntosh [Fri, 17 Apr 2020 15:13:14 +0000 (11:13 -0400)]
More fixes from PR review.

13 months agoClarifying that it's OK to work with bareword filehandle names if they're built-ins...
Jason McIntosh [Wed, 15 Apr 2020 02:32:36 +0000 (22:32 -0400)]
Clarifying that it's OK to work with bareword filehandle names if they're built-ins filehandles.

13 months agoTypo and whitespaces fixes and such
Jason McIntosh [Wed, 15 Apr 2020 02:31:44 +0000 (22:31 -0400)]
Typo and whitespaces fixes and such

13 months agoClarifying that the PerlIO technical node applies only to older Perl.
Jason McIntosh [Wed, 15 Apr 2020 02:05:33 +0000 (22:05 -0400)]
Clarifying that the PerlIO technical node applies only to older Perl.

13 months agoUpdating the cross-references to perlfunc/open so that it aims at the new first heading.
Jason McIntosh [Wed, 15 Apr 2020 01:28:06 +0000 (21:28 -0400)]
Updating the cross-references to perlfunc/open so that it aims at the new first heading.

13 months agoMaking several revisions to the `open` section of perlfunc.pod, primarily (but not...
Jason McIntosh [Tue, 14 Apr 2020 17:09:59 +0000 (13:09 -0400)]
Making several revisions to the `open` section of perlfunc.pod, primarily (but not limited to) splitting it into several nested sub-sections, with headers.

13 months agoSync Test-Simple with CPAN version 1.302175
Chad Granum [Tue, 28 Apr 2020 16:59:23 +0000 (12:59 -0400)]
Sync Test-Simple with CPAN version 1.302175

Okayed as code freeze exception per discussion with pumpking.

13 months ago[MERGE] Revert BEGIN { caller() } fixups
David Mitchell [Mon, 27 Apr 2020 21:04:23 +0000 (22:04 +0100)]
[MERGE] Revert BEGIN { caller() } fixups

These commits were intended to fix a problem with stack backtraces
reporting wrong file and line numbers in nested use's.

A side-effect of the commits was to fix the package name returned by
caller() too; but quite a few distributions were relying on the old

So for now, revert to the old behaviour and re-address after 5.32.0 is

The reverted commits are:

v5.31.6-141-gf2f32cd638 avoid identical stack traces
v5.31.9-122-gee428a211d docs: clarify effect of $^H, %^H, ${^WARNING_BITS}
v5.31.9-162-gad89278aa2 fixup to "avoid identical stack traces" - try 2

13 months agoRevert "avoid identical stack traces"
David Mitchell [Mon, 27 Apr 2020 20:54:16 +0000 (21:54 +0100)]
Revert "avoid identical stack traces"

This reverts commit f2f32cd638746f538da6db804dab6dd54e654f30.

13 months agoRevert "docs: clarify effect of $^H, %^H, ${^WARNING_BITS}"
David Mitchell [Mon, 27 Apr 2020 20:54:05 +0000 (21:54 +0100)]
Revert "docs: clarify effect of $^H, %^H, ${^WARNING_BITS}"

This reverts commit ee428a211d040dc56d9efc4a89c96886a398fc1c.

13 months agoRevert "fixup to "avoid identical stack traces" - try 2"
David Mitchell [Mon, 27 Apr 2020 20:53:43 +0000 (21:53 +0100)]
Revert "fixup to "avoid identical stack traces" - try 2"

This reverts commit ad89278aa25475fb03971aec66692e18e35d9c07.

13 months agoTwo fatalizations completed on schedule
James E Keenan [Mon, 27 Apr 2020 14:21:01 +0000 (10:21 -0400)]
Two fatalizations completed on schedule

13 months agoNo deprecations in 5.34
James E Keenan [Mon, 27 Apr 2020 14:18:44 +0000 (10:18 -0400)]
No deprecations in 5.34

13 months agoAdd github issue template config, removing blank issue option and adding CPAN module...
Dan Book [Sun, 26 Apr 2020 00:10:23 +0000 (20:10 -0400)]
Add github issue template config, removing blank issue option and adding CPAN module link

13 months agoUse dNOOP for otherwise empty declarations
Karl Williamson [Sun, 26 Apr 2020 00:09:15 +0000 (18:09 -0600)]
Use dNOOP for otherwise empty declarations

Otherwise, the semi-colon the code has afterwards can be interpreted by
some compilers as ending the block of declarations, and treat any later
declarations in the same block as erors in C89.

For an example, see the ticket this fixes #17725

13 months agostudy_chunk: temporary underflow guard for scan_commit 17744/head
Hugo van der Sanden [Thu, 23 Apr 2020 13:33:55 +0000 (14:33 +0100)]
study_chunk: temporary underflow guard for scan_commit

Numeric underflow on max_offset was being silently converted to
OPTIMIZE_INFTY by a misleading test. That test was removed in f6231ebfc0,
exposing multiple issues.

This restores the test in a more direct form for 5.32; it should
be removed after 5.32 is released so we can continue the search for
the underlying issues.

13 months agoregcomp: avoid overflow setting last_start_max
Hugo van der Sanden [Wed, 22 Apr 2020 12:24:02 +0000 (13:24 +0100)]
regcomp: avoid overflow setting last_start_max

The dubious '((*ACCEPT)0)*' construct resulted on the one hand with
is_inf being false, but on the other setting pos_delta to OPTIMIZE_INFTY.

13 months agogh16947: avoid mutating regexp program only within GOSUB
Hugo van der Sanden [Sat, 18 Apr 2020 13:43:02 +0000 (14:43 +0100)]
gh16947: avoid mutating regexp program only within GOSUB

Commits 3bc2a7809d and bdb91f3f96 used the existence of a frame to
decide when it was unsafe to mutate the regexp program, due to having
recursed for as GOSUB. However the frame recursion mechanism is also
used for SUSPEND.

Refine it further to avoid mutation only when within a GOSUB by saving
a new boolean in the frame structure, and using that to derive a "mutate_ok"

14 months agoAdding a missing word and removing two supernumerary ones.
Jason McIntosh [Wed, 22 Apr 2020 18:00:38 +0000 (14:00 -0400)]
Adding a missing word and removing two supernumerary ones.

14 months agoperlopentut: Add mainainers statement
Karl Williamson [Tue, 21 Apr 2020 00:22:33 +0000 (18:22 -0600)]
perlopentut: Add mainainers statement

14 months agoExpand opentut
Jason McIntosh [Fri, 17 Apr 2020 16:01:35 +0000 (12:01 -0400)]
Expand opentut

This is part of a TPF grant:

14 months agoAdd Jason Mcintosh to AUTHORS
Karl Williamson [Tue, 21 Apr 2020 00:20:35 +0000 (18:20 -0600)]
Add Jason Mcintosh to AUTHORS

14 months agoBump version for for documentation change
Leon Timmermans [Sat, 18 Apr 2020 23:37:24 +0000 (01:37 +0200)]
Bump version for for documentation change

14 months agoRework documentation
Dan Book [Sun, 29 Mar 2020 21:45:13 +0000 (17:45 -0400)]
Rework documentation

- Modernize details of PerlIO usage and link to PerlIO
- Better describe actual argument handling of pragma, in particular subpragmas
- Remove obsolete section on unsupported non-PerlIO configuration
- Modernize examples and provide more varied examples

14 months agoperlvar - expand and link to ${^OPEN} documentation
Dan Book [Mon, 23 Mar 2020 22:30:41 +0000 (18:30 -0400)]
perlvar - expand and link to ${^OPEN} documentation

14 months agostudy_chunk: avoid transforming ops while enframed
Hugo van der Sanden [Sun, 12 Apr 2020 14:11:22 +0000 (15:11 +0100)]
study_chunk: avoid transforming ops while enframed

gh16947: the outer frame may be in the middle of looking at the part
of the program we would rewrite. Let the outer frame deal with it.

14 months agoRemove spurious double spaces before open braces in core C code
Dagfinn Ilmari Mannsåker [Mon, 13 Apr 2020 20:32:41 +0000 (21:32 +0100)]
Remove spurious double spaces before open braces in core C code

14 months agoop:h remove double space in struct op_argcheck_aux declaration
Dagfinn Ilmari Mannsåker [Mon, 13 Apr 2020 19:49:38 +0000 (20:49 +0100)]
op:h remove double space in struct op_argcheck_aux declaration

14 months agoregcomp.c: Rmv C undefined behavior
Karl Williamson [Fri, 10 Apr 2020 04:44:03 +0000 (22:44 -0600)]
regcomp.c: Rmv C undefined behavior

One analyzer said that what this commit changes was C undefined
behavior, in casting void* pointers.  Right now, the only actual type it
is called with is SV*, but I made it void*, because I thought it might
be used more generally.  But, it turns out that Unicode is planning on
changing its regular expression processing requirements to where what I
have no longer will make sense.  And, since only SV* is actually used,
this commit changes the void* to SV*, removing any undefined behavior,
with no changes to program logic.

The changes for the new Unicode direction will come in probably 5.34;
their document is still in draft, but I anticipate it will soon be

14 months agostudy_chunk: do not rewrite for trie while enframed
Hugo van der Sanden [Sat, 11 Apr 2020 13:10:24 +0000 (14:10 +0100)]
study_chunk: do not rewrite for trie while enframed

gh16947: the outer frame may be in the middle of looking at the part
of the program we would rewrite. Let the outer frame deal with it.

14 months agoFix edge case test failure in ext/POSIX/t/mb.t
Dominic Hargreaves [Fri, 7 Jun 2019 09:04:26 +0000 (10:04 +0100)]
Fix edge case test failure in ext/POSIX/t/mb.t

This new test fails in an environment where LANG is set to one thing and
LC_ALL is set to another, and where LANG is set to a locale which is
not installed in the environment in question.

Such a test environment is arguably broken, but appears in common
chroot setups such as Debian's sbuild tool where LANG is inherited from
the parent environment, and LC_ALL is used to override it.

(Committer rebased the patch)

This fixes GH #17039

14 months agoperldata - More specific about assignment restriction of key/value slices
Dan Book [Sat, 11 Apr 2020 05:55:05 +0000 (01:55 -0400)]
perldata - More specific about assignment restriction of key/value slices

14 months agoTime-Piece: synch with CPAN version 1.3401
Samuel Smith [Thu, 9 Apr 2020 18:58:56 +0000 (14:58 -0400)]
Time-Piece: synch with CPAN version 1.3401

From Changes:

1.3401  2020-04-06
        - Add tests for negative and large epochs
        - Remove %I tests from 09locales.t
        - Exempt more tests unless $ENV{AUTOMATED_TESTING}
        - Safeguards around 12-hour time notation

1.34    2020-02-27
        - Exempt DST tests unless $ENV{AUTOMATED_TESTING}
        - Add recent test files to MANIFEST (openstrike)

Committer:  Time-Piece maintainer is now a Perl author

14 months agoperlbug - Change default behavior to save to file
Dan Book [Sat, 14 Mar 2020 22:58:18 +0000 (18:58 -0400)]
perlbug - Change default behavior to save to file

Output filename now always defaults to "perlbug.rep".
Sends by email only if an address is specified with -a,
invoked as perlthanks or with -T, or the prompt is
chosen to send the report to perl5-porters.
Removed option -A as it no longer does anything.
Clarified output to refer to "report" instead of "message".

14 months agoBump back to 5.31.11, if we need to release it
Sawyer X [Sat, 21 Mar 2020 20:04:26 +0000 (22:04 +0200)]
Bump back to 5.31.11, if we need to release it

14 months agoAdd Atsushi Sugawara to AUTHORS
Karl Williamson [Mon, 6 Apr 2020 19:28:14 +0000 (13:28 -0600)]
Add Atsushi Sugawara to AUTHORS

14 months agoFix typo in perlretut.pod. C<'$'> to C<$'>.
Atsushi SUGAWARA [Mon, 6 Apr 2020 15:24:54 +0000 (00:24 +0900)]
Fix typo in perlretut.pod. C<'$'> to C<$'>.

14 months agodon't disable __attribute__((always_inline)) on clang
Tomasz Konojacki [Mon, 6 Apr 2020 11:04:05 +0000 (13:04 +0200)]
don't disable __attribute__((always_inline)) on clang

clang pretends to be gcc 4.2

14 months agodisable __attribute__((always_inline)) for gcc <= 4.6
Tomasz Konojacki [Mon, 6 Apr 2020 02:05:22 +0000 (04:05 +0200)]
disable __attribute__((always_inline)) for gcc <= 4.6

It was causing compilation errors in DEBUGGING builds:

pp_sort.c: In function 'sortsv_cmp_locale_desc':
pp_sort.c:1329:1: sorry, unimplemented: inlining failed in call to 'S_cmp_locale_desc': function not inlinable
pp_sort.c:188:17: sorry, unimplemented: called from here
pp_sort.c:1329:1: sorry, unimplemented: inlining failed in call to 'S_cmp_locale_desc': function not inlinable
pp_sort.c:194:21: sorry, unimplemented: called from here

14 months agoregcomp.c: Die on relative group number overflow
Karl Williamson [Sun, 5 Apr 2020 03:24:55 +0000 (21:24 -0600)]
regcomp.c: Die on relative group number overflow

That this code was doing in the presence of an illegally large (or
small) relative capturing group number was to set it to about the
furthest away from zero it could get, and silently carry on, where it
likely overflowed a few lines down.

Instead die immediately with a proper message.

14 months agoregcomp.c: Avoid a segfault
Karl Williamson [Sun, 5 Apr 2020 03:17:24 +0000 (21:17 -0600)]
regcomp.c: Avoid a segfault

This was resulting in C undefined behavior reported by asan.  Check that
won't overflow before doing the operation; then die instead of going
ahead anyway.

This fixes #17593

14 months agoregcomp.c: Rmv unnecessary code
Karl Williamson [Sun, 5 Apr 2020 03:10:58 +0000 (21:10 -0600)]
regcomp.c: Rmv unnecessary code

As spotted by Hugo van der Sanden, a barckwards reference to a capturing
group doesn't need to look forward instead.  If we don't have a
capturing group we already should have, looking forward won't magically
produce it.

14 months agoregcomp.c: Rmv wrong comment
Karl Williamson [Sun, 5 Apr 2020 03:06:52 +0000 (21:06 -0600)]
regcomp.c: Rmv wrong comment

This comment speculated that perhaps we should be testing for underflow.
But this isn't a problem on any extant computer hardware

14 months agoregcomp.c: Don't duplicate text for an error msg
Karl Williamson [Sun, 5 Apr 2020 02:58:30 +0000 (20:58 -0600)]
regcomp.c: Don't duplicate text for an error msg

Instead, have a common definition.

14 months agoregcomp.c: Look before leaping; check before alloc
Karl Williamson [Thu, 2 Apr 2020 03:10:25 +0000 (21:10 -0600)]
regcomp.c: Look before leaping; check before alloc

This moves the allocation of a new regnode to just after the check that
the contents are ok, instead of just before.

14 months agoperlapi: Clarify grok_atoUV()
Karl Williamson [Sun, 5 Apr 2020 02:54:05 +0000 (20:54 -0600)]
perlapi: Clarify grok_atoUV()

14 months agoConfigure can't find dlopen() on DragonFly BSD when using g++
Tomasz Konojacki [Sat, 4 Apr 2020 21:25:50 +0000 (23:25 +0200)]
Configure can't find dlopen() on DragonFly BSD when using g++

linux, freebsd and solaris hints have the same workaround

14 months agore/pat_advanced.t: Rmv extraneous line
Karl Williamson [Sat, 4 Apr 2020 19:19:00 +0000 (13:19 -0600)]
re/pat_advanced.t: Rmv extraneous line

Spotted by Dagfinn Ilmari Mannsåker

14 months agoregcomp.c: Handle /ss\xdf/iaa properly
Karl Williamson [Thu, 2 Apr 2020 04:29:19 +0000 (22:29 -0600)]
regcomp.c: Handle /ss\xdf/iaa properly

Having both ss and \xdf in a string caused the node type to be changed
back to a wrong one.

This fixes #17486

14 months agoDragonFly BSD doesn't support SO_PROTOCOL for AF_UNIX sockets
Tomasz Konojacki [Fri, 3 Apr 2020 19:45:13 +0000 (21:45 +0200)]
DragonFly BSD doesn't support SO_PROTOCOL for AF_UNIX sockets

14 months agoStorable: Fix t/huge.t PERL_TEST_MEMORY diagnostic messages
Dagfinn Ilmari Mannsåker [Thu, 2 Apr 2020 22:03:11 +0000 (23:03 +0100)]
Storable: Fix t/huge.t PERL_TEST_MEMORY diagnostic messages

Commit be827e1bf8824a339ec2b5f6f58542e456157bce fixed the checks to
match what was actually required, but failed to adjus the diagnostic
messages when the requirement was not satisfied.

14 months agoop.c: Add, clarify comments
Karl Williamson [Wed, 1 Apr 2020 14:06:17 +0000 (08:06 -0600)]
op.c: Add, clarify comments

14 months agotr/abc/de/: Properly handle longer lhs in in-place calc
Karl Williamson [Wed, 1 Apr 2020 12:05:06 +0000 (06:05 -0600)]
tr/abc/de/: Properly handle longer lhs in in-place calc

A tr/// can be done in-place if the target string doesn't contain a
character whose transliterated representation is longer than the
original.  Otherwise, writing the new value would destroy the next
character we need to read.

In general, we can't know if a particular string contains such a
character without keeping a list of the problematic characters, and
scanning it ahead of time for occurrences of those.  Instead, we
determine at compilation time if, for a given transliteration, if there
exists any possible target string that could have an overwriting
problem.  If none exist, we edit in place.  Otherwise, we first make a

Prior to this commit, the code failed to account for the case where the
rhs is shorter than the left, so that any unmatched lhs characters map
to the final rhs one.  The reason the code didn't consider this is that
I didn't think of this possibility when writing it.

This fixes #17654 and #17643

14 months agodoop.c: Fix typo in comment; add comment
Karl Williamson [Wed, 1 Apr 2020 11:46:43 +0000 (05:46 -0600)]
doop.c: Fix typo in comment; add comment

14 months agoext/XS-APItest/APItest.xs - make allowances for big endian architecture
sisyphus [Thu, 2 Apr 2020 06:26:27 +0000 (17:26 +1100)]
ext/XS-APItest/APItest.xs -  make allowances for big endian architecture

14 months agohv_macro.t - remove endianness considerations as they are unnecessary.
sisyphus [Thu, 2 Apr 2020 06:24:57 +0000 (17:24 +1100)]
hv_macro.t - remove endianness considerations as they are unnecessary.


14 months Bump version to 1.09
Karl Williamson [Tue, 31 Mar 2020 14:24:34 +0000 (08:24 -0600)] Bump version to 1.09

14 months - Clarify scoping of $^W examples
Dan Book [Wed, 1 Apr 2020 17:04:35 +0000 (13:04 -0400)] - Clarify scoping of $^W examples

14 months agoscan_commit: fix flag handling
Hugo van der Sanden [Mon, 30 Mar 2020 17:05:12 +0000 (18:05 +0100)]
scan_commit: fix flag handling

A regexp substring changing from SF_BEFORE_MEOL to SF_BEFORE_SEOL or vice
versa would wrongly end up with both flags.

14 months agoEliminate build-time warning
Zefram [Fri, 27 Mar 2020 22:54:10 +0000 (18:54 -0400)]
Eliminate build-time warning

Compiling with gcc7, for example, generated a '-Woverflow' warning with
text 'overflow in implicit constant conversion'.


14 months agoPerl_unipmlemented_op: Fix comment and unnecessary PL_op deref
Dagfinn Ilmari Mannsåker [Sun, 29 Mar 2020 20:40:01 +0000 (21:40 +0100)]
Perl_unipmlemented_op: Fix comment and unnecessary PL_op deref

The comment referred to pp_addr, but the correct field is op_ppaddr,
and the function itself is called Perl_unimplemented_op, not

When indexing PL_op_name[], use the local op_type variable that we
just got from PL_op->op_type instead of going via PL_op again.

14 months agoensure sv bodies are properly aligned
Tony Cook [Wed, 25 Mar 2020 04:08:43 +0000 (15:08 +1100)]
ensure sv bodies are properly aligned

In some cases SV bodies don't include the same members as lower sv type
bodies, in particular, PVMG includes an NV member, while PVCV and
other specialised bodies don't include it, so PVMG can have a larger
alignment boundary.

This can result in a PVCV having a smaller alignment boundary than
PVMG, resulting in potential undefined behaviour if a member that
is common between PVCV and PVMG is accessed on an lesser aligned
PVCV pointer.

To avoid that, ensure allocation sizes described in bodies_by_type[]
account for NV (and IV) alignment requirements.

fixes #17668

14 months agoregcomp.c: Add comment
Karl Williamson [Sun, 29 Mar 2020 16:22:09 +0000 (10:22 -0600)]
regcomp.c: Add comment

At the request of @hvds

14 months agoSync Test-Simple with CPAN version 1.302173
Chad Granum [Fri, 27 Mar 2020 18:31:03 +0000 (14:31 -0400)]
Sync Test-Simple with CPAN version 1.302173

14 months agodon't export PL_mbrlen_ps, PL_mbrtowc, PL_wcrtomb if not defined
Tony Cook [Thu, 26 Mar 2020 03:19:34 +0000 (14:19 +1100)]
don't export PL_mbrlen_ps, PL_mbrtowc, PL_wcrtomb if not defined

These variables are only defined when the appropriate symbols are
defined in config.h, which are controled by their respective names

Note that the earlier code in only defines the intrpvar.h
symbols for non-multiplicity builds, so there's no need to special
case this check for threaded/multiplicity builds where these symbols
are never defined.

A sufficiently modern MSVC CRT does turn out to define these symbols,
but fixing this error first.

14 months agogh-17645: avoid oob read on conflict marker detection
Hugo van der Sanden [Fri, 27 Mar 2020 14:35:24 +0000 (14:35 +0000)]
gh-17645: avoid oob read on conflict marker detection

Introduced in 0ae5281a2d.

14 months agogh-17645 test for out of bounds read
Hugo van der Sanden [Fri, 27 Mar 2020 14:31:38 +0000 (14:31 +0000)]
gh-17645 test for out of bounds read

TODO test fails with sanitize=address.

14 months agoapparently HP-UX and solaris also don't support SO_PROTOCOL for AF_UNIX
Tony Cook [Fri, 27 Mar 2020 03:47:14 +0000 (14:47 +1100)]
apparently HP-UX and solaris also don't support SO_PROTOCOL for AF_UNIX

14 months agoDebugging GH #17671.
Karl Williamson [Wed, 25 Mar 2020 00:49:07 +0000 (18:49 -0600)]
Debugging GH #17671.

We are seeing an occasional smoke failure in the experimental regular
expression Unicode property wildcard feature for the name property.
This is not reproducible, and neither valgrind nor asan shows anything.
All the failures I have seen involve looking up NULL.  Now it could be
something special about that name, or merely that it is the first in the
test to be checked.  This commit seeks to find out by skipping that
test.  If we stop getting these intermittent failures, it points one
direction; if they continue with 0x01, instead, it points in another.

15 months agotest for i Foo failing to load mro
Tony Cook [Mon, 23 Mar 2020 00:47:24 +0000 (11:47 +1100)]
test for i Foo failing to load mro

test for #17660

15 months agocheckAUTHORS: another name for rjbs
Ricardo Signes [Fri, 20 Mar 2020 02:19:32 +0000 (22:19 -0400)]
checkAUTHORS: another name for rjbs

15 months the "i" command must load before use
Ricardo Signes [Thu, 19 Mar 2020 18:10:05 +0000 (14:10 -0400)] the "i" command must load before use