4 years agoupdate META.* for 5.18.1 (stable) release v5.18.1
Ricardo Signes [Mon, 12 Aug 2013 02:55:40 +0000 (22:55 -0400)] 
update META.* for 5.18.1 (stable) release

4 years agopatchlevel.h: remove RC3 indicator
Ricardo Signes [Mon, 12 Aug 2013 02:47:08 +0000 (22:47 -0400)] 
patchlevel.h: remove RC3 indicator

This is it, folks!

4 years agoperlhist: update dates for 5.18.1 in light of RC3
Ricardo Signes [Fri, 9 Aug 2013 02:05:17 +0000 (22:05 -0400)] 
perlhist: update dates for 5.18.1 in light of RC3

4 years agoupdate CoreList dates for 5.18.1 in light of RC3
Ricardo Signes [Fri, 9 Aug 2013 02:04:47 +0000 (22:04 -0400)] 
update CoreList dates for 5.18.1 in light of RC3

4 years agoupdate patchlevel.h for v5.18.1-RC3
Ricardo Signes [Fri, 9 Aug 2013 02:04:27 +0000 (22:04 -0400)] 
update patchlevel.h for v5.18.1-RC3

4 years agoSkip the perldoc test if 'man' is missing
Niko Tyni [Tue, 6 Aug 2013 13:57:00 +0000 (16:57 +0300)] 
Skip the perldoc test if 'man' is missing

This fixes a test failure in minimal build environments without
a 'man' command.

4 years agoThe language messages variable is called LC_MESSAGES
Niko Tyni [Tue, 6 Aug 2013 13:45:59 +0000 (16:45 +0300)] 
The language messages variable is called LC_MESSAGES

This probably doesn't matter as LC_ALL overrides everything else.

4 years agoperldelta: mention v5.16, not v5.17, as previous version
Ricardo Signes [Thu, 8 Aug 2013 11:52:09 +0000 (07:52 -0400)] 
perldelta: mention v5.16, not v5.17, as previous version

Thanks for the report, SHIRAKATA Kentaro.

4 years agoModule::CoreList: update Config found in 5.18.1
Ricardo Signes [Thu, 8 Aug 2013 00:45:19 +0000 (20:45 -0400)] 
Module::CoreList: update Config found in 5.18.1

4 years agoAdd missing versioned Config to Module::CoreList
Chris 'BinGOs' Williams [Wed, 7 Aug 2013 22:48:21 +0000 (23:48 +0100)] 
Add missing versioned Config to Module::CoreList

(cherry picked from commit cc42383380dce0d2e3c98f9f467a21c936902a8d)

4 years agoadd Module::CoreList::Utils delta for 5.18.1
Ricardo Signes [Mon, 5 Aug 2013 13:31:35 +0000 (09:31 -0400)] 
add Module::CoreList::Utils delta for 5.18.1

4 years agoupdate perlhist and patchlevel for v5.18.1-RC2
Ricardo Signes [Sun, 4 Aug 2013 02:08:56 +0000 (22:08 -0400)] 
update perlhist and patchlevel for v5.18.1-RC2

4 years agoperlhist: add 5.18.1!
Ricardo Signes [Fri, 2 Aug 2013 03:06:51 +0000 (23:06 -0400)] 
perlhist: add 5.18.1!

4 years agoRT #119125: continue /[#$x]/x not interpolating
David Mitchell [Sat, 3 Aug 2013 15:04:45 +0000 (16:04 +0100)] 
RT #119125: continue /[#$x]/x not interpolating

