This is a live mirror of the Perl 5 development currently hosted at
12 years agoperlop: /o update
Karl Williamson [Fri, 15 Apr 2011 17:49:08 +0000 (11:49 -0600)]
perlop: /o update

12 years agoperllocale: Mention /l
Karl Williamson [Tue, 19 Apr 2011 15:19:33 +0000 (09:19 -0600)]
perllocale: Mention /l

Also the possibility of an undefined initial locale

12 years agoperldelta: Fix remaining confusing double double quotes
Karl Williamson [Tue, 19 Apr 2011 14:35:09 +0000 (08:35 -0600)]
perldelta: Fix remaining confusing double double quotes

C<foo"bar"> will translate into "foo"bar"" on some devices, which is
confusing.  Change the remaining ones to C<foo'bar'>

12 years agoperldelta encoding error spotted by tchrist
Jesse Vincent [Tue, 19 Apr 2011 14:54:37 +0000 (00:54 +1000)]
perldelta encoding error spotted by tchrist

12 years agoBump patchlevel to RC1
Jesse Vincent [Tue, 19 Apr 2011 14:40:20 +0000 (00:40 +1000)]
Bump patchlevel to RC1

12 years agoUpdate to Known Problems, removing several previously-known problems
Jesse Vincent [Tue, 19 Apr 2011 14:22:54 +0000 (00:22 +1000)]
Update to Known Problems, removing several previously-known problems
I've verified as fixed.

12 years agoReflowing text
Jesse Vincent [Tue, 19 Apr 2011 14:22:29 +0000 (00:22 +1000)]
Reflowing text

12 years agoIlmari pointed out that I incorrectly marked up some perl function()
Jesse Vincent [Tue, 19 Apr 2011 14:08:03 +0000 (00:08 +1000)]
Ilmari pointed out that I incorrectly marked up some perl function()
statements as C<function()>

12 years agoUpdate the documentation for rand() to note that it's not
Jesse Vincent [Tue, 19 Apr 2011 13:53:07 +0000 (23:53 +1000)]
Update the documentation for rand() to note that it's not
cryptographically secure due to concerns that end-users are unaware of
this and use it in situations where security depends on the strength of
the randomness generated.

I'd have been happier getting this patch in earlier in the cycle.
We'd hoped to replace the RNG, but that didn't happen in time, so this
doc update is the "better, still not good" fallback.

12 years agoUpdate Module::CoreList for 5.14.0
Jesse Vincent [Tue, 19 Apr 2011 13:19:30 +0000 (23:19 +1000)]
Update Module::CoreList for 5.14.0

12 years agoAdd 5.14.0RC1 and 5.14.0 (hopeful) date to perlhist
Jesse Vincent [Tue, 19 Apr 2011 13:08:37 +0000 (23:08 +1000)]
Add 5.14.0RC1 and 5.14.0 (hopeful) date to perlhist

12 years agoStarted to flesh out the AUTHORS section of perldelta
Jesse Vincent [Tue, 19 Apr 2011 13:06:37 +0000 (23:06 +1000)]
Started to flesh out the AUTHORS section of perldelta

12 years agodispatch signals when leaving an eval
David Mitchell [Tue, 19 Apr 2011 13:17:12 +0000 (14:17 +0100)]
dispatch signals when leaving an eval

Currently PERL_ASYNC_CHECK is only called during scope exit in pp_leavetry
and pp_levaeeval. This means that if the signal handler calls die, the
eval won't catch it.

This broke Sys::AlarmCall's test suite, which was doing the equivalent of

    $SIG{ALRM} = sub { die };
    eval {
select(undef, undef, undef, 10);
    # expect the die to get caught and $@ set here.

Because the select was the last statement in the block, PERL_ASYNC_CHECK
wasn't called next until the leave_scope at the end of leavetry.
See RT #88774.

The simple fix is to add a PERL_ASYNC_CHECK at the top of
leavetry and leaveeval.

12 years agoMissing bug number in d12b49d
Father Chrysostomos [Tue, 19 Apr 2011 13:04:36 +0000 (06:04 -0700)]
Missing bug number in d12b49d

12 years agoCorrect typos in 66b4c19
Father Chrysostomos [Tue, 19 Apr 2011 12:48:01 +0000 (05:48 -0700)]
Correct typos in 66b4c19

12 years agoporting/cmp_version.t: skip threads 1.83
David Mitchell [Tue, 19 Apr 2011 11:03:05 +0000 (12:03 +0100)]
porting/cmp_version.t: skip threads 1.83

The threads version for blead was bumped for the 5.13.11 release,
but not all version numbers were bumped, so the '1.83' in 5.14.0
will be marginally different (1 line of text) than in the 5.13.11 release.

12 years agofix blurb at top of t/porting/cmp_version.t
David Mitchell [Tue, 19 Apr 2011 11:01:22 +0000 (12:01 +0100)]
fix blurb at top of t/porting/cmp_version.t

12 years agot/porting/cmp_version.t: add version skip facility
David Mitchell [Tue, 19 Apr 2011 10:58:55 +0000 (11:58 +0100)]
t/porting/cmp_version.t: add version skip facility

Allow it to skip failing for particular versions of particular

12 years agoRemoved a note about Test::Harness that was obsoleted by the release of
Jesse Vincent [Tue, 19 Apr 2011 08:44:12 +0000 (18:44 +1000)]
Removed a note about Test::Harness that was obsoleted by the release of
Test::Harness 3.23

12 years agoI think I've now got all the funny quote business taken care of.
Tom Christiansen [Tue, 19 Apr 2011 08:18:10 +0000 (10:18 +0200)]
I think I've now got all the funny quote business taken care of.
I've pod-, spell-, and dupword-checked this.

12 years agoUpdate perldelta for push/keys changes
Father Chrysostomos [Tue, 19 Apr 2011 05:48:20 +0000 (22:48 -0700)]
Update perldelta for push/keys changes

• Mark it as experimental
• Remove paragraphs that no longer apply

12 years agoUpdate perlfunc for [perl #80626]
Father Chrysostomos [Tue, 19 Apr 2011 05:42:56 +0000 (22:42 -0700)]
Update perlfunc for [perl #80626]

12 years agoAdd a test for keys $tied
Father Chrysostomos [Tue, 19 Apr 2011 05:26:52 +0000 (22:26 -0700)]
Add a test for keys $tied

This was ‘inadvertently’ fixed with commit 7ac5715

12 years agoMake push, etc., work on tied scalars
Father Chrysostomos [Tue, 19 Apr 2011 05:25:30 +0000 (22:25 -0700)]
Make push, etc., work on tied scalars

I broke this with commit d4fc441

12 years agoupdate threads::shared version in perldelta.
Jesse Vincent [Tue, 19 Apr 2011 05:31:02 +0000 (15:31 +1000)]
update threads::shared version in perldelta.

12 years agoUpgrade to threads 1.83
Jerry D. Hedden [Sun, 17 Apr 2011 23:41:03 +0000 (19:41 -0400)]
Upgrade to threads 1.83

12 years agoUpgrade to threads::shared 1.37
Jerry D. Hedden [Sun, 17 Apr 2011 23:44:29 +0000 (19:44 -0400)]
Upgrade to threads::shared 1.37

12 years agoperllocale: Corrections
Karl Williamson [Tue, 19 Apr 2011 04:41:40 +0000 (22:41 -0600)]
perllocale: Corrections

This pod misled some people, including this author, as to the initial
state of locales.  This fleshes out some details, and changes some

12 years agoperlrecharclass: Nits
Karl Williamson [Tue, 19 Apr 2011 04:26:32 +0000 (22:26 -0600)]
perlrecharclass: Nits

12 years agoPerldelta patches from Ilmari and Abigail
Jesse Vincent [Tue, 19 Apr 2011 04:52:17 +0000 (14:52 +1000)]
Perldelta patches from Ilmari and Abigail

12 years agoFix a few pod nits
Jesse Vincent [Tue, 19 Apr 2011 04:29:51 +0000 (14:29 +1000)]
Fix a few pod nits

12 years agoMake keys $scalar an lvalue
Father Chrysostomos [Tue, 19 Apr 2011 04:29:11 +0000 (21:29 -0700)]
Make keys $scalar an lvalue

This does a run-time check to see whether $scalar is a hash ref, and
dies if it is not.

This is to keep keys \@_ consistent with keys @_.

I cannot simply use OPf_MOD, since that indicates *potential* lvalue
context (including subroutine args).

So, instead, I take advantage of the fact that OPf_SPECIAL is always
set on the LHS of an assignment (usually to indicate that local()
should not erase the value).

12 years agoperlop: Update for some 5.14 changes
Karl Williamson [Tue, 19 Apr 2011 03:42:18 +0000 (21:42 -0600)]
perlop: Update for some 5.14 changes

12 years agoperluniintro: Update for 5.14 changes
Karl Williamson [Tue, 19 Apr 2011 03:35:33 +0000 (21:35 -0600)]
perluniintro: Update for 5.14 changes

12 years agoperlunicode.pod: Nits
Karl Williamson [Tue, 19 Apr 2011 03:28:07 +0000 (21:28 -0600)]
perlunicode.pod: Nits

12 years agoperlre: Remove false statement about locales
Karl Williamson [Tue, 19 Apr 2011 03:21:39 +0000 (21:21 -0600)]
perlre: Remove false statement about locales

12 years agoVMS section clean-up for perldelta.
Craig A. Berry [Tue, 19 Apr 2011 02:51:08 +0000 (21:51 -0500)]
VMS section clean-up for perldelta.

12 years agoperldelta editing pass
Tom Christiansen [Tue, 19 Apr 2011 02:30:35 +0000 (12:30 +1000)]
perldelta editing pass

12 years agoRemove ambigous warning from perldiag
Father Chrysostomos [Tue, 19 Apr 2011 00:50:05 +0000 (17:50 -0700)]
Remove ambigous warning from perldiag

This no longer happens as of commit 7ac5715.

12 years agoMake keys/value/each $scalar accept only unblessed refs
Father Chrysostomos [Tue, 19 Apr 2011 00:44:01 +0000 (17:44 -0700)]
Make keys/value/each $scalar accept only unblessed refs

See ticket #80626.

12 years agocollapse plibpth to one line and remove trailing /
Andy Dougherty [Mon, 18 Apr 2011 17:42:22 +0000 (13:42 -0400)]
collapse plibpth to one line and remove trailing /

The recent change to hints/,
set the plibpth variable.
It was supposed to set all entries on a single line, but it didn't.
Do it now, and also remove trailing /'s.

(The collapsing is a more robust version of the previous commit,
since reverted, that davem wrote independently).

12 years agoRevert "collapse plibpth to one line"
David Mitchell [Mon, 18 Apr 2011 22:53:42 +0000 (23:53 +0100)]
Revert "collapse plibpth to one line"

This reverts commit 55e4a474ad63535e486bd657f45b5339709cbcd3.

In improved version is coming next...

12 years agocollapse plibpth to one line
David Mitchell [Mon, 18 Apr 2011 22:43:27 +0000 (23:43 +0100)]
collapse plibpth to one line

The recent change to hints/,
set the plibpth variable.
It was supposed to set all entries on a single line, but it didn't.
Do it now,

12 years agoconfigpm: handle multi-line key='value\n...'
David Mitchell [Mon, 18 Apr 2011 18:29:52 +0000 (19:29 +0100)]
configpm: handle multi-line key='value\n...'

There is old code in configpm to handle mulit-line entries in
along the lines of


which was broken, and produced
    Use of uninitialized value $1
warnings, and messed up the content of lib/

We probably normally don't have multi-line entries, which is why no-one
noticed it before, but 40f026236b9959b7ad3260fedc6c66cd30bb7abc
has started generating the entry above.

12 years agofix for pp.c under win32 etc
David Mitchell [Mon, 18 Apr 2011 17:35:13 +0000 (18:35 +0100)]
fix for pp.c under win32 etc

Commit d4fc4415aac96132fac5b1e43e73bcba33a41b79 added two definitions
of the DEREF_PLAIN_ARRAY array; the non-GCC one had syntax errors

12 years agoMinor fixes to perldelta.pod
Richard Möhn [Mon, 18 Apr 2011 15:52:08 +0000 (15:52 +0000)]
Minor fixes to perldelta.pod

Reviewed section "Core Enhancements".

Signed-off-by: Ævar Arnfjörð Bjarmason <>
12 years agoConsistent use of 'e.g.,' in perldelta.pod
Richard Möhn [Mon, 18 Apr 2011 14:42:00 +0000 (16:42 +0200)]
Consistent use of 'e.g.,' in perldelta.pod

There were some places, where 'e.g.' was used without a comma. I made it

Signed-off-by: Ævar Arnfjörð Bjarmason <>
12 years agoConsistent use of two spaces after full stop in perldelta.pod
Richard Möhn [Mon, 18 Apr 2011 13:48:45 +0000 (15:48 +0200)]
Consistent use of two spaces after full stop in perldelta.pod

There were more occurences of two spaces after full stops, so I made
those two that were only one.

Signed-off-by: Ævar Arnfjörð Bjarmason <>
12 years agoperldelta: typos
Father Chrysostomos [Mon, 18 Apr 2011 15:44:00 +0000 (08:44 -0700)]
perldelta: typos

12 years agopod/perldelta.pod: POSIX should be in all-caps (not "Posix")
Ævar Arnfjörð Bjarmason [Mon, 18 Apr 2011 15:26:04 +0000 (15:26 +0000)]
pod/perldelta.pod: POSIX should be in all-caps (not "Posix")

12 years agopod/perldelta.pod: clarify "Use of qw(...) as parentheses" deprecation
Ævar Arnfjörð Bjarmason [Mon, 18 Apr 2011 15:20:48 +0000 (15:20 +0000)]
pod/perldelta.pod: clarify "Use of qw(...) as parentheses" deprecation

Clarify the note about qw(...) as parentheses deprecation. Without
being clarified this could be misunderstood to deprecate most uses of

This came up on the Git mailing list[1] after I submitted a patch[2]
to fix this issue in Gitweb[3].


12 years agopod/perldelta.pod: link to pertinent POD
Ævar Arnfjörð Bjarmason [Mon, 18 Apr 2011 14:56:02 +0000 (14:56 +0000)]
pod/perldelta.pod: link to pertinent POD

Instead of just linking to L<feature> link to the "the
'unicode_strings' feature" section.

12 years agoMake push/shift $scalar accept only unblessed aryrefs
Father Chrysostomos [Mon, 18 Apr 2011 13:34:01 +0000 (06:34 -0700)]
Make push/shift $scalar accept only unblessed aryrefs

See ticket #80626.

12 years agoperldelta for d12b49d (Unicode constants)
Father Chrysostomos [Mon, 18 Apr 2011 13:27:21 +0000 (06:27 -0700)]
perldelta for d12b49d (Unicode constants)

12 years agocheck --whole-archive is supported (in cc.cbu) before using it
Tony Cook [Sat, 9 Apr 2011 00:45:37 +0000 (10:45 +1000)]
check --whole-archive is supported (in cc.cbu) before using it

netbsd for pre 4.6 gcc requires --whole-archive to build shared
libraries, but this is rejected and not required in 4.6.0.

12 years agoRevert "check --whole-archive is supported before using it"
Tony Cook [Mon, 18 Apr 2011 09:40:50 +0000 (19:40 +1000)]
Revert "check --whole-archive is supported before using it"

This reverts commit 673d8593b7ef274dadbfff97fd641e3c563fc716.

I meant to apply the cc.cbu version of this patch.

12 years agoLots of perldelta editing. Still miles to go before we sleep
Jesse Vincent [Mon, 18 Apr 2011 08:16:02 +0000 (18:16 +1000)]
Lots of perldelta editing. Still miles to go before we sleep

12 years agoMake Unicode constants under use utf8 work again
Father Chrysostomos [Sun, 17 Apr 2011 23:09:36 +0000 (16:09 -0700)]
Make Unicode constants under use utf8 work again

Because sub lookup (and glob lookup in general) ignores the UTF8
flag, such subs are actually ‘correctly’ stored under the utf8-encoded
equivalent of the name, and not the name itself.

12 years agoTODO some of the new sigdispatch tests on VMS.
Craig A. Berry [Mon, 18 Apr 2011 03:43:45 +0000 (22:43 -0500)]
TODO some of the new sigdispatch tests on VMS.

Needs more signal foo than I can muster at the moment to figure out
what the intent is here and why it's not working.

12 years agoAs part of their switch to a multi-arch library layout,
Andy Dougherty [Sun, 17 Apr 2011 08:19:57 +0000 (18:19 +1000)]
As part of their switch to a multi-arch library layout,
Ubuntu 11.04 (and later, presumably) doesn't keep most libraries
(such as -lm) in /lib or /usr/lib.  So we have to ask gcc to tell us
where to look.  We don't want gcc's own libraries, however, so we
filter those out.

This could be conditional on Ubuntu, but other distributions have
announced their intent follow suit, and this scheme seems to work even
on rather old gcc's.  This unconditionally uses gcc because even if the
user is using another compiler, we still need to find the math library
and friends, and I don't know how other compilers will cope with that
situation.  Still, as an escape hatch, allow Configure command line
overrides to plibpth to bypass this check.

12 years agoperlre: Nits in recently added text
Karl Williamson [Sun, 17 Apr 2011 02:04:49 +0000 (20:04 -0600)]
perlre: Nits in recently added text

12 years agoNits in perlunicode
Tom Christiansen [Sat, 16 Apr 2011 14:33:56 +0000 (08:33 -0600)]
Nits in perlunicode

12 years agoFollowup to 088225f/[perl #88132]: packages ending with :
Father Chrysostomos [Sat, 16 Apr 2011 05:33:31 +0000 (22:33 -0700)]
Followup to 088225f/[perl #88132]: packages ending with :

Commit 088225f was not sufficient to fix the regression. It still
exists for packages whose names end with a single colon.

I discovered this when trying to determine why RDF::Trine was crashing
with 5.14-to-be.

In trying to write tests for it, I ended up triggering the same crash
that RDF::Trine is having, but in a different way.

In the end, it was easier to fix about three or four bugs (depending
on how you count them), rather than try to fix only the regression
that #88132 deals with (isa caches not updating when packages ending
with colons are aliased), as they are all intertwined.

The changes are as follows:

Concerning the if (!(flags & ~GV_NOADD_MASK)...) statement in
gv_stashpvn: Normally, gv_fetchpvn_flags (which it calls and whose
retval is assigned to tmpgv) returns NULL if it has not been told
to add anything and if the gv requested looks like a stash gv (ends
with ::). If the number of colons is odd (foo:::), that code path is
bypassed, so gv_stashpvn returns a GV without a hash. So gv_stashpvn
tries to used that NULL hash and crashes. It should instead return
NULL, to be consistent with the two-colon case.

Blindly assigning a name to a stash does not work if the stash has
multiple effective names. A call to mro_package_moved is required as
well. So what gv_stashpvn was doing was insufficient.

The parts of the mro code that check for globs or stash elems that
contain stashes by looking for :: at the end of the name now take into
account that the name might consist of a single : instead.

12 years agoGive EU::CB 04-base.t an absolute path on VMS.
Craig A. Berry [Fri, 15 Apr 2011 21:31:42 +0000 (16:31 -0500)]
Give EU::CB 04-base.t an absolute path on VMS.

catfile() with an empty string as a first argument does *not*
produce an absolute path on VMS (and probably only does so by
accident elsewhere).  For purposes of the test, it seems that
any absolute path would do, so this could probably be done
portably, but on the eve of 5.14 let's make a separate code
path for VMS and leave everyone else as is for now.

12 years agoIPC::Open3 needs porting to work on VMS.
Craig A. Berry [Fri, 15 Apr 2011 21:20:48 +0000 (16:20 -0500)]
IPC::Open3 needs porting to work on VMS.

So skip the test for now.  Something like the Win32 mechanism
spawn_with_handles() may be workable but needs investigation.

12 years agoDon't copy all of %ENV in prereq.t.
Craig A. Berry [Sun, 3 Apr 2011 13:10:43 +0000 (08:10 -0500)]
Don't copy all of %ENV in prereq.t.

It's sufficient for purposes of enabling prerequisite warnings to
set a localized $ENV{PERL_CORE} to undef rather than making a local
copy of the entire %ENV hash.  This makes the test pass on VMS,
where copying %ENV in toto is not supported.

This fixes a smoke failure, so borrow it from upstream, where it's
already released as part of MM 6.57_10.  6.58 will contain an
additional tweak that works with Perl 5.6, but no need to worry
about that here.

12 years agoperlrebackslash: Slight edits
Karl Williamson [Fri, 15 Apr 2011 17:47:55 +0000 (11:47 -0600)]
perlrebackslash: Slight edits

12 years agoperlop: Slight edits
Karl Williamson [Fri, 15 Apr 2011 17:44:10 +0000 (11:44 -0600)]
perlop: Slight edits

12 years agoperlunicode: More 5.14 edits
Karl Williamson [Fri, 15 Apr 2011 17:19:40 +0000 (11:19 -0600)]
perlunicode: More 5.14 edits

12 years agoperlunitut: clarification
Karl Williamson [Fri, 15 Apr 2011 17:11:51 +0000 (11:11 -0600)]
perlunitut: clarification

12 years agoperluniprops: Linked to wrong pod; slight edits
Karl Williamson [Fri, 15 Apr 2011 15:53:21 +0000 (09:53 -0600)]
perluniprops: Linked to wrong pod; slight edits

12 years agoperlunicode: Edits for 5.14
Tom Christiansen [Thu, 14 Apr 2011 16:26:37 +0000 (10:26 -0600)]
perlunicode: Edits for 5.14

12 years agoIn the release guide, mention the AdvanceCOMP can compress gzip files better.
Nicholas Clark [Fri, 15 Apr 2011 12:38:29 +0000 (13:38 +0100)]
In the release guide, mention the AdvanceCOMP can compress gzip files better.

It's an option release managers (on *nix) might want to be aware of.

12 years agostop waithires.t failing under high load
David Mitchell [Fri, 15 Apr 2011 09:17:07 +0000 (10:17 +0100)]
stop waithires.t failing under high load

In threads::shared, the waithires.t test checks cond_timedwait() with
sub-second timeouts. If the newly-minted child doesn't manage to grab the
lock within 0.05s, the cond_timedwait() will timeout, and the child and
the test will hang, until eventually killed off by the watchdog.  This can
easily happen on a slow/loaded system.

We fix this by putting the cond_timedwait() in a retry loop, only giving
up after 10 seconds of repeated timeouts.

12 years agoperllocale: Clean up recent additions
Tom Christiansen [Thu, 14 Apr 2011 16:30:18 +0000 (10:30 -0600)]
perllocale: Clean up recent additions

12 years agoperldelta: 342c852 changed $re::VERSION
Father Chrysostomos [Thu, 14 Apr 2011 13:23:50 +0000 (06:23 -0700)]
perldelta: 342c852 changed $re::VERSION

12 years ago[perl #88486] IO::File does not always export SEEK*
Father Chrysostomos [Thu, 14 Apr 2011 13:19:07 +0000 (06:19 -0700)]
[perl #88486] IO::File does not always export SEEK*

Commit d963bf0 made perl set @IO::File::ISA automagically.

Commit 15e6cdd made filehandle methods load IO::File automagically.

Commit efc5c7c attempted to solve the problem that having IO::Handle
loaded causes IO::File to be bypassed, rendering 15e6cdd only
semi-effective (see [perl #87940]), by requiring IO::File inside

That commit ended up breaking several CPAN modules, because IO::File
adds @IO::Seekable::EXPORT to its own exports.

If IO::Seekable is loaded first (before IO::File), before setting up
its @EXPORT it loads IO::Handle, which loads IO::File, which tries to
load IO::Seekable, which is in %INC already, and which is hence wait-
ing for IO::File to load before it sets its own @EXPORT. So IO::File
sees @IO::Seekable::EXPORT empty.

Hence, every piece of code that tries to import SEEK_END from IO::File
will simply not get it if IO::Seekable is already loaded (explicitly
or, e.g., by File::Temp).

This commit hopefully fixes the breakage and the problem that efc5c7c
attempted to fix by loading IO::File only inside IO::Handle::new (the
only method that IO::File overrides).

12 years agoperldelta entries for 088225f
Father Chrysostomos [Thu, 14 Apr 2011 03:28:44 +0000 (20:28 -0700)]
perldelta entries for 088225f

12 years ago[perl #88420] BOM support on Windows broken in 5.13.11
Jan Dubois [Thu, 14 Apr 2011 00:02:39 +0000 (17:02 -0700)]
[perl #88420] BOM support on Windows broken in 5.13.11

When Perl reads the script in text mode, then the tell() position
on the script handle may include stripped carriage return characters.
Therefore the file position after reading the first line of the
script may be one larger than the length of the input buffer.

12 years ago[perl #88132] broken ISA lookup after aliasing packages ending with ::
Father Chrysostomos [Wed, 13 Apr 2011 16:48:39 +0000 (09:48 -0700)]
[perl #88132] broken ISA lookup after aliasing packages ending with ::

gv_fetchpvn_flags did not always assign a name to a return HV ending
with ::. This would result in code in various places skipping certain
‘stashes’ (in quotes because nameless HVs are technically not stashes)
because they were nameless when they should not have been.

So sometimes ISA caches would end up being out of date, as in the test
cases posted with [perl #88132] (and incorporated into this patch).

This commit fixes that by changing the parsing of glob names.

Formerly, a :: was not considered a package separator if it came imme-
diately after a ::. So foo:::: would become foo::/:: (with the final
:: considered a regular stash entry, not a ‘stash’ stash entry) and
foo:::::: would become foo::/:::/:.

Now a :: is always a package separator. So *foo::::bar is accessible
via $foo::{"::"}{bar} and *$foo:::::: via $foo::{"::"}{"::"}.

This happens to fix [perl #88134] as well.

12 years agoperldelta: Clarify entry
Karl Williamson [Wed, 13 Apr 2011 15:55:44 +0000 (09:55 -0600)]
perldelta: Clarify entry

12 years agoperlre.pod: Clarify
Karl Williamson [Wed, 13 Apr 2011 15:26:35 +0000 (09:26 -0600)]
perlre.pod: Clarify

Several confusions have arisen about how things work, and this
addresses them.

12 years agoperlunicode: Update for 5.14
Karl Williamson [Wed, 13 Apr 2011 01:43:12 +0000 (19:43 -0600)]
perlunicode: Update for 5.14

12 years agoperllocale: Update for 5.14
Karl Williamson [Wed, 13 Apr 2011 03:49:58 +0000 (21:49 -0600)]
perllocale: Update for 5.14

12 years agoIn testargs.t in Test::Harness, don't run a world-writable file.
Nicholas Clark [Tue, 12 Apr 2011 08:01:48 +0000 (09:01 +0100)]
In testargs.t in Test::Harness, don't run a world-writable file.

The test writes a file, then changes the mode, then executes it. The file needs
to be +x to be executable (on many platforms). The file will need to be +w to
be deletable on some platforms. But setting the file world writable just before
running it feels like a bad idea, given that the file's name is as predictable
as process IDs, as there's a race condition to break into the account running
perl's tests.

12 years agohandle freed backref array in global cleanup
David Mitchell [Wed, 13 Apr 2011 13:35:09 +0000 (14:35 +0100)]
handle freed backref array in global cleanup

[perl #88330]

If a thinggy is heavily leaked, so that it takes multiple passes through
Perl_sv_clean_all to get its refcount to zero, then if it has weak refs to
it, its backref array may get freed before it.  We already set the
refcount of the array to 2 to preserve it across one pass of
Perl_sv_clean_all, but I can't think of a way of protecting it more
generally (short of using a private array structure rather than an AV).

In the past, this caused a scary assertion failure.

Now instead, just skip if we're in global cleanup and the array is freed.
This isn't ideal, but its reasonably robust, as we don't reuse freed SVs
once in global cleanup (so the freed AV hangs around to be identified as

12 years agocheck --whole-archive is supported before using it
Tony Cook [Fri, 8 Apr 2011 14:05:24 +0000 (00:05 +1000)]
check --whole-archive is supported before using it

netbsd for pre 4.6 gcc requires --whole-archive to build shared
libraries, but this is rejected and not required in 4.6.0.

Simply changing the option to -Wl,--whole-archive works on gcc 4.6.0
but fails for the system cc on NetBSD 5.1/x64.

12 years agoperlrebackslash: Update for 5.14 changes
Karl Williamson [Wed, 13 Apr 2011 01:49:19 +0000 (19:49 -0600)]
perlrebackslash: Update for 5.14 changes

12 years agoperlretut: Update for 5.14 /a, /u
Karl Williamson [Thu, 31 Mar 2011 18:00:13 +0000 (12:00 -0600)]
perlretut: Update for 5.14 /a, /u

12 years agoperlrecharclass: Update for 5.14 changes
Karl Williamson [Fri, 1 Apr 2011 19:40:23 +0000 (13:40 -0600)]
perlrecharclass: Update for 5.14 changes

12 years agoperlre.pod: Update for 5.14
Karl Williamson [Mon, 11 Apr 2011 00:05:52 +0000 (18:05 -0600)]
perlre.pod: Update for 5.14

12 years agoreg_eval_scope.t: skip coring tests on all arches
David Mitchell [Tue, 12 Apr 2011 20:39:21 +0000 (21:39 +0100)]
reg_eval_scope.t: skip coring tests on all arches

Some TODO tests that were known to core dump are already skipped on
Windows on production releases. Extend this to all platforms,
to avoid scaring the punters with spurious 'Aborted' messages in the
test harness output.

12 years agoadd tests for $tied op= $tied
David Mitchell [Tue, 12 Apr 2011 20:22:46 +0000 (21:22 +0100)]
add tests for $tied op= $tied

The tests for C<$tied op $tied> didn't include the mutator
variants of the ops (e.g. +=).

12 years agoadd $tied ^ $tied test
David Mitchell [Tue, 12 Apr 2011 16:33:14 +0000 (17:33 +0100)]
add $tied ^ $tied test

when tests were added for C<$tied op $tied>, the '^' op was missed

12 years agoperlop: Update for 5.14 additions
Karl Williamson [Sat, 9 Apr 2011 22:05:09 +0000 (16:05 -0600)]
perlop: Update for 5.14 additions

12 years agoregcomp: Improve error message for (?-d:...)
Karl Williamson [Tue, 12 Apr 2011 17:50:06 +0000 (11:50 -0600)]
regcomp: Improve error message for (?-d:...)

As agreed, this improvement is going into 5.14.  A customized
message is output, instead of a generic one.

12 years agoPATCH: [perl #86972]: Tweak error messages
Karl Williamson [Tue, 12 Apr 2011 17:25:37 +0000 (11:25 -0600)]
PATCH: [perl #86972]: Tweak error messages

An earlier commit in this series changed some error messages.
I realized that it did not make sense really to use "/a" for the regex
modifier, when the message was for the infix form "(?a:", so this
just removes the slash.

12 years agoperldelta: Typo
Karl Williamson [Tue, 12 Apr 2011 17:18:36 +0000 (11:18 -0600)]
perldelta: Typo

12 years agoperlreapi: Update as little as possible for 5.14
Karl Williamson [Sat, 9 Apr 2011 22:33:07 +0000 (16:33 -0600)]
perlreapi: Update as little as possible for 5.14

This keeps the docs at parity with earlier Perls.

12 years agoFix eval.t under minitest, inadvertently broken by 0d804ff61f3a2df2
Nicholas Clark [Tue, 12 Apr 2011 14:00:51 +0000 (15:00 +0100)]
Fix eval.t under minitest, inadvertently broken by 0d804ff61f3a2df2

That change attempted to skip if use Devel::Peek failed with a skip message of
of $@. Unfortunately, in this situation, $@ has multiple lines, which is not
valid as a skip message. So instead skip if we're miniperl, or we haven't built
Devel::Peek, otherwise attempt to run the test.