2 years agonote that sort can't use a lexsub as its SUBNAME maint-5.18
Ricardo Signes [Sat, 24 Jan 2015 02:15:51 +0000 (21:15 -0500)] 
note that sort can't use a lexsub as its SUBNAME

(cherry picked from commit 78dc4383933df0ec316c36db90adf49cf626edbb)

3 years agoadd v5.18.4 to perlhist v5.18.4
Ricardo Signes [Wed, 1 Oct 2014 15:24:26 +0000 (11:24 -0400)] 
add v5.18.4 to perlhist

3 years agoperldelta: replace contents with perl5183delta contents
Ricardo Signes [Wed, 1 Oct 2014 13:59:55 +0000 (09:59 -0400)] 
perldelta: replace contents with perl5183delta contents

3 years agorestore real perl5183delta
Ricardo Signes [Wed, 1 Oct 2014 13:57:58 +0000 (09:57 -0400)] 
restore real perl5183delta

3 years agocorelist: update for 5.18.4
Ricardo Signes [Wed, 1 Oct 2014 13:53:14 +0000 (09:53 -0400)] 
corelist: update for 5.18.4

3 years agobump version to 5.18.4
Ricardo Signes [Wed, 1 Oct 2014 13:51:02 +0000 (09:51 -0400)] 
bump version to 5.18.4

3 years agoadd new perldelta for possible 5.18.4
Ricardo Signes [Wed, 1 Oct 2014 13:49:47 +0000 (09:49 -0400)] 
add new perldelta for possible 5.18.4

3 years agoregenerate META.json to match non-RC status
Ricardo Signes [Wed, 1 Oct 2014 13:41:44 +0000 (09:41 -0400)] 
regenerate META.json to match non-RC status

3 years agopatchlevel.h: we are an RC no longer v5.18.3
Ricardo Signes [Wed, 1 Oct 2014 12:26:22 +0000 (08:26 -0400)] 
patchlevel.h: we are an RC no longer

3 years agoperldelta: drop final XXX bits, add acknowledgements
Ricardo Signes [Wed, 1 Oct 2014 12:23:27 +0000 (08:23 -0400)] 
perldelta: drop final XXX bits, add acknowledgements

3 years agoperlhist: import the latest perlhist dates
Ricardo Signes [Wed, 1 Oct 2014 01:37:24 +0000 (21:37 -0400)] 
perlhist: import the latest perlhist dates

3 years agopatchlevel.h: we are now perl-5.18.3-RC2 v5.18.3-RC2
Ricardo Signes [Fri, 26 Sep 2014 13:06:26 +0000 (09:06 -0400)] 
patchlevel.h: we are now perl-5.18.3-RC2

3 years agoAllow blead to compile under some g++
Karl Williamson [Wed, 5 Feb 2014 20:01:45 +0000 (13:01 -0700)] 
Allow blead to compile under some g++

Various platforms are refusing to compile blead with g++ [perl #121151]
This patch, suggested by Tony Cook seems to work.  There may be a better
way to do it, so I'm not closing the ticket, but this gets things
working again.

(cherry picked from commit e9d5f7d5c47a96d94ce10d3b5677a9625fe6c413)

3 years agoDoug Bell is now a Perl 5 author.
James E Keenan [Fri, 19 Sep 2014 03:08:55 +0000 (23:08 -0400)] 
Doug Bell is now a Perl 5 author.

3 years agosig() should be kill()
Doug Bell [Sun, 31 Aug 2014 08:02:56 +0000 (03:02 -0500)] 
sig() should be kill()

There is no sig() function, and the block of text has similar language
to a previous block which uses kill().

For: RT #122662
(cherry picked from commit 9589aa831c3533d85bf7042e049cbe02095df9d3)

3 years agopatchlevel.h: we are now perl-5.18.3-RC1 v5.18.3-RC1
Ricardo Signes [Wed, 17 Sep 2014 20:02:06 +0000 (16:02 -0400)] 
patchlevel.h: we are now perl-5.18.3-RC1

3 years agoModule::CoreList: import updates
Ricardo Signes [Tue, 16 Sep 2014 15:17:09 +0000 (11:17 -0400)] 
Module::CoreList: import updates

3 years agoperldelta: fix a typo
Ricardo Signes [Sat, 30 Aug 2014 11:50:00 +0000 (07:50 -0400)] 
perldelta: fix a typo

3 years agoModule-CoreList: manual update for v5.18.3
Ricardo Signes [Sat, 30 Aug 2014 02:25:07 +0000 (22:25 -0400)] 
Module-CoreList: manual update for v5.18.3

3 years agoModule-CoreList: bump version
Ricardo Signes [Sat, 30 Aug 2014 02:16:21 +0000 (22:16 -0400)] 
Module-CoreList: bump version

3 years agoupdate META.* for v5.18.3-RC0
Ricardo Signes [Sun, 20 Jul 2014 22:47:44 +0000 (15:47 -0700)] 
update META.* for v5.18.3-RC0

3 years agopatchlevel.h: call this v5.18.3-RC0 for now
Ricardo Signes [Sun, 20 Jul 2014 22:37:00 +0000 (15:37 -0700)] 
patchlevel.h: call this v5.18.3-RC0 for now

3 years agobump version to 5.18.3
Ricardo Signes [Sun, 20 Jul 2014 22:35:52 +0000 (15:35 -0700)] 
bump version to 5.18.3

3 years agoupdate perldelta for 5.18.3
Ricardo Signes [Sun, 20 Jul 2014 21:56:51 +0000 (14:56 -0700)] 
update perldelta for 5.18.3

3 years agoimport latest pod/perlpolicy.pod from blead
Ricardo Signes [Sun, 20 Jul 2014 21:25:44 +0000 (14:25 -0700)] 
import latest pod/perlpolicy.pod from blead

3 years agoperldelta for bfa371b621
Father Chrysostomos [Sun, 19 Jan 2014 05:50:13 +0000 (21:50 -0800)] 
perldelta for bfa371b621
(cherry picked from commit 43441260a4eb87e18dc79b9ce0e82a45c229dd75)

[What you see above this is what ‘git cherry-pick’ generated.  What
 comes below is the committer’s own commentary.]

25b4c20b7 (update perldelta) accidentally removed the text added by
b380e583f8 (perldelta for 2c60386e935).

However, the text added by b380e583f8 was taken from 6f9296e1cb, which
added to blead the perldelta entry for 8c9d3376fbf, which has not been
cherry-picked to the maint-5.18 branch.

2c60386e935 was cherry-picked from bfa371b621 and documented in
perldelta by 43441260a4 (the source of this commit).

3 years agocope with gcc -g3 with Compress-Raw-Zlib
Ricardo Signes [Sat, 12 Jul 2014 02:00:43 +0000 (22:00 -0400)] 
cope with gcc -g3 with Compress-Raw-Zlib

change from

3 years agoupdate perldelta for latest cherry picks
Ricardo Signes [Sat, 12 Jul 2014 01:47:48 +0000 (21:47 -0400)] 
update perldelta for latest cherry picks

3 years agoadd Hiroo Hayashi to AUTHORS
Ricardo Signes [Mon, 7 Apr 2014 14:35:06 +0000 (10:35 -0400)] 
add Hiroo Hayashi to AUTHORS

(cherry picked from commit 37cd2ad695110c649d9de9df988a3a99fe3d09c2)


3 years uses skip_all(...), not plan(skip_all => ...)
Tony Cook [Tue, 18 Feb 2014 00:37:45 +0000 (11:37 +1100)] uses skip_all(...), not plan(skip_all => ...)

This was causing noise on cygwin systems that don't have cygserver

(cherry picked from commit 875437c8999a2d55eee9c7ea3e2c8d9400b82eb2)

3 years agoproperly reset ReadLine's knowledge of handles after pager
Hiroo Hayashi [Mon, 7 Apr 2014 14:33:17 +0000 (10:33 -0400)] 
properly reset ReadLine's knowledge of handles after pager

[perl #121456]

(cherry picked from commit 9b534162be6678b2eeb735f49ab72accc64255fb)

3 years agobackport Digest::SHA fix
Mark Shelor [Wed, 16 Apr 2014 06:05:45 +0000 (16:05 +1000)] 
backport Digest::SHA fix

3 years agofix missing _rotl64 symbol on Visual C 2003
Daniel Dragan [Thu, 9 Jan 2014 04:44:16 +0000 (23:44 -0500)] 
fix missing _rotl64 symbol on Visual C 2003

Due to a bug in the CRT (msvcr71.dll), these 2 functions are not defined
in any lib Perl can use (static link CRTs dont apply, Perl only uses DLL
CRTs), but they are available as intrinsics. This solves a link error
about missing symbol __rotl64 in hv.obj, from usage in hv_func.h, on 32 bit
USE_64_BIT_INT VC 2003 builds. _rotr64 is included for completeness. This
fix is filed as [perl #120925].

(cherry picked from commit 8961ec415a480cac831348374bfebace980b0a81)

3 years ago[perl #119973] Treat initial { in format args as block
Father Chrysostomos [Sun, 19 Jan 2014 01:58:52 +0000 (17:58 -0800)] 
[perl #119973] Treat initial { in format args as block

Commit 705fe0e5f8a inadvertently caused the hash-vs-block disambigua-
tion to apply at the beginning of a format argument line.  This commit
restores the implicit ‘do’, but only when the opening brace is the
first token on that line, not embedded within an expression.

In other words, this now has a block as before:

format =
{ foo => "bar" }

but this still produces a hash (in 5.16 it was a block):

format =
+{ foo => "bar }

(cherry picked from commit f60e676307b23b6eadcbba505b4f71838fe212a2)

3 years agoNote that the minimum supported gcc (on Windows) is 3.4.5
Steve Hay [Thu, 22 May 2014 07:24:47 +0000 (08:24 +0100)] 
Note that the minimum supported gcc (on Windows) is 3.4.5

Earlier versions (from, at least) will build perl, but have
a linker bug that causes various tests to fail due to problems with
SDBM_File.dll. See perl #121936 for details.

(cherry picked from commit bf537ce68dee63d81957c87b81c78c2b32d223de)

3 years agoAdd links for perl bug tickets in previous commit
Steve Hay [Wed, 14 May 2014 16:46:40 +0000 (17:46 +0100)] 
Add links for perl bug tickets in previous commit

(cherry picked from commit 47e6d4dbb87eb14b29f00df5304f5d8bf44236ac)

3 years agoperldelta for #121676
Daniel Dragan [Wed, 14 May 2014 08:09:39 +0000 (04:09 -0400)] 
perldelta for #121676

(cherry picked from commit 58627cdf06c592b676923193c3e08c74f75129a3)

3 years agoFix commit 2358a1918b
Steve Hay [Wed, 14 May 2014 19:59:30 +0000 (20:59 +0100)] 
Fix commit 2358a1918b

Spotted by Daniel Dragan. We use GetEnvironmentStringsW() (deliberately so:
see commit 4f46e52b00), so we must use FreeEnvironmentStringsW() to match.

(cherry picked from commit a6abe943fc6abe60b49c81ccb55b1e99f8993c8d)

3 years ago[perl #121676] Fix memory leak in backticks and system
Steve Hay [Tue, 13 May 2014 11:53:10 +0000 (12:53 +0100)] 
[perl #121676] Fix memory leak in backticks and system

Introduced by perl #113536. It doesn't actually leak on Windows XP due to
differences in the implementation of GetEnvironmentStringsW() compared to
later OSes, but the missing FreeEnvironmentStrings() was technically wrong
anyway, and does now bite. Thanks for Daniel Dragan for finding this.

(cherry picked from commit 90674eaa88a3b2f52d8ac1b835c3505b25ff3f00)

3 years agoperldelta for 2396ba2d2d
Tony Cook [Wed, 16 Apr 2014 03:19:31 +0000 (13:19 +1000)] 
perldelta for 2396ba2d2d

3 years agocopy xhv_rand and xhv_last_rand in threads clone
David Mitchell [Fri, 28 Feb 2014 14:37:13 +0000 (14:37 +0000)] 
copy xhv_rand and xhv_last_rand in threads clone

valgrind complains about these fields being uninitialised when cloned into a
new thread, because they aren't copied. It's fairly harmless, since these
fields are just used to perturb hash key iteration; but for completeness,
clone these fields too.


3 years agoperldelta for 2c60386e93
Tony Cook [Wed, 16 Apr 2014 01:43:01 +0000 (11:43 +1000)] 
perldelta for 2c60386e93

3 years ago[perl #119949] Stop undef *_, goto &sub from crashing
Father Chrysostomos [Sun, 19 Jan 2014 03:16:55 +0000 (19:16 -0800)] 
[perl #119949] Stop undef *_, goto &sub from crashing

Commit 049bd5ffd62b fixed problems with the wrong @_ being visible
after *_ modification followed by goto.  In so doing, it made it
possible for a null to be placed at the start of the target sub’s
pad, because it was not checking that the array it got from PL_defgv
was actually non-null.  Simply adding the check makes everything work.


3 years agoperl5182delta typo fixes
Smylers [Wed, 2 Apr 2014 16:06:09 +0000 (17:06 +0100)] 
perl5182delta typo fixes

Escaping fix.

Missing full stop added.

(cherry picked from commit 2e061f0fd1e8ed8ce1879ecdfc2e9f7e9ce3b72b)

3 years agoRT #119125: fix two issues with/[#]/x
David Mitchell [Tue, 18 Feb 2014 18:29:14 +0000 (18:29 +0000)] 
RT #119125: fix two issues with/[#]/x

(This is a maint-specific patch, not a cherry-pick from blead)

A hash within a character class in an expanded pattern is an odd beast.
It is handled twice, first by the perl toker, which is looking for
things like embedded variables that need interpolating, and second by the
regex parser. The toker only has limited knowledge of regex syntax,
and struggles to work out for things like /#$foo/x and /[#$foo]/x,
whether that's a regex comment and so whether '$foo' is part of the
comment string or a variable to be interpolated.

Up until 5.18.0 inclusive it got very confused when the '#' was within a
character class, and usually got it wrong. 5.18.0 also introduced the
additional complication that (?{}) code-blocks were now normally handled
by the perl toker rather than by the regex parser. A side-effect of this
was that if for any reason the toker didn't spot a code block (because it
erroneously thought it was part of regex comment for example), then the
literal code block text would be passed through uncompiled to the regex
parser, which would then refuse to compile unless "use re eval" was in

Al these problems have been fixed in blead. However, the fixes couldn't be
fully back-ported to maint, since there was a fair bit of code on CPAN
that would (erroneously) do things like /[#$^]/ which the author expected
to match one three special characters, and indeed does on on older perls.
On bleed however, this (correctly) expands to /[#STDOUT_TOP]/ (based on
what $^ is currently set to). So we decided to keep the old (broken)
behaviour on maint.

These fixes and half-fixes were included in 5.18.2. However, it turns
out that 5.18.2 still has a couple of issues, one of which is a regression
from 5.16.x. The table below shows the behaviours of certain regex
constructs under various flavours of perl. "5.18.3" represents the changes
included in this commit, and the entries marked "*******" represent
changes in behaviour since 5.18.2 (i.e. they are what this commit fixes).


    5.16.3 - $b not expanded
    5.18.0 - $b not expanded
    5.18.2 - $b not expanded - keep bug for backwards compatibility
    5.18.3 - $b not expanded - keep bug for backwards compatibility
    blead  - $b expanded


    5.16.3 - $c not expanded
    5.18.0 - $c not expanded
    5.18.2 - $c not expanded
    5.18.3 - $c expanded *******
    blead  - $c expanded

(?{})/x   # i.e. this pattern includes a literal newline

    5.16.3 - re eval not needed
    5.18.0 - re eval needed
    5.18.1 - re eval needed
    5.18.2 - re eval needed
    5.18.3 - re eval not needed *******
    blead  - re eval not needed

3 years agonote that the ~~ operator is experimental
Ricardo Signes [Sat, 22 Feb 2014 03:25:19 +0000 (22:25 -0500)] 
note that the ~~ operator is experimental

3 years agoperldelta for 538acd8d5b
Tony Cook [Mon, 13 Jan 2014 00:56:11 +0000 (11:56 +1100)] 
perldelta for 538acd8d5b

3 years agoCrash in tab completion with Term::ReadLine::Gnu.
Shlomi Fish [Thu, 19 Dec 2013 11:06:42 +0000 (13:06 +0200)] 
Crash in tab completion with Term::ReadLine::Gnu.

Perhaps it also affects Term::ReadLine::Perl / Term::ReadLine::Perl5 .
I still need to test with PadWalker installed. No tests were added, but
it passes all existing tests.


3 years agocorrect a Pod warning in the new perldelta template
Ricardo Signes [Mon, 13 Jan 2014 00:18:40 +0000 (19:18 -0500)] 
correct a Pod warning in the new perldelta template

3 years agoadd new stub perldelta for 5.18.3
Ricardo Signes [Mon, 13 Jan 2014 00:05:54 +0000 (19:05 -0500)] 
add new stub perldelta for 5.18.3

3 years agofix typo in perldelta
Ricardo Signes [Tue, 7 Jan 2014 16:35:00 +0000 (11:35 -0500)] 
fix typo in perldelta

3 years agocorrect release date for v5.18.2
Ricardo Signes [Tue, 7 Jan 2014 13:02:21 +0000 (08:02 -0500)] 
correct release date for v5.18.2

3 years agoUpdate META files v5.18.2
Ricardo Signes [Mon, 6 Jan 2014 23:13:39 +0000 (18:13 -0500)] 
Update META files

3 years agodisarm the release candidate marker
Ricardo Signes [Mon, 6 Jan 2014 22:47:49 +0000 (17:47 -0500)] 
disarm the release candidate marker

3 years agoadd haarg to AUTHORS v5.18.2-RC4
Ricardo Signes [Sat, 21 Dec 2013 23:25:54 +0000 (18:25 -0500)] 
add haarg to AUTHORS

3 years agoskip RC tags when checking versions diffs
Graham Knop [Sat, 21 Dec 2013 23:08:12 +0000 (18:08 -0500)] 
skip RC tags when checking versions diffs

3 years agobump to RC4
Ricardo Signes [Sat, 21 Dec 2013 21:12:36 +0000 (16:12 -0500)] 
bump to RC4

3 years agoremove a now-fixed podcheck known problem
Ricardo Signes [Sat, 21 Dec 2013 20:51:38 +0000 (15:51 -0500)] 
remove a now-fixed podcheck known problem

3 years agoperldelta for the rest of the changes since RC3
Ricardo Signes [Sat, 21 Dec 2013 20:38:07 +0000 (15:38 -0500)] 
perldelta for the rest of the changes since RC3

3 years agoupdate CoreList for B::Concise update
Ricardo Signes [Sat, 21 Dec 2013 20:37:49 +0000 (15:37 -0500)] 
update CoreList for B::Concise update

3 years agobump version on B::Concise
Ricardo Signes [Sat, 21 Dec 2013 20:32:09 +0000 (15:32 -0500)] 
bump version on B::Concise

3 years agoUpdate README copyright to 2013
Smylers [Fri, 6 Sep 2013 05:02:41 +0000 (06:02 +0100)] 
Update README copyright to 2013

For RT #119625.

(cherry picked from commit a271a376b9ff839eed6d1db3181e47e01d846591)

3 years agoupdate the super quick patch guide
Ricardo Signes [Fri, 20 Dec 2013 17:00:57 +0000 (12:00 -0500)] 
update the super quick patch guide

This is an import of the blead perlhack.pod from blead,
with changes made by Smylers <> and
detailed in [perl #119599].

3 years agoRestore perlrepository.pod in stub form
Smylers [Tue, 3 Sep 2013 13:52:12 +0000 (14:52 +0100)] 
Restore perlrepository.pod in stub form

Give Perl doc sites a sane ‘latest’ version to display, directing readers
to current information, rather than showing the Perl 5.12 version in

And help anybody typing man perlrepository find where the docs have moved

Suggested by Father Chrysostomos in:

(cherry picked from commit 5edbc4ffd619bf985c0d95ab3981022eea5bcc99)

3 years agoFix segfault in filehandle duplication
Leon Timmermans [Sat, 7 Sep 2013 06:58:18 +0000 (08:58 +0200)] 
Fix segfault in filehandle duplication

Previously PerlIOBase_dup didn't check if pushing the new layer succeeded
before (optionally) setting the utf8 flag. This could cause

(cherry picked from commit df8c7dee25da69fc88678b8949166e08fb686037)

3 years agoFix buffer overflow with overlong identifiers
Father Chrysostomos [Mon, 9 Sep 2013 07:35:38 +0000 (00:35 -0700)] 
Fix buffer overflow with overlong identifiers

This was introduced by commit 32833930e32dc in 5.17.10.

$  ./perl -Ilib -e Foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
Identifier too long at -e line 1.
Segmentation fault: 11

(That was an amusing use of macro parentheses for the while condition,
at least while it lasted.)

(cherry picked from commit eaaaaa32882752f15fc0db1c73a1adbe34b49642)


3 years agoDon’t assume targs are contiguous for ‘my $x; my $y’
Father Chrysostomos [Mon, 2 Sep 2013 15:29:50 +0000 (08:29 -0700)] 
Don’t assume targs are contiguous for ‘my $x; my $y’

In commit 18c931a3, the padrange optimisation was prevented from mak-
ing this assumption for ‘my ($x,$y)’, but the assumption was still
there in the code that combines multiple statements into one.

This would lead to assertion failures (or, as of ce0d59f, crashes
under non-debugging builds) if a keyword plugin declined to handle
the second ‘my’, but only after creating a padop.

This fixes a regression from 5.16 affecting Devel::CallParser under
threaded builds.

(cherry picked from commit 7601007bbbe673d3791a2d77c692a0c377835430)

3 years agoUnbreak Concise glob output
Father Chrysostomos [Sun, 25 Aug 2013 14:07:37 +0000 (07:07 -0700)] 
Unbreak Concise glob output

$ ./perl -MO=Concise -Ilib -le '; print <\n>'
8  <@> leave[1 ref] vKP/REFC ->(end)
1     <0> enter ->2
2     <;> nextstate(main 23 -e:1) v:{ ->3
7     <@> print vK ->8
3        <0> pushmark s ->4
6        <@> glob[t2] lK/1 ->7
-           <0> ex-pushmark s ->4
4           <$> const[PV "\n"] s ->5
Can't locate object method "NAME" via package "B::SPECIAL" at lib/B/ line 707.
CHECK failed--call queue aborted.

e88567f2acf38fe5ed90a88569b808e82cd3eca1 is the first bad commit
commit e88567f2acf38fe5ed90a88569b808e82cd3eca1
Author: Father Chrysostomos <>
Date:   Sun Nov 4 20:18:51 2012 -0800

    Stop the glob operator from leaking GVs

    It was adding GVs to the symbol table (via newGVgen), so they
    would never be freed, even after the op was freed, unless done so

    There is no reason for these GVs to be exposed.

That means $gv->STASH returns a B::SPECIAL.  B::Concise was not pre-
pared to handle that.

(cherry picked from commit 7b696247e72c0b92f1fcee2a830851021827aa4b)

3 years agoBackport Module-CoreList changes for v5.19.7 for sanity
Chris 'BinGOs' Williams [Sat, 21 Dec 2013 16:53:58 +0000 (16:53 +0000)] 
Backport Module-CoreList changes for v5.19.7 for sanity

3 years agoupdate patchlevel to RC3 v5.18.2-RC3
Ricardo Signes [Thu, 19 Dec 2013 14:08:18 +0000 (09:08 -0500)] 
update patchlevel to RC3

3 years agoupdate tentative release date in corelist
Ricardo Signes [Thu, 19 Dec 2013 14:08:03 +0000 (09:08 -0500)] 
update tentative release date in corelist

3 years agoupdate tentative release date in perlhist
Ricardo Signes [Thu, 19 Dec 2013 14:07:53 +0000 (09:07 -0500)] 
update tentative release date in perlhist

3 years agoperldelta for 18ca6dc3
Ricardo Signes [Thu, 19 Dec 2013 14:04:07 +0000 (09:04 -0500)] 
perldelta for 18ca6dc3

3 years agoUnbreak -bareword under strict+integer
Father Chrysostomos [Tue, 22 Oct 2013 12:36:38 +0000 (05:36 -0700)] 
Unbreak -bareword under strict+integer

Commit 077da62ff9 was not supposed to change behaviour, but only
remove logic rendered unnecessary two commits earlier in 1c2b3fd6f10.

But the special stricture exception for negation was in the same func-
tion (S_op_integerize) which applied it to OP_NEGATE, but now needed
to apply it to OP_I_NEGATE, too.

(cherry picked from commit fcbc518d7ac7875b7f443e72caf15fd07ab023a6)

3 years agoadd perldelta for 947ba0f
Ricardo Signes [Thu, 19 Dec 2013 14:00:31 +0000 (09:00 -0500)] 
add perldelta for 947ba0f

3 years agoPATCH: [perl #120799] 5.18 regression with [:^ascii] and \x80-\xFF
Karl Williamson [Mon, 16 Dec 2013 17:59:36 +0000 (10:59 -0700)] 
PATCH: [perl #120799] 5.18 regression with [:^ascii] and \x80-\xFF

Posix classes generally match different sets of characters under /d
rules than otherwise.  This isn't true for [:ascii:], but the handling
for it is shared with the others, so it needs to use the same mechanism
to deal with that.  I forgot this in commit
bb9ee97444732c84b33c2f2432aa28e52e4651dc which created this regression.

Our tests for this only use regexes with a single element, and an
optimization added in 5.18 causes this bug to be bypassed.  These tests
should be enhanced to force both code paths, but not for this commit,
which should be suitable for a maintenance release.

(cherry picked from commit 46c10357a881cd92500e4ade81cbc8813e49e2cb)

3 years agoperldelta for cherry pick of 257dc59 v5.18.2-RC2
Ricardo Signes [Sat, 7 Dec 2013 02:28:04 +0000 (21:28 -0500)] 
perldelta for cherry pick of 257dc59

3 years agoupdate versions and dates for a second 5.18.2 RC
Ricardo Signes [Sat, 7 Dec 2013 02:14:28 +0000 (21:14 -0500)] 
update versions and dates for a second 5.18.2 RC

3 years ago[perl #120694] Fix ->SUPER::foo and AUTOLOAD
Father Chrysostomos [Thu, 5 Dec 2013 00:00:48 +0000 (16:00 -0800)] 
[perl #120694] Fix ->SUPER::foo and AUTOLOAD

Commit aae438050a20 (5.17.4) broke ->SUPER::foo with AUTOLOAD by look-
ing up AUTOLOAD from the current package, rather than the current
package’s superclass.

Instead of keeping track of whether it was doing a SUPER lookup via a
::SUPER prefix on the package name, that commit changed method lookup
to pass a GV_SUPER flag around (to fix another bug) and to pass the
current stash, rather than __PACKAGE__::SUPER.  But it did not update
gv_autoload_pvn to pass that flag through to gv_fetchmeth_pvn when
actually looking up the method.

(cherry picked from commit 257dc59d7b864a6cf0ccc9179de1f3f0a797f4e0)


3 years agoarm the "this is RC1" alert v5.18.2-RC1
Ricardo Signes [Mon, 2 Dec 2013 16:00:09 +0000 (11:00 -0500)] 
arm the "this is RC1" alert

3 years agocorelist: push back 5.18.2 release date
Ricardo Signes [Sun, 1 Dec 2013 13:53:29 +0000 (08:53 -0500)] 
corelist: push back 5.18.2 release date

3 years agopush back 5.18.2 release date
Ricardo Signes [Sun, 1 Dec 2013 13:53:19 +0000 (08:53 -0500)] 
push back 5.18.2 release date

3 years agoupdate perldelta for File::Glob version bump
Ricardo Signes [Sun, 1 Dec 2013 02:40:22 +0000 (21:40 -0500)] 
update perldelta for File::Glob version bump

3 years agobump File::Glob version for 5.18.2
Ricardo Signes [Sun, 1 Dec 2013 02:29:56 +0000 (21:29 -0500)] 
bump File::Glob version for 5.18.2

3 years agoFix ext/File-Glob/t/threads.t filenames for VMS.
Craig A. Berry [Wed, 2 Oct 2013 02:43:13 +0000 (21:43 -0500)] 
Fix ext/File-Glob/t/threads.t filenames for VMS.

As noted in

zero-length extensions always get a trailing dot on VMS, and the
easiest workaround is to always use an explicit extension.

(cherry picked from commit 43ed1b742e2b7be9184e1fb35c0f68d15b87feed)

3 years agoFile::Glob: Dup glob state in CLONE()
Brian Fraser [Sat, 21 Sep 2013 06:19:52 +0000 (03:19 -0300)] 
File::Glob: Dup glob state in CLONE()

This solves [perl #119897] and [perl #117823], and restores the
behavior of glob() in conjunction with threads of 5.14 and older.

Since 5.16, code that used glob() inside a thread had been
unintentionally sharing state between threads, which lead to things
like this crashing and failing assertions:

./perl -Ilib -Mthreads -e 'scalar glob("*"); threads->create(sub { glob("*") })->join();'

(cherry picked from commit facf34ef484d62d15b2da11ee03d01942a22ff15)

3 years ago[perl #114864] Make UNIVERSAL::DESTROY changes invalidate caches
Father Chrysostomos [Sun, 18 Aug 2013 06:58:47 +0000 (23:58 -0700)] 
[perl #114864] Make UNIVERSAL::DESTROY changes invalidate caches

Commit 8c34e50d inadvertently caused DESTROY caches not to be
reset when UNIVERSAL::DESTROY changes.  Normally, a change to
a method will cause mro_method_changed_in to be called on all
subclasses, but mro.c cheats for UNIVERSAL and just does
++PL_sub_generation.  So clearing the DESTROY cache explicitly
in mro_method_changed_in is clearly not enough.

(cherry picked from commit c716b3beb77406159d18fd52251821fee641f9fc)

3 years agoreparse compile-time /(?{})/ in right scope
David Mitchell [Tue, 6 Aug 2013 15:34:50 +0000 (16:34 +0100)] 
reparse compile-time /(?{})/ in right scope

When a compile-time regex like /...(?{ code-block }) .../
is compiled in the presence of constant and concat overloading,
this can cause (still at compile-time) for the pattern to be evaled and
re-compiled, in order to re-compile any code-blocks that got messed up
during the overloading and thus whose text no longer matches that which
the perl parser previously compiled.

When this happens, eval_sv() happens to be called when the perl parser is
still in compiling state; normally its called from running state.
This tickles an undiscovered bug in Perl_find_runcv_where(), which
finds the current cop sequence by looking at PL_curcop->cop_seq.
At compile time, we need to get it from PL_cop_seqmax instead.

(cherry picked from commit c3923c33af542d8764d5a1e4eb5d7b311f443b89)

3 years agoPATCH [perl #119713] Regex \8 and \9 after literals no longer work
Karl Williamson [Wed, 27 Nov 2013 03:43:44 +0000 (20:43 -0700)] 
PATCH [perl #119713] Regex \8 and \9 after literals no longer work

Commit 726ee55d introduced a regression that has been fixed in blead by
commit f1e1b256.  However the later commit changed some buggy behavior
into errors instead of warnings, and so is contraindicated in a
maintenance release.  This current commit attempts to fix the regression
without changing other behavior.  It includes the pat.t tests from f1e1b256.

3 years agoadd tentative 5.18.2 release date
Ricardo Signes [Fri, 22 Nov 2013 02:40:15 +0000 (21:40 -0500)] 
add tentative 5.18.2 release date

3 years agoFor SDBM_File, stop EU::MM from generating its default subdirs rule.
Nicholas Clark [Fri, 22 Nov 2013 16:43:52 +0000 (16:43 +0000)] 
For SDBM_File, stop EU::MM from generating its default subdirs rule.

The default subdirs rule creates a race condition with the rule that
Makefile.PL explicitly adds to generate libsdbm.a, which can cause parallel
makes to fail.

Signed-off-by: Chris 'BinGOs' Williams <>
3 years agoremove 5.19.7 tentative entries from corelist
Ricardo Signes [Thu, 21 Nov 2013 18:50:34 +0000 (13:50 -0500)] 
remove 5.19.7 tentative entries from corelist

3 years agoadd new CoreList tests to manifest
Ricardo Signes [Thu, 21 Nov 2013 03:42:15 +0000 (22:42 -0500)] 
add new CoreList tests to manifest

3 years agoadd the v5.18.2 changes to Module::CoreList
Ricardo Signes [Thu, 21 Nov 2013 03:27:13 +0000 (22:27 -0500)] 
add the v5.18.2 changes to Module::CoreList

3 years agoimport Module-CoreList from blead
Ricardo Signes [Thu, 21 Nov 2013 03:22:11 +0000 (22:22 -0500)] 
import Module-CoreList from blead

3 years agoupdate perldelta for 5.18.2
Ricardo Signes [Thu, 21 Nov 2013 03:18:10 +0000 (22:18 -0500)] 
update perldelta for 5.18.2

3 years agobump version to v5.18.2
Ricardo Signes [Thu, 21 Nov 2013 01:58:25 +0000 (20:58 -0500)] 
bump version to v5.18.2

3 years update perl version where perf fixed
David Mitchell [Wed, 24 Jul 2013 13:18:22 +0000 (14:18 +0100)] update perl version where perf fixed

It still said that the performance of $`, $&, $' was fixed in 5.18.
Update that to 5.20, since COW wasn't enabled by default in 5.18.


3 years agoDisable new //p tests
David Mitchell [Tue, 30 Jul 2013 19:14:37 +0000 (20:14 +0100)] 
Disable new //p tests

The previous commit fixed a regression in 5.18.0:

    my $pat = qr/a/;
    'aaaa' =~ /$pat/gp or die;
    print "MATCH=[${^MATCH}]\n";

which printed 'a' in 5.16.0, and undef in 5.18.0.
5.18.0 only broke the /g behaviour; the non-/g variant was already broken
and the previous commit didn't fix that for maint.

The new tests are testing for the non-/g variant, which still fail, so
disable these tests.

(Getting it to capture under non-/g works in 5.19.2 due to a major
reorganisation of the pp_match/pp_subst/regexec() code, which isn't
suitable for backporting to maint-5.18.)

3 years agoRT #118213: handle $r=qr/.../; /$r/p properly
David Mitchell [Tue, 30 Jul 2013 15:16:35 +0000 (16:16 +0100)] 
RT #118213: handle $r=qr/.../; /$r/p properly

(cherry-picked from 5b0e71e9d506. Some of the new tests are unsuitable for
5.18.x and fail with this commit; they'll be disabled in the next commit)

In the case where a qr// regex is directly used by PMOP (rather than being
interpolated with some other stuff and a new regex created, such as
/a$r/p), then the PMf_KEEPCOPY flag will be set on the PMOP, but the
corresponding RXf_PMf_KEEPCOPY flag *won't* be set on the regex.

Since most of the regex handling for copying the string and extracting out
${^PREMATCH} etc is done based on the RXf_PMf_KEEPCOPY flag in the regex,
this is a bit of a problem.

Prior to 5.18.0 this wasn't so noticeable, since various other bugs around
//p handling meant that ${$PREMATCH} etc often accidentally got set
anyway. 5.18.0 fixed these bugs, and so as a side-effect, exposed the
PMOP verses regex flag issue. In particular, this stopped working in

    my $pat = qr/a/;
    'aaaa' =~ /$pat/gp or die;
    print "MATCH=[${^MATCH}]\n";

(prints 'a' in 5.16.0, undef in 5.18.0).
The presence /g caused the engine to copy the string anyway by luck.

We can't just set the RXf_PMf_KEEPCOPY flag on the regex if we see the
PMf_KEEPCOPY flag on the PMOP, otherwise stuff like this will be wrong:

    $r = qr/..../;
    /$r/p;  # set RXf_PMf_KEEPCOPY on $r
    /$r/; # does a /p match by mistake

Since for 5.19.x onwards COW is enabled by default (and cheap copies are
always made regardless of /p), then this fix is mainly for PERL_NO_COW
builds and for backporting to 5.18.x. (Although it still applies to
strings that can't be COWed for whatever reason).

Since we can't set a flag in the rx, we fix this by:

1) when calling the regex engine (which may attempt to copy part or all of
the capture string), make sure we pass REXEC_COPY_STR, but neither of
REXEC_COPY_SKIP_PRE, REXEC_COPY_SKIP_POST when we call regexec() from
pp_match or pp_subst when the corresponding PMOP has PMf_KEEPCOPY set.

2) in Perl_reg_numbered_buff_fetch() etc, check for PMf_KEEPCOPY in
PL_curpm as well as for RXf_PMf_KEEPCOPY in the current rx before deciding
whether to process ${^PREMATCH} etc.

As well as adding new tests to t/re/reg_pmod.t, I also changed the
string to be matched against from being '12...' to '012...', to ensure that
the lengths of ${^PREMATCH}, ${^MATCH}, ${^POSTMATCH} would all be