summaryrefslogtreecommitdiff
path: root/opcode.h
Commit message (Collapse)AuthorAgeFilesLines
* Make eval {} compile directly to OP_ENTERTRYRafael Garcia-Suarez2009-12-201-2/+2
| | | | | This way, it's correctly caught and blocked by Safe, separately from eval "".
* Move the boolkeys op to the group of hash ops.Nicholas Clark2009-10-151-5/+5
| | | | This breaks binary compatibility.
* Optimise if (%foo) to be faster than if(keys %foo)demerphq2009-10-151-0/+5
| | | | | | | | | | | Thread was "[PATCH] Make if (%hash) {} act the same as if (keys %hash) {}" http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-11/msg00432.html but the implementation evolved from the approach described in the subject, to instead add a new opcode pp_boolkeys, to exactly preserve the existing behaviour. Various conflicts with the passage of time resolved, 'register' removed, and a $VERSION bump.
* Ensure that constant folding runs with IN_PERL_RUNTIME true, by copyingNicholas Clark2008-02-251-1/+1
| | | | | | the current compiling cop to a different address. This ensures that lexical hints are correctly honoured, and allows us to fold sprintf. p4raw-id: //depot/perl@33369
* Re: [PATCH] Splitting OP_CONST (Was: pp_const, not, that, hot?)Vincent Pit2008-02-231-0/+5
| | | | | | Message-ID: <47B60D72.50708@profvince.com> Date: Fri, 15 Feb 2008 23:08:50 +0100 p4raw-id: //depot/perl@33356
* Eliminate ck_lengthconst.Nicholas Clark2008-02-201-1/+1
| | | p4raw-id: //depot/perl@33338
* Setting the f flag on length causes the op to be constant folded.Nicholas Clark2008-02-201-1/+1
| | | p4raw-id: //depot/perl@33337
* [patch] optimize OP_IS_(FILETEST|SOCKET) macrosJim Cromie2008-02-101-10/+10
| | | | | | Message-ID: <47ADBF3B.2050108@gmail.com> Date: Sat, 09 Feb 2008 07:56:59 -0700 p4raw-id: //depot/perl@33267
* Eliminate the OP_SETSTATE, which had been disabled by change 4309.Nicholas Clark2008-01-261-5/+0
| | | p4raw-id: //depot/perl@33072
* Implement each @array.Nicholas Clark2007-12-201-3/+18
| | | | | | Documentation needed, FIXME for proper 64 bit support of arrays longer than 2**32, re-order the new ops at the end if merging to 5.10.x. p4raw-id: //depot/perl@32680
* Make state $zok = slosh(); behave as the Perl 6 design with an implicitNicholas Clark2007-09-061-0/+5
| | | | | | | | | | | | | | | START block. First time through, call slosh() and assign to $zok. Subsequently neither call slosh() nor assign to $zok. Adds a new op ONCE to control the conditonal call and assign. No change to list context, so state ($zok) = slosh() and (state $zok) = ... etc will still repeatedly evaluate and assign. [Can't fix that before 5.10] Use as an RVALUE is as Larry's design - my $boff = state $zok = ...; will evaluate, assign and return first time, and subsequently act as if it were written my $boff = $zok; FIXME - state $zok = ...; won't deparse - I believe op->op_last isn't being correctly set on the sassign, but I don't know how to fix this. This change may be backed out before 5.10. p4raw-id: //depot/perl@31798
* A logical rearrangement of ops, to get the post 5.005 ops to theirNicholas Clark2007-03-301-60/+60
| | | | | logical groups. p4raw-id: //depot/perl@30784
* Remove the restriction that op_custom has to be the last op.Nicholas Clark2007-03-301-0/+1
| | | | | This allows more ops to be added during the life of a stable release. p4raw-id: //depot/perl@30782
* Make readline() default to *ARGV.Rafael Garcia-Suarez2007-03-241-1/+1
| | | | | Plus MAD fixes. p4raw-id: //depot/perl@30750
* Now that readpipe defaults to $_, I should update the prototype tableRafael Garcia-Suarez2007-03-241-1/+1
| | | | | in opcode.pl too. p4raw-id: //depot/perl@30749
* blead (honestly :-) g++ with -DPERL_GLOBAL_STRUCT_PRIVATE needs tweakingJarkko Hietaniemi2007-02-191-1/+2
| | | | | | | | Message-Id: <20070219174107.63EEB43A67@anubis.hut.fi> Plus a regen picked up changes in pod/perlapi.pod related to change #30347. p4raw-id: //depot/perl@30362
* pp_rv2av and pp_rv2hv have a lot of common code, so it's certainly aNicholas Clark2007-01-151-1/+1
| | | | | space saving to merge them. Hopefully this will reduce L2 cache misses. p4raw-id: //depot/perl@29836
* Eliminate pp_threadsv, as it was only ever used by 5005 threads.Nicholas Clark2007-01-081-7/+2
| | | p4raw-id: //depot/perl@29727
* Re-order ops to the implementation order in pp_sys.c - this makes aNicholas Clark2006-11-121-25/+25
| | | | | branch table corresponding to a switch statement slightly smaller. p4raw-id: //depot/perl@29251
* Re: $, and sayGisle Aas2006-11-021-1/+1
| | | | | | | | Message-ID: <lrek2t1e8n.fsf@caliper.activestate.com> with tweaks so "say;" continues to default to $_ plus a regression test p4raw-id: //depot/perl@29187
* Make readpipe() overridable (and also `` and qx//)Rafael Garcia-Suarez2006-10-311-1/+1
| | | p4raw-id: //depot/perl@29168
* C++: Solaris CC now compiles "perl"Jarkko Hietaniemi2006-09-111-2/+2
| | | | | Message-ID: <4502B398.6060505@iki.fi> p4raw-id: //depot/perl@28814
* Re: [PATCH] Trie jumpingYves Orton2006-09-051-2/+2
| | | | | Message-ID: <9b18b3110609020740y2eb9004cpab313c3353a437ca@mail.gmail.com> p4raw-id: //depot/perl@28785
* g++ stage 1 reachedJarkko Hietaniemi2006-08-081-2/+2
| | | | | Message-ID: <44D7AA6B.4040802@iki.fi> p4raw-id: //depot/perl@28674
* Merging pp_bit_or and pp_bit_xor shrinks the object code by about .7K.Nicholas Clark2006-02-071-1/+1
| | | | | The overloading tests are not free. p4raw-id: //depot/perl@27126
* Allow bareword file handle as argument to chdir().Gisle Aas2006-02-071-1/+1
| | | | | | This copies the mechanism used by truncate(). Fixes bug #38457. p4raw-id: //depot/perl@27125
* All the trancendental unary operators can be merged into PP_sinNicholas Clark2006-02-071-4/+4
| | | | | (cos, exp, log, sqrt) p4raw-id: //depot/perl@27124
* pp_pop can be implemented by pp_shift.Nicholas Clark2006-02-071-1/+1
| | | p4raw-id: //depot/perl@27121
* pp_hex can be implemented trivially by pp_oct, making pp_hex a mathom.Nicholas Clark2006-02-071-1/+1
| | | p4raw-id: //depot/perl@27119
* Merge pp_index and pp_rindex - we have another mathom.Nicholas Clark2006-02-071-1/+1
| | | p4raw-id: //depot/perl@27118
* sprinkle dVARJarkko Hietaniemi2006-01-061-0/+10
| | | | | Message-ID: <43BE7C4D.1010302@gmail.com> p4raw-id: //depot/perl@26675
* Run regen.pl (Just updating copyright years)Steve Hay2006-01-041-1/+1
| | | p4raw-id: //depot/perl@26654
* latest switch/say/~~Robin Houston2005-12-191-0/+40
| | | | | Message-Id: <20051217204431.GB28940@rpc142.cs.man.ac.uk> p4raw-id: //depot/perl@26400
* Disable constant folding of sprintfGisle Aas2005-12-011-1/+1
| | | | | Message-ID: <lr8xv56p0d.fsf_-_@caliper.activestate.com> p4raw-id: //depot/perl@26236
* Merge pp_slt, pp_sgt and pp_sge into pp_sle. (The most commonly usedNicholas Clark2005-11-071-3/+3
| | | | | of the 4. Not that any are that popular.) p4raw-id: //depot/perl@26039
* The rarely used lcfirst and ucfirst share almost all their code.Nicholas Clark2005-11-071-1/+1
| | | | | Merge the two as pp_ucfirst. p4raw-id: //depot/perl@26035
* Typos in opcode.pl this time.Steve Peters2005-11-051-4/+4
| | | p4raw-id: //depot/perl@26008
* Merge pp_andassign, pp_orassign, and pp_dorassign into pp_and,Steve Peters2005-11-051-3/+3
| | | | | pp_or, and pp_defined, respectively. p4raw-id: //depot/perl@26007
* I barely knew ya pp_dor. Merged into pp_defined from whence you came.Steve Peters2005-11-041-1/+1
| | | | | | This change has also caused pp_defined to be promoted to being a hot op. p4raw-id: //depot/perl@26004
* pp_semop can fit within Perl_pp_shmwrite().Nicholas Clark2005-11-041-1/+1
| | | p4raw-id: //depot/perl@26000
* The remaining special logic in pp_syswrite can be moved into pp_send,Nicholas Clark2005-11-041-1/+1
| | | | | which is actually already 50% syswrite. p4raw-id: //depot/perl@25999
* Merge msgsnd, msgrcv with Perl_pp_shmwrite().Nicholas Clark2005-11-041-2/+2
| | | | | | "Perfection is achieved not when there's nothing more to add, but when there's nothing left to remove" (Antoine de Saint-Exupéry) p4raw-id: //depot/perl@25990
* ftrwrite, ftrexec, fteread, ftewrite and fteexec can all be mergedNicholas Clark2005-11-041-5/+5
| | | | | with Perl_pp_ftrread(). p4raw-id: //depot/perl@25986
* Perl_pp_symlink and Perl_pp_link can be merged. The diff looks evil,Nicholas Clark2005-11-031-1/+1
| | | | | but the actual finished code is not as bad as it seems. p4raw-id: //depot/perl@25972
* unlink chmod utime kill can be merged into Perl_pp_chown().Nicholas Clark2005-11-021-4/+4
| | | p4raw-id: //depot/perl@25964
* Move ftsuid ftsgid ftsvtx into Perl_pp_ftrowned.Nicholas Clark2005-11-021-3/+3
| | | p4raw-id: //depot/perl@25962
* Merge ftzero ftsock ftchr ftblk ftfile ftdir ftpipe intoNicholas Clark2005-11-021-7/+7
| | | | | Perl_pp_ftrowned p4raw-id: //depot/perl@25961
* Merge ftsize ftmtime ftatime ftctime into Perl_pp_ftisNicholas Clark2005-11-021-4/+4
| | | p4raw-id: //depot/perl@25958
* Regen headersRafael Garcia-Suarez2005-11-021-1/+1
| | | p4raw-id: //depot/perl@25954
* All the ops that are simply C<return some_other_op();> can be bypassedNicholas Clark2005-10-311-34/+34
| | | | | in the op dispatch table, and the bodies retired. p4raw-id: //depot/perl@25940