Paul Evans [Thu, 25 Nov 2010 20:09:15 +0000 (20:09 +0000)]
[PATCH 4/5] Adjust unit tests to cope with new sockaddr_in6 functions in Socket (pulled in via IO::Socket)
Signed-off-by: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
Paul Evans [Thu, 25 Nov 2010 20:08:05 +0000 (20:08 +0000)]
[PATCH 3/3] Provide wrappers for IN6ADDR_ANY and IN6ADDR_LOOPBACK
Signed-off-by: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
Paul Evans [Thu, 25 Nov 2010 20:07:23 +0000 (20:07 +0000)]
[PATCH 2/3] Implement sockaddr_in6 wrapper
Signed-off-by: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
Paul Evans [Thu, 25 Nov 2010 20:06:36 +0000 (20:06 +0000)]
[PATCH 1/3] Implement Socket::pack_sockaddr_in6() and unpack_sockaddr_in6()
Signed-off-by: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
Father Chrysostomos [Thu, 25 Nov 2010 14:14:40 +0000 (06:14 -0800)]
[perl #78438] Memory leak with 'use v5.42'
Father Chrysostomos [Thu, 25 Nov 2010 14:11:12 +0000 (06:11 -0800)]
Stop eval "use 6" from leaking
Father Chrysostomos [Thu, 25 Nov 2010 14:06:31 +0000 (06:06 -0800)]
Stop eval "no 5" from leaking
Nicholas Clark [Thu, 25 Nov 2010 17:08:18 +0000 (17:08 +0000)]
Make BEGIN {require 5.12.0} behave as documented.
Previously in a BEGIN block, require was behaving identically to use 5.12.0 -
ie erroneously executing the use feature ':5.12.0'; and use strict;
use warnings behaviour, which only use was documented to provide.
Nicholas Clark [Thu, 25 Nov 2010 14:58:42 +0000 (14:58 +0000)]
Extend -d:foo=bar to make -d:-foo expand to C<no foo>, consistent with -M-foo
Nicholas Clark [Thu, 25 Nov 2010 13:53:28 +0000 (13:53 +0000)]
Use newSVpvs_flags() instead of sv_2mortal(newSVpvs())
And similarly for newSVpvn() for a known length.
Chris 'BinGOs' Williams [Thu, 25 Nov 2010 12:48:21 +0000 (12:48 +0000)]
Update MIME-Base64 to CPAN version 3.11
[DELTA]
2010-10-24 Gisle Aas <gisle@ActiveState.com>
Release 3.11
Provide encode_base64url and decode_base64url functions to process
the base64 scheme for "URL applications".
The decode_base64() does not issue warnings on suspect input data
any more.
Nicholas Clark [Thu, 25 Nov 2010 11:53:10 +0000 (11:53 +0000)]
Refactor ENAME dumping in Perl_do_sv_dump() to simplify the code slightly.
Simpler code avoids the need for a comment explaining how the complex code was
working. Also use newSVpvs_flags() in place of sv_newmortal() and sv_setpv().
Nicholas Clark [Thu, 25 Nov 2010 11:52:09 +0000 (11:52 +0000)]
Test dumping stashes, with various combinations of NAME and ENAME.
Nicholas Clark [Thu, 25 Nov 2010 10:24:22 +0000 (10:24 +0000)]
Refactor Peek.t to give more useable diagnostics.
Change the numeric test IDs to meaningful names. Provide the names as test
descriptions. Describe the purpose of the second test. Only output the line
numbers if the tests fail. Swap from an explicit plan to done_testing().
Florian Ragwitz [Thu, 25 Nov 2010 03:09:23 +0000 (04:09 +0100)]
It's a little late to get changes into 5.12
Florian Ragwitz [Thu, 25 Nov 2010 01:43:27 +0000 (02:43 +0100)]
Fix signature of sv_unmagic in perlguts.pod
Nicholas Clark [Wed, 24 Nov 2010 21:55:15 +0000 (21:55 +0000)]
Explicitly export Perl_sv_compile_2op_is_broken(), for ext/re.
Frustratingly, because regcomp.c is also compiled as ext/re/re_comp.c, anything
it needs has to be exported. So this has to be X. I'd rather it wasn't.
David Golden [Wed, 24 Nov 2010 19:51:27 +0000 (14:51 -0500)]
minor amendment to documentation of ?PATTERN?
Zefram [Wed, 24 Nov 2010 19:32:50 +0000 (14:32 -0500)]
Deprecate ?PATTERN? without explicit m operator
Deprecate ?PATTERN?, recommending the equivalent m?PATTERN? syntax, in
order to eventually allow the question mark to be used in new operators
that would currently be ambiguous.
(With minor reconciliation edits by David Golden)
Signed-off-by: David Golden <dagolden@cpan.org>
Nicholas Clark [Wed, 24 Nov 2010 17:56:39 +0000 (17:56 +0000)]
Deprecate sv_compile_2op()
It attempted to provide an API to compile code down to an optree, but failed
to bind correctly to lexicals in the enclosing scope. It's not possible to
fix this problem within the constraints of its parameters and return value.
Searches suggest +that nothing on CPAN is using it, so removing it should have
zero impact.
Nicholas Clark [Wed, 24 Nov 2010 17:53:32 +0000 (17:53 +0000)]
Fix a typo introduced by
15d9236d3878cc50. (The wrong member of a union).
This would have caused no functional changes, just compiler warnings.
Max Maischein [Wed, 24 Nov 2010 15:54:52 +0000 (16:54 +0100)]
Add fold_latin1 to the list of exported variable symbols (unbreaking Win32+gcc build)
Rafael Garcia-Suarez [Wed, 24 Nov 2010 13:43:30 +0000 (14:43 +0100)]
Don't use "try" as a variable name
"try" being a C++ keyword, this produces compilation warnings.
Nicholas Clark [Wed, 24 Nov 2010 11:59:50 +0000 (11:59 +0000)]
Remove unused variable from S_set_regclass_bit_fold()
David Golden [Wed, 24 Nov 2010 11:50:08 +0000 (06:50 -0500)]
Clarify m?PATTERN? is ok and only ?PATTERN? is not
Nicholas Clark [Wed, 24 Nov 2010 11:36:36 +0000 (11:36 +0000)]
Convert xhv_name in struct xpvhv_aux to be a union of HEK* and HEK**
This avoids a lot of casting. Nothing outside the perl core code is accessing
that member directly.
Chris 'BinGOs' Williams [Tue, 23 Nov 2010 19:12:21 +0000 (19:12 +0000)]
Update Unicode-Collate to CPAN version 0.68
[DELTA]
0.68 Tue Nov 23 20:17:22 2010
- doc: clarified about (backwards => [ ]) and (backwards => undef).
- separated t/backwds.t from t/test.t.
- added cjk_b5.t, cjk_gb.t, cjk_ja.t, cjk_ko.t, cjk_py.t, cjk_st.t in t
for CJK/*.pm without Locale.pm.
Father Chrysostomos [Tue, 23 Nov 2010 17:56:19 +0000 (09:56 -0800)]
Document the refcount of version functions’ retval
Nicholas Clark [Tue, 23 Nov 2010 11:48:51 +0000 (11:48 +0000)]
When dup'ing CVs, only take the OP_REFCNT_LOCK if it is needed.
Previously it was being taken for all CVs, including XSUBS.
Also, refactor other non-XSUB specific code into the same if block.
Nicholas Clark [Tue, 23 Nov 2010 11:46:43 +0000 (11:46 +0000)]
No need to clone pad name 0, as it's never used.
Pad entry 0 is for @_, but no name is recorded for it, so the name slot is
always &PL_sv_undef.
Chris 'BinGOs' Williams [Tue, 23 Nov 2010 12:21:02 +0000 (12:21 +0000)]
Update IPC-Cmd to CPAN version 0.66
[DELTA]
Changes for 0.66 Tue Nov 23 12:10:24 GMT 2010
=================================================
* Apply documentation patch from Dan Dascalescu [RT # 63250]
* Apply another documentation patch from Dan Dascalescu [RT #63251]
* Fix an issue with _split_like_shell_win32() raised by tunakermit [RT #62961]
Craig A. Berry [Tue, 23 Nov 2010 04:38:12 +0000 (22:38 -0600)]
Fix multiple perldelta entries from buildtoc on VMS.
Karl Williamson [Tue, 23 Nov 2010 00:41:23 +0000 (17:41 -0700)]
regcomp.h: Restore separate bit for LOC class
This commit partially reverts
cefafd73018b048fa66d2b22250431112141955a
which unconditionally used a bitmap for classes like \w in ANYOF nodes
used in locales. Unfortunately, I forgot to unconditionally allocate
that space, so things were getting corrupted. It is scary that that did
not show up in my testing, but locales are hard to test. It showed up
in a workspace without DEBUGGING.
This commit now causes the bitmap to be used only when necessary, at the
expense of using a precious bit in the flags field to indicate that it
is being used. However, as events have turned out since that commit,
that flags bit isn't as precious as I thought. It looks like we will
have to split the ANYOF node into two similar nodes, one of which is
variable length, as there are bugs due to the optimizer thinking it is
of length 1, when in fact it doesn't currently have to be. That split
should allow more bits to be freed.
I'm retaining for now some ancillary code that was to help improve the
efficiency when that bit was removed; just in case we have to redo this.
But if we do, we have to unconditionally allocate the space we think we
are using.
Signed-off-by: David Golden <dagolden@cpan.org>
Father Chrysostomos [Tue, 23 Nov 2010 00:55:19 +0000 (16:55 -0800)]
Only call mro_package_moved on new substashes
Commit
298d65111 added this mro_package_moved call.
It does not need to happen if the substash already exists, as it will
already have had effective names assigned to it.
It also may not be a good idea to set it in such cases, as it may make
a recursive call to mro_get_linear_isa. I know this is utter paranoia,
but someone may write a mro plugin that is not reëntrant. (The speed
gain is worth it, though.)
Father Chrysostomos [Tue, 23 Nov 2010 00:42:00 +0000 (16:42 -0800)]
Don’t CLONE nameless hashes
The cloning code was trying to call CLONE on nameless hashes that nonetheless had an effective name (HvENAME).
This can happen if a nameless hash is assigned over a stash, as in
*foo:: = {}
or if a stash is undefined:
undef %foo::
(The effective name is how perl tracks the location internally, for
the sake of updating MRO caches.)
Father Chrysostomos [Tue, 23 Nov 2010 00:22:08 +0000 (16:22 -0800)]
Clarify the hekp assignment in dump.c
Karl Williamson [Mon, 15 Nov 2010 20:51:24 +0000 (13:51 -0700)]
[bracketed char class] fixes
This patch adds two functions for setting the ANYOF node bitmaps. The
one for dealing with folds has intelligence as to what to do if unicode
semantics is in effect.
Together with previous commits, this fixes the unicode bug for bracketed
character classes, as far as known bugs go, so pods are updated as well.
Karl Williamson [Mon, 15 Nov 2010 20:19:18 +0000 (13:19 -0700)]
fold_grind.t: Only test [char classes]
I meant to do this on the initial commit for this .t. The
non-char-class tests show many failures now, as they are more
comprehensive than the reg_fold.t ones. Until I iron those out, use
reg_fold.t for these.
Karl Williamson [Mon, 15 Nov 2010 19:56:49 +0000 (12:56 -0700)]
handy.h: New #define to use new bit
This creates a new macro for use by regcomp to test the new bit
regarding non-ascii folds.
Because the semantics may change in the future to deal with multi-char
folds, the name of the macro is unwieldy and specific enough that no one
should be tempted to use it.
Karl Williamson [Mon, 15 Nov 2010 19:55:15 +0000 (12:55 -0700)]
l1_char_class_tab.h: Add new bit to table.
The output of the revised Porting/mk_charclass.pl is here incorporated
into this .h., with a #define for the new bit that signifies if a
character participates in a fold with a non-latin1 character.
Karl Williamson [Mon, 15 Nov 2010 19:53:27 +0000 (12:53 -0700)]
mk_PL_charclass.pl: Find non-latin1 folds
The output of this .pl is to be used as the main table in
l1_char_class_tab.h. Add a new bit to indicate if a Latin1 character
particpates in a a simple fold with a character outside the Latin1
range. This will be used by regcomp.c to make decisions about how to
compile regexes.
Karl Williamson [Mon, 15 Nov 2010 19:49:34 +0000 (12:49 -0700)]
regexec.c: indent code in new block
This is a white-space, formatting only patch. The previous commit
placed existing code in a new {block}. This now indents it and
reformats it to still fit in 80 columns. No logic changes are in it.
Karl Williamson [Mon, 15 Nov 2010 19:48:20 +0000 (12:48 -0700)]
regexec.c: utf8 could fold to ascii/latin1
Some non-Latin1 characters fold to that range, and hence should be
tested against the generated bit map.
Karl Williamson [Mon, 15 Nov 2010 19:40:16 +0000 (12:40 -0700)]
regcomp.c: Add comment
Karl Williamson [Mon, 15 Nov 2010 19:38:20 +0000 (12:38 -0700)]
regcomp.c: Add comment
Karl Williamson [Mon, 15 Nov 2010 19:10:28 +0000 (12:10 -0700)]
reg_fold.t: Don't duplicate fold_grind.t
This removes testing of bracketed character classes from reg_fold.t,
which are better tested by the new fold_grind.t
Karl Williamson [Mon, 15 Nov 2010 19:05:43 +0000 (12:05 -0700)]
Add fold_grind.t
This .t is designed to mostly replace reg_fold.t. it provides much more
comprehensive tests, but has a huge number of failures that should be
TODOs that I found it difficult to classify, so have deferred adding it
until now, when in a few commits, those will be whittled way down.
And, those would only come in testing things that aren't character
classes, which are currently commented out, and reg_fold.t is relied on
for testing those.
Karl Williamson [Mon, 15 Nov 2010 17:49:52 +0000 (10:49 -0700)]
pp.c: tiny performance enhancement
I believe on many processors two increments are faster than two
additions
Karl Williamson [Mon, 15 Nov 2010 17:27:02 +0000 (10:27 -0700)]
pp.c, utf8.c: Convert to use TWO_BYTE_UTF8_TO_UNI
Karl Williamson [Mon, 15 Nov 2010 17:18:58 +0000 (10:18 -0700)]
utf8.h: Add macro TWO_BYTE_UTF8_TO_UNI()
The code to do this isn't obvious, as it was wrong in 5 different places
in two different files (forgetting one or both of the required
conversions to UTF (which is a no-op except on EBCDIC machines, or it
would have been detected sooner.)
Some of that code depended on left shifting being truncated in a U8.
This adds UTF_START_MASK so it can work in a larger width variable.
Karl Williamson [Mon, 15 Nov 2010 16:28:28 +0000 (09:28 -0700)]
utfebcdic.h: comment additions, fix typo
Karl Williamson [Sun, 14 Nov 2010 21:00:47 +0000 (14:00 -0700)]
regexec.c: Correct indent
Karl Williamson [Sun, 14 Nov 2010 19:20:40 +0000 (12:20 -0700)]
mk_PL_charclass.pl: Correct comment
Karl Williamson [Sun, 14 Nov 2010 19:11:12 +0000 (12:11 -0700)]
utf8_heavy: Guard against infinite recursion
If things aren't just so, it could be that utf8_heavy calls something
which requires a pattern, such as split or just a pattern match that
ends up calling utf8_heavy again, ad infinitum. When this happens,
memory gets eaten up and the machine grinds to a halt, likely requiring a
manual forced reboot.
To prevent this undesirable situation, utf8_heavy now stacks all its
calls in progress, and if any is a repeat, panics.
Karl Williamson [Sun, 14 Nov 2010 17:37:41 +0000 (10:37 -0700)]
Split ANYOF_NONBITMAP into two components
ANYOF_NONBITMAP means that the node can match things that aren't in its
bitmap. Some things can match only when the target string is in utf8,
and some things can match even if it isn't. If the target string is not
in utf8, and we know that the only possible match is when it is in utf8,
we know it can't match, and avoid a fruitless, expensive swash load.
This change also fixes a number of problems shown in t/re/grind_fold.t
that I will deliver soon.
Karl Williamson [Sun, 14 Nov 2010 17:32:28 +0000 (10:32 -0700)]
regcomp.c: Optimizer wrongly turning off bit
ANYOF_UNICODE_ALL and ANYOF_NONBITMAP are not mutually exclusive, so
there is no need for the optimizer to make them so.
Karl Williamson [Sun, 14 Nov 2010 05:39:23 +0000 (22:39 -0700)]
regcomp.c: Add explanatory comment
Karl Williamson [Sun, 14 Nov 2010 03:55:49 +0000 (20:55 -0700)]
regcomp.h: Add comment
Karl Williamson [Sun, 14 Nov 2010 03:51:08 +0000 (20:51 -0700)]
regcomp.h: Renumber ANYOF_EOS bit
This is in preparation for adding a new bit which for debugging ease
ought to be adjacent to another one.
Karl Williamson [Sun, 14 Nov 2010 03:41:44 +0000 (20:41 -0700)]
regcomp.c: Fix indent
Karl Williamson [Sun, 14 Nov 2010 00:21:14 +0000 (17:21 -0700)]
rename ANYOF_UNICODE to ANYOF_NONBITMAP
I am about the hone the meaning of this to mean that there is something
outside the bitmap that is matchable by the node, and the new name
reflects that more accurately.
I am not retaining the old name because I'm about to remove it from the
flags field to save a bit and avoid masking operations, and any code
that would be using it would break at that point.
Karl Williamson [Fri, 12 Nov 2010 16:33:52 +0000 (09:33 -0700)]
perl.h: Add latin1 fold table
The adds a folding table that works on the full Latin1 character set,
except for three problematic characters that need special handling.
It is accessed by PL_fold_latin1.
Karl Williamson [Fri, 12 Nov 2010 16:26:04 +0000 (09:26 -0700)]
regcomp.sym: Clarify comment
make regen needed
Karl Williamson [Fri, 12 Nov 2010 16:07:48 +0000 (09:07 -0700)]
Nits in perlunicode.pod
Karl Williamson [Fri, 12 Nov 2010 16:06:50 +0000 (09:06 -0700)]
regexec.c: Split EXACT, folding nodes in regrepeat
As I started working on fixing more bugs in regrepeat, I realized that
the EXACT node had enough different things going on from the folding
nodes that it was better to give it its own case statement. This patch
does this and refactors the remaining code to compensate, and for
clarity.
Karl Williamson [Fri, 12 Nov 2010 16:05:19 +0000 (09:05 -0700)]
PL_fold wrong for EBCDIC platforms.
The PL_fold table map on EBCDIC only works on the ASCII-subrange
characters, not the full native Latin1.
To fix this, I moved the table to utfebcdic.h for EBCDIC platforms, and
actually changed it to three tables, one for each of the code pages
known to Perl.
There is no EBCDIC platform available to test on. What I did was hack
together a program from existing code that does EBCDIC transforms. I
ran it in ASCII mode, and verified that the generated table was
identical to the Latin1 table I had previously constructed by hand and
extensively tested. I then ran it on each of the three EBCDIC
transforms, and verified that each matched the places in the original
table that I knew were correct, all the ASCII alphabetics, the controls,
and a few other code points.
So these tables are at least as correct as the existing one, as they are
identical to it for [A-Z], [a-z].
Karl Williamson [Fri, 12 Nov 2010 16:04:37 +0000 (09:04 -0700)]
perl.h: Expand comment
Karl Williamson [Fri, 12 Nov 2010 16:02:46 +0000 (09:02 -0700)]
re/pat.t: Skip tests on EBCDIC
There's no convenient way to translate to EBCDIC in these tests, since
they don't use the normal test routines which have this facility.
Therefore, have to skip these tests on those platforms.
Karl Williamson [Fri, 12 Nov 2010 15:41:46 +0000 (08:41 -0700)]
regcomp.sym: Fix descriptions
requires regen
Karl Williamson [Fri, 12 Nov 2010 03:07:09 +0000 (20:07 -0700)]
regex free up bit in ANYOF node
This patch causes all locale ANYOF nodes to have a class bitmap (4
bytes) even if they don't have a class (such as \w, \d, [:posix:]).
This frees up a bit in the flags field that was used to signal if the
node had the bitmap. I intend to use it instead to signal that loading
a swash, which is slow, can be bypassed. Thus this is a time/space
tradeoff, applicable to not just locale nodes: adding a word to the
locale nodes saves time for all nodes.
I added the ANYOF_CLASS_TEST_ANY_SET() macro to determine quickly if
there are actually any classes in the node.
Minimal code was changed, so this can be easily reversed if another bit
frees up.
Another possibility is to share with the ANYOF_EOS bit instead, as this
is used just in the optimizer's start class, and only in regcomp.c. But
this requires more careful coding.
Another possibility is to add a byte (hence likely at least 4 because of
alignment issues) to store extra flags.
And still another possibility is to add just the byte for the start
class, which would not need to affect other ANYOF nodes, since the EOS
bit is not used outside regcomp.c. But various routines in regcomp
assume that the start class and other ANYOF nodes are interchangeable,
so this option would require more code changes.
Karl Williamson [Fri, 12 Nov 2010 02:20:40 +0000 (19:20 -0700)]
regcomp.h: Add comment
Karl Williamson [Fri, 12 Nov 2010 02:00:13 +0000 (19:00 -0700)]
regcomp.c: Remove references to old #define
Two #defines were recently collapsed to mean the same thing.
Standardize on using one of them.
Karl Williamson [Thu, 11 Nov 2010 22:56:24 +0000 (15:56 -0700)]
regcomp.h: Reorder statements for clarity
Reorder #defines of bits so are in numerical order
Father Chrysostomos [Mon, 22 Nov 2010 17:25:40 +0000 (09:25 -0800)]
Newly-created stashes may need effective names added
Ben Morrow [Sun, 17 Oct 2010 22:03:58 +0000 (23:03 +0100)]
%x can't be used directly with pointers.
(I keep forgetting this.) Change the four occurrences in the new custom
op tests to UVxf with a PTR2UV around the pointer.
Father Chrysostomos [Mon, 22 Nov 2010 00:27:56 +0000 (16:27 -0800)]
Remove redundant check
There is a similar check about fifty lines back.
And it is silly to check HvARRAY on a named hash.
Father Chrysostomos [Mon, 22 Nov 2010 00:26:04 +0000 (16:26 -0800)]
mro_package_moved must act on all effective names
See the test case in the commit. It passes in 5.8.x and blead (as of
this commit), but not 5.10-5.13.7.
In every case the name to be passed to mro_gather_and_rename is cre-
ated using an SV, so we might as well pass that instead of extracting
the char array and length from it.
That allows us to pass an AV instead, if there are multiple names to
take into account.
Nicholas Clark [Sun, 21 Nov 2010 19:13:01 +0000 (19:13 +0000)]
Move the test for Win32's FindExt.pm to t/porting, and run it automatically.
The test was written as part of the work on migrating modules to cpan/ and
dist/, but at that time at least one of FindExt.pm and Configure was buggy with
the classification of at least one module (XS or non-XS). As that is now fixed,
move the test to t/porting, and run it routinely. This will ensure that the
Win32 code's classification of modules will remain consistent with Configure's.
Father Chrysostomos [Sun, 21 Nov 2010 02:27:55 +0000 (18:27 -0800)]
Add flags param to hv_ename_*
We will need this for making the API UTF8-aware in 5.16
or whenever.
Father Chrysostomos [Sun, 21 Nov 2010 02:42:10 +0000 (18:42 -0800)]
‘If you are upgrading from 5.13.6...’
Florian Ragwitz [Sun, 21 Nov 2010 02:17:25 +0000 (03:17 +0100)]
Only clean up the generated perldelta
Father Chrysostomos [Sat, 20 Nov 2010 19:44:07 +0000 (11:44 -0800)]
S_hfreeentries: keep OOK off unless adding something to aux
This small optimisation allows hv_undef to skips its if(SvOOK()) block
and all the checks inside it much of the time.
Karl Williamson [Sat, 20 Nov 2010 16:15:59 +0000 (09:15 -0700)]
mktables: Clean up warning msg
This message actually printed, and I discovered the various components
ran together, needing white space to make it more readable.
Karl Williamson [Sat, 20 Nov 2010 17:56:01 +0000 (09:56 -0800)]
mktables: comment typo and expand other comments
Karl Williamson [Sat, 20 Nov 2010 16:07:57 +0000 (09:07 -0700)]
mktables: Smaller tables if not -DDEBUGGING
This patch frees up about .5Mb of disk space. First, it omits an
unnecessary trailing tab in the output tables, at the cost of an extra
test. Secondly, for non-debugging Perls, it omits the
helpful-to-developer comments at the beginning of each table file, and
changes the default to not output the other helpful-to-developer
comments that give the number of code points in each output range in the
tables.
Father Chrysostomos [Sat, 20 Nov 2010 17:46:37 +0000 (09:46 -0800)]
Revert "Globs that are in the symbol table can be unglobbed"
This reverts
b9e00b79 except for the tests.
This extra checking and saving of the FAKE flag is no longer necessary
as of the previous commit.
Father Chrysostomos [Sat, 20 Nov 2010 17:33:44 +0000 (09:33 -0800)]
[perl #77926] Glob reification during localisation
This was supposed to have been fixed by
2acc3314e31a9, but the code it
added was in the wrong spot. (This is the code that makes *{} return a
new glob if its argument is FAKE.)
Consequently, local *$foo was localising $foo, not *$foo.
This changes the order of the statements and adds a test.
Father Chrysostomos [Sat, 20 Nov 2010 13:55:01 +0000 (05:55 -0800)]
Correct test count in UCD.t
Father Chrysostomos [Sat, 20 Nov 2010 13:39:05 +0000 (05:39 -0800)]
Increase Unicode'UCD::s version
Karl Williamson [Fri, 19 Nov 2010 19:23:25 +0000 (12:23 -0700)]
UCD.pm: Add info about named sequence alternatives
The namedseq function is essentially obsolete, as the core has better
incorporated its abilities. This adds documentation as to the
alternatives.
Karl Williamson [Fri, 19 Nov 2010 19:04:53 +0000 (12:04 -0700)]
UCD.pm: Don't use CompositionExclusions.txt
The motiviation for this patch was to remove dependence of UCD on
another Unicode DB .txt file.
But the subroutine that uses it is out-of-date, now that this property,
and an even more convenient one are accessible from the core. So the
documentation is also updated to educate people.
Instead of using the file, the routine just uses the core's access
method
Karl Williamson [Fri, 19 Nov 2010 18:59:05 +0000 (11:59 -0700)]
UCD.pm: Don't use NamedSequences.txt, saves disk
This changes UCD to not use this file. Instead it takes advantage of
the recent addition of named sequences being accessible through the \N{}
construct. In one case where it returns a hash of all the named
sequences, it uses the same .pl file that \N{} does. My guess is that
this routine's usefulness is now past, as named sequences are now
incorporated into the core.
Father Chrysostomos [Sat, 20 Nov 2010 19:20:07 +0000 (11:20 -0800)]
Eliminate the newname param from mro_package_moved
Nothing is using this any more, as of the previous commit.
Father Chrysostomos [Sat, 20 Nov 2010 19:33:59 +0000 (11:33 -0800)]
Make hv_undef leave HvENAME alone
unless called from sv_clear.
This is necessary as and undeffed stash, though it nominally becomes
just a plain hash and is not a stash any more, is still to be found
in the symbol table. It may even be in multiple places. HvENAME’s
raison d’être is to keep track of this. If the effective name is
deleted, then things can get out of sync as the test in the commit
demonstrates. This can cause problems if the hash is turned back
into a stash.
This does not change the deletion of the HvNAME, which is the only
difference between hv_clear and hv_undef on stashes that is visible
from Perl. caller still returns (unknown) or __ANON__::....
I tried to make this into several small commits, but each part of it
breaks things without the other parts, so this is one big commit.
These are the various parts:
• hv_undef no longer calls mro_package_named directly, as it deletes
the effective name of the stash. It must only be called on sub-
stashes, so hfreeentries has been modified to do that.
• hv_name_set, which has erased the HvENAME when passed a null arg
for the value ever since effective names were added (a special case
put it just for hv_undef), now leaves the HvENAME alone, unless the
new HV_NAME_SETALL flag (set to 2 to allow for UTF8 in future)
is passed.
• hv_undef does not delete the name before the call to hfreeentries
during global destruction. That extra name deletion was added when
hfreeentries stopped hiding the name, as CVs won’t be anonymised
properly if they see it. It does not matter where the CVs point if
they are to be freed shortly. This is just a speed optimisation, as
it allows the name and effective name to be deleted in one fell
swoop. Deleting just the name (not the effective name) can require a
memory allocation.
• hv_undef calls mro_isa_changed_in as it used to (before it started
using mro_package_moved), but now it happens after the entries are
freed. Calling it first, as 5.13.6 and earlier versions did, was
simply wrong.
• Both names are deleted from PL_stashcache. I inadvertently switched
it back and forth between the two names in previous commits. Since
it needed to be accounted for, it made no omit it, as that would
just complicate things. (I think PL_stashcache is buggy, though I
have yet to come up with a test case.)
• sv_clear now calls Perl_hv_undef_flags with the HV_NAME_SETALL
flag, which is passed through to the second hv_name_set call,
after hfreeentries. That determines whether the effective names
are deleted.
• The changes at the end of hv_undef consist of pussyfooting to avoid
unnecessary work. They make sure that everything is freed that needs
to be and nothing is freed that must not be.
Father Chrysostomos [Fri, 19 Nov 2010 05:30:52 +0000 (21:30 -0800)]
hv_undef .= _flags
Add flags param to hv_undef.
There is no mathom, as the changes that this will support
are by no means suitable for maint.
Father Chrysostomos [Fri, 19 Nov 2010 02:28:08 +0000 (18:28 -0800)]
Fix hv_name_set when there is an HvENAME
This code was completely wrong and could even crash. This is not cur-
rently reached.
Chris 'BinGOs' Williams [Sun, 21 Nov 2010 02:10:19 +0000 (02:10 +0000)]
Add the new shiny perldelta file I neglected to add.
Chris 'BinGOs' Williams [Sun, 21 Nov 2010 01:51:40 +0000 (01:51 +0000)]
Update TOC for perl5.13.8
Chris 'BinGOs' Williams [Sun, 21 Nov 2010 01:46:44 +0000 (01:46 +0000)]
Created perldelta for v5.13.8
Chris 'BinGOs' Williams [Sun, 21 Nov 2010 01:36:25 +0000 (01:36 +0000)]
v5.13.7 epigram added.