| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
Eliminate the #define pp_foo Perl_pp_foo(pTHX) macros, and update the 13
locations that relied on them.
regen/opcode.pl now generates prototypes for the PP functions directly, into
pp_proto.h. It no longer writes pp.sym, and regen/embed.pl no longer reads
this, removing the only ordering dependency in the regen scripts. opcode.pl
is now responsible for prototypes for pp_* functions. (embed.pl remains
responsible for ck_* functions, reading from regen/opcodes)
|
|
|
|
| |
Previously regen/opcode.pl wrote them to pp.sym for regen/embed.pl to read.
|
|
|
|
|
| |
for the upcoming y///r feature. There are not enough flag bits,
hence the extra type.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
All built-in functions that operate directly on array or hash
containers now also accept hard references to arrays or hashes:
|----------------------------+---------------------------|
| Traditional syntax | Terse syntax |
|----------------------------+---------------------------|
| push @$arrayref, @stuff | push $arrayref, @stuff |
| unshift @$arrayref, @stuff | unshift $arrayref, @stuff |
| pop @$arrayref | pop $arrayref |
| shift @$arrayref | shift $arrayref |
| splice @$arrayref, 0, 2 | splice $arrayref, 0, 2 |
| keys %$hashref | keys $hashref |
| keys @$arrayref | keys $arrayref |
| values %$hashref | values $hashref |
| values @$arrayref | values $arrayref |
| ($k,$v) = each %$hashref | ($k,$v) = each $hashref |
| ($k,$v) = each @$arrayref | ($k,$v) = each $arrayref |
|----------------------------+---------------------------|
This allows these built-in functions to act on long dereferencing
chains or on the return value of subroutines without needing to wrap
them in C<@{}> or C<%{}>:
push @{$obj->tags}, $new_tag; # old way
push $obj->tags, $new_tag; # new way
for ( keys %{$hoh->{genres}{artists}} ) {...} # old way
for ( keys $hoh->{genres}{artists} ) {...} # new way
For C<push>, C<unshift> and C<splice>, the reference will auto-vivify
if it is not defined, just as if it were wrapped with C<@{}>.
Calling C<keys> or C<values> directly on a reference gives a
substantial performance improvement over explicit dereferencing.
For C<keys>, C<values>, C<each>, when overloaded dereferencing is
present, the overloaded dereference is used instead of dereferencing
the underlying reftype. Warnings are issued about assumptions made in
the following three ambiguous cases:
(a) If both %{} and @{} overloading exists, %{} is used
(b) If %{} overloading exists on a blessed arrayref, %{} is used
(c) If @{} overloading exists on a blessed hashref, @{} is used
|
| |
|
|
|
|
| |
This breaks binary compatibility.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Message-ID: <47B60D72.50708@profvince.com>
Date: Fri, 15 Feb 2008 23:08:50 +0100
p4raw-id: //depot/perl@33356
|
|
|
| |
p4raw-id: //depot/perl@33338
|
|
|
|
|
|
| |
Message-ID: <47ADBF3B.2050108@gmail.com>
Date: Sat, 09 Feb 2008 07:56:59 -0700
p4raw-id: //depot/perl@33267
|
|
|
| |
p4raw-id: //depot/perl@33072
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
logical groups.
p4raw-id: //depot/perl@30784
|
|
|
|
|
| |
Plus MAD fixes.
p4raw-id: //depot/perl@30750
|
|
|
| |
p4raw-id: //depot/perl@29727
|
|
|
|
|
|
| |
Subject: 28325/6 break DateTime::Format::Strptime
Message-ID: <877ixs6oa6.fsf@k75.linux.bogus>
p4raw-id: //depot/perl@29324
|
|
|
|
|
|
|
|
| |
Message-ID: <lrek2t1e8n.fsf@caliper.activestate.com>
with tweaks so "say;" continues to default to $_
plus a regression test
p4raw-id: //depot/perl@29187
|
|
|
|
|
|
| |
This copies the mechanism used by truncate().
Fixes bug #38457.
p4raw-id: //depot/perl@27125
|
|
|
|
|
| |
Message-Id: <20051217204431.GB28940@rpc142.cs.man.ac.uk>
p4raw-id: //depot/perl@26400
|
|
|
|
|
|
| |
in read-only mode. Make vi modelines compatible with non-vim
vi versions.
p4raw-id: //depot/perl@24445
|
|
|
| |
p4raw-id: //depot/perl@22433
|
|
|
| |
p4raw-id: //depot/perl@22328
|
|
|
|
|
|
|
| |
defaults to $_ at compile-time, instead of run-time (like all
other primitives that default to $_).
p4raw-link: @18751 on //depot/perl: 13dcffc60adeca175c32a1ea11ec8756d4853ad2
p4raw-id: //depot/perl@22047
|
|
|
|
|
|
| |
From: "Brent Dax" <brentdax@cpan.org>
Message-id: <000001c234a1$d1ca72c0$6501a8c0@deepblue>
p4raw-id: //depot/perl@17682
|
|
|
|
|
| |
Message-Id: <011019174427.d749b@DUPHY4.Physics.Drexel.Edu>
p4raw-id: //depot/perl@12513
|
|
|
| |
p4raw-id: //depot/perl@11285
|
|
|
|
|
|
| |
Subject: Re: [PATCH] mkdir() mode argument is missing initial 0
Message-ID: <20010706012632.A28327@lustre.dyn.wiw.org>
p4raw-id: //depot/perl@11166
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
per-cop, not per-op; plus retweak the locale.t to always
list the skipped utf8 locales.
p4raw-link: @10412 on //depot/maint-5.6/perl: 71d0b827413df9e881d1c54d2d968823ed50c75b
p4raw-id: //depot/perl@10413
p4raw-edited: from //depot/maint-5.6/perl@10411 'edit in'
t/pragma/locale.t (@8600..)
p4raw-integrated: from //depot/maint-5.6/perl@10411 'merge in'
lib/locale.pm (@5902..) opcode.h pp.sym pp_proto.h (@8620..)
opcode.pl (@8998..) op.h perl.h (@9288..) pp_sys.c (@9524..)
util.c (@9538..) embed.h (@9584..) op.c (@9950..) pp.c
(@10091..) pp_ctl.c (@10100..)
|
|
|
|
|
|
| |
missed the .sym files that are changed by regen_headers
sv.c and proto.h disagreed about pTHX_ ness of EXPECT_NUMBER.
p4raw-id: //depot/perlio@8496
|
|
|
|
|
| |
Message-ID: <14941.16925.736415.785818@soda.csua.berkeley.edu>
p4raw-id: //depot/perl@8417
|
|
|
| |
p4raw-id: //depot/perl@7123
|
|
|
|
|
| |
op_private (from Charles Lane <lane@DUPHY4.Physics.Drexel.Edu>)
p4raw-id: //depot/perl@5816
|
|
|
|
|
| |
semantics; the pragma sets defaults for both open() and qx//
p4raw-id: //depot/perl@5628
|
|
|
|
|
| |
by Mark-Jason Dominus <mjd@plover.com>)
p4raw-id: //depot/perl@4083
|
|
|
|
|
|
| |
version of patch suggested by Ilya Zakharevich, which in turn
is based on the one suggested by Tuomas J. Lukka <lukka@iki.fi>)
p4raw-id: //depot/perl@4081
|
|
|
|
|
|
| |
Message-ID: <19990722134336.Q391@perlsupport.com>
Subject: [PATCH] OP_METHOD_NAMED
p4raw-id: //depot/perl@3768
|
|
|
|
|
|
|
|
| |
optimized blocks with a single statement; changed setcop to
setstate and added code for -Dx dumps
Message-Id: <199906231627.RAA24033@crypt.compulink.co.uk>
Subject: [PATCH 5.005_57] Line number error in optimised else()
p4raw-id: //depot/perl@3728
|
|
|
|
|
| |
(suggested by Hugo van der Sanden)
p4raw-id: //depot/perl@3633
|
|
|
|
|
| |
Message-Id: <199906120849.EAA26986@monk.mps.ohio-state.edu>
p4raw-id: //depot/perl@3612
|
|
|
|
|
|
|
|
|
|
|
|
| |
pointer argument; builds/tests on Solaris, win32
hasn't been fixed up yet; proto.h, global.sym and
static function decls are now generated from a common
database in proto.pl; some inconsistently named
perl_foo() things are now Perl_foo(), compatibility
#defines provided; perl_foo() (lowercase 'p') reserved
for functions that take an explicit context argument;
next step: generate #define foo(a,b) Perl_foo(aTHX_ a,b)
p4raw-id: //depot/perl@3522
|
|
|
| |
p4raw-id: //depot/perl@3521
|
|
(objpp.h is gone, embed.pl now does some of that); objXSUB.h
should soon be automated also; the global variables that
escaped the PL_foo conversion are now reined in; renamed
MAGIC in regcomp.h to REG_MAGIC to avoid collision with the
type of same name; duplicated lists of pp_things in various
places is now gone; result has only been tested on win32
p4raw-id: //depot/perl@2133
|