| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
Posted by Niko Tyni
Commit 9bb1f947 fixed the description of \E in perlre.pod to include
the 'end quoted section' functionality, so update the similar list in
perlop.pod too.
Triggered by http://bugs.debian.org/126238
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reported by Niko Tyni
Commit b76cc8ba45957 made each group a quadruple without
updating the name. Take out the name altogether to avoid
this in the future.
Also update the reference to "list form" pipes to include
both the old last example and the new one.
Originally noticed by Reuben Thomas in http://bugs.debian.org/469402
|
|
|
|
|
| |
Quite likely coverage isn't that good, but some tests are better than none.
More tests welcome.
|
|
|
|
|
| |
Typeglob assignment avoids compiler work creating the optree for a second
subroutine, and runtime work executing that optree.
|
|
|
|
|
|
|
|
|
|
|
| |
pp_reach, pp_rvalues, and pp_transr are aliases, but regen/opcode.pl
generates declarations for aliases as if they were C functions in
their own right. This is necessary for aliases that refer to mathoms
(as most of them do) but seems less right for new entries that will
never refer to an actual function of the same name. For now, these
need to be explicitly excluded when building the linker options file
on VMS. Failure to do so breaks the build with undefined symbol
warnings.
|
| |
|
|
|
|
|
|
|
|
| |
This will also inline the constant in the code of walkoptree_slow().
Things are complicated by the fact that B's BOOT code needs $VERSION set, and
pushes to @EXPORT_OK.
Move the 'use strict' much earlier.
|
| |
|
| |
|
|
|
|
|
|
|
| |
padav is leaving an arrayref on the stack when producing the return value for an
lvalue sub. But when this is in an argument list it really should be a array,
not a ref. So, in leavesublv I check for this case and expand the arrayref to
an array.
|
|
|
|
| |
Nothing outside the core was using this macro.
|
|
|
|
|
|
|
|
|
| |
This removes around 300 bytes of object code from each place it was previously
inlined. It also provides a better interface - quite a lot of the core
currently bodges things by creating a local variable C<SV **sp = &sv> to use
the macro.
Change the XS::APItest wrapper to amagic_deref_call().
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
[DELTA]
0.65 Wed Nov 3 13:10:20 2010
- U::C::Locale newly supports locale: zh and its some variants.
(zh__big5han, zh__gb2312han, zh__pinyin, zh__stroke)
- added Unicode::Collate::CJK::Big5 for zh__big5han.
- added Unicode::Collate::CJK::GB2312 for zh__gb2312han.
- added Unicode::Collate::CJK::Pinyin for zh__pinyin.
- added Unicode::Collate::CJK::Stroke for zh__stroke.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is based on a patch by Father Chrysostomos <sprout@cpan.org>
The start class optimisation has two modes, "try every valid start
position" (doevery) and "flip flop mode" (!doevery) where it trys
only the first valid start position in a sequence.
Consider /(\d+)X/ and the string "123456Y", now we know that if we fail
to match X after matching "123456" then we will also fail to match after
"23456" (assuming no evil tricks are in place, which disable the
optimisation anyway), so we know we can skip forward until the check
/fails/ and only then start looking for a real match. This is flip-flop
mode.
Now consider the case with zero-width lookahead under /g: /(?=(\d+)X)/.
In this case we have an additional failure mode, that is failure when
we match a zero-width string twice at the same pos(). So now, the
"flip-flop" logic breaks as it /is/ possible that we could match at
"23456" when we couldn't match at "123456" because of the zero-length
twice at the same pos() rule. For instance:
print $1 for "123"=~/(?=(\d+))/g
should first match "123". Since $& is zero length, pos() is not
incremented. We then match again, successfully, except that the match
is rejected despite technical-success because its $& is also zero
length and pos() has not advanced. If the flip-flop mode is enabled
we wont retry until we find a failing character first.
The point here is that it makes perfect sense to disable the
"flip-flop" mode optimisation when the start class is inside
a lookahead as it really doesnt apply.
|
| |
|
| |
|
|
|
|
|
|
| |
When the jump code was added the case of an empty string followed
by a jump wasnt accounted for. One could argue it should not happen
however that is a matter for a different commit.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
for the upcoming y///r feature. There are not enough flag bits,
hence the extra type.
|
| |
|
|
|
|
|
|
|
| |
Only Perl_amagic_call() was using RvDEEPCP() when it was added in 5.000, and I
believe that it's never had any other users (in the core, on CPAN, or anywhere
else visible to Google codesearch). Hence it seems an ideal candidates to be
inlined and eliminated.
|
|
|
|
|
|
|
|
| |
Yes, it was a while loop implemented using goto, although this only became
clear by untangling the macros. I believe it need never have been implemented
as goto, given that the other user of tryAMAGICunW_var "broke" out of the
"if"'s block using a return, hence that "if" could have been a "while" all
along.
|
|
|
|
|
| |
Aside from the 2 callers where it can be replaced with AMG_CALLun().
AMG_CALLun_var was only used in core.
|
|
|
|
|
|
|
| |
This also inlines and eliminates FORCE_SETs and setAGAIN.
The three eliminated macros were not referenced from anywhere else. (The core,
CPAN, code visible to Google codesearch.)
|
|
|
|
|
| |
tryAMAGICunW was only used within pp.h itself, and not referenced from anywhere
else. (The core, CPAN, code visible to Google codesearch.)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since commit 6f1401dc2acd2a2b, many AMAGIC macros in pp.h are no longer used
in core, nor in modules or CPAN, nor in code visible to Google codesearch.
Specifically:
tryAMAGICbinW_var
tryAMAGICbinW
tryAMAGICbin_var
tryAMAGICbin
tryAMAGICbinSET
tryAMAGICbinSET_var
tryAMAGICbinW_var
AMG_CALLbinL
tryAMAGICun_var
tryAMAGICun
tryAMAGICunSET_var
tryAMAGICunSET
tryAMAGICftest
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This avoids structure padding on architectures with 64 bit alignment for
pointers. For example, on x86_64 it reduces the structure size from 48 to 40
bytes.
|
| |
|
|
|
|
| |
I cheated by adding more commit IDs to the exception list.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
We don't actually know where in space a formatter will put
any text, or that the text will be there at all (e.g.
perldoc -v)
|
| |
|
| |
|
| |
|
| |
|
| |
|