David Mitchell [Wed, 18 May 2011 15:43:50 +0000 (16:43 +0100)]
buildtoc - fix a bug and add some comments
while(readdir) doesn't auto-assign to $_
Also, make the informative output clear that its telling you like of files
it will be processing, rather than that its actually processing it now.
David Mitchell [Wed, 18 May 2011 15:37:58 +0000 (16:37 +0100)]
Bump the perl version in various places for 5.15.0
David Mitchell [Wed, 18 May 2011 14:59:00 +0000 (15:59 +0100)]
update TOC for perl5150delta
David Mitchell [Wed, 18 May 2011 14:55:48 +0000 (15:55 +0100)]
create perldelta for 5.15.0
Josh ben Jore [Tue, 10 May 2011 16:47:16 +0000 (09:47 -0700)]
Amend the readline()+signals caveat
Jesse Vincent [Sat, 14 May 2011 18:18:53 +0000 (14:18 -0400)]
Remove RC3 marker.
Father Chrysostomos [Wed, 11 May 2011 13:27:08 +0000 (09:27 -0400)]
Make ‘require func()’ work with .pm abs path
As of commit
282b29ee485, pp_requires passes an SV to S_doopen_pm,
instead of char*/length pair.
That commit also used sv_mortalcopy() to copy the sv when trying out a
.pmc extension:
+ SV *const pmcsv = sv_mortalcopy(name);
When the path is absolute, the sv passed to S_doopen_pm is the very sv
that was passed to require. If it was returned from a (non-lvalue)
sub-routine, it will be marked TEMP, so the buffer gets stolen.
After the .pmc file is discovered to be nonexistent, S_doopen_pm then
uses its original sv to open the .pm file. But the buffer has been
stolen, so it’s trying to open undef, which fais.
In the mean time, pp_require still has a pointer to the stolen buffer,
which now has a .pmc extenion, it blithely reports that the .pmc file
cannot be found, not realising that its string has changed out from
under it. (Actually, if the file name were just the right length, it
could be reallocated and we could end up with a crash.)
This patch copies the sv more kindly.
Jesse Vincent [Wed, 11 May 2011 13:26:58 +0000 (09:26 -0400)]
RC3 bump
Jesse Vincent [Mon, 9 May 2011 15:31:27 +0000 (11:31 -0400)]
Remove the "RC2" marker in preparation for Wednesday's final release.
Tom Christiansen [Mon, 9 May 2011 02:42:54 +0000 (22:42 -0400)]
"fix bug; also prefix ?? matches with m due to 5.14 deprecation"
I also fixed a bug in the original. I'm always getting C<eof> vs C<eof()>
swapped in my brain, which is what had happened here. The old code didn't
do what it said it did because it contrary to the comments didn't reset at
each eof -- because it used the C<eof()> form which is all of ARGV rather
than bare C<eof> for the last file read, and thus each per-file component
of ARGV.
I am concerned about the two paragraphs previous to that, because they
use eof() and I am not perfectly clear that they should. But I left
them as is.
Jesse asked for "a lot of eyes", so if folks could please look at this
patch and see whether it looks ok, I'd appreciate it. I did test it
under blead, both with and without the prefixed m on the m?? matches,
which is how I discovered it was buggy with the C<eof()> not C<eof>.
--tom
Tom Christiansen [Wed, 4 May 2011 13:49:46 +0000 (09:49 -0400)]
Updates to perlfunc to explicitly mention some of 5.14's new features
somewhere other than perldelta.
Jesse Vincent [Tue, 3 May 2011 22:48:35 +0000 (18:48 -0400)]
It's not 2012. - spotted by jdb
Jesse Vincent [Tue, 3 May 2011 21:44:56 +0000 (17:44 -0400)]
typo fix spotted by tchrist
Jesse Vincent [Tue, 3 May 2011 21:20:16 +0000 (17:20 -0400)]
Bump Module::CoreList because the content changed since RC1 and we have
nice, zealous porting tests
Jesse Vincent [Thu, 28 Apr 2011 18:11:43 +0000 (02:11 +0800)]
RC1 -> RC2; push off the date of 5.14.0 until a week from tomorrow
Jesse Vincent [Tue, 3 May 2011 20:58:58 +0000 (16:58 -0400)]
Documentation for sprintf updates in Perl 5.14
Karl Williamson [Tue, 3 May 2011 20:08:43 +0000 (14:08 -0600)]
Doc changes for [perl #89750]
Karl Williamson [Tue, 3 May 2011 17:47:50 +0000 (11:47 -0600)]
regcomp.c: White space only
A previous commit added an 'if' around this code. This now indents
the block properly.
Karl Williamson [Tue, 3 May 2011 17:44:28 +0000 (11:44 -0600)]
PATCH: [perl #89750]: Unicode regex negated case-insensitivity
This patch causes inverted [bracketed] character classes to not handle
multi-character folds. The reason is that these can lead to very
counter-intuitive results (see bug discussion).
In an inverted character class, only single-char folds are now
generated. However the fold for \xDF=>ss is hard-coded in,
and it was too much trouble sending flags to the sub-sub routine that
does this, so another check is done at the point of storing the list of
multi-char folds. Since \xDF doesn't have a single char fold, this
works.
Karl Williamson [Tue, 3 May 2011 16:12:00 +0000 (10:12 -0600)]
utf8.c: Add _flags version of to_utf8_fold()
And also to_uni_fold().
The flag allows retrieving either simple or full folds.
The interface is subject to change, so these are marked experimental
and their names begin with underscore. The old versions are turned
into macros calling the new versions with the correct extra parameter.
Karl Williamson [Tue, 3 May 2011 15:52:49 +0000 (09:52 -0600)]
embed.fnc: Allow NULL arg to to_utf8_case()
Code within the function doesn't assume that the parameter is non-null,
and in fact the specials are retrieved by swash_init(). Having the
parameter null just means that no specials will be retrieved in the
current call.
Jesse Vincent [Tue, 3 May 2011 16:07:41 +0000 (12:07 -0400)]
Small typo fixes in perldelta
Father Chrysostomos [Tue, 3 May 2011 16:05:40 +0000 (12:05 -0400)]
Minor perldelta fixes
• Remove C<...> around get-magic and set-magic. Those are prose
descriptions of what is known internally as mg_get, SvGETMAGIC,
SVs_GMG, etc.
• Re-instate the message that
804b5feed removed, but in the form in
which it appears in perldiag.
• Remove the thing about version class methods. It’s a bug fix, not a
problem (whether known or unknown :-), and not a significant one.
• Spelling mistake
David Mitchell [Tue, 3 May 2011 15:26:51 +0000 (16:26 +0100)]
skip t/io/eintr.t on production releases
We already skip this test file on many platforms which don't
have interruptible IO system calls. Extend this to unconditionally
skip if it's an even (production) release version, so that we don't get
false positives for other platforms we didn't know about.
Tony Cook [Tue, 26 Apr 2011 08:21:52 +0000 (18:21 +1000)]
skip a problematic test on openbsd/thread
I'd make this a TODO, but the test currently results in the watchdog
firing, so harness/TEST would never see the "TODO".
Robin Barker [Thu, 21 Apr 2011 17:57:58 +0000 (18:57 +0100)]
typo
H.Merijn Brand [Tue, 26 Apr 2011 15:00:10 +0000 (17:00 +0200)]
TomC change with a twist
Zefram [Tue, 26 Apr 2011 14:45:31 +0000 (15:45 +0100)]
perldelta fixes
Jan Dubois [Mon, 25 Apr 2011 19:38:32 +0000 (12:38 -0700)]
Typo in commit b641685 breaks Solaris-x64 with Sun cc
Karl Williamson [Thu, 21 Apr 2011 20:45:34 +0000 (14:45 -0600)]
perlre: Don't treat /aa as a separate modifier
Craig A. Berry [Thu, 21 Apr 2011 23:16:06 +0000 (18:16 -0500)]
VMS-related known problems in 5.14.0.
Craig A. Berry [Thu, 21 Apr 2011 05:11:19 +0000 (15:11 +1000)]
Skup sigdispatch tests on VMS as they hang the VMS smokers.
On Wed, Apr 20, 2011 at 7:22 PM, Craig A. Berry <craigberry@mac.com>
wrote:
> In article <E1QCB3D-0002kP-5p@camel.ams6.corp.booking.com>,
> davem@iabyn.com ("Dave Mitchell") wrote:
>
>> In perl.git, the branch blead has been updated
>>
>> <http://perl5.git.perl.org/perl.git/commitdiff/
011c381477c2b48fc4fbb6c52c59dbd
>>
6a21bc7d6?hp=
53777b0ce48433ad582498a56c60698a8fad29f6>
>>
>> - Log
>> -----------------------------------------------------------------
>> commit
011c381477c2b48fc4fbb6c52c59dbd6a21bc7d6
>> Author: David Mitchell <davem@iabyn.com>
>> Date: Tue Apr 19 14:17:12 2011 +0100
>>
>> dispatch signals when leaving an eval
>
> The good news is that this also fixes RT #76384. The bad news is that
> the new tests hang the test suite on VMS and the watchdog is unable to
> break out of it (possibly only with threads -- still need to check
> that).
Nicholas Clark [Tue, 19 Apr 2011 19:47:16 +0000 (20:47 +0100)]
On Win32, skip the tests added in
011c3814, as alarm can't interrupt select.
Karl Williamson [Tue, 19 Apr 2011 16:07:21 +0000 (10:07 -0600)]
perldelta: Fix broken links
Apparently the writers of perldiag realized that "%s%s" is the same
as %s for the purposes of diagnostics, so there is no anchor for the
removed link.
Father Chrysostomos [Tue, 19 Apr 2011 15:45:20 +0000 (08:45 -0700)]
Revert "Missing bug number in d12b49d"
This reverts commit
53777b0ce48433ad582498a56c60698a8fad29f6.
constant.pm 1.21 has already been released on CPAN. Reverting this for
now just keeps things simple.
Jesse Vincent [Tue, 19 Apr 2011 15:45:23 +0000 (01:45 +1000)]
Authors sorting from tchrist
Karl Williamson [Fri, 15 Apr 2011 17:49:08 +0000 (11:49 -0600)]
perlop: /o update
Karl Williamson [Tue, 19 Apr 2011 15:19:33 +0000 (09:19 -0600)]
perllocale: Mention /l
Also the possibility of an undefined initial locale
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'>
Jesse Vincent [Tue, 19 Apr 2011 14:54:37 +0000 (00:54 +1000)]
perldelta encoding error spotted by tchrist
Jesse Vincent [Tue, 19 Apr 2011 14:40:20 +0000 (00:40 +1000)]
Bump patchlevel to RC1
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.
Jesse Vincent [Tue, 19 Apr 2011 14:22:29 +0000 (00:22 +1000)]
Reflowing text
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()>
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.
Jesse Vincent [Tue, 19 Apr 2011 13:19:30 +0000 (23:19 +1000)]
Update Module::CoreList for 5.14.0
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
Jesse Vincent [Tue, 19 Apr 2011 13:06:37 +0000 (23:06 +1000)]
Started to flesh out the AUTHORS section of perldelta
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 {
alarm(1);
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.
Father Chrysostomos [Tue, 19 Apr 2011 13:04:36 +0000 (06:04 -0700)]
Missing bug number in d12b49d
Father Chrysostomos [Tue, 19 Apr 2011 12:48:01 +0000 (05:48 -0700)]
Correct typos in 66b4c19
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.
David Mitchell [Tue, 19 Apr 2011 11:01:22 +0000 (12:01 +0100)]
fix blurb at top of t/porting/cmp_version.t
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
modules
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
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.
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
Father Chrysostomos [Tue, 19 Apr 2011 05:42:56 +0000 (22:42 -0700)]
Update perlfunc for [perl #80626]
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
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
Jesse Vincent [Tue, 19 Apr 2011 05:31:02 +0000 (15:31 +1000)]
update threads::shared version in perldelta.
Jerry D. Hedden [Sun, 17 Apr 2011 23:41:03 +0000 (19:41 -0400)]
Upgrade to threads 1.83
Jerry D. Hedden [Sun, 17 Apr 2011 23:44:29 +0000 (19:44 -0400)]
Upgrade to threads::shared 1.37
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
wording.
Karl Williamson [Tue, 19 Apr 2011 04:26:32 +0000 (22:26 -0600)]
perlrecharclass: Nits
Jesse Vincent [Tue, 19 Apr 2011 04:52:17 +0000 (14:52 +1000)]
Perldelta patches from Ilmari and Abigail
Jesse Vincent [Tue, 19 Apr 2011 04:29:51 +0000 (14:29 +1000)]
Fix a few pod nits
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).
Karl Williamson [Tue, 19 Apr 2011 03:42:18 +0000 (21:42 -0600)]
perlop: Update for some 5.14 changes
Karl Williamson [Tue, 19 Apr 2011 03:35:33 +0000 (21:35 -0600)]
perluniintro: Update for 5.14 changes
Karl Williamson [Tue, 19 Apr 2011 03:28:07 +0000 (21:28 -0600)]
perlunicode.pod: Nits
Karl Williamson [Tue, 19 Apr 2011 03:21:39 +0000 (21:21 -0600)]
perlre: Remove false statement about locales
Craig A. Berry [Tue, 19 Apr 2011 02:51:08 +0000 (21:51 -0500)]
VMS section clean-up for perldelta.
Tom Christiansen [Tue, 19 Apr 2011 02:30:35 +0000 (12:30 +1000)]
perldelta editing pass
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.
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.
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/linux.sh,
40f026236b9959b7ad3260fedc6c66cd30bb7abc
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).
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...
David Mitchell [Mon, 18 Apr 2011 22:43:27 +0000 (23:43 +0100)]
collapse plibpth to one line
The recent change to hints/linux.sh,
40f026236b9959b7ad3260fedc6c66cd30bb7abc
set the plibpth variable.
It was supposed to set all entries on a single line, but it didn't.
Do it now,
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 config.sh
along the lines of
plibpth='/lib/x86_64-redhat-linux/4.4.5/
/lib/../lib64/
/usr/lib/x86_64-redhat-linux/4.4.5/
/usr/lib/../lib64/
/lib/
/usr/lib/'
which was broken, and produced
Use of uninitialized value $1
warnings, and messed up the content of lib/Config_heavy.pl.
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.
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
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 <avar@cpan.org>
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
consistent.
Signed-off-by: Ævar Arnfjörð Bjarmason <avar@cpan.org>
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 <avar@cpan.org>
Father Chrysostomos [Mon, 18 Apr 2011 15:44:00 +0000 (08:44 -0700)]
perldelta: typos
Æ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")
Æ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
qw(...).
This came up on the Git mailing list[1] after I submitted a patch[2]
to fix this issue in Gitweb[3].
1. http://permalink.gmane.org/gmane.comp.version-control.git/167293
2. http://permalink.gmane.org/gmane.comp.version-control.git/167283
3. http://permalink.gmane.org/gmane.comp.version-control.git/167297
Ævar Arnfjörð Bjarmason [Mon, 18 Apr 2011 14:56:02 +0000 (14:56 +0000)]
pod/perldelta.pod: link to pertinent feature.pm POD
Instead of just linking to L<feature> link to the "the
'unicode_strings' feature" section.
Father Chrysostomos [Mon, 18 Apr 2011 13:34:01 +0000 (06:34 -0700)]
Make push/shift $scalar accept only unblessed aryrefs
See ticket #80626.
Father Chrysostomos [Mon, 18 Apr 2011 13:27:21 +0000 (06:27 -0700)]
perldelta for d12b49d (Unicode constants)
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.
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.
Jesse Vincent [Mon, 18 Apr 2011 08:16:02 +0000 (18:16 +1000)]
Lots of perldelta editing. Still miles to go before we sleep
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.
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.
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.
Karl Williamson [Sun, 17 Apr 2011 02:04:49 +0000 (20:04 -0600)]
perlre: Nits in recently added text
Tom Christiansen [Sat, 16 Apr 2011 14:33:56 +0000 (08:33 -0600)]
Nits in perlunicode
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.
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.