Nicholas Clark [Mon, 8 Nov 2010 14:18:54 +0000 (14:18 +0000)]
In B.xs, remove the now unused first argument from make_sv_object().
After the previous change, all callers were passing in NULL and letting it
generate a new mortal SV for them.
Nicholas Clark [Mon, 8 Nov 2010 13:53:53 +0000 (13:53 +0000)]
In B.xs, use PPCODE rather than a typemap for output of T_SV_OBJ
This actually reduces both source code size and object code size (the latter
by almost 1K on this platform).
Nicholas Clark [Mon, 8 Nov 2010 13:03:13 +0000 (13:03 +0000)]
B::MAGIC::LENGTH(), not B::MAGIC::LEN(). Fixes #78864
b2adfa9b5e1682df inadvertently changed the name of the accessor for
mg->mg_len to B::MAGIC::LENGTH. Fix this.
Nicholas Clark [Mon, 8 Nov 2010 11:54:25 +0000 (11:54 +0000)]
In B.xs refactor cc_opclassname() to make_op_object().
All bar one of the callers to cc_opclassname() were using it in the same way -
to pass as the second argument of newSVrv(), whose first argument was a new
mortal, and return value was used with sv_setiv() and PTR2IV(). So clearly
*that* is the common code needed.
Inline the existing code (all 1 line of it) in the other location that called
cc_opclassname(). As the typemap was using cc_opclassname(), replace the 4
implicit uses of it with explicit PPCODE sections. Curiously, removing the use
of this typemap actually reduces the line count of B.xs
On this platform, this reduces the object code size by almost .5K.
Nicholas Clark [Mon, 8 Nov 2010 09:31:39 +0000 (09:31 +0000)]
Merge the implementation of B::COP::{io,warnings} using ALIAS.
On this platform, this reduces the object size by about .5K.
Nicholas Clark [Mon, 8 Nov 2010 09:13:27 +0000 (09:13 +0000)]
In B.xs, refactor make_warnings_object() to take a COP * instead of STRLEN *.
Nicholas Clark [Mon, 8 Nov 2010 08:12:39 +0000 (08:12 +0000)]
Merge the implementation of B::COP::{filegv,stash} using ALIAS.
On this platform, this reduces the object size by about 400 bytes for a threaded
build.
Nicholas Clark [Sun, 7 Nov 2010 22:00:20 +0000 (22:00 +0000)]
Merge the implementation of B::COP::{file,stashpv} using ALIAS.
On this platform, this reduces the object size by about .5K, for an unthreaded
build.
Nicholas Clark [Sun, 7 Nov 2010 17:33:42 +0000 (17:33 +0000)]
Merge the implementation of B::BM::TABLE with B::PV::{PV,PVX,PVBM} using ALIAS.
On this platform, this reduces the object code size by about .5K.
Nicholas Clark [Sun, 7 Nov 2010 17:17:06 +0000 (17:17 +0000)]
Remove unneeded PREFIXes from B.xs.
Nicholas Clark [Sun, 7 Nov 2010 16:47:45 +0000 (16:47 +0000)]
Merge the implementation of B::PV::PVBM with PVX and PV, using ALIAS.
Nicholas Clark [Sun, 7 Nov 2010 16:14:17 +0000 (16:14 +0000)]
Merge the implementation of B::PV::{PVX,PV} using ALIAS.
On this platform, this reduces the object size by .5K.
Nicholas Clark [Sun, 7 Nov 2010 15:19:15 +0000 (15:19 +0000)]
Refactor B::PV::PV to use newSVpvn_flags() for both arms of the if.
newSVpvn_flags(NULL, whatever, SVs_TEMP) is equivalent to sv_newmortal().
Nicholas Clark [Sun, 7 Nov 2010 15:03:43 +0000 (15:03 +0000)]
Merge the implementation of B::REGEXP::{REGEXP,precomp} using ALIAS.
Nicholas Clark [Sun, 7 Nov 2010 10:36:57 +0000 (10:36 +0000)]
In B::REGEX::precomp, use newSVpvn_flags() instead of newSVpvn().
Using newSVpvn_flags() and SVt_TEMP and an explicit push is one API call.
newSVpvn() and RETVAL results in a second API call, sv_2mortal(), in the return
typemap.
Nicholas Clark [Sun, 7 Nov 2010 10:20:36 +0000 (10:20 +0000)]
In B.xs, move the version dependant regexp code to be adjacent.
Nicholas Clark [Sun, 7 Nov 2010 09:56:50 +0000 (09:56 +0000)]
Move the aliasing of B::IV::RV as B::PV::RV from XS to Perl code.
This results in the same CV being used twice, rather than two CVs being created
that point to the same XS code implementation, shrinking the memory usage of B
slightly (168 bytes on this platform). It also is fewer source lines. :-)
Karl Williamson [Sun, 7 Nov 2010 22:25:31 +0000 (15:25 -0700)]
regexec.c: Don't give up on fold matching early
As noted in the comments of the code, "a" =~ /[A]/i doesn't work currently
(except that regcomp.c knows about the ASCII characters and corrects for
it, but not always, for example in cases like "a" =~ /\p{Upper}/i. This
patch catches all those).
It works by computing a list of all characters that (singly) fold to
another one, and then checking each of those. The maximum length of
the list is 3 in the current Unicode standard.
I believe that a better long-term solution is to do this at compile
rather than execution time, by generating a closure of everything
matched. But this can't be done now because the data structure would
need to be extensively revamped to list all non-byte characters, and
user-defined \p{} matches are not known at compile-time.
And it doesn't handle the multi-char folds. There is a separate ticket
for those.
Karl Williamson [Sun, 7 Nov 2010 21:17:27 +0000 (14:17 -0700)]
regexec.c: change variable name to its purpose
Karl Williamson [Sun, 7 Nov 2010 22:40:40 +0000 (15:40 -0700)]
utf8.c: Add function to create inversion of swash
This adds _swash_inversion_hash() which takes a mapping swash and returns
a hash that is the inverse relation. That is, given a code point, it
allows quick lookup of all code points that map to it.
The function is not for public use, as it will likely be revised, so is
not in the public API, and it's name begins with underscore.
It does not deal with multi-char mappings at this time, nor other swash
complications.
Karl Williamson [Sat, 6 Nov 2010 18:53:23 +0000 (12:53 -0600)]
utf8.c: extract code into separate subroutine
This patch moves the code that reads a single line from the main body of
an input Unicode property table into a separate subroutine. This is in
preparation for using it from another place
Karl Williamson [Sat, 6 Nov 2010 16:24:42 +0000 (10:24 -0600)]
utf8.c: Add comments
I added comments as I was reading the code trying to understand it
Chris 'BinGOs' Williams [Sun, 7 Nov 2010 23:36:01 +0000 (23:36 +0000)]
Update File-Fetch to CPAN version 0.28
[DELTA]
Changes for 0.28 Sun Nov 7 21:22:26 2010
=================================================
* Added support for FreeBSDs 'fetch' command for
both http and ftp schemes.
Zefram [Tue, 26 Oct 2010 19:47:51 +0000 (20:47 +0100)]
refactor GRAMPROG grammar slightly
Shift the structure of the GRAMPROG production (whole-file grammar)
to more closely match that of the other top-level productions.
Niko Tyni [Sat, 6 Nov 2010 19:44:35 +0000 (21:44 +0200)]
Fix an out of bounds write in Data-Dumper with malformed utf8 input
When warnings are enabled and Dumper() is called with an invalid utf8
string that still has the UTF8 flag on, esc_q_utf8() miscounts the size
of the escaped string.
Florian Ragwitz [Sun, 7 Nov 2010 15:41:53 +0000 (16:41 +0100)]
Correct grouping in S_reginclass
As pointed out by Karl Williamson.
Apparently the wrong grouping only introduced an inefficiency, not any bugs, so
the tests still passed.
Florian Ragwitz [Sun, 7 Nov 2010 15:21:58 +0000 (16:21 +0100)]
Add Peter John Acklam to AUTHORS
Peter John Acklam [Thu, 4 Nov 2010 17:08:56 +0000 (18:08 +0100)]
RT ticket #61812: digit($n) with $n "out of range"
The _digit($n) method in Math::BigInt::Calc should return 0 when $n
refers to a leading zero digit. E.g., the number '314' is just the
same as '000314', except that the leading zeros omitted, so _digit($n)
should return '0' when $n refers to a leading zero digit.
- lib/Math/BigInt/Calc.pm: Improve comments in source code. Add code
returning zero when input refers to a leading zero digit. Removed
redundant zero padding in temporary string argument to substr().
- t/bigintc.t: Add four test cases verifying the behaviour. Increment
number of test by four.
Peter John Acklam [Thu, 4 Nov 2010 18:12:49 +0000 (19:12 +0100)]
RT ticket #62643: typos in POD and code comments
Fix lots of typos and spelling errors in the documentation (POD)
and the comments in the code, without changing any of the actual
(executed) code.
- BUGS: Fixed typos.
- CHANGES: Fixed typos.
- HISTORY: Fixed typos.
- TODO: Fixed typos.
- examples/bigprimes.pl: Fixed typos.
- lib/Math/BigFloat.pm: Fixed typos.
- lib/Math/BigInt/Calc.pm: Fixed typos.
- lib/Math/BigInt.pm: Fixed typos.
- t/bigintpm.inc: Fixed typos.
- t/inf_nan.t: Fixed typos.
- t/mbimbf.inc: Fixed typos.
- t/mbimbf.t: Fixed typos.
Peter John Acklam [Fri, 5 Nov 2010 10:52:14 +0000 (11:52 +0100)]
RT ticket #62101: as_int() returns NaN for inf
Math::BigFloat -> binf() -> as_int() returns NaN, but should return
inf. In other words, if $x is a Math::BigFloat, then $x -> as_int()
shall return the same as Math::BigInt -> new($x). The bug appears both
for +inf and -inf.
-lib/Math/BigFloat.pm: Add two lines to catch the cases when the input
is +/-inf and NaN, respectively.
-t/bare_mbf.t: incremented test count by 3
-t/bigfltpm.inc: add 3 tests, for +inf, -inf, and NaN
-t/bigfltpm.t: incremented test count by 3
-t/sub_mbf.t: incremented test count by 3
-t/with_sub.t: incremented test count by 3
Peter John Acklam [Thu, 4 Nov 2010 17:32:20 +0000 (18:32 +0100)]
RT ticket #61845: from_bin() documentation error
The documentation (POD) for the from_bin() method has a small error.
Binary numbers are prefixed by '0b', not '0x'.
- lib/Math/BigInt.pm: Fix documentation (POD) error.
Florian Ragwitz [Sun, 7 Nov 2010 14:59:24 +0000 (15:59 +0100)]
Structure dist/Math-BigInt-FastCalc like the CPAN dist
This makes applying patches between them easier.
Chris 'BinGOs' Williams [Sun, 7 Nov 2010 13:31:59 +0000 (13:31 +0000)]
Update Unicode-Collate to CPAN version 0.66
[DELTA]
0.66 Sun Nov 7 10:47:30 2010
- U::C::Locale newly supports locale: ko.
- added Unicode::Collate::CJK::Korean for ko.
- added t/loc_ko.t.
- 12 compat. ideographs (e.g. U+FA0E) are treated as unified ideographs.
(though DUCET also does it, now Unicode::Collate does it without DUCET.)
- added t/compatui.t.
! Ideographs Ext.B (U+20000..U+2A6D6) can be overrided with UCA_Version 8.
This is a long-standing behavior from Unicode::Collate 0.11 to 0.63.
A wrong fix at 0.64 should be abandoned.
Florian Ragwitz [Sun, 7 Nov 2010 11:21:04 +0000 (12:21 +0100)]
Synchronise Math::BigInt{,::FastCalc} with CPAN
Chris 'BinGOs' Williams [Sun, 7 Nov 2010 11:19:44 +0000 (11:19 +0000)]
Update File-Fetch to CPAN version 0.26
[DELTA]
Changes for 0.26 Sat Nov 6 23:30:59 2010
=================================================
* Added support for HTTP::Lite
* Resolved issue with '-l' switch and iosock fetch
Florian Ragwitz [Sat, 6 Nov 2010 20:33:51 +0000 (21:33 +0100)]
Fix a compiler warning
gcc said:
regexec.c: In function ‘S_reginclass’:
regexec.c:6305: warning: suggest parentheses around ‘&&’ within ‘||’
David Golden [Sat, 6 Nov 2010 20:00:18 +0000 (16:00 -0400)]
localize $@ during binmode (RT#78844)
Craig A. Berry [Sat, 6 Nov 2010 19:13:11 +0000 (14:13 -0500)]
Add Nicolas Kaiser to AUTHORS.
Nicolas Kaiser [Sat, 6 Nov 2010 16:54:52 +0000 (11:54 -0500)]
RT 78836: vms/vms.c: dubious expressions
I noticed two dubious expressions that look as if they were
intended to be assignments. The comment above the code says
it's broken.
Rafael Garcia-Suarez [Sat, 6 Nov 2010 15:06:34 +0000 (16:06 +0100)]
Add new ops in Opcode, so it does not warn at compilation
The ops are the recently-introduced reach, rvalues, rkeys and transr.
Niko Tyni [Sat, 6 Nov 2010 13:18:15 +0000 (06:18 -0700)]
G_VOID, G_SCALAR, and G_ARRAY are not separate bits anymore
Commit
2f8edad0d37e91319b6ba10b3745327ea49c179 made G_ARRAY
equal to G_SCALAR | G_VOID, contrary to perlcall.pod.
Bring the documentation up to date and add a test to prevent a similar
(although unlikely) accident in the future.
David Golden [Sat, 6 Nov 2010 11:54:03 +0000 (07:54 -0400)]
Added test for RT#78844
Father Chrysostomos [Sat, 6 Nov 2010 07:06:51 +0000 (00:06 -0700)]
Eliminate a few more $op->private calls in Deparse
Father Chrysostomos [Sat, 6 Nov 2010 07:05:36 +0000 (00:05 -0700)]
Make Deparse work with y/å/ø/
Father Chrysostomos [Sat, 6 Nov 2010 07:00:01 +0000 (00:00 -0700)]
Test y///r with B::Deparse
Father Chrysostomos [Sat, 6 Nov 2010 06:51:06 +0000 (23:51 -0700)]
Avoid a run-time miniperl check every time SWASHNEW is called
Tom Hukins [Fri, 14 May 2010 15:06:42 +0000 (15:06 +0000)]
Remove details that changed over seven years ago.
FreeBSD 5.0 was released on 2003-01-17 so everyone should be used to
FreeBSD lacking Perl in its base system by now.
Tom Hukins [Thu, 13 May 2010 13:14:31 +0000 (13:14 +0000)]
Clarify wording.
Tom Hukins [Tue, 11 May 2010 14:07:28 +0000 (14:07 +0000)]
Refer to other documents more specifically
Tom Hukins [Fri, 12 Mar 2010 17:27:31 +0000 (17:27 +0000)]
Link to perlbug's POD
Karl Williamson [Thu, 4 Nov 2010 21:02:17 +0000 (15:02 -0600)]
utf8_heavy.pl: Make callable during Perl's compilation
It's possible for this to be called during the compilation phase of Perl
by miniperl before the Unicode tables have been built. This patch
checks if dynamic loading is available, and if not evals the require
needed to gain access to the tables. If it succeeds, the tables have
been built; if it doesn't, instead of dying, just return empty tables,
as currently the things being built don't require information outside
the ASCII range, which is hard-coded into Perl without needing the
tables.
In the future, that may not be the case, and then likely the tables will
have to be shipped with Perl, and make regen would be done to rebuild
them.
Nicholas Clark [Fri, 5 Nov 2010 16:18:35 +0000 (16:18 +0000)]
A hack for t/harness to restore the ability to run tests listed in @ARGV
Nicholas Clark [Fri, 5 Nov 2010 16:15:18 +0000 (16:15 +0000)]
Tweak the test from
98517ccb8d5e8751 to work with PERL_UNICODE set.
One should always generate the golden B::Concise output with PERL_UNICODE set
so that ${^OPEN} is set, as the test system knows how to take it out, not put
it in.
Niko Tyni [Fri, 5 Nov 2010 11:59:14 +0000 (13:59 +0200)]
Document that the -Ci, -Co, and -CD options have file scope
While the other -C settings are global, "i" and "o" only affect subsequent
open() calls in the current file. Document this and add two tests to
make sure the documented behaviour doesn't change accidentally.
Nicholas Clark [Fri, 5 Nov 2010 13:51:46 +0000 (13:51 +0000)]
Avoid creating lots of mortals in B::walkoptree()
When calling out to the user-supplied method, re-use the same reference and
object where possible. Only create a new one if the user supplied method
modified the reference or object passed to it.
The previous implementation had a comment "Use the same opsv. Rely on methods
not to mess it up." but it was actually generating a new reference for every
call, and also a new object for every recursive call. So massive churn of
objects, and large accumulation of mortals on the temp stack.
Nicholas Clark [Fri, 5 Nov 2010 11:28:12 +0000 (11:28 +0000)]
B::Concise was failing to traverse some children of PMOPs
Notably the substcont of s/// was being missed.
The bug was introduced as part of
c0939ceec1b3e902,
"Re: [patch] teach B::Concise to see XS code", which did rather more than it
said on the tin.
Father Chrysostomos [Thu, 4 Nov 2010 17:08:27 +0000 (10:08 -0700)]
Stop B from crashing on y/å/ø/
brian d foy [Thu, 4 Nov 2010 18:05:06 +0000 (13:05 -0500)]
RT 78818 Sync the description of \E in perlop with perlre
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
brian d foy [Thu, 4 Nov 2010 17:59:50 +0000 (12:59 -0500)]
RT 78814 perlfunc/open(): four items are not a triple
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
Nicholas Clark [Thu, 4 Nov 2010 15:32:26 +0000 (15:32 +0000)]
Some tests for B::walkoptree.
Quite likely coverage isn't that good, but some tests are better than none.
More tests welcome.
Nicholas Clark [Thu, 4 Nov 2010 14:21:05 +0000 (14:21 +0000)]
Create &B::{IV,PV}::as_string using typeglob assignment rather than goto &
Typeglob assignment avoids compiler work creating the optree for a second
subroutine, and runtime work executing that optree.
Craig A. Berry [Thu, 4 Nov 2010 12:36:52 +0000 (07:36 -0500)]
Exclude more exported but non-existent functions.
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.
Chris 'BinGOs' Williams [Thu, 4 Nov 2010 12:30:43 +0000 (12:30 +0000)]
Update version of Safe in Maintainers.pl to match recent version change
Nicholas Clark [Thu, 4 Nov 2010 11:39:19 +0000 (11:39 +0000)]
Avoid needing to stub B::OPf_KIDS by loading the XS earlier.
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.
Nicholas Clark [Thu, 4 Nov 2010 09:42:52 +0000 (09:42 +0000)]
Remove two use of dXSI32; superfluous because xsubpp automatically adds it.
Father Chrysostomos [Thu, 4 Nov 2010 07:33:24 +0000 (00:33 -0700)]
Add Marty Pauley’s other e-mail address to checkAUTHORS.pl
Marty Pauley [Sun, 24 Oct 2010 09:02:40 +0000 (18:02 +0900)]
fix for #23790.
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.
Nicholas Clark [Wed, 3 Nov 2010 16:54:05 +0000 (16:54 +0000)]
Inline tryAMAGICunDEREF_var() into its callers and eliminate it.
Nothing outside the core was using this macro.
Nicholas Clark [Wed, 3 Nov 2010 14:57:11 +0000 (14:57 +0000)]
Add Perl_amagic_deref_call() to implement the bulk of tryAMAGICunDEREF_var().
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().
Nicholas Clark [Wed, 3 Nov 2010 12:07:51 +0000 (12:07 +0000)]
Add tests for tryAMAGICunDEREF_var().
Chris 'BinGOs' Williams [Wed, 3 Nov 2010 11:21:11 +0000 (11:21 +0000)]
Update Unicode-Collate to CPAN version 0.65
[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.
Yves Orton [Wed, 3 Nov 2010 09:23:00 +0000 (10:23 +0100)]
fix 68564: /g failure with zero-width patterns
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.
Yves Orton [Tue, 2 Nov 2010 13:26:46 +0000 (14:26 +0100)]
clarify code and intent of code in a comment
Yves Orton [Tue, 2 Nov 2010 13:26:25 +0000 (14:26 +0100)]
fix incorrect comment
Yves Orton [Tue, 2 Nov 2010 13:24:20 +0000 (14:24 +0100)]
fix the trie part of rt-78356
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.
Father Chrysostomos [Wed, 3 Nov 2010 04:32:05 +0000 (21:32 -0700)]
Document y///r
Father Chrysostomos [Wed, 3 Nov 2010 03:28:51 +0000 (20:28 -0700)]
Document the ‘Using !~’ errors
Father Chrysostomos [Wed, 3 Nov 2010 03:13:59 +0000 (20:13 -0700)]
Increase B::Concise’s version
Father Chrysostomos [Wed, 3 Nov 2010 03:19:25 +0000 (20:19 -0700)]
y///r
Father Chrysostomos [Wed, 3 Nov 2010 03:06:08 +0000 (20:06 -0700)]
s///r leaks like a sieve
Father Chrysostomos [Tue, 2 Nov 2010 15:38:57 +0000 (08:38 -0700)]
Don’t capitalise words in the middle of an error message
Father Chrysostomos [Wed, 3 Nov 2010 03:18:15 +0000 (20:18 -0700)]
Add transr op type
for the upcoming y///r feature. There are not enough flag bits,
hence the extra type.
Father Chrysostomos [Tue, 2 Nov 2010 12:53:56 +0000 (05:53 -0700)]
Avoid multiple $op->private calls in B::Deaprse::pp_trans
Nicholas Clark [Tue, 2 Nov 2010 20:06:50 +0000 (20:06 +0000)]
Inline RvDEEPCP() into its only caller, Perl_amagic_call().
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.
Nicholas Clark [Tue, 2 Nov 2010 16:40:39 +0000 (16:40 +0000)]
Implement the loop in tryAMAGICunDEREF_var() using while, rather than goto.
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.
Nicholas Clark [Tue, 2 Nov 2010 15:38:31 +0000 (15:38 +0000)]
Expand AMG_CALLun_var() into all its users, and eliminate it.
Aside from the 2 callers where it can be replaced with AMG_CALLun().
AMG_CALLun_var was only used in core.
Nicholas Clark [Tue, 2 Nov 2010 14:52:37 +0000 (14:52 +0000)]
Inline tryAMAGICunW_var() into macros tryAMAGICun{DEREF_var,TARGET}
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.)
Nicholas Clark [Tue, 2 Nov 2010 14:09:48 +0000 (14:09 +0000)]
Eliminate tryAMAGICunW() by refactoring tryAMAGICun{DEREF,TARGET}
tryAMAGICunW was only used within pp.h itself, and not referenced from anywhere
else. (The core, CPAN, code visible to Google codesearch.)
Nicholas Clark [Tue, 2 Nov 2010 13:17:58 +0000 (13:17 +0000)]
Remove unused AMAGIC macros from pp.h. Neither core nor CPAN uses any.
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
Yves Orton [Tue, 2 Nov 2010 10:29:18 +0000 (11:29 +0100)]
Fix RT-70998: qq{\x{30ab}} =~ /\xab|\xa9/ produces warnings
Father Chrysostomos [Tue, 2 Nov 2010 10:28:33 +0000 (11:28 +0100)]
Add test for rt-70998: qq{\x{30ab}} =~ /\xab|\xa9/ produces warnings
Yves Orton [Tue, 2 Nov 2010 09:44:18 +0000 (10:44 +0100)]
remove commit bit so that porting tests dont fail
Nicholas Clark [Tue, 2 Nov 2010 10:12:38 +0000 (10:12 +0000)]
Reorder struct xpvhv_aux to make two I32s adjacent.
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.
Nicholas Clark [Tue, 2 Nov 2010 09:58:22 +0000 (09:58 +0000)]
Fix permissions on lib/overload/numbers.pm, accidentally changed by
0e244b13.
Father Chrysostomos [Tue, 2 Nov 2010 04:58:25 +0000 (21:58 -0700)]
perldelta up to
7fd683ff3c3
I cheated by adding more commit IDs to the exception list.
Father Chrysostomos [Tue, 2 Nov 2010 04:24:25 +0000 (21:24 -0700)]
Increase DynaLoader’s version
brian d foy [Tue, 2 Nov 2010 03:43:19 +0000 (22:43 -0500)]
Note changes to perlvar in perldelta
brian d foy [Tue, 2 Nov 2010 03:26:09 +0000 (22:26 -0500)]
Whitespace fixes to perlvar
brian d foy [Tue, 2 Nov 2010 03:23:38 +0000 (22:23 -0500)]
Added ${^GLOBAL_PHASE} to perlvar
brian d foy [Wed, 27 Oct 2010 04:50:50 +0000 (23:50 -0500)]
Fix some grammar nits thanks to jnareb