Karl Williamson [Mon, 19 Mar 2012 21:38:06 +0000 (15:38 -0600)]
Use the new utf8 to code point functions
These functions should be used in preference to the old ones which can
read beyond the end of the input string.
Karl Williamson [Mon, 19 Mar 2012 21:13:19 +0000 (15:13 -0600)]
utf8.c: Add valid_utf8_to_uvuni() and valid_utf8_to_uvchr()
These functions are like utf8_to_uvuni() and utf8_to_uvchr(), but their
name implies that the input UTF-8 has been validated.
They are not currently documented, as it's best for XS writers to call
the functions that do validation.
Karl Williamson [Mon, 19 Mar 2012 21:03:01 +0000 (15:03 -0600)]
utf8.c: Add utf8_to_uvchr_buf() and utf8_to_uvuni_buf()
The existing functions (utf8_to_uvchr and utf8_to_uvuni) have a
deficiency in that they could read beyond the end of the input string if
given malformed input. This commit creates two new functions which
behave as the old ones did, but have an extra parameter each, which
gives the upper limit to the string, so no read beyond it is done.
Karl Williamson [Mon, 19 Mar 2012 20:48:51 +0000 (14:48 -0600)]
utf8.c: pod clarification
Karl Williamson [Mon, 19 Mar 2012 19:48:58 +0000 (13:48 -0600)]
utf8.c: pod (mostly formatting) + comments changes
Karl Williamson [Mon, 19 Mar 2012 19:21:26 +0000 (13:21 -0600)]
perlapi (from sv.h) clarifications
Karl Williamson [Mon, 19 Mar 2012 19:01:11 +0000 (13:01 -0600)]
autodoc.pl: pod format fix
Karl Williamson [Mon, 19 Mar 2012 16:52:25 +0000 (10:52 -0600)]
perlguts, warnings.t: Update references to obsolete fcn names
These functions were replaced long ago, apparently in 5.8, but I didn't
verify that for sure.
Karl Williamson [Mon, 19 Mar 2012 16:44:08 +0000 (10:44 -0600)]
perldelta: clarification
Abigail [Mon, 19 Mar 2012 23:43:04 +0000 (00:43 +0100)]
Update Module::CoreList for 5.15.9
Abigail [Mon, 19 Mar 2012 23:39:21 +0000 (00:39 +0100)]
Point out CoreList's CAVEATS section is in CoreList.pod
Fix the git commit line as well.
Abigail [Mon, 19 Mar 2012 23:14:24 +0000 (00:14 +0100)]
Eliminate a warning
Karl Williamson [Fri, 16 Mar 2012 17:01:21 +0000 (11:01 -0600)]
mktables: white-space only
This outdents code to line up vertically with surrounding text
Karl Williamson [Fri, 16 Mar 2012 16:54:24 +0000 (10:54 -0600)]
mktables: Backport name_alias changes to earlier Unicode versions
This allow mktables to be compiled for earlier Unicode versions and
work for them.
Karl Williamson [Fri, 16 Mar 2012 19:12:49 +0000 (13:12 -0600)]
mktables: Don't duplicate entries
The Name table can have multiple names for each code point. The highest
priority ones are first in the file. Prior to this patch, adding a
high priority name to a code point which already had the same name, the
old name could be retained, leaving two identical names for the code
point. This patch causes the lower-priority one to be deleted.
Karl Williamson [Sun, 11 Mar 2012 22:46:18 +0000 (16:46 -0600)]
mktables: A leading zero is different than an only 0
Commit
b91749bce0ff3d86c6e210a0b35289b4ad36c144 assumed that a single
0 was a leading 0. This inappropriately makes a table appear to be hex
when it isn't. This currently affects the kPrimaryNumeric property
which is part of the Unihan database, and is not normally generated by
mktables; it is generated only if an installation decides they want
to compile Perl to use the Unihan properties.
Karl Williamson [Tue, 6 Mar 2012 17:39:15 +0000 (10:39 -0700)]
Unicode::UCD::prop_invmap: Fix returned format
The type of an 'a' table should not be changed to 's'. This bug
happened currently only if someone changed mktables to output one of the
optional files.
Karl Williamson [Tue, 6 Mar 2012 17:37:37 +0000 (10:37 -0700)]
Unicode::UCD: typos in error messages
These concatenated the package name with the beginning of the text with
no intervening punctuation. Add also the function within the package
Karl Williamson [Wed, 29 Feb 2012 18:15:17 +0000 (11:15 -0700)]
mktables: Add required parens and reword warning msg
Should this message ever get triggered, it would fail because the
precedence is wrong: the argument to hex needs parens. Also reword
somewhat for clarity.
Karl Williamson [Wed, 29 Feb 2012 18:04:59 +0000 (11:04 -0700)]
pat.t: Fix typo in comment
Abigail [Mon, 19 Mar 2012 22:49:34 +0000 (23:49 +0100)]
Bump the perl version in various places for 5.15.9
Abigail [Mon, 19 Mar 2012 21:18:15 +0000 (22:18 +0100)]
More perldelta work.
Abigail [Mon, 19 Mar 2012 21:04:14 +0000 (22:04 +0100)]
Mention the fix to perlfunc.html in "Configuration and Compilation" as well.
Also, fix the spelling of html.
Nicholas Clark [Mon, 19 Mar 2012 13:43:15 +0000 (14:43 +0100)]
Note in the source of perlhist.pod that "cow orker" is no typo.
This won't change the rendered pod, but will clarify to anyone thinking to
patch the "mistake" that the seeming typo is intentional.
Nicholas Clark [Mon, 19 Mar 2012 13:22:32 +0000 (14:22 +0100)]
Mention Porting/bisect.pl in perlgit.pod, before describing git bisect.
Porting/bisect.pl is intended to cover 90% of use cases, whilst being simpler
to use than git bisect, so mention it first. Condense the description of
git bisect slightly - it's giving implementation details which duplicate
git help bisect, which we already refer the reader to.
Nicholas Clark [Mon, 19 Mar 2012 12:58:47 +0000 (13:58 +0100)]
Add two missing "file"s to the documentation of Porting/bisect.pl
Nicholas Clark [Mon, 19 Mar 2012 12:27:28 +0000 (13:27 +0100)]
Move the example git bisect shell script from perlgit.pod to Porting/
This both avoids cluttering the flow of manpage with auxiliary data, and
saves the user from having to extract the script from within the pod file.
Nicholas Clark [Mon, 19 Mar 2012 11:48:31 +0000 (12:48 +0100)]
bisect-runner.pl should detect ccache with -V, not --version
ccache 2.4 doesn't support the --version parameter, only -V. ccache 3
supports both.
Nicholas Clark [Mon, 19 Mar 2012 11:18:18 +0000 (12:18 +0100)]
Add a placeholder man page for perltodo, directing people to look at git.
(Done as a second commit to avoid confusing git's rename detection.)
Nicholas Clark [Mon, 19 Mar 2012 10:42:15 +0000 (11:42 +0100)]
Move the todo list from pod/ to Porting/
Installing the Perl 5 to-do list as a manpage isn't that useful to anyone, as
it's a snapshot that becomes increasingly out of date. Much better to point
anyone interested in contributing direct to git HEAD, to view the current list.
Abigail [Mon, 19 Mar 2012 16:16:21 +0000 (17:16 +0100)]
Add a TODO test for RT 111842
Abigail [Mon, 19 Mar 2012 13:40:02 +0000 (14:40 +0100)]
Bail out if it looks scary.
Porting/sync-with-cpan hasn't automated all situations yet. In particular,
it assumes the FILE entry has just one element, and that element is a
directory. It also does not know what to do with MAP. If we determine
this situation, we terminate the program before making any changes.
Although there's the --force option for the braves.
Abigail [Mon, 19 Mar 2012 13:26:12 +0000 (14:26 +0100)]
Don't remove --tarball
By default, the script removes the tarball of the new distributions.
However, if the --tarball option was given (and hence, the file was not
downloaded from CPAN), we opt to keep this file around.
Abigail [Mon, 19 Mar 2012 13:23:12 +0000 (14:23 +0100)]
Use #!/usr/bin/env
/usr/bin/perl on dromedary is 5.8.8; but the script requires 5.10.
By using #!/usr/bin/env, we give the user more control over which perl
should be used. (And this benefits not just dromedary usesr)
Abigail [Mon, 19 Mar 2012 10:14:15 +0000 (11:14 +0100)]
More work on perldelta
Nicholas Clark [Mon, 19 Mar 2012 09:30:34 +0000 (10:30 +0100)]
Merge the feature and B::Deparse refactoring to blead.
Nicholas Clark [Mon, 19 Mar 2012 09:29:48 +0000 (10:29 +0100)]
Note the improvements to B::Deparse and feature in perldelta.
Nicholas Clark [Tue, 28 Feb 2012 22:54:10 +0000 (23:54 +0100)]
In feature.pm, inline current_bundle() into __common(), its only caller.
current_bundle() was added after 5.14.0 was released, so has never been in
a stable release. Hence it's totally safe to kill it.
Nicholas Clark [Mon, 27 Feb 2012 17:33:08 +0000 (18:33 +0100)]
In feature.pm, inline normalise_hints() into __common(), its only caller.
normalise_hints() was added after 5.14.0 was released, so has never been in
a stable release. Hence it's totally safe to kill it.
Nicholas Clark [Mon, 27 Feb 2012 17:24:57 +0000 (18:24 +0100)]
Merge the code common to feature::import and feature::unimport.
Nicholas Clark [Mon, 27 Feb 2012 16:57:54 +0000 (17:57 +0100)]
In feature.pm, use a consistent code style in import() and unimport().
There were a couple of inconsistencies (shift with/without an explicit @_,
exists with/without(), !@_ vs @_ == 0) which turn out to date back to
before 5.10.0
Also fix an inadvertent use of a single element array slice with a simple
array lookup in current_bundle().
Nicholas Clark [Tue, 28 Feb 2012 22:30:30 +0000 (23:30 +0100)]
In B::Deparse::_features_from_bundle(), don't call feature::current_bundle()
Instead, directly access feature's package variables, as B::Deparse already
does in 14 other places. (It also has its tentacles firmly into strict
and warning's package variables - it's not fussy)
feature::current_bundle() was not part of the documented API of feature
either, so B::Deparse wasn't clean previously.
Nicholas Clark [Tue, 28 Feb 2012 10:11:02 +0000 (11:11 +0100)]
In Deparse, use $feature::hint_mask directly, instead of copying its value.
Also, require feature unconditionally.
Deparse already directly uses data from feature, switch and warnings, so
this isn't a new trend in encapsulation breakage. Previously Deparse copied
the value of $feature::hint_mask, and lazily loaded require in 4 places.
Nicholas Clark [Tue, 28 Feb 2012 22:09:02 +0000 (23:09 +0100)]
In B::Deparse, refactor common code into _features_from_bundle().
Nicholas Clark [Tue, 28 Feb 2012 21:57:31 +0000 (22:57 +0100)]
In B::Deparse, refactor the two places that feature::current_bundle()
Converge the code, so that it's easy to extract out into a subroutine.
Nicholas Clark [Tue, 28 Feb 2012 16:32:08 +0000 (17:32 +0100)]
Fix regression in deparsing say (etc) under use 5.10.0
Commit
6634bb9d0ed117be introduced a regression, causing this
use 5.10.0;
say "Perl rules";
to be deparsed as C<CORE::say>, not C<say>, etc. It wasn't actually possible
to write tests for this within the t/deparse.t framework until the recent
refactoring.
Nicholas Clark [Tue, 28 Feb 2012 15:44:51 +0000 (16:44 +0100)]
Add tests for deparsing C<say> under various combinations of pragmas.
These mostly codify the current output of B::Deparse, which is not invalid,
but might not be considered to be the optimal output. (It's defensive, in
that it uses C<no feature;> which will ensure consistent behaviour whatever
pragma context the output is evaluated in.)
Some are TODO for the cases where B::Deparse is wrongly outputting
C<CORE::say> instead of plain C<say> and C<CORE::__SUB__> instead of plain
C<__SUB__>.
Nicholas Clark [Tue, 28 Feb 2012 13:00:56 +0000 (14:00 +0100)]
Avoid deparse.t testing everything under use feature ':5.10'
Only use feature ':5.10' in those tests that actually need it. This will let
us add tests for deparsing without any features enabled.
Nicholas Clark [Tue, 28 Feb 2012 12:49:18 +0000 (13:49 +0100)]
Add a 'context' feature to deparse.t, to better test ambient pragmas.
Call ambient_pragmas() before each deparse test. This will allow use to remove
the constraints of the current default, which is to always run under
use feature ":5.10";
Nicholas Clark [Tue, 28 Feb 2012 11:43:02 +0000 (12:43 +0100)]
In deparse.t, rename %reason to %meta.
Whilst skip and todo both have "reason"s, subsequent refactoring will use it
for other purposes.
Nicholas Clark [Mon, 19 Mar 2012 09:20:42 +0000 (10:20 +0100)]
Note in perldelta that C<no feature;> now means reset to default.
The behaviour was changed with commit
39ec54a59ce332fc.
Abigail [Mon, 19 Mar 2012 02:20:09 +0000 (03:20 +0100)]
Retry first shot at perldelta.pod.
Documents the differences between 5.15.8 and 5.15.9.
Abigail [Sun, 18 Mar 2012 23:53:14 +0000 (00:53 +0100)]
Update Pod::Perldoc to version 3.17
Abigail [Sun, 18 Mar 2012 23:51:14 +0000 (00:51 +0100)]
Add a --tarball option
This allows to do the cpan/ upgrade without having to contact CPAN.
For instance, from dromedary, it seems to be impossible to fetch
files from CPAN. With the --tarball option, you can pass the location
of the tarball, and this will used instead of fetching it automatically
from CPAN.
Abigail [Sun, 18 Mar 2012 22:36:42 +0000 (23:36 +0100)]
Some backslashes turn out not to be always there.
Abigail [Sun, 18 Mar 2012 22:36:03 +0000 (23:36 +0100)]
Fix a cut-and-paste error
Abigail [Sun, 18 Mar 2012 22:32:17 +0000 (23:32 +0100)]
Revert "First shot at perl5159delta.pod"
This reverts commit
21ffc8459b739cc13a32f22a2edb7be485a062e0.
Until I can figure out how to add a new perldelta and make all tests pass.
Abigail [Sun, 18 Mar 2012 22:31:28 +0000 (23:31 +0100)]
Revert "Paste in the output of Porting/acknowledgements.pl in pod/perl5159delta.pod"
This reverts commit
98f0737d71a92167bf1aace8a8d8411b985e3200.
Until I can figure out how to add a new perldelta and make all tests pass.
Abigail [Sun, 18 Mar 2012 17:26:59 +0000 (18:26 +0100)]
Paste in the output of Porting/acknowledgements.pl in pod/perl5159delta.pod
Abigail [Sun, 18 Mar 2012 17:24:23 +0000 (18:24 +0100)]
Attempt to find an author if (s)he comes via RT.
In the case of commits, it maybe that the reporter used RT, which results
in a generic RT email address. Instead of just reporting the author as '!',
we'll do an attempt to see whether he's named in the AUTHORS file.
Abigail [Sun, 18 Mar 2012 16:20:03 +0000 (17:20 +0100)]
First shot at perl5159delta.pod
Chris 'BinGOs' Williams [Sat, 17 Mar 2012 23:50:17 +0000 (23:50 +0000)]
Update CPANPLUS to CPAN version 0.9121
This resolves a regression introduced with v0.9109
which was included with perl version v5.15.2 and is
therefore a regression since v5.14.x
[DELTA]
Changes for 0.9121 Sat Mar 17 23:23:42 2012
================================================
* Resolved a regression with dev '_' version
numbers since 0.9109
Nicholas Clark [Sat, 25 Feb 2012 23:22:41 +0000 (00:22 +0100)]
In S_parse_body(), don't "leak" linestr_sv until global destruction.
This commit ensures that linestr_sv is properly cleaned up, if allocated.
The local variable linestr_sv was added by commit
009d90df4e17a415 in 2007,
to replace use of PL_linestr in S_parse_body(). However, that commit didn't
add any code to free linestr_sv at the end of S_parse_body(), meaning that
the SV sticks around until global destruction.
Subsequent code simplification possible by the removal of suidperl reveals
that linestr_sv is only needed for the '-x' option, so it's safe to avoid
allocating it up front. Additionally, during '-x' processing, Perl_sv_gets()
will upgrade the target SV to SVt_PV and allocate the string buffer as needed,
so there's no need to pre-upgrade or pre-allocate the SV in S_parse_body().
This slightly reduces the amount of code.
Nicholas Clark [Sat, 25 Feb 2012 22:50:49 +0000 (23:50 +0100)]
Remove all the never used parameters from the macro validate_suid()
Several parameters are unused in either remaining variant of the
validate_suid() macro. The two variants which used the extra parameters
were removed with suidperl by commit
cc69b689ee7c2745 in Jan 2009.
Nicholas Clark [Wed, 22 Feb 2012 13:00:41 +0000 (14:00 +0100)]
In perlfunc, don't have functions in "Misc" and a second category.
dump, eval, evalbytes and wantarray are now only in "flow control".
local, my, our and state are only in "scoping".
prototype is now only in "misc". Whilst *prototypes* affect parsing, and
hence indirectly flow control, the prototype function is for introspecting
prototypes.
Nicholas Clark [Sun, 19 Feb 2012 18:54:38 +0000 (19:54 +0100)]
De-emphasise switch-related keywords in perlfunc.
Move the 3 non-function keywords into the summary cross reference section
at the end of perlfunc. Eliminate the examples which duplicate examples in
perlsyn. Merge the remaining 2 keywords into the "control flow" group.
Note that the switch feature is considered experimental.
With these changes, `perldoc -f default`, `perldoc -f given` and
`perldoc -f when` will still return a helpful result, and as before will
refer the reader to perlsyn for full information.
Nicholas Clark [Sun, 19 Feb 2012 17:33:22 +0000 (18:33 +0100)]
In the perlfunc cross-reference sections, link to the section within a page.
perlfunc now has a section cross referencing keywords documented elsewhere.
Keywords are grouped by man page, and for most manpages, all the
cross-referenced keywords are in the same section. Hence make the L<> links
more specific by including the section.
Nicholas Clark [Sun, 19 Feb 2012 15:49:44 +0000 (16:49 +0100)]
DESTROY is documented in perlobj - correct the cross-reference in perlfunc.
Tony Cook [Sat, 17 Mar 2012 02:39:04 +0000 (13:39 +1100)]
ignore new build result from splitting docs for Module::CoreList
Karl Williamson [Sun, 11 Mar 2012 19:32:04 +0000 (13:32 -0600)]
Unicode::UCD: pod clarifications, corrections
Karl Williamson [Fri, 16 Mar 2012 16:14:05 +0000 (10:14 -0600)]
charnames.t: Attempt to fix probable timing issue
charnames.t sometimes fails on a test that is expecting a file to be
non-existent. However, other tests in it briefly create a file by that
name. When two instances of the .t are run in parallel, as happens in
some smokes, it could be that the file exists at the time it is expected
not to. The result is a non-reproducible failure. Anyway, that is my
theory. And so this commit changes to use a filename that is used just
by the test for what happens when a file is non-existent, and hence
doesn't ever exist even transiently.
Karl Williamson [Sun, 11 Mar 2012 16:44:19 +0000 (10:44 -0600)]
cherrymaint: Beef up --help option
I can never remember how to set the tunnel up for using this, so
add it to the help output
Dave Rolsky [Tue, 13 Mar 2012 16:37:33 +0000 (11:37 -0500)]
Run podtidy on perlsource.pod
Dave Rolsky [Tue, 13 Mar 2012 16:37:18 +0000 (11:37 -0500)]
Add a missing word to perlsource.pod
Abigail [Thu, 15 Mar 2012 21:58:34 +0000 (22:58 +0100)]
Fix POD issues
Abigail [Thu, 15 Mar 2012 21:35:10 +0000 (22:35 +0100)]
Document upgrading a module in cpan/
Abigail [Thu, 15 Mar 2012 21:05:50 +0000 (22:05 +0100)]
Clearify this is for even numbered (BLEAD-FINAL) releases.
Ricardo Signes [Wed, 14 Mar 2012 20:46:21 +0000 (16:46 -0400)]
correct argument handling in Term::ReadLine
https://rt.perl.org/rt3/Ticket/Display.html?id=111758
patch by Darin McBride
Chris 'BinGOs' Williams [Sun, 4 Mar 2012 20:55:48 +0000 (20:55 +0000)]
Separate the POD from the corelist data in Module::CoreList
See https://github.com/CPAN-API/metacpan-web/issues/485
Abigail [Wed, 14 Mar 2012 01:47:46 +0000 (02:47 +0100)]
Revert "Upgrade IO-Compress to 2.049"
This reverts commit
1d4b9cf3270c936605a07ecd7414f808755d3184.
This depends on the module that was reverted by Ricardo at the same time.
Abigail [Wed, 14 Mar 2012 01:39:16 +0000 (02:39 +0100)]
Upgrade IO-Compress to 2.049
Abigail [Wed, 14 Mar 2012 00:59:48 +0000 (01:59 +0100)]
Allow passing the name of the CPAN module
Abigail [Wed, 14 Mar 2012 00:43:58 +0000 (01:43 +0100)]
Upgrade CPANPLUS to 0.9120
Abigail [Wed, 14 Mar 2012 00:40:23 +0000 (01:40 +0100)]
Deal with files in the CUSTOMIZED sections.
Abigail [Wed, 14 Mar 2012 00:31:45 +0000 (01:31 +0100)]
Upgrade Socket to 2.000
Abigail [Wed, 14 Mar 2012 00:19:42 +0000 (01:19 +0100)]
Upgrade Socket to version 2,000
Abigail [Wed, 14 Mar 2012 00:19:06 +0000 (01:19 +0100)]
Fix the fixing of MANIFEST
Abigail [Tue, 13 Mar 2012 23:56:07 +0000 (00:56 +0100)]
Upgrade Unicode::Normalize to 1.14.
Ricardo Signes [Wed, 14 Mar 2012 01:01:00 +0000 (21:01 -0400)]
Revert changes to compression libraries
Revert "Ran zlib2ansi script against zlib-src/ to fix K&R-isms"
This reverts commit
a7026383bc5a2ca5f518f670ee6d74d55cd994aa.
Revert "Some files in cpan/Compress-Raw-Zlib have the x bit set."
This reverts commit
adace0595a25c5339a4c1fff6b4704945abf8814.
Revert "Fixes type in commit
14c554185"
This reverts commit
d588a46d9335dc093e4046b68ae0e2c7925ef095.
Revert "Upgrade Compress::Raw::Zlib to 2.051."
This reverts commit
14c554185b51c8646198cbf62fe6e94e9890b3a5.
Revert "Upgrade Compress-Raw-Bzip2 to version 2.049."
This reverts commit
616f340ab90cf805b145b81fd31c2017a4e7783f.
Revert "Upgrade cpan/Archive-Tar to 1.84"
This reverts commit
c06ee8c824f270b42cb440453df0e44858492aed.
Revert "Upgrade Archive-Extract to 0.60"
This reverts commit
dc16b9e468c516c95140dc2b6eac778872c79239.
Abigail [Tue, 13 Mar 2012 18:57:38 +0000 (19:57 +0100)]
Upgrade Unicode-Collate to 0.89
Abigail [Tue, 13 Mar 2012 18:53:02 +0000 (19:53 +0100)]
List one more TODO
Abigail [Tue, 13 Mar 2012 18:46:56 +0000 (19:46 +0100)]
Upgrade Digest-SHA to 5.71.
Abigail [Tue, 13 Mar 2012 18:44:47 +0000 (19:44 +0100)]
More tests, and more exec-bit removal.
Checks all the files in the new directory that have the exec bit set.
If the file isn't new, and if the old file doesn't have the exec bit set,
disable it.
Runs the tests that come with the package as well.
Abigail [Tue, 13 Mar 2012 17:37:49 +0000 (18:37 +0100)]
Disambiguate map { }
Abigail [Tue, 13 Mar 2012 17:34:32 +0000 (18:34 +0100)]
Mention Porting/sync-with-cpan
Abigail [Tue, 13 Mar 2012 16:44:42 +0000 (17:44 +0100)]
Add Porting/sync-with-cpan
It helps if you actually commit the changes you make. :(
Abigail [Tue, 13 Mar 2012 16:14:21 +0000 (17:14 +0100)]
Script to help out upgrading a cpan/ distro.
This one is not complete yet, and its portability can be much improved.
But it helps me out right now, and it wouldn't be fair to keep it all to
myself.
Abigail [Tue, 13 Mar 2012 14:01:17 +0000 (15:01 +0100)]
Upgrade Locale-Codes to 3.21
David Mitchell [Tue, 13 Mar 2012 14:24:15 +0000 (14:24 +0000)]
stop S_forget_pmop() SEGVing
Commit
5bec93be re-purposed the SvMAGIC field of hashes being freed, on
the grounds that (a) any magic had been freed, (b) the refcnt was zero, so
no-one else could mess with the hash.
Unfortunately in the non-threaded case, PMOPs for m?? regexes have a
non-refcounted link back to their stash. When the stash is freed, any subs
in the stash are freed, which frees the PMOPs, which then see the freed
stash, and assume it still has magic because SvMAGIC is non-null.
The quick fix is to check the SvMAGICAL flags first; a longer term fix
would be to avoid the weak ref (e.g. by always using the threaded variant
of PmopSTASH, which stores the stash's *name* rather than a pointer to the
stash).
Abigail [Tue, 13 Mar 2012 12:22:28 +0000 (13:22 +0100)]
Merge branch 'blead' of ssh://perl5.git.perl.org/gitroot/perl into blead