| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
From: "Robin Barker" <Robin.Barker@npl.co.uk>
Message-ID: <46A0F33545E63740BC7563DE59CA9C6D093A35@exchsvr2.npl.ad.local>
p4raw-id: //depot/perl@33304
|
|
|
|
|
|
|
|
|
|
|
|
| |
ability to create landmines that will explode under someone in the
future when they upgrade their compiler to one with better
optimisation. We've already done this at least twice.
(Yes, some of the assertions are after code that would already have
SEGVd because it already deferences a pointer, but they are put in
to make it easier to automate checking that each and every case is
covered.)
Add a tool, checkARGS_ASSERT.pl, to check that every case is covered.
p4raw-id: //depot/perl@33291
|
|
|
|
|
| |
Message-ID: <20080207165158.GA22321@refcnt.homeunix.org>
p4raw-id: //depot/perl@33249
|
|
|
|
|
| |
Message-ID: <20080204144419.GB20276@refcnt.homeunix.org>
p4raw-id: //depot/perl@33245
|
|
|
|
|
| |
Message-ID: <20080203185315.GA20276@refcnt.homeunix.org>
p4raw-id: //depot/perl@33231
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
| |
p4raw-id: //depot/perl@33073
|
|
|
|
|
|
| |
Message-ID: <20080124215537.GB10198@vtrl.co.uk>
Date: Thu, 24 Jan 2008 21:55:37 +0000
p4raw-id: //depot/perl@33070
|
|
|
| |
p4raw-id: //depot/perl@33069
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
loss warning on ++ and -- by moving the check to Configure time,
creating a new config.sh variable nv_overflows_integers_at which
contains an constant expression for the value of the NV which can't
be incremented by 1.0
p4raw-id: //depot/perl@33049
|
|
|
|
|
|
| |
lval via macros CxHASARGS() and CxLVAL(), which will allow the storage
location to be changed.
p4raw-id: //depot/perl@33017
|
|
|
|
|
|
| |
(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
|
|
|
|
|
| |
to duplicate/fixup only the things that aren't simple binary copies.
p4raw-id: //depot/perl@33013
|
|
|
|
|
| |
conditional compilation to only pass it in if it's needed.
p4raw-id: //depot/perl@33004
|
|
|
|
|
|
| |
the limit of representation in NVs, using a new warnings category
"imprecision".
p4raw-id: //depot/perl@32990
|
|
|
| |
p4raw-id: //depot/perl@32982
|
|
|
|
|
|
| |
(Make C<length undef> return undef).
Patch mostly by Rafael, with some fine tuning by me.
p4raw-id: //depot/perl@32969
|
|
|
| |
p4raw-id: //depot/perl@32954
|
|
|
|
|
| |
warnings. Add an abort() if you try to dup a freed scalar.
p4raw-id: //depot/perl@32937
|
|
|
|
|
|
|
|
| |
Message-ID: <86zlveaewk.fsf@cpan.org>
with two corrections.
Plus remove reg_stringify from embed.fnc and regen.
p4raw-id: //depot/perl@32934
|
|
|
|
|
| |
or are freed too many times.
p4raw-id: //depot/perl@32918
|
|
|
| |
p4raw-id: //depot/perl@32901
|
|
|
|
|
|
| |
hiding them within IVs. We can do this now that they are real SV
pointers.
p4raw-id: //depot/perl@32900
|
|
|
|
|
|
| |
reference count only needs "doubling" when the scalar is pushed onto
PL_regex_padav for the second time.
p4raw-id: //depot/perl@32899
|
|
|
|
|
|
| |
trailing garbage. This behaviour is consistent with not setting the
public IV or NV flags if the value is out of range for the type.
p4raw-id: //depot/perl@32894
|
|
|
| |
p4raw-id: //depot/perl@32882
|
|
|
|
|
| |
(and related changes)
p4raw-id: //depot/perl@32880
|
|
|
|
|
| |
SVt_FORMAT - the just string buffer.
p4raw-id: //depot/perl@32863
|
|
|
| |
p4raw-id: //depot/perl@32861
|
|
|
| |
p4raw-id: //depot/perl@32859
|
|
|
|
|
|
|
|
| |
offset as either a byte (if <256), or a 0 byte with a STRLEN before.
"better" in that the reading can be inlined, and even then the object
code is smaller (function calls have space overhead). So goodbye
Perl_sv_read_offset() and hello SvOOK_offset().
p4raw-id: //depot/perl@32838
|
|
|
|
|
|
|
|
|
|
|
| |
number in the part of the PVX that is being released. (It will always
fit, as chopping off 1 byte gives just enough space for recording a
delta of up to 127). This allows SvOOK() to co-exist with SvIOK_on(),
which means all the calls to SvOOK_off() [with the possibility of a
call to sv_backoff()] in SvIOK_on() can be removed. This ought to make
a lot of straight line code a little bit simpler.
OOK()d scalars can now be SVt_PV, as the IVX isn't needed.
p4raw-id: //depot/perl@32836
|
|
|
|
|
|
| |
and mortalizing them. Use these macros where possible. And also
mX?PUSH[inpu] where possible.
p4raw-id: //depot/perl@32821
|
|
|
|
|
| |
sv_2mortal(newSVpvs(...)) constructions to use it.
p4raw-id: //depot/perl@32819
|
|
|
|
|
|
| |
the flags. Move its implementation just ahead of sv_2mortal()'s for
CPU cache locality. Refactor all code that can be to use this.
p4raw-id: //depot/perl@32818
|
|
|
|
|
| |
But use newSVhek() in preference when possible.
p4raw-id: //depot/perl@32813
|
|
|
| |
p4raw-id: //depot/perl@32811
|
|
|
|
|
|
|
|
|
|
| |
flag bits. Right now the only flag bit is SVf_UTF8, which will call
SvUTF8_on() on the new SV for you. Provide a wrapper newSVpvn_utf8(),
which takes a boolean, and passes in SVf_UTF8 if that is true.
Refactor the core to use it where possible. It makes the source code
clearer and smaller, but seems to be swings and roundabouts on object
code size.
p4raw-id: //depot/perl@32807
|
|
|
|
|
|
| |
and regexp reference counting is via the regular SV reference counting.
This was not as easy at it looks.
p4raw-id: //depot/perl@32804
|
|
|
| |
p4raw-id: //depot/perl@32788
|
|
|
|
|
|
| |
thrown away, and verify that they are present in sv_backoff().
assert that we are being asked to chop off positive amounts of buffer.
p4raw-id: //depot/perl@32778
|
|
|
|
|
| |
of the call to sv_chop() that throws it away.
p4raw-id: //depot/perl@32777
|
|
|
| |
p4raw-id: //depot/perl@32763
|
|
|
| |
p4raw-id: //depot/perl@32751
|