| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
This also happens to apply to *{ $::{glob} }, but not to *{\*glob} or
*{$thing = *glob}.
In other words, it’s only when the operand is a real glob, and not a
reference or a SVt_FAKE glob.
|
|
|
|
|
|
|
|
|
|
|
| |
[DELTA]
0.224 20101031
. Change assignment @ISA = (@ISA, 'new::class')
to use push @ISA, 'new::class'
This should make class creation faster from 5.10 onwards
and reverts a change made in 2.14. If this is critically slow for you
and you can't upgrade your version of Perl, use the old way.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
ANYOF_RUNTIME() is no longer used, so can be removed.
I had long tried to figure out what the purpose of this was, and
discovered it really had none.
I think it must have had something to do with locales at one time. But
locales don't do well with utf8, and I don't know how to make it better.
In any event this wasn't actually accomplishing anything.
|
|
|
|
|
|
|
|
|
|
|
| |
The previous re-ordering of this function makes it clear that this test
doesn't do anything. It is testing the charclass bitmap, but that was
already done in the re-ordered block from a previous commit, so if it
didn't succeed there, it won't succeed here.
In fact, trying to understand why this code was here was what led me to
figure out that it wasn't, and that things could be sped up by doing the
reordering.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch simply moves the block of code that does the bitmap tests in
front of the block of code that deals with potential things not in the
bit map. The reason to do this is that it is faster to find things in
the bitmap, than to have to create a utf8 swash.
The patch also adds some comments, and the first block doesn't have to
test if there has been a match, and the second block does, so if
statements for those two blocks are adjusted accordingly.
The proof that this doesn't break anything stems from the fact that the
routine never stops early. If there wasn't a match in the first block
of code, it would execute the second block. Thus swapping the order
doesn't affect the outcome. The side effects of the first block are
reading in the swash. These side effects won't happen if it no longer
gets executed, because the other block matched. And thus an error could
be introduced if there were coding errors elsewhere that didn't
initialize the swash before using it. But that doesn't appear to be the
case, as all tests pass.
|
|
|
|
|
| |
The previous changes have made it clear that this test never was useful,
so remove it.
|
|
|
|
|
|
| |
reginclass assumes that can match always at least one character. Make
that explicit, and now that we have that length always saved, don't
recalculate it.
|
|
|
|
| |
Several other variables in the routine have the previous name
|
| |
|
|
|
|
|
| |
These two #defines now mean the same thing. Free up bit used by
ANYOF_LARGE
|
|
|
|
|
| |
The call to reginclass is guaranteed by constness to not change
locinput, so if going to fail don't waste time calling it.
|
| |
|
| |
|
|
|
|
|
| |
Now that reginclass is guaranteed to return the match length upon
success, the caller need not do it again.
|
|
|
|
| |
This also allows for less special case testing
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Hence they can have return type bool, which allows xsubpp to generate slightly
simpler (and smaller) code, and at run time avoids using a temporary for the
return value.
|
|
|
|
|
|
|
|
| |
Remove the static functions {,net}[mp]store(), which were trivial wrappers
around do_store(). Instead call do_store() directly, using the ALIAS index
as the flag. Less code.
On this platform, this reduces the object code by over 1K. (Over 1%)
|
| |
|
|
|
|
|
| |
Now, all calls have been converted to the more general case; can remove
the old one, and rename the new one to have the same name as the old one
|
|
|
|
|
|
|
| |
This patch is part of fixing the Unicode bug. The /u regex modifier now
applies to posix character classes. This resolves [perl #18281].
The Todo tests in reg_posicc.t have all been made not todo.
|
|
|
|
|
| |
The generated table was wrong in the Latin1 range for characters with
the ALNUMC property
|
| |
|
|
|
|
|
|
| |
The previous documentation really didn't specify what \w is. It matches
the underscore, but also all other connector punctuation, plus any
marks, such as diacritical accents that occur within a word.
|
|
|
|
|
|
|
|
|
|
| |
This patch adds a set of synonyms \p{XPosixFOO} for the full extended
Unicode version of \p{PosixFOO}, so only one rule need be remembered.
Similarly, \p{XPerlSpace} is added to preserve the rule for the one
similar class that doesn't have Posix in its name.
Prior to this patch there was no exact equivalent to \p{PosixPunct}
extended beyond ASCII.
|
|
|
|
| |
This reverts commit d5944336d74c819152158dabfd806d49ad0ecb21.
|
|
|
|
| |
On this platform, this reduces the object code size by over 5K.
|
| |
|
|
|
|
| |
This is to accomodate this new function in version.pm 0.85.
|
|
|
|
|
|
|
| |
This patch adds a set of synonyms \p{XPosixFOO} for the full extended
Unicode version of \p{PosixFOO}, so only one rule need be remembered.
Similarly, \p{XPerlSpace} is added to preserve the rule for the one
similar class that doesn't have Posix in its name.
|
| |
|
| |
|
|
|
|
|
|
|
| |
mktables allows for multiple tables to be made equivalent, which in Unix
terminology means that they are essentially symbolic links. However
this should happen only when they have the same code points in them to
begin with. This adds a little more error checking.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The recv() system call, with the MSG_TRUNC flag, returns the
true size of the packet, even if it is larger than the supplied buffer.
Since perl's equivalent recv() function doesn't return the size
(apart from what's implied as the returned length of the buffer), there
doesn't seem to to be any way to return this value to the caller. So
silently ignore it.
Before, we were setting SvCUR to the size, even if it was larger than
the buffer. Which was Bad.
|
| |
|
|
|
|
| |
When allocating a temporary SV, make sure it will get freed if we die.
|
|
|
|
|
| |
The address printed for malloc() didn't always match that for free().
Print the malloc() address *after* any modification by PERL_TRACK_MEMPOOL
|
|
|
|
|
|
|
|
|
|
|
|
| |
[DELTA]
0.64 Sun Oct 31 14:17:29 2010
- U::C::Locale newly supports locale: ja.
- added Unicode::Collate::CJK::JISX0208 for ja.
- a subroutine specified in 'overrideCJK' or 'overrideHangul' is allowed
to return an integer or undef value.
- fix: Ideographs Ext.A are assigned since UCA Version 9 (Unicode 3.1).
This fix should affect only the case of (UCA_Version => 8).
|
| |
|
| |
|
|
|
|
|
| |
This can now be done with less code in the Makefile.PL since commit
b1826b71659a2c08 changed B to use ExtUtils::Constant
|
|
|
|
|
| |
These are no longer needed since commit b1826b71659a2c08 changed how B was
generating its exported constants.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit makes mro_package_moved call mro_isa_changed_in on the
stash that has been assigned if it did not have an effective name
(HvENAME) before the assignment.
This is what was happening:
{package Right} # autovivify it
@thing::ISA = qw[Left];
*Left:: = delete $::{"Right::"};
When Right is deleted, it is not attached to the symbol table any
more, so it has no effective name. mro_isa_changed_in3 is called on
it, which resets the caches and then proceeds to cache a new isa linearisation. The new linearisation, of course, does not use the
name ‘Left’.
When Right is assigned over the top of Left, Right is given an
HvENAME of ‘Left’. Then mro_isa_changed_is3 is called on the
original Left, which, in turn, calls mro_isa_changed on its sub-
classes. So thing’s isa linearisation is calculated, which is just
‘thing’ + get_linear_isa(Left) (where ‘Left’ now refers to what was previously called Right). This ends up using the bad linearisation.
So the linearisation of a heretofore effectively nameless stash must
be recalculated, but after it has been given a name.
If it has an effective name already, then it appears elsewhere in the
symbol table, and its effective name does not change. (The name added
simply becomes an alternative to switch to should the HvENAME become
invalid.) So the existing isa cache is fine and we do not need to call
mro_isa_changed_in.
(That is a rather lengthy commit message, is it not?)
|