the earlier fix for /[#](?{})/x, although correct, as a
side-effect fixed another long-standing bug where /[#$x]/x
didn't interpolate the var $x. Although fixing that is good,
it's too big a change for maint, so keep the old buggy behaviour
for now.

4 years agoperldelta: remove a leftover XXX section
Ricardo Signes [Sun, 4 Aug 2013 01:30:10 +0000 (21:30 -0400)] 
perldelta: remove a leftover XXX section

4 years agoperldelta: fix module updates section
Ricardo Signes [Sun, 4 Aug 2013 01:29:58 +0000 (21:29 -0400)] 
perldelta: fix module updates section

4 years agoupdate corelist with v5.18.1 changes
Ricardo Signes [Sun, 4 Aug 2013 01:24:38 +0000 (21:24 -0400)] 
update corelist with v5.18.1 changes

...again.  This time, using the updated updater, fixing the
deprecations screwed up in 5.18.1 RC1.

4 years agoimport updates to Porting/
Ricardo Signes [Sun, 4 Aug 2013 01:09:54 +0000 (21:09 -0400)] 
import updates to Porting/

4 years agoRevert "update corelist with v5.18.1 changes"
Ricardo Signes [Sun, 4 Aug 2013 01:08:02 +0000 (21:08 -0400)] 
Revert "update corelist with v5.18.1 changes"

This reverts commit f97801705daa638dc14b1ce38cac3542064df879.

4 years agoUpdate META.json for RC1
Ricardo Signes [Fri, 2 Aug 2013 01:38:48 +0000 (21:38 -0400)] 
Update META.json for RC1

4 years agobump version to v5.18.1-RC1
Ricardo Signes [Fri, 2 Aug 2013 01:37:49 +0000 (21:37 -0400)] 
bump version to v5.18.1-RC1

4 years agoupdate corelist with v5.18.1 changes
Ricardo Signes [Fri, 2 Aug 2013 01:30:38 +0000 (21:30 -0400)] 
update corelist with v5.18.1 changes

I am not following the instructions in the RMG, because the
procedure is sort of a mess.  I will make sure that blead gets into
the right state when this is done.  In the meantime, doing it this
way should require less weird moving of work back and forth.

4 years agoimport Module-Corelist 2.95 from blead
Ricardo Signes [Fri, 2 Aug 2013 01:11:33 +0000 (21:11 -0400)] 
import Module-Corelist 2.95 from blead

4 years agoversion bump, because Digest::SHA changed
Ricardo Signes [Fri, 2 Aug 2013 01:05:04 +0000 (21:05 -0400)] 
version bump, because Digest::SHA changed

4 years agoperlhist: import the latest perlhist from blead
Ricardo Signes [Fri, 2 Aug 2013 01:00:10 +0000 (21:00 -0400)] 
perlhist: import the latest perlhist from blead

4 years agoperldelta: remove sections we will not need
Ricardo Signes [Thu, 1 Aug 2013 23:56:45 +0000 (19:56 -0400)] 
perldelta: remove sections we will not need

4 years agoperldelta: perldelta for /[#]/ and /(?[...])/ changes
Ricardo Signes [Thu, 1 Aug 2013 23:06:02 +0000 (19:06 -0400)] 
perldelta: perldelta for /[#]/ and /(?[...])/ changes

4 years agoperldelta: hints updates from 4b985f1 and 9de5f95
Ricardo Signes [Thu, 1 Aug 2013 23:05:30 +0000 (19:05 -0400)] 
perldelta: hints updates from 4b985f1 and 9de5f95

4 years agoperldelta: Digest::SHA fix in 79fe145
Ricardo Signes [Thu, 1 Aug 2013 23:05:06 +0000 (19:05 -0400)] 
perldelta: Digest::SHA fix in 79fe145

4 years agoperldelta: the easy pre-editing before final checks
Ricardo Signes [Thu, 1 Aug 2013 13:32:37 +0000 (09:32 -0400)] 
perldelta: the easy pre-editing before final checks

4 years agoperldelta: add a missing "=" from a Pod directive
Ricardo Signes [Thu, 1 Aug 2013 13:23:10 +0000 (09:23 -0400)] 
perldelta: add a missing "=" from a Pod directive

4 years agoDon’t leak when compiling /(?[\d\d])/
Father Chrysostomos [Thu, 6 Jun 2013 21:14:06 +0000 (14:14 -0700)] 
Don’t leak when compiling /(?[\d\d])/

The ‘Operand with no preceding operator’ error was leaking the last
two operands.

(cherry picked from commit b573e7000fd9c1cfae30ae5fb328a25b9bf3870a)

4 years agoFree operand when encountering unmatched ')' in (?[])
Father Chrysostomos [Thu, 6 Jun 2013 21:07:21 +0000 (14:07 -0700)] 
Free operand when encountering unmatched ')' in (?[])

I only need to free the operand (current), not the left-paren token
that turns out not to be a paren (lparen).

For lparen to leak, there would have to be two operands in a row on
the charclass parsing stack, which currently never happens.

(cherry picked from commit 4bc5d08976b7df23b63a56cc017a20ac5766fbbc)

4 years agoStop /(?[\p{...}])/ compilation from leaking
Father Chrysostomos [Thu, 6 Jun 2013 20:42:32 +0000 (13:42 -0700)] 
Stop /(?[\p{...}])/ compilation from leaking

The swash returned by was not being freed in the code
path to handle returning character classes to the (?[...]) parser
(when ret_invlist is true).

(cherry picked from commit c80d037c54749655d40eac068936c5222ce9d8ee)

4 years agoStop (?[]) operators from leaking
Father Chrysostomos [Thu, 6 Jun 2013 15:47:31 +0000 (08:47 -0700)] 
Stop (?[]) operators from leaking

When a (?[]) extended charclass is compiled, the various operands are
stored as inversion lists in separate SVs and then combined together
into new inversion lists.  The functions that take care of combining
inversion lists only ever free one operand, and sometimes free none.
Most of the operators in (?[]) were trusting the invlist functions to
free everything that was no longer needed, causing (?[]) compilation
to leak invlists.

(cherry picked from commit a84e671a269f736a404a62f21caacc8a431c2aca)

4 years agoDon’t leak the /(?[])/ parsing stack on error
Father Chrysostomos [Thu, 6 Jun 2013 04:40:24 +0000 (21:40 -0700)] 
Don’t leak the /(?[])/ parsing stack on error

Instead of creating the parsing stack and then freeing it after pars-
ing the (?[...]) construct (leaking it whenever one of the various
errors scattered throughout the parsing code occurs), mortalise it to
begin with and let the mortals stack take care of it.

(cherry picked from commit 1e4f088863436a8019c7d864691903ffdafeefda)

4 years agoHandle /[#]/ and /[(?#]/ with code blocks
David Mitchell [Wed, 31 Jul 2013 21:41:17 +0000 (22:41 +0100)] 
Handle /[#]/ and /[(?#]/ with code blocks

This is a regression in 5.18.0.

In something like /[#](?{})/x, the perl toker incorrectly sees the '#' as a
comment and skips the code block without parsing it.

(cherry picked from commit c30fc27b4df65a43710b25dd1d2a57d78ee2fe33)

4 years ago[perl #118525] make it work on threaded builds
Tony Cook [Tue, 30 Jul 2013 04:41:56 +0000 (14:41 +1000)] 
[perl #118525] make it work on threaded builds

(cherry picked from commit 5016d3c45a66ce5b279c253e8a8c2a38a9bd8431)

4 years agoCvGV is no longer a simple struct member access
Tony Cook [Thu, 25 Jul 2013 02:09:00 +0000 (12:09 +1000)] 
CvGV is no longer a simple struct member access

The same slot is also used for the NAME_HEK for lexical subs, so:

- split B::CV::GV out into its own function that uses the CvGV macro

- add B::CV::NAME_HEK so the name of a lexical sub can be fetched

4 years agoperldelta: deep recursion warnings (07b2687d2/#118521)
Father Chrysostomos [Sun, 28 Jul 2013 06:22:43 +0000 (23:22 -0700)] 
perldelta: deep recursion warnings (07b2687d2/#118521)

4 years agoperldelta for bdbfc51a7b (undef constant my sub)
Father Chrysostomos [Sat, 13 Jul 2013 21:31:31 +0000 (14:31 -0700)] 
perldelta for bdbfc51a7b (undef constant my sub)
(cherry picked from commit 07a522a526321341d2a83a852eda7f6fecb333c9)

4 years agoperldelta for #118305/88dbe4a
Father Chrysostomos [Sat, 13 Jul 2013 18:57:02 +0000 (11:57 -0700)] 
perldelta for #118305/88dbe4a
(cherry picked from commit 81d3ed5a0fa49c09ac57f7edc0917f345ff6b160)

4 years agoperldelta for lexsub syntax errors (3a74e0e282c)
Father Chrysostomos [Mon, 10 Jun 2013 07:50:47 +0000 (00:50 -0700)] 
perldelta for lexsub syntax errors (3a74e0e282c)
(cherry picked from commit 3221bc400f3da87f0d721c2bf3501051fac946ea)

4 years agoperldelta for two lexsub fixes
Father Chrysostomos [Mon, 10 Jun 2013 07:49:26 +0000 (00:49 -0700)] 
perldelta for two lexsub fixes
(cherry picked from commit 81748522aff12edb368615e9512781d00a2d5d5b)

4 years agoStop undef &foo from crashing on lex subs
Father Chrysostomos [Sun, 23 Jun 2013 19:06:11 +0000 (12:06 -0700)] 
Stop undef &foo from crashing on lex subs
(cherry picked from commit bdbfc51a7bc15a2f0a187c1ef09a16838a4c9915)

4 years agodon't crash on deep recursion warnings in lexical subs (#118521)
Lukas Mai [Tue, 18 Jun 2013 07:51:32 +0000 (09:51 +0200)] 
don't crash on deep recursion warnings in lexical subs (#118521)
(cherry picked from commit 07b2687d22462e599adb759b7c0082fb12b3f33d)

4 years ago[perl #118305] make dtrace sub-entry probe support lexsubs
Father Chrysostomos [Thu, 20 Jun 2013 21:07:19 +0000 (14:07 -0700)] 
[perl #118305] make dtrace sub-entry probe support lexsubs

No tests, because I don’t know how to write them.

See also <>.

I have tested this manually, so I know it works and no longer crashes.

Hopefully someone else can follow this up with tests.
(cherry picked from commit 88dbe4af2506aa2aa6864e188ca115b5423d4f9b)

4 years agoFix crashes after syntax errors in lexical subs
Father Chrysostomos [Sun, 2 Jun 2013 20:25:24 +0000 (13:25 -0700)] 
Fix crashes after syntax errors in lexical subs

Peter Martini fixed this in commit 89e006ae4e39db for our subs.
(Thank you, BTW, if you are reading this.)

The warning is expected; the assertion failure is not:

$ ./miniperl -Ilib -Mfeature=:all -e 'state sub a { is ref } a()'
The lexical_subs feature is experimental at -e line 1.
Assertion failed: (hek), function Perl_ck_subr, file op.c, line 10558.
Abort trap: 6
$ ./miniperl -Ilib -Mfeature=:all -e 'my sub a { is ref } a()'
The lexical_subs feature is experimental at -e line 1.
Assertion failed: (SvTYPE(_svmagic) >= SVt_PVMG), function S_mg_findext_flags, file mg.c, line 398.
Abort trap: 6

The prototype CV for a my sub is stored in magic attached to the pad
name.  The.  The code to fetch the prototype CV for a my sub calls
mg_find on the pad name.  If a syntax error occurs when the sub is be
ing compiled, the magic will never be attached, so the pad name (pad
names are currently SVs) will not have been upgraded to SVt_PVMG,
causing an assertion failure in mg_find, which only accepts SVs
thus upgraded.

When a pad entry is created, it is automatically filled with an empty
SV of the appropriate type.  For a subroutine, this is a nameless CV
stub.  CVs can be named in two ways, via GVs for package subs, or via
heks for lexical subs.  This stub has neither and is truly nameless.
Since a lexical sub is never installed if it contains a syntax error,
this stub is visible during subsequent compilation in the same scope.
ck_subr wasn’t prepared to handle a stub with absolutely no name
attached to it, since it is designed for handling sub calls where the
sub is known at compile time, so there must be a GV available to it,
unless the sub is lexical, and all lexical subs have heks.

This commit fixes the assumptions in both places.  Exactly what hap-
pens and what is returned is not so important, as this only hap-
pens after a syntax error, when the op tree is going to be thrown
away anyway.
(cherry picked from commit 3a74e0e282cd5c2593f9477923d3bcb1f32ece37)

4 years ago[perl #116735] Honour lexical prototypes when no parens are used
Father Chrysostomos [Sun, 2 Jun 2013 07:54:09 +0000 (00:54 -0700)] 
[perl #116735] Honour lexical prototypes when no parens are used

As Peter Martini noted in ticket #116735, lexical subs produce dif-
ferent op trees for ‘foo 1’ and ‘foo(1)’.  foo(1) produces an rv2cv
op with a padcv kid.  The unparenthetical version produces just
a padcv op.

And the difference in op trees caused lexical sub calls to honour
prototypes only in the presence of parentheses, because rv2cv_op_cv
(which searches for the cv in order to check its prototype) was
expecting rv2cv+padcv.

Not realising there was a discrepancy between the two forms, and
noticing that foo() produces *two* newCVREF ops, in commit 279d09bf893
I made newCVREF return just a padcv op for lexical subs.  At the time
I couldn’t figure out why there were two rv2cv ops, and punted on
researching it.

This is how it works for package subs:

When a sub call is compiled, if there are parentheses, an implicit '&'
is fed to the parser.  The token that follows is a WORD token with a
constant op attached to it, containing the name of the subroutine.
When the parser sees '&', it calls newCVREF on the const op to create
an rv2cv op.

For sub calls without parentheses, the token passed to the parser is
already an rv2cv op.

The resulting op tree is the same either way.

For lexical subs, I had the lexer emitting an rv2cv op in both paths,
which was why we got the double rv2cv when newCVREF was returning an
rv2cv for lexical subs.

The real solution is to call newCVREF in the lexer only when there
are no parentheses, since in that case the lexer is not going to call
newCVREF itself.  That avoids a redundant newCVREF call.  Hence, we
can have newCVREF always return an rv2cv op.

The result is that ‘foo(1)’ and ‘foo 1’ produce identical op trees for
a lexical sub.

One more thing needed to change:  The lexer was not looking at the
lexical prototype CV but simply the stub to be autovivified, so it
couldn’t see the parameter prototype attached to the CV (the stub
doesn’t have one).

The lexer needs to see the parameter prototype too, in order to deter-
mine precedence.

The logic for digging through pads to find the CV has been extracted
out of rv2cv_op_cv into a separate (non-API!) routine.
(cherry picked from commit 9a5e6f3cd84e6eaf40dad034fb9d25cb3361accc)

4 years agoName lexical constants
Father Chrysostomos [Sun, 2 Jun 2013 01:39:33 +0000 (18:39 -0700)] 
Name lexical constants

$ ./perl -Ilib -Mfeature=:all -e 'my sub a(){44} a()'
The lexical_subs feature is experimental at -e line 1.
Assertion failed: (hek), function Perl_ck_subr, file op.c, line 10558.
Abort trap: 6

The experimental warning is expected.  The assertion failure is not.

When a call checker is invoked, the name of the subroutine is passed
to it.  op.c:ck_subr gets the name from the CV’s cv (CvGV) or, in the
case of lexical subs, from its name hek (CvNAME_HEK).  If neither
exists, ck_subr cannot cope.

Lexical subs never have a GV pointer.  Lexical constants were acci-
dentally having neither a GV pointer nor a hek.  They should have a
hek, like other lexical subs.
(cherry picked from commit 83a72a15a3e8908c9fea8334e083e9329d425feb)

4 years agolexsub.t: To-do tests for citing lex subs after errors
Father Chrysostomos [Sat, 1 Jun 2013 13:28:12 +0000 (06:28 -0700)] 
lexsub.t: To-do tests for citing lex subs after errors

This currently causes assertion failures on debugging builds.  On
non-debugging builds (untested), it probably crashes:

my sub a { foo ref } # foo must not exist
(cherry picked from commit fe54d63b71ffdc66546e8a06b4ea561f58af2fc2)

4 years agoFix missing single quote in a sed in hints/
Peter Martini [Sun, 21 Jul 2013 22:45:45 +0000 (18:45 -0400)] 
Fix missing single quote in a sed in hints/

(cherry picked from commit da46ab3732c369c451e8f975eeca0700552ac282)

4 years ago[perl #118649] maint-5.18: Digest-SHA crash fix in 5.85
Chris 'BinGOs' Williams [Fri, 28 Jun 2013 12:07:34 +0000 (13:07 +0100)] 
[perl #118649] maint-5.18: Digest-SHA crash fix in 5.85

Backported minimal changes from blead

4 years agoFix regex seqfault 5.18 regression
Karl Williamson [Mon, 1 Jul 2013 16:26:14 +0000 (10:26 -0600)] 
Fix regex seqfault 5.18 regression

This segfault is a result of an optimization that can leave the
compilation in an inconsistent state.


doesn't match anything, and hence should be removable from the regex for
all f.  However,


caused a segfault.  What was happening prior to this commit is that
(?&foo) refers to a named capture group further along in the regex.
The "{0}" caused the "(?&foo)" to be discarded prior to setting up the
pointers between the two related subexpressions; a segfault follows.

This commit removes the optimization, and should be suitable for a
maintenance release.

One might think that no one would be writing code like this, but this
example was distilled from machine-generated code in Regexp::Grammars.

Perhaps this optimization can be done, but the location I chose for
checking it was during parsing, which turns out to be premature.  It
would be better to do it in the optimization phase of regex compilation.
Another option would be to retain it where it was, but for it to operate
only on a limited set of nodes, such as EXACTish, which would have no
unintended consequences.  But that is for looking at in the future; the
important thing is to have a simple patch suitable for fixing this
regression in a maintenance release.

For the record, the code being reverted was mistakenly added by me in
commit 3018b823898645e44b8c37c70ac5c6302b031381, and wasn't even
mentioned in that commit message.  It should have had its own commit.


4 years agoFix MidnightBSD hints file for 0.4-RELEASE
Chris 'BinGOs' Williams [Sun, 7 Jul 2013 12:55:29 +0000 (13:55 +0100)] 
Fix MidnightBSD hints file for 0.4-RELEASE

0.4 has no /usr/bin/objformat, so the hints file was
falling through to configure for aout with fatal consequences.

Confirmed that the objformat in 0.3 warns that it is deprecated.

Have switched around the logic of the checks so that it will always
configure for elf, using aout is explicitly detected.

4 years agoUpdate the GSMATCH handling in vms/
Craig A. Berry [Fri, 31 May 2013 21:23:24 +0000 (16:23 -0500)] 
Update the GSMATCH handling in vms/

This code (which only runs if you have set PERLSHR_USE_GSMATCH in
the environment) has not been updated in a long time.  It was
assuming that $] had only five digits after the decimal, whereas
it's had six for some time. And it assumed that the Perl5 version
could be represented in 4 bits, which was true up through 5.15
but isn't true anymore.

So get all the digits of the version number, and go wild and spend
5 bits on the value of $Config{PERL_VERSION}, which will get us
through 5.31.  That only leaves three bits in which to encode all
the options that could break binary compatibility, whereas in fact
we need about thirty bits.

So clearly this only works in a situation where the configuration
can be standardized and/or different configurations are packaged

4 years agoImproved struct pmop alignment fix - avoid the slow path on 64 bit systems.
Nicholas Clark [Sun, 26 May 2013 06:50:17 +0000 (08:50 +0200)] 
Improved struct pmop alignment fix - avoid the slow path on 64 bit systems.

Commit c2a50ddb1bed6576 works round an alignment bug in the slab allocator
for 32 bit systems built with 64 bit IVs. However, the C pre-processor logic
meant that the test path was enabled on true 64 bit systems. It's not needed
there, so improve the logic so that it isn't compiled for platforms where
pointers are 64 bit.

4 years agoupdate perldelta with recent cherry-picks
David Mitchell [Sat, 15 Jun 2013 11:53:14 +0000 (12:53 +0100)] 
update perldelta with recent cherry-picks

4 years agoEnsure that the IV in struct pmop (for ithreads) is aligned properly.
Nicholas Clark [Thu, 23 May 2013 11:46:05 +0000 (13:46 +0200)] 
Ensure that the IV in struct pmop (for ithreads) is aligned properly.

Regression in 5.18.0 cherry-picked from

The members of struct pmop vary between ithreads and non-ithreads builds.
For ithreads, an IV is used for op_pmoffset. For 32 bit platforms built
with -Duse64bitint, IVs are 64 bits, but pointers (and all other members of
all OP structures) are 32 bits, hence on 32 bit platforms OP structure sizes
can be an odd multiple of 4 bytes. Since the swap to the slab allocator,
this is causing problems on architectures where 8 byte IVs have to be 8
byte aligned, notably sparcs. The long-term fix is to replace the IV with
an appropriate 32 bit type, as it is being used for an array index. However,
for maint-5.18 we need a work around which doesn't change the public headers
and ideally doesn't impose a large speed or memory penalty.

Hence for now, simply avoid using the slab allocator when allocating a
struct pmop. Only do this for 32 bit platforms build with 8 byte IVs and

This is the interim fix for RT #118055.

4 years ago[perl #118159] Make PVs take precedence in SvTRUE
Father Chrysostomos [Sun, 26 May 2013 06:59:45 +0000 (23:59 -0700)] 
[perl #118159] Make PVs take precedence in SvTRUE

Commit 4bac9ae4 (probably inadvertently) changed SvTRUE to treat an SV
with any of PVX, IVX or NVX having a true value as true.

Traditionally, truth was based solely on stringification. The examina-
tion of the SvIVX and SvNVX slots was for those cases where there was
no string already and it could be deduced from IVX or NVX whether it
would stringify as "0" or no (bugs with -0 aside).

This changes things back to the way they have ‘always’ been.

This was a regression in 5.18.0;
cherry-picked from 762dbf22cb22645771fc27b5d197fd40cbbd9da8.

4 years agoFix regmatch pointer 32-bit wraparound regression
Tony Cook [Mon, 3 Jun 2013 12:28:37 +0000 (22:28 +1000)] 
Fix regmatch pointer 32-bit wraparound regression

Cherry-picked from:

commit 285a3ca139d04d2ee1894c9a9110294ee8bb0309
Merge: aad0429 dfb8f19
Author:     Tony Cook <>
AuthorDate: Mon Jun 3 22:28:37 2013 +1000
Commit:     Tony Cook <>
CommitDate: Mon Jun 3 22:28:37 2013 +1000

    [perl #118175] avoid making pointers outside of objects

    In a couple of cases, when strings were allocated above the 2GB line
    on 32-bit CPUs, this could cause regexps to act strangely - not matching
    or crashing perl.

    The final patch in the set prevents pointer creation which the C standard
    describes as undefined behaviour, but is typically safe (as long as the
    pointer isn't derefed)

This regression was introduced into 5.18.0 by commit

4 years agoperldelta for debugger @_ fix
Ricardo Signes [Mon, 10 Jun 2013 22:23:27 +0000 (18:23 -0400)] 
perldelta for debugger @_ fix

4 years agoFix the mutability of @_ in perl -d.
Shlomi Fish [Sun, 26 May 2013 15:55:48 +0000 (18:55 +0300)] 
Fix the mutability of @_ in perl -d.

With a test.

See Father C.'s comment on RT #118169.

4 years agoFix for RT #118169
Shlomi Fish [Sun, 26 May 2013 13:35:04 +0000 (16:35 +0300)] 
Fix for RT #118169

subroutine arguments are no longer shown in perl debugger ( x @_ in perl
-d) .

Regression from perl-5.16.x due to the perl -d refactoring. Fixed with a

4 years ago[perl #118297] Fix interpolating downgraded variables into upgraded regexp
Dagfinn Ilmari Mannsåker [Tue, 4 Jun 2013 17:15:24 +0000 (18:15 +0100)] 
[perl #118297] Fix interpolating downgraded variables into upgraded regexp

The code alredy upgraded the pattern if interpolating an upgraded
string into it, but not vice versa.  Just use sv_catsv_nomg() instead
of sv_catpvn_nomg(), so that it can upgrade as necessary.

4 years agoperldelta for #117947
Father Chrysostomos [Thu, 6 Jun 2013 00:49:28 +0000 (17:49 -0700)] 
perldelta for #117947

4 years ago[perl #117947] Verify lvalueness of XSUBs at run time
Father Chrysostomos [Tue, 28 May 2013 00:45:50 +0000 (17:45 -0700)] 
[perl #117947] Verify lvalueness of XSUBs at run time

If the sub is not visible at compile time, the op tree is flagged such
that pp_entersub will know whether to check the lvalueness of the
called sub.

That check has been in pp_entersub since da1dff9483c.  When I moved
it to pp_entersub in that commit, I only added it to the pure-Perl
branch, not to the XS branch, allowing all XSUBs to be treated as
lvalues if they are not visible at compile time.
(cherry picked from commit 4587c5322c964beac01a38188957ca11026dc766)

4 years agoupdate link for DTrace user guide
Ricardo Signes [Fri, 31 May 2013 22:15:57 +0000 (18:15 -0400)] 
update link for DTrace user guide

(cherry picked from commit d2a68ca8e9f23a357624176e0b4b7a3d63913441)

4 years agocorrect example for turning of experimental warnings
Ricardo Signes [Fri, 31 May 2013 00:05:37 +0000 (20:05 -0400)] 
correct example for turning of experimental warnings

Original patch from Thomas Klausner <>, tweaked with a
suggestion by Karen Etheridge <>.

4 years agoOn Linux LC_ALL overrides LC_MESSAGES, so tweak perl5db.t accordingly.
Nicholas Clark [Mon, 27 May 2013 12:53:30 +0000 (14:53 +0200)] 
On Linux LC_ALL overrides LC_MESSAGES, so tweak perl5db.t accordingly.

Without this, the test fails when LC_ALL is set to a non-English locale for
which man has been localised.
(cherry picked from commit f81b1f8b75b4a650b1375b4226116b035f86cb09)

4 years agoman perlrules doesn't always output "No manual entry for perlrules"
Tony Cook [Mon, 27 May 2013 10:15:21 +0000 (20:15 +1000)] 
man perlrules doesn't always output "No manual entry for perlrules"

especially when the locale is non-English.

Hopefully all Linux dists are producing the same message, and force the
language to "C" so we get English messages.
(cherry picked from commit 08a004e4d58edacd87d6e8a443a269a6658faf4c)

4 years agobump version of debugger
Ricardo Signes [Sun, 26 May 2013 20:03:51 +0000 (16:03 -0400)] 
bump version of debugger

4 years agoFix the man/perldoc/doc command in the debugger.
Nicholas Clark [Fri, 24 May 2013 18:15:10 +0000 (20:15 +0200)] 
Fix the man/perldoc/doc command in the debugger.

This was accidentally broken by commit c7b0c61d36b24841.
(cherry picked from commit b019bbd28397aba60a9673fa89dded4500c6c783)

4 years agoadd new perldelta for 5.18.1
Ricardo Signes [Sun, 26 May 2013 02:56:42 +0000 (22:56 -0400)] 
add new perldelta for 5.18.1

4 years agobump version to 5.18.1
Ricardo Signes [Sun, 26 May 2013 02:55:31 +0000 (22:55 -0400)] 
bump version to 5.18.1

4 years agofinal version and perlhist update for 5.18.0 v5.18.0
Ricardo Signes [Fri, 17 May 2013 12:26:19 +0000 (08:26 -0400)] 
final version and perlhist update for 5.18.0

4 years agoupdate perlexperiment
Sebastien Aperghis-Tramoni [Fri, 17 May 2013 23:25:46 +0000 (01:25 +0200)] 
update perlexperiment

- fixed a typo (%H instead of %^H)
- removed mention of Unicode support, which is so deep that I doubt that
  it could ever be removed
- added the following items to the "Current experiments" section
  - alloccopstash
  - cop_store_label
  - gv_fetchmethod_*_flags
  - op_scope
  - op_lvalue
  - Smart match (~~)
  - Lexical $_
  - Array and hash container functions accept references
  - Regular Expression Set Operations

- moved the following items to the "Accepted features" section
  - fork() emulation
  - Weak references
  - Internal file glob
  - 64-bit support
  - die accepts a reference
  - DB module

- moved the following items to the "Removed features" section
  - GetOpt::Long Options
  - 5.005-style threading
  - Test::Harness::Straps
  - perlcc
  - Assertions
  - The pseudo-hash data type

I tried to add the corresponding Perl versions of when features were added
and accepted or removed, but used the stable versions as I searched in the

4 years agofix wrong tense
Sebastien Aperghis-Tramoni [Fri, 17 May 2013 23:04:45 +0000 (01:04 +0200)] 
fix wrong tense

4 years agoupdate the release schedule
Ricardo Signes [Thu, 16 May 2013 14:36:46 +0000 (10:36 -0400)] 
update the release schedule

4 years agoperldelta: document known failure on HP-UX 11.00
Ricardo Signes [Thu, 16 May 2013 14:02:39 +0000 (10:02 -0400)] 
perldelta: document known failure on HP-UX 11.00

4 years agobump patchlevel and perlhist for RC4 v5.18.0-RC4
Ricardo Signes [Thu, 16 May 2013 02:52:33 +0000 (22:52 -0400)] 
bump patchlevel and perlhist for RC4

4 years agoperldelta: restate the changes to ${x} versus $x
Ricardo Signes [Thu, 16 May 2013 02:06:18 +0000 (22:06 -0400)] 
perldelta: restate the changes to ${x} versus $x

Credit for improvements made in this commit to to khw.  Blame for
anything else goes to rjbs.

4 years agoperldelta: Clarify removal vs deprecation of modules
Aristotle Pagaltzis [Thu, 16 May 2013 00:57:20 +0000 (02:57 +0200)] 
perldelta: Clarify removal vs deprecation of modules

4 years agoperldelta: Use 'Here doc' consistently sans dash
Karl Williamson [Thu, 16 May 2013 01:00:22 +0000 (19:00 -0600)] 
perldelta: Use 'Here doc' consistently sans dash

This corresponds to perldiag, and was suggested by Zsbán Ambrus.

4 years agoFix typo in perldelta
Karl Williamson [Thu, 16 May 2013 00:58:31 +0000 (18:58 -0600)] 
Fix typo in perldelta

Spotted by Zsbán Ambrus

4 years agoperldelta clarification
Zsbán Ambrus [Thu, 16 May 2013 00:57:45 +0000 (18:57 -0600)] 
perldelta clarification

4 years agoexpand documentation of the \cK change
Ricardo Signes [Thu, 16 May 2013 00:25:06 +0000 (20:25 -0400)] 
expand documentation of the \cK change

4 years agoperldelta: add another hash overhaul cross reference
Ricardo Signes [Wed, 15 May 2013 23:59:09 +0000 (19:59 -0400)] 
perldelta: add another hash overhaul cross reference

4 years agoClarified perldelta entry for UID/GID magic variables
Leon Timmermans [Wed, 15 May 2013 21:04:03 +0000 (23:04 +0200)] 
Clarified perldelta entry for UID/GID magic variables

4 years agoAddress [perl #117999] for now by skipping known bad test on AIX
Tony Cook [Wed, 15 May 2013 19:56:13 +0000 (15:56 -0400)] 
Address [perl #117999] for now by skipping known bad test on AIX

4 years agoperldelta: various fixes suggested by Dave Mitchell
Ricardo Signes [Wed, 15 May 2013 19:53:20 +0000 (15:53 -0400)] 
perldelta: various fixes suggested by Dave Mitchell

4 years agoperldelta: remove a literally incorrect "literal"
Ricardo Signes [Wed, 15 May 2013 16:59:00 +0000 (12:59 -0400)] 
perldelta: remove a literally incorrect "literal"

4 years agoperldelta: collapse a bit of vertical space
Ricardo Signes [Wed, 15 May 2013 01:32:55 +0000 (21:32 -0400)] 
perldelta: collapse a bit of vertical space

4 years agoperldelta: clarify the deprecation of non-PerlIO perl
Ricardo Signes [Wed, 15 May 2013 01:29:16 +0000 (21:29 -0400)] 
perldelta: clarify the deprecation of non-PerlIO perl

4 years agoSpelling correction.
James E Keenan [Wed, 15 May 2013 00:33:32 +0000 (20:33 -0400)] 
Spelling correction.

4 years agoperldelta: add obituary for AMORETTE
Ricardo Signes [Tue, 14 May 2013 17:57:26 +0000 (13:57 -0400)] 
perldelta: add obituary for AMORETTE

4 years agoperldelta: minor nitpicks
Aristotle Pagaltzis [Tue, 14 May 2013 02:42:35 +0000 (22:42 -0400)] 
perldelta: minor nitpicks

4 years agobump patchlevel to RC3, update hist v5.18.0-RC3
Ricardo Signes [Tue, 14 May 2013 01:01:44 +0000 (21:01 -0400)] 
bump patchlevel to RC3, update hist

4 years agofix extrefs text with SDK 2003
Steve Hay [Tue, 14 May 2013 00:01:15 +0000 (20:01 -0400)] 
fix extrefs text with SDK 2003

The attached patch (also inlined below) fixes the SDK2003 test failure
for me, and also passes with all the other VC++ compilers. (It isn't
easy trying to pinpoint the SDK2003 compiler individually, so it is
simpler to just do this for all VC++ compilers on Windows.)

4 years agoperldelta: fix reported new version of Carp
Ricardo Signes [Mon, 13 May 2013 18:46:55 +0000 (14:46 -0400)] 
perldelta: fix reported new version of Carp