summaryrefslogtreecommitdiff
path: root/op.h
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Move the RXf_WHITE logic for split " " into the regex engineÆvar Arnfjörð Bjarmason2007-06-281-1/+1
| | | | | | | | | From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com> Message-ID: <51dd1af80706281306i4dbba39em3eeb8da1d67ea27c@mail.gmail.com> (with tweaks) p4raw-id: //depot/perl@31495
* remove op_staticPaul Johnson2007-06-251-7/+3
| | | | | | | Message-ID: <20070622001320.GD20560@pjcj.net> Plus version bumps p4raw-id: //depot/perl@31461
* Remove comment added by #31218 since the rest of that change wasSteve Hay2007-05-161-2/+0
| | | | | reverted by #31224 p4raw-id: //depot/perl@31228
* Move pmop.op_pmflags back to its previous location. The move inSteve Peters2007-05-151-1/+1
| | | | | | | change #31218 was causing segfaults in miniperl on 32-bit environments. p4raw-link: @31218 on //depot/perl: d7f23a062a625a1f0067a15d3cea5401ea21006c p4raw-id: //depot/perl@31224
* BASEOP isn't an exact multiple of 8 bytes, so reordering pmop and copNicholas Clark2007-05-151-1/+3
| | | | | to put a 32 bit member first elimiates structure padding on LP64. p4raw-id: //depot/perl@31218
* Give the 'local' declarator a new key, such that 'local our'Gerard Goossen2007-05-121-0/+1
| | | | | | | | declaration don't have multiple 'd' keys. Subject: [PATCH] mad: different key for the locale declarator Message-Id: <20070508171125.GI17043@ostwald> p4raw-id: //depot/perl@31208
* Disable slurping assigned of split when PL_madskillsGerard Goossen2007-05-121-1/+0
| | | | | Message-Id: <20070508164400.GA15860@ostwald> p4raw-id: //depot/perl@31206
* Disable operator target setting for 'my' variables (OPpTARGET_MY)Gerard Goossen2007-05-121-1/+0
| | | | | | | | | | | | | | | when madskills is active. Remove the p55 code required for dealing with the optimized tree. Subject: [PATCH] disable operator with target my when madskills enabled Message-Id: <20070419133822.GG19244@ostwald> also: Remove the just remove madprop 'M' doc Message-ID: <20070419134549.GH19244@ostwald> p4raw-id: //depot/perl@31204