summaryrefslogtreecommitdiff
path: root/op.h
Commit message (Collapse)AuthorAgeFilesLines
* op.h: Move bits around to allow for future growthKarl Williamson2010-08-111-1/+3
| | | | | | | 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
* op.h, regexp.h: renumber shifts.Karl Williamson2010-08-111-12/+12
| | | | | | 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
* op_reg_common.h: Continue refactoringKarl Williamson2010-08-111-3/+0
| | | | | | | | | | | | | | | 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)
* op_reg_common.h: Refactor variable for safetyKarl Williamson2010-08-111-1/+1
| | | | | | | | 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
* regexp.h, op.h: decouple mostly from op_reg_common.hKarl Williamson2010-08-111-11/+13
| | | | | | 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: Fix error msgKarl Williamson2010-08-111-1/+1
|
* Refactor common parts of op.h, regexp.h into new .hKarl Williamson2010-07-291-23/+25
| | | | | | | | | | | 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
* op.h: Fix comments in #defines that cross linesKarl Williamson2010-07-291-9/+9
| | | | | | 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
* Macros to en/disable blockhook entries.Ben Morrow2010-07-151-1/+23
| | | | | This allows the individual callbacks to be switched on and off as necessary, without removing the entry from PL_blockhooks.
* Document the blockhook functions and macros.Ben Morrow2010-07-121-0/+24
|
* Macroify the block_hooks structure.Ben Morrow2010-07-121-5/+23
| | | | | 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.
* Generic hooks into Perl_block_{start,end}.Ben Morrow2010-07-121-0/+26
| | | | | | | | | | 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.
* Link from GIMME_V to perlcall for a usage example.Shlomi Fish2010-05-251-1/+1
| | | | | | Added a link from the GIMME_V entry to perlcall for a usage example. Signed-off-by: David Golden <dagolden@cpan.org>
* add OPpDEREFed flag to avoid double mg_get()David Mitchell2010-05-251-0/+2
| | | | | | | | | | | | | 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).
* Add s///r (non-destructive substitution).David Caldwell2010-05-221-0/+2
| | | | | | | | | | | | | | | | 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.
* * eliminated OP_SETSTATE also in commentsSlaven Rezic2010-04-131-1/+1
|
* Optimize reversing an array in-placeVincent Pit2009-11-101-0/+3
|
* Use less constness in MAD codeRafael Garcia-Suarez2009-08-261-1/+1
| | | | This suppresses warnings, because sometimes the constness was taken away
* Introduce "delete local"Vincent Pit2009-07-251-0/+1
|
* Document the PERL_LOADMOD_ flagsRafael Garcia-Suarez2009-05-301-3/+3
|
* Replace Perl_my() with a small shell script. er. macro.Nicholas Clark2008-11-261-0/+4
| | | p4raw-id: //depot/perl@34917
* [perl #38809] return do { } : take 3 (or 4...)Vincent Pit2008-11-251-0/+1
| | | | | Message-ID: <48E0F5E9.4050805@profvince.com> p4raw-id: //depot/perl@34907
* Re: [perl #60360] [PATCH] local $SIG{FOO} = sub {...}; sets signalChip Salzenberg2008-11-121-0/+3
| | | | | Message-ID: <20081111000040.GB19329@tytlal.topaz.cx> p4raw-id: //depot/perl@34819
* Add a macro MUTABLE_PTR(p), which on (non-pedantic) gcc will not castNicholas Clark2008-10-271-2/+2
| | | | | | | | | | 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
* Update copyright years.Nicholas Clark2008-10-251-2/+2
| | | p4raw-id: //depot/perl@34585
* Re: [PATCH] readable assertion names, now the restReini Urban2008-06-081-3/+3
| | | | | | From: "Reini Urban" <rurban@x-ray.at> Message-ID: <6910a60806080717h1aaaef1fh425a2ef21a62c9ed@mail.gmail.com> p4raw-id: //depot/perl@34030
* Re: Solaris build warningsAndy Dougherty2008-04-141-1/+1
| | | | | | | Message-ID: <Pine.LNX.4.64.0803261337130.22919@fractal.phys.lafayette.edu> Rename the "optype" typedef to "Optype" p4raw-id: //depot/perl@33679
* Re: [patch] optimize OP_IS_(FILETEST|SOCKET) macrosJim Cromie2008-02-251-7/+0
| | | | | | From: "Jim Cromie" <jim.cromie@gmail.com> Message-ID: <cfe85dfa0802101152n4e1b9e07pc7fb7ad9241a9794@mail.gmail.com> p4raw-id: //depot/perl@33364
* Re: [PATCH] Splitting OP_CONST (Was: pp_const, not, that, hot?)Vincent Pit2008-02-231-2/+0
| | | | | | Message-ID: <47B60D72.50708@profvince.com> Date: Fri, 15 Feb 2008 23:08:50 +0100 p4raw-id: //depot/perl@33356
* Silence compiler warnings on Win32/VC6Jan Dubois2008-02-151-1/+6
| | | | | | | 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
* Fix bit-fields for VC [was RE: [perl #50386] GIMME_V broken with 5.10.0/GCC ↵Jan Dubois2008-02-121-6/+6
| | | | | | | | and XS?] From: "Jan Dubois" <jand@activestate.com> Message-ID: <02ee01c8651b$17ef72f0$47ce58d0$@com> p4raw-id: //depot/perl@33292
* Eliminate use of Nullop in the core code. Dual life uses remain.Nicholas Clark2008-02-101-1/+3
| | | p4raw-id: //depot/perl@33269
* fix misleading comment in op.hDave Mitchell2008-01-271-1/+1
| | | p4raw-id: //depot/perl@33082
* In struct block_eval, eliminate old_in_eval and old_op_type by storingNicholas Clark2008-01-211-0/+2
| | | | | the data in blk_u16. p4raw-id: //depot/perl@33030
* Give G_VOID, G_SCALAR and G_ARRAY the same numeric values asNicholas Clark2008-01-211-4/+1
| | | | | OPf_WANT_VOID, OPf_WANT_SCALAR and OPf_WANT_LIST. p4raw-id: //depot/perl@33025
* Encode the G_* to OPf_WANT_* transform, the reverse of OP_GIMME(), inNicholas Clark2008-01-211-0/+5
| | | | | a macro OP_GIMME_REVERSE() [so that it could be changed]. p4raw-id: //depot/perl@33020
* Remove PM_GETRE_SAFE and PM_SETRE_SAFE as nothing uses them.Nicholas Clark2008-01-111-9/+0
| | | p4raw-id: //depot/perl@32952
* REGEXPs are now stored directly in PL_regex_padav, rather thanNicholas Clark2008-01-111-19/+11
| | | | | | indirectly via RVs. This saves memory, and removes 1 level of pointer indirection. p4raw-id: //depot/perl@32950
* In PL_regexp_padav, store regexps via real references, rather thanNicholas Clark2008-01-081-2/+10
| | | | | | hiding them within IVs. We can do this now that they are real SV pointers. p4raw-id: //depot/perl@32900
* Enforce some type safety in PM_SETRE by adding PM_SETRE_OFFSET.Nicholas Clark2008-01-061-2/+12
| | | p4raw-id: //depot/perl@32868
* Clarify the intent of the code in Perl_op_clear. Under ithreads, avoidNicholas Clark2008-01-061-0/+5
| | | | | | 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
* OP_THREADSV was removed by #29727Rafael Garcia-Suarez2008-01-031-3/+0
| | | p4raw-id: //depot/perl@32808
* Reorder the external regexp flags to get RXf_PMf_STD_PMMOD into theNicholas Clark2007-12-291-16/+16
| | | | | | | 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
* Note to future self about moving the regexp flag bits around.Nicholas Clark2007-12-291-1/+2
| | | p4raw-id: //depot/perl@32759
* Remove the definitions of Null(), Nullch, Nullfp, Nullsv and PL_naNicholas Clark2007-12-221-1/+1
| | | | | | | 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
* Fix up copyright years for files modified in 2007.Nicholas Clark2007-11-071-1/+1
| | | p4raw-id: //depot/perl@32237
* Re: [patch] clean out remnants of DEBUGGING_OPS (was opcode op_type:9)Jim Cromie2007-10-021-5/+1
| | | | | Message-ID: <470197FF.5040709@gmail.com> p4raw-id: //depot/perl@32004
* was Re: Freeze ?John Peacock2007-10-021-1/+1
| | | | | Message-ID: <47020F3F.9070604@havurah-software.org> p4raw-id: //depot/perl@32003
* Get mad compiling as C++. (At least for me)Nicholas Clark2007-09-201-1/+1
| | | p4raw-id: //depot/perl@31933
* grammar nitJim Cromie2007-09-171-1/+1
| | | | | | Message-ID: <46EE39E0.80601@gmail.com> Date: Mon, 17 Sep 2007 02:25:04 -0600 p4raw-id: //depot/perl@31877