| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
This fixes [perl #68590] : %^H not lexical enough.
|
|
|
|
|
|
|
|
| |
(MacOS support was removed from MakeMaker in 6.22, and merged to blead on
15th December 2004 with 5dca256ec738057dc331fb644a93eca44ad5fa14. After this
point MacOS wouldn't even have been able to build the perl binary, because it
would not have been able to build DynaLoader. If anyone wishes to resurrect
MacOS, start by reversing this commit and the relevant part of that commit.)
|
|
|
|
|
|
|
|
| |
Add a new stack frame; the MULTICALL code in pp_return assumes there
is a clean stack, and blindly changes the top-most stack value. This
change brings cop.h more in line with the "poor-man's MULTICALL"
provided in ext/List-Util/multicall.h, which also always pushes a new
stack.
|
|
|
|
|
| |
static. Macros PUSHSUBST() and POPSUBST() are only viable in PERL_CORE.
p4raw-id: //depot/perl@34935
|
|
|
| |
p4raw-id: //depot/perl@34621
|
|
|
|
|
| |
MUTABLE_PTR(), to validate that there is no casting away of const.
p4raw-id: //depot/perl@34610
|
|
|
|
|
|
|
|
|
|
| |
away const, returning a void *. Add MUTABLE_SV(sv) which uses this, and
replace all (SV *) casts either with MUTABLE_SV(sv), or (const SV *).
This probably still needs some work - assigning to SvPVX() and SvRV()
is now likely to generate a casting error. The core doesn't do this.
But as-is it's finding bugs that can be fixed.
p4raw-id: //depot/perl@34605
|
|
|
| |
p4raw-id: //depot/perl@34585
|
|
|
|
|
|
| |
entry in the hints hash. Most statements don't have labels, so this
will save memory. Not sure how much.
p4raw-id: //depot/perl@33656
|
|
|
|
|
| |
for part of some other context-stack related struct.
p4raw-id: //depot/perl@33655
|
|
|
|
|
|
|
| |
never used are more obfuscation than clarification, so inline the only
use of SAVECOPLABEL_FREE(), and remove the unthreaded variant and
both SAVECOPLABEL()s. Exterminate! Exterminate! Exterminate!
p4raw-id: //depot/perl@33654
|
|
|
|
|
| |
Here saves 72 bytes in pp_ctl.o. Small, but in the right direction.
p4raw-id: //depot/perl@33232
|
|
|
| |
p4raw-id: //depot/perl@33086
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of wedging the pad offset into a void* iterdata, and always
storing PL_comppad even when it isn't used, instead do this:
PAD *oldcomppad; /* Also used for the GV, if targoffset is 0 */
/* This is also accesible via cx->blk_loop.my_op->op_targ */
PADOFFSET targoffset;
and store the GV pointer in oldcompad. Pointers to pointers seems
cleaner. This also allows us to eliminate the flag bit CXp_PADVAR.
p4raw-id: //depot/perl@33081
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pad is shared between POPLOOP, using itersave, and the end of scope
restore action requested by Perl_save_padsv(). In fact, the only user
of SAVEt_PADSV is pp_enteriter, and it already provides enough
information to allow it to perform the sv_2mortal() in POPLOOP.
So make it do so. Rather than creating a new routine, use the existing
routine because nothing else (at least nothing else known to Google's
codesearch) uses it. But rename it just in case something we can't see
is being naughty and using our private functions - they will get
link errors against 5.12.
All this means that itersave is now redundant. So remove it.
This makes struct context 48 bytes on ILP32 platforms with 32bit IVs,
down from 64 bytes in 5.10. 33% more context stack in the same memory.
p4raw-id: //depot/perl@33080
|
|
|
|
|
|
|
|
|
| |
SvPADMY() does not change over the duration of the scope, we can
perform conditional actions at loop push time. For the non-pad case,
a reference to the initial CxITERVAR() is already held on the scope
stack thanks to SAVEGENERICSV(*svp); in pp_enteriter. So there is no
need to save another reference to it in itersave - it's not going away.
p4raw-id: //depot/perl@33076
|
|
|
| |
p4raw-id: //depot/perl@33075
|
|
|
|
|
| |
itersave is a less complex expression for the C compiler.
p4raw-id: //depot/perl@33074
|
|
|
|
|
|
| |
Message-ID: <20080124215537.GB10198@vtrl.co.uk>
Date: Thu, 24 Jan 2008 21:55:37 +0000
p4raw-id: //depot/perl@33070
|
|
|
|
|
|
|
|
|
| |
lval_max_u, as CXt_LOOP_LAZYIV doesn't use iterlval and the other
LOOP types don't use itermax. This reduces struct block_loop by 1 IV.
As it's the largest component of the unions making up struct context,
this reduces struct context. On ILP32 it will now be 56 bytes, down
from the 64 of 5.10.x, as I've already removed the element 'label'.
p4raw-id: //depot/perl@33063
|
|
|
|
|
| |
iterary, as the two structure members are not used simultaneously.
p4raw-id: //depot/perl@33062
|
|
|
|
|
|
| |
assert that it isn't using cx->blk_loop.iterlval.
Fix a casting bug when assigning a sentinal to cx->blk_loop.iterary.
p4raw-id: //depot/perl@33061
|
|
|
|
|
| |
CXt_LOOP_STACK. Don't use cx->blk_loop.iterary to store PL_curstack.
p4raw-id: //depot/perl@33059
|
|
|
|
|
| |
CXp_FOREACH flag added as part of given/when.
p4raw-id: //depot/perl@33057
|
|
|
|
|
| |
I32 to U8, which reduces the size of the struct by at least 4 bytes.
p4raw-id: //depot/perl@33035
|
|
|
|
|
| |
which will allow the storage location to be changed.
p4raw-id: //depot/perl@33034
|
|
|
| |
p4raw-id: //depot/perl@33032
|
|
|
|
|
| |
the data in blk_u16.
p4raw-id: //depot/perl@33030
|
|
|
|
|
|
| |
via macros CxOLD_IN_EVAL() and CxOLD_OP_TYPE(), which will allow the
storage location to be changed.
p4raw-id: //depot/perl@33029
|
|
|
|
|
|
| |
U16, with the lockstep changes in struct subst. Eliminate lval from
struct block_sub, and instead store it in the U16 in struct block.
p4raw-id: //depot/perl@33028
|
|
|
|
|
| |
fit within the next 4 bits.
p4raw-id: //depot/perl@33027
|
|
|
|
|
| |
OPf_WANT_VOID, OPf_WANT_SCALAR and OPf_WANT_LIST.
p4raw-id: //depot/perl@33025
|
|
|
| |
p4raw-id: //depot/perl@33021
|
|
|
|
|
| |
it with a private flag CXp_HASARGS in cx_type. (It's only a boolean.)
p4raw-id: //depot/perl@33018
|
|
|
|
|
|
| |
lval via macros CxHASARGS() and CxLVAL(), which will allow the storage
location to be changed.
p4raw-id: //depot/perl@33017
|
|
|
|
|
| |
This simplifies some code in Perl_deb_stack_all().
p4raw-id: //depot/perl@33016
|
|
|
|
|
| |
oldcop.
p4raw-id: //depot/perl@33015
|
|
|
|
|
|
| |
(CXt_SUB and CXt_FORMAT were using some comon members, but some members
were only for one or the other.)
p4raw-id: //depot/perl@33014
|
|
|
|
|
| |
NULLing it and then reassigning.
p4raw-id: //depot/perl@33012
|
|
|
|
|
|
| |
CxFOREACH() and CxFOREACHDEF() should all be masking against
CXTYPEMASK rather than their own type number.
p4raw-id: //depot/perl@33011
|
|
|
|
|
| |
(for the places that aren't about to change)
p4raw-id: //depot/perl@33010
|
|
|
|
|
|
|
|
|
| |
Message-Id: <F4AC553F-7C7F-49C3-98C2-E04681E1004F@hexten.net>
with fixups as discussed on list, plus adding usedtrace to Glossary,
plus propagating all the new config variables everywhere.
(Was there an automatic way to do that? I did it with emacs macros)
p4raw-id: //depot/perl@32953
|
|
|
|
|
| |
sv_2mortal(newSVpvs(...)) constructions to use it.
p4raw-id: //depot/perl@32819
|
|
|
| |
p4raw-id: //depot/perl@32237
|
|
|
|
|
|
|
|
|
| |
hash with magic. Field hashes have u magic, so this recursion triggers.
However, key conversion replaces the original key with the converted
key, so we need to ensure that conversion happens exactly once, else
for a non-idempotent key conversion routine (eg ROT13) we will see
double conversion in this case.
p4raw-id: //depot/perl@31898
|
|
|
|
|
| |
to put a 32 bit member first elimiates structure padding on LP64.
p4raw-id: //depot/perl@31218
|
|
|
| |
p4raw-id: //depot/perl@31058
|
|
|
| |
p4raw-id: //depot/perl@31032
|
|
|
|
|
|
| |
platforms. On LP64 structs stackinfo, refcounted_he, and magic shrink
by 8 bytes, struct yy_parser by 16.
p4raw-id: //depot/perl@30817
|
|
|
|
|
|
| |
buffer. (Requires adding gv_fetchfile_flags(), savesharedpvn() and
CopFILE_setn() to provide pointer/length versions of APIs)
p4raw-id: //depot/perl@30015
|