| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
This creates an unallocated space at the shared/unshared boundary of the
data with regexp.h. This allows any future bits that may be needed to
go into either, without affecting binary compatibility. I chose a
number of spare bits larger than I thought we would ever need
|
|
|
|
|
|
| |
This patch doesn't change any generated code. It just changes the base
numbering of the shifts from 1 to 0. In regexp.h the RXf_BASE_SHIFT was
changed to make sure the used bits didn't change
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The new op_reg_common.h did not have in it all the things that made
sense for it to have, including some comment changes that I should have
made when I created it.
I also realized the the new mechanism of using shifts allowed
RXf_PMf_STD_PMMOD_SHIFT to actually control things, rather than be a
#define that one had to remember to change if those things changed
independently.
Finally, I created a check so that adding bits without adding them to
RXf_PMf_COMPILETIME will force a compilation error. (This came from the
school of hard knocks)
|
|
|
|
|
|
|
|
| |
This patch changes the variable that tells how many common bits there
are to instead be +1 that value, so bits won't get reused. A later
commit will renumber the bits in op.h and regexp.h, but for now things
are left as-is there, which means the base variables in those two files
must subtract one to compensate for the +1
|
|
|
|
|
|
| |
This patch changes the shift bases to new ones local in the files that
are set to the common one. Thus, there is now a single point of
coupling between in each file to the common one.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
op.h and regexp.h share common elements in their data structures. They
have had to manually be kept in sync. This patch makes it easier by
putting those common parts into a common header #included by the two.
To do this, it seemed easiest to change the symbol definitions to use
left shifts to generate the flag bits. But this meant that regcomp.pl
and axt/B/defsubs_h.PL had to be taught to recognize those forms of
expressions, done in separate commits
|
|
|
|
|
|
| |
It is not good form to have comments in a #define continue onto the next
line, especially not with a \ ending each continuation line. People
preferred that the comment be placed before the #define
|
|
|
|
|
| |
This allows the individual callbacks to be switched on and off as
necessary, without removing the entry from PL_blockhooks.
|
| |
|
|
|
|
|
| |
Add a flags member, so it can be extended later if necessary. Add a
bhk_eval member, called from doeval to catch requires and string evals.
|
|
|
|
|
|
|
|
|
|
| |
These take the form of a vtable pushed onto the new PL_blockhooks array.
This could probably do with a API around it later. Separate pre_end and
post_end hooks are needed to capture globals before the stack is unwound
(like needblockscope in the existing code). The intention is that once
a vtable is installed it never gets removed, so where necessary
extensions using this will need to use a hinthv element to determine
whether to do anything or not.
|
|
|
|
|
|
| |
Added a link from the GIMME_V entry to perlcall for a usage example.
Signed-off-by: David Golden <dagolden@cpan.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The previous commit made various ops such as rv2av unconditionally do
an SvGETMAGIC(). Under some circumstances this could cause a double
mg_get() (and hence double FETCH etc). In particular, when the
proceeding op was something like aelem with OPpDEREF, the aelem would
call vivify_ref(), which would call magic. So in peep(), mark
OP_RV2[SAH]V ops with the new OPpDEREFed flag if the preceding op was
OPpDEREF. Then use this flag to avoid a second dose of magic.
Note that RV2GV probably needs this flag too, but there weren't any
spare private flag bits left for that op (I think).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This changes s/// so that it doesn't act destructively on its target.
Instead it returns the result of the substitution (or the original string if
there was no match).
In addition this patch:
* Adds a new warning when s///r happens in void context.
* Adds a error when you try to use s///r with !~
* Makes it so constant strings can be bound to s///r with =~
* Adds documentation.
* Adds some tests.
* Updates various debug code so it knows about the /r flag.
* Adds some new 'r' words to B::Deparse.
|
| |
|
| |
|
|
|
|
| |
This suppresses warnings, because sometimes the constness was taken away
|
| |
|
| |
|
|
|
| |
p4raw-id: //depot/perl@34917
|
|
|
|
|
| |
Message-ID: <48E0F5E9.4050805@profvince.com>
p4raw-id: //depot/perl@34907
|
|
|
|
|
| |
Message-ID: <20081111000040.GB19329@tytlal.topaz.cx>
p4raw-id: //depot/perl@34819
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
From: "Reini Urban" <rurban@x-ray.at>
Message-ID: <6910a60806080717h1aaaef1fh425a2ef21a62c9ed@mail.gmail.com>
p4raw-id: //depot/perl@34030
|
|
|
|
|
|
|
| |
Message-ID: <Pine.LNX.4.64.0803261337130.22919@fractal.phys.lafayette.edu>
Rename the "optype" typedef to "Optype"
p4raw-id: //depot/perl@33679
|
|
|
|
|
|
| |
From: "Jim Cromie" <jim.cromie@gmail.com>
Message-ID: <cfe85dfa0802101152n4e1b9e07pc7fb7ad9241a9794@mail.gmail.com>
p4raw-id: //depot/perl@33364
|
|
|
|
|
|
| |
Message-ID: <47B60D72.50708@profvince.com>
Date: Fri, 15 Feb 2008 23:08:50 +0100
p4raw-id: //depot/perl@33356
|
|
|
|
|
|
|
| |
Subject: RE: Bit-fields patch causes warnings on Win32/VC6
From: "Jan Dubois" <jand@activestate.com>
Message-ID: <002f01c86f3f$27e23ca0$77a6b5e0$@com>
p4raw-id: //depot/perl@33315
|
|
|
|
|
|
|
|
| |
and XS?]
From: "Jan Dubois" <jand@activestate.com>
Message-ID: <02ee01c8651b$17ef72f0$47ce58d0$@com>
p4raw-id: //depot/perl@33292
|
|
|
| |
p4raw-id: //depot/perl@33269
|
|
|
| |
p4raw-id: //depot/perl@33082
|
|
|
|
|
| |
the data in blk_u16.
p4raw-id: //depot/perl@33030
|
|
|
|
|
| |
OPf_WANT_VOID, OPf_WANT_SCALAR and OPf_WANT_LIST.
p4raw-id: //depot/perl@33025
|
|
|
|
|
| |
a macro OP_GIMME_REVERSE() [so that it could be changed].
p4raw-id: //depot/perl@33020
|
|
|
| |
p4raw-id: //depot/perl@32952
|
|
|
|
|
|
| |
indirectly via RVs. This saves memory, and removes 1 level of pointer
indirection.
p4raw-id: //depot/perl@32950
|
|
|
|
|
|
| |
hiding them within IVs. We can do this now that they are real SV
pointers.
p4raw-id: //depot/perl@32900
|
|
|
| |
p4raw-id: //depot/perl@32868
|
|
|
|
|
|
| |
calling sv_ivset twice. As a side effect, eliminate PM_GETRE_SAFE
and PM_SETRE_SAFE, as we're doing "safe" explicitly in Perl_op_clear().
p4raw-id: //depot/perl@32867
|
|
|
| |
p4raw-id: //depot/perl@32808
|
|
|
|
|
|
|
| |
lowest 4 bits (which saves a shift), and the "flags indicating special
patterns" into contiguous bits. This makes everything a little tidier,
and saves 88 bytes (woohoo!) of object file with -Os on x86 FreeBSD.
p4raw-id: //depot/perl@32775
|
|
|
| |
p4raw-id: //depot/perl@32759
|
|
|
|
|
|
|
| |
when PERL_CORE is defined. (Which, "obviously", is only in code
within the perl source tree, which we control). Nullop remains, and
would be moderately invasive to remove.
p4raw-id: //depot/perl@32707
|
|
|
| |
p4raw-id: //depot/perl@32237
|
|
|
|
|
| |
Message-ID: <470197FF.5040709@gmail.com>
p4raw-id: //depot/perl@32004
|
|
|
|
|
| |
Message-ID: <47020F3F.9070604@havurah-software.org>
p4raw-id: //depot/perl@32003
|
|
|
| |
p4raw-id: //depot/perl@31933
|
|
|
|
|
|
| |
Message-ID: <46EE39E0.80601@gmail.com>
Date: Mon, 17 Sep 2007 02:25:04 -0600
p4raw-id: //depot/perl@31877
|