Nicholas Clark [Sat, 5 Jan 2008 13:54:38 +0000]
Add RX_UTF8(), which is effectively SvUTF8() but for regexps.
Remove RXp_PRECOMP() and RXp_WRAPPED().
Change the parameter of S_debug_start_match() from regexp to REGEXP.
Change its callers [the only part wrong for 5.10.x]
p4raw-id: //depot/perl@32840
Nicholas Clark [Sat, 5 Jan 2008 13:13:36 +0000]
Protect me (and my fellow muppets) from screens of "syntax errors" if
one accidentally feeds embed.fnc or t/op/re_tests to the perl
interpreter.
p4raw-id: //depot/perl@32839
Nicholas Clark [Sat, 5 Jan 2008 11:30:31 +0000]
BER is all very well, but it turns out that it's better to store the
offset as either a byte (if <256), or a 0 byte with a STRLEN before.
"better" in that the reading can be inlined, and even then the object
code is smaller (function calls have space overhead). So goodbye
Perl_sv_read_offset() and hello SvOOK_offset().
p4raw-id: //depot/perl@32838
Nicholas Clark [Sat, 5 Jan 2008 00:59:18 +0000]
Fix the compile for -DPERL_OLD_COPY_ON_WRITE (apart from the tenacious
broken window: ../ext/Compress/Raw/Zlib/t/07bufsize.t)
p4raw-id: //depot/perl@32837
Nicholas Clark [Fri, 4 Jan 2008 23:12:01 +0000]
Re-implement the SvOOK() hack to store the offset as a BER encoded
number in the part of the PVX that is being released. (It will always
fit, as chopping off 1 byte gives just enough space for recording a
delta of up to 127). This allows SvOOK() to co-exist with SvIOK_on(),
which means all the calls to SvOOK_off() [with the possibility of a
call to sv_backoff()] in SvIOK_on() can be removed. This ought to make
a lot of straight line code a little bit simpler.
OOK()d scalars can now be SVt_PV, as the IVX isn't needed.
p4raw-id: //depot/perl@32836
Nicholas Clark [Fri, 4 Jan 2008 22:20:48 +0000]
Oops. Forgot to propagate the rename of Perl_re_dup to Perl_re_dup_guts
into makedef.pl
p4raw-id: //depot/perl@32835
Nicholas Clark [Fri, 4 Jan 2008 20:27:42 +0000]
Re-implement mPUSHp() and mXPUSHp() using Perl_newSVpvn_flags(), which
results in slightly smaller object code. (No extra work is done.)
p4raw-id: //depot/perl@32834
Nicholas Clark [Fri, 4 Jan 2008 18:18:02 +0000]
Add a small program that gets the C pre-processor to expand the macro
passed on the command line.
p4raw-id: //depot/perl@32833
Sam Vilain [Thu, 27 Dec 2007 23:27:32 +0000]
Notice of git tag retraction; also, [PATCH] correct Module::CoreList
Message-ID: <
47737E14.9040908@vilain.net>
p4raw-id: //depot/perl@32832
Rafael Garcia-Suarez [Fri, 4 Jan 2008 15:51:00 +0000]
SelfLoader is dual-lived
p4raw-id: //depot/perl@32831
Rafael Garcia-Suarez [Fri, 4 Jan 2008 15:48:32 +0000]
Upgrade to SelfLoader 1.13_03
p4raw-id: //depot/perl@32830
Rafael Garcia-Suarez [Fri, 4 Jan 2008 15:47:48 +0000]
Move the SelfLoader test files in their own subdirectory
p4raw-id: //depot/perl@32829
Marcus Holland-Moritz [Fri, 4 Jan 2008 15:03:40 +0000]
Follow up on change #32680. This fixes compilation
with -DPERL_GLOBAL_STRUCT.
p4raw-link: @32680 on //depot/perl:
878d132a73f5d089e821fedd49aa4835a2786d1d
p4raw-id: //depot/perl@32828
Marcus Holland-Moritz [Fri, 4 Jan 2008 14:10:18 +0000]
Upgrade to Devel::PPPort 3.13_01
p4raw-id: //depot/perl@32827
Steve Peters [Fri, 4 Jan 2008 13:17:31 +0000]
Upgrade to CGI.pm-3.33. There are still differences between the
core version and CPAN version, so, the version bump continues.
p4raw-id: //depot/perl@32826
Steve Peters [Fri, 4 Jan 2008 13:12:25 +0000]
Upgrade to IO-Zlib-1.09.
p4raw-id: //depot/perl@32825
Marcus Holland-Moritz [Fri, 4 Jan 2008 12:28:54 +0000]
There's no need to handle 'set' magic in the mX?PUSH macros.
The macros all create new mortals using sv_newmortal(), and those
cannot be magical. This is in contrary to the X?PUSH macros, which
operate on TARG, which can be magical.
With that in mind, mentioning whether or not mX?PUSH can handle
'set' magic doesn't make sense any longer.
p4raw-id: //depot/perl@32824
Steve Hay [Fri, 4 Jan 2008 10:47:27 +0000]
Run regen.pl (fixes build on Win32, at least)
p4raw-id: //depot/perl@32823
Vincent Pit [Thu, 3 Jan 2008 19:26:05 +0000]
Re: SV leak?
Message-ID: <
477D28BD.5060801@profvince.com>
Mortalize SVs that are being pushed on the stack.
Try to use specialized macros for pushing mortals.
p4raw-id: //depot/perl@32822
Marcus Holland-Moritz [Fri, 4 Jan 2008 01:06:10 +0000]
Add macros mPUSHs() and mXPUSHs() for pushing SVs on the stack
and mortalizing them. Use these macros where possible. And also
mX?PUSH[inpu] where possible.
p4raw-id: //depot/perl@32821
Nicholas Clark [Thu, 3 Jan 2008 17:54:38 +0000]
Missed three sv_2mortal(newSVpvn(...))s in the headers.
p4raw-id: //depot/perl@32820
Nicholas Clark [Thu, 3 Jan 2008 17:42:27 +0000]
Add newSVpvs_flags() as a wrapper to newSVpvn_flags(), and rework
sv_2mortal(newSVpvs(...)) constructions to use it.
p4raw-id: //depot/perl@32819
Nicholas Clark [Thu, 3 Jan 2008 17:15:53 +0000]
Extend newSVpvn_flags() to also call sv_2mortal() if SVs_TEMP is set in
the flags. Move its implementation just ahead of sv_2mortal()'s for
CPU cache locality. Refactor all code that can be to use this.
p4raw-id: //depot/perl@32818
Marcus Holland-Moritz [Thu, 3 Jan 2008 17:10:56 +0000]
Forgot to remove dTARGET with change #32816.
p4raw-link: @32816 on //depot/perl:
1eb9e81d303aab0f6c2386f44bc76241948fce0f
p4raw-id: //depot/perl@32817
Marcus Holland-Moritz [Thu, 3 Jan 2008 17:07:06 +0000]
Fix memory leaks in XS_PerlIO_get_layers() by mortalizing
all variables pushed on the stack. Also make sure the loop
is using mXPUSHi() and not XPUSHi().
p4raw-id: //depot/perl@32816
Nicholas Clark [Thu, 3 Jan 2008 16:27:13 +0000]
We can now sv_upgrade(sv, SVt_PVHV), so do so, to simplify the code.
p4raw-id: //depot/perl@32815
Steve Peters [Thu, 3 Jan 2008 15:23:36 +0000]
Upgrade to Net-Ping-2.34
p4raw-id: //depot/perl@32814
Nicholas Clark [Thu, 3 Jan 2008 14:24:29 +0000]
Possible future bugs found by the creation of newSVpvn_flags().
But use newSVhek() in preference when possible.
p4raw-id: //depot/perl@32813
Nicholas Clark [Thu, 3 Jan 2008 14:23:17 +0000]
Add HeUTF8() to complement HePV() and then immediately suggest that
newSVhek(HeKEY_hek(he) is probably what you wanted all along.
p4raw-id: //depot/perl@32812
Nicholas Clark [Thu, 3 Jan 2008 13:57:17 +0000]
Typo spotted by Jarkko.
p4raw-id: //depot/perl@32811
Nicholas Clark [Thu, 3 Jan 2008 12:47:25 +0000]
Fixes to get MAD working after change 32804, and some newSVpvn_utf8()s
I missed becase (silly Nick) the grep for plausible files was done on
the 5.8.x tree.
p4raw-id: //depot/perl@32810
Jan Dubois [Sun, 30 Dec 2007 12:52:30 +0000]
RE: How to load a "loadable object" that has a non-default file extension ?
From: "Jan Dubois" <jand@activestate.com>
Message-ID: <
18a401c84b25$e5272480$af756d80$@com>
p4raw-id: //depot/perl@32809
Rafael Garcia-Suarez [Thu, 3 Jan 2008 10:02:50 +0000]
OP_THREADSV was removed by #29727
p4raw-id: //depot/perl@32808
Nicholas Clark [Wed, 2 Jan 2008 23:41:21 +0000]
Add a new function newSVpvn_flags(), which takes a third parameter of
flag bits. Right now the only flag bit is SVf_UTF8, which will call
SvUTF8_on() on the new SV for you. Provide a wrapper newSVpvn_utf8(),
which takes a boolean, and passes in SVf_UTF8 if that is true.
Refactor the core to use it where possible. It makes the source code
clearer and smaller, but seems to be swings and roundabouts on object
code size.
p4raw-id: //depot/perl@32807
Nicholas Clark [Wed, 2 Jan 2008 22:21:50 +0000]
Silly Nick - change 32804 missed updating the list of global functions.
p4raw-id: //depot/perl@32806
Sébastien Aperghis-Tramoni [Mon, 31 Dec 2007 21:05:47 +0000]
Small documentation nits
Message-Id: <
2AF110D6-9183-47C5-BBBA-26C3FB97C3D3@free.fr>
p4raw-id: //depot/perl@32805
Nicholas Clark [Wed, 2 Jan 2008 13:47:42 +0000]
Make struct regexp the body of SVt_REGEXP SVs, REGEXPs become SVs,
and regexp reference counting is via the regular SV reference counting.
This was not as easy at it looks.
p4raw-id: //depot/perl@32804
Nicholas Clark [Wed, 2 Jan 2008 13:07:16 +0000]
Convert some "regexp" and "struct regexp" to REGEXP where they are
currently equivalent but will be wrong once the equivalence vanishes.
p4raw-id: //depot/perl@32803
Nicholas Clark [Wed, 2 Jan 2008 12:06:05 +0000]
Wrap all deferences of struct regexp* in macros RX_*() [and for
regcomp.c and regexec.c RXp_* where necessary] so that in future we
can maintain source compatibility when we add an extra level of
dereferencing.
p4raw-id: //depot/perl@32802
Michael G. Schwern [Tue, 1 Jan 2008 18:12:36 +0000]
shield t/test.pl functions from global print modifiers
Message-ID: <
477AF314.9050808@pobox.com>
p4raw-id: //depot/perl@32801
Steve Peters [Tue, 1 Jan 2008 23:46:55 +0000]
Upgrade to constant-1.15
p4raw-id: //depot/perl@32800
Steve Peters [Tue, 1 Jan 2008 23:43:42 +0000]
Upgrade to Sys-Syslog-0.24
p4raw-id: //depot/perl@32799
Steve Peters [Tue, 1 Jan 2008 23:39:58 +0000]
Upgrade to CGI.pm-3.32. Retain the version bump since bug fixes
have not yet been integrated.
p4raw-id: //depot/perl@32798
H.Merijn Brand [Tue, 1 Jan 2008 20:34:49 +0000]
Missing test, adding $ to the other tests
p4raw-id: //depot/perl@32797
H.Merijn Brand [Tue, 1 Jan 2008 20:13:56 +0000]
Bring back the platforms that do not support -fstack-protector
p4raw-id: //depot/perl@32795
Marcus Holland-Moritz [Tue, 1 Jan 2008 17:18:13 +0000]
Add editor blocks to some header files.
p4raw-id: //depot/perl@32793
Craig A. Berry [Mon, 31 Dec 2007 23:49:48 +0000]
Needed one more cast after 32760. The VMS compiler complained
that a pointer to int and pointer to long are different things
even though they both point to a 32-bit signed integer.
p4raw-id: //depot/perl@32792
Craig A. Berry [Mon, 31 Dec 2007 23:44:35 +0000]
Fix VMS::Stdio bug introduced in 32713.
p4raw-id: //depot/perl@32791
Nicholas Clark [Mon, 31 Dec 2007 15:45:03 +0000]
As Perl_magic_setbm() and Perl_magic_setfm() aren't in the public API,
they can just go.
p4raw-id: //depot/perl@32790
Nicholas Clark [Mon, 31 Dec 2007 13:54:04 +0000]
Perl_magic_setbm() and Perl_magic_setfm() are mathoms that can be
merged with Perl_magic_setregexp(). [Coverage on the testsuite
suggests that more than that they're actually dead code, but in theory
it should be possible to construct a test case that exercises them.]
p4raw-id: //depot/perl@32789
Nicholas Clark [Mon, 31 Dec 2007 11:04:54 +0000]
assert() that we're not trying to free scalars a second time.
p4raw-id: //depot/perl@32788
Steve Peters [Mon, 31 Dec 2007 04:08:00 +0000]
Upgrade to AutoLoader-5.64
p4raw-id: //depot/perl@32787
Steve Peters [Mon, 31 Dec 2007 03:41:01 +0000]
Upgrade to Math-Complex-1.38
p4raw-id: //depot/perl@32786
Nicholas Clark [Sun, 30 Dec 2007 20:23:54 +0000]
Change 32783 was generating warnings from gcc about an extra semicolon
in structure or union. No doubt some non-sloppy compilers will consider
this an error and barf. We don't like barfing.
p4raw-id: //depot/perl@32785
Marcus Holland-Moritz [Sun, 30 Dec 2007 12:20:12 +0000]
Add script to check source code for ANSI-C violations.
p4raw-id: //depot/perl@32784
Marcus Holland-Moritz [Sat, 29 Dec 2007 18:17:42 +0000]
factor out duplicate code in struct xpv*
Message-ID: <
20071229181742.1933db40@r2d2>
p4raw-id: //depot/perl@32783
Steve Peters [Sun, 30 Dec 2007 05:26:15 +0000]
Add file to MANIFEST that hitched a ride with change #32750. It
hopefully will fix RT #44357.
p4raw-link: @32750 on //depot/perl:
662f1f9e0a1bbee45e1e02386151364c8517604e
p4raw-id: //depot/perl@32782
Marcus Holland-Moritz [Sun, 30 Dec 2007 04:44:40 +0000]
Include SVf_UTF8 in the bitmask when checking the SvFLAGS in
SvPVutf8_force(), as otherwise the conditional expression will
always be false and the optimisation will never kick in.
p4raw-id: //depot/perl@32781
Marcus Holland-Moritz [Sun, 30 Dec 2007 02:48:25 +0000]
Upgrade to IPC::SysV 2.00
p4raw-id: //depot/perl@32780
Vincent Pit [Tue, 25 Dec 2007 17:12:33 +0000]
Typo in op.c
Message-ID: <
47712BF1.9060200@profvince.com>
(And then an update to make the tests in gv.t expect the right thing,
and test the behaviour that my change 26482 was originally supposed to
produce, but didn't until this typo was fixed)
p4raw-id: //depot/perl@32779
Nicholas Clark [Sat, 29 Dec 2007 19:50:27 +0000]
In sv_chop(), write sentinals over the part of the buffer that is
thrown away, and verify that they are present in sv_backoff().
assert that we are being asked to chop off positive amounts of buffer.
p4raw-id: //depot/perl@32778
Nicholas Clark [Sat, 29 Dec 2007 19:32:52 +0000]
Move all code that relies on reading the to-be-thrown-away buffer ahead
of the call to sv_chop() that throws it away.
p4raw-id: //depot/perl@32777
Nicholas Clark [Sat, 29 Dec 2007 17:35:25 +0000]
Change 32760 needed to add a cast to avoid a warning.
p4raw-id: //depot/perl@32776
Nicholas Clark [Sat, 29 Dec 2007 17:01:51 +0000]
Reorder the external regexp flags to get RXf_PMf_STD_PMMOD into the
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
Nicholas Clark [Sat, 29 Dec 2007 15:11:04 +0000]
The position of the modifier flag bits is actually encoded by a right
shift 12 in two places, so replace that magic number with a macro
RXf_PMf_STD_PMMOD_SHIFT defined adjacent to the flags it interacts
with.
p4raw-id: //depot/perl@32774
H.Merijn Brand [Sat, 29 Dec 2007 14:54:57 +0000]
Sync after metaconfig backports. Some reorders were done
p4raw-id: //depot/perl@32773
Nicholas Clark [Sat, 29 Dec 2007 13:33:38 +0000]
Perl_sv_chop() can return early if it's being asked to do nothing.
p4raw-id: //depot/perl@32763
Nicholas Clark [Sat, 29 Dec 2007 13:29:37 +0000]
die if multiple macros in regexp.h attempt to use the same flag bit.
p4raw-id: //depot/perl@32762
Yves Orton [Sat, 29 Dec 2007 13:26:35 +0000]
Fix Perl #49190, tests from Abigail, codefix from me.
p4raw-id: //depot/perl@32761
Nicholas Clark [Sat, 29 Dec 2007 12:28:14 +0000]
Change Perl_av_iter_p() to return IV* rather than I32* (which means
having to allocate memory where sizeof(IV) > sizeof(I32)).
p4raw-id: //depot/perl@32760
Nicholas Clark [Sat, 29 Dec 2007 11:49:09 +0000]
Note to future self about moving the regexp flag bits around.
p4raw-id: //depot/perl@32759
Nicholas Clark [Sat, 29 Dec 2007 00:17:41 +0000]
Wrap wrapped and wraplen from struct regexp in macros RW_WRAPPED() and
RX_WRAPLEN() to preserve source compatibility when they get moved
around.
p4raw-id: //depot/perl@32758
Nicholas Clark [Fri, 28 Dec 2007 23:17:20 +0000]
Eliminate prelen from struct regexp. Possibly we are hardcoding a bit
to much, as the replacement assumes that the wrapping string has
exactly 1 character after the wrapped string [specifically ')'].
p4raw-id: //depot/perl@32757
Nicholas Clark [Fri, 28 Dec 2007 23:15:47 +0000]
Replace 3 uses of RX_PRELEN(r) with plen, which has the same value.
(But isn't a pointer dereference. Or about to become a calculation.)
p4raw-id: //depot/perl@32756
Nicholas Clark [Fri, 28 Dec 2007 22:19:00 +0000]
Eliminate precomp from struct regexp. Store the offset of precomp from
wrapped in pre_prefix, a 4 bit value. (Maybe only for now) reduce
seen_evals from I32 to 28 bits. Will anyone have more than
268435456
eval groups in a regexp?
p4raw-id: //depot/perl@32755
Nicholas Clark [Fri, 28 Dec 2007 22:01:30 +0000]
Silly Nick. There was a bug in change 30757 whereby the precomp of a
dup'd regexp would be pointing somewhere la-la. Probably at the precomp
of the same regexp in the parent thread. (So it is only likely to go
nasal daemon if the parent thread terminates first, or explicitly goes
around freeing up run time generated regexps.)
p4raw-id: //depot/perl@32754
Nicholas Clark [Fri, 28 Dec 2007 21:25:50 +0000]
Wrap all accesses to the members precomp and prelen of struct regexp in
the macros RX_PRECOMP() and RX_PRELEN(). This will allow us to reduce
the regexp storage overhead by computing them at retrieve time.
p4raw-id: //depot/perl@32753
Nicholas Clark [Fri, 28 Dec 2007 11:27:10 +0000]
Dump the REGEXP member of SVt_REGEXP.
p4raw-id: //depot/perl@32752
Nicholas Clark [Fri, 28 Dec 2007 09:59:06 +0000]
First class regexps.
p4raw-id: //depot/perl@32751
Steve Peters [Fri, 28 Dec 2007 05:05:50 +0000]
SvPVX_const() triggers an assertion that when the sv isn't a PV.
Back this down to just checking to see if the sv is a PV or
not.
p4raw-id: //depot/perl@32750
Nicholas Clark [Thu, 27 Dec 2007 23:28:31 +0000]
Better diagnostics for the tests for #20683.
p4raw-id: //depot/perl@32749
Nicholas Clark [Thu, 27 Dec 2007 21:41:03 +0000]
scalars used in postponed subexpressions aren't first class regexps,
so don't upgrade them to ORANGE before attaching qr magic.
(And don't stop using qr magic once regexps become first class)
p4raw-id: //depot/perl@32748
Nicholas Clark [Thu, 27 Dec 2007 21:34:22 +0000]
Proper $TODO support in &ok() and &iseq() in pat.t
p4raw-id: //depot/perl@32747
Nicholas Clark [Thu, 27 Dec 2007 20:44:26 +0000]
Localize $\ before changing it, so as not to affect print statements in
the rest of the test.
p4raw-id: //depot/perl@32746
Nicholas Clark [Thu, 27 Dec 2007 20:33:55 +0000]
Test that we can clone regexps into new threads, and fix the bug in
change 32740 that this reveals. (Bug spotted by, and initial patch
from, Jerry D. Hedden.)
p4raw-id: //depot/perl@32745
Nicholas Clark [Thu, 27 Dec 2007 19:31:56 +0000]
"Automate" change 32648 (ensure that -E always loads the latest
features)
p4raw-id: //depot/perl@32744
Nicholas Clark [Thu, 27 Dec 2007 18:43:40 +0000]
You can't coerce a typeglob to a string. (Restore the error message -
an assertion failure is not helpful). Test the 3 basic coercion
error messages.
p4raw-id: //depot/perl@32743
Nicholas Clark [Thu, 27 Dec 2007 17:22:06 +0000]
assert() that the sv_unmagic() in S_regmatch() is unneeded.
Add a comment about the mg_find() that follows.
p4raw-id: //depot/perl@32742
Nicholas Clark [Thu, 27 Dec 2007 15:31:28 +0000]
You don't need $(DYNALOADER) to make $(nonxs_ext)
(which makes it easier to run minitest)
p4raw-id: //depot/perl@32741
Nicholas Clark [Thu, 27 Dec 2007 13:46:46 +0000]
Regexps are now orange.
(Correct a comparison of $] with 5.011 in B.pm)
p4raw-id: //depot/perl@32740
Nicholas Clark [Thu, 27 Dec 2007 11:35:57 +0000]
Remove the last Null(...) from x2p/*
Something tells me that Win32 is compiling x2p with -DPERL_CORE
*nix dosn't do this.
p4raw-id: //depot/perl@32739
Nicholas Clark [Wed, 26 Dec 2007 18:53:48 +0000]
Tweak Perl_sv_upgrade() so that references can upgrade to SVt_PV
rather than something bigger. Fix a possible bug - "reference" to
SVt_NV needs to go direct to SVt_PVNV.
p4raw-id: //depot/perl@32738
Nicholas Clark [Wed, 26 Dec 2007 18:12:32 +0000]
Take code that occurs in three places to take a scalar and ready it to
hold a reference, and convert it to a macro define prepare_SV_for_RV().
p4raw-id: //depot/perl@32737
Nicholas Clark [Wed, 26 Dec 2007 17:27:15 +0000]
Remove two warnings (sub diag() was redefined, and implict split is
deprecated)
p4raw-id: //depot/perl@32736
Steve Peters [Wed, 26 Dec 2007 17:06:04 +0000]
Upgrade to File-Temp-0.20
p4raw-id: //depot/perl@32735
Nicholas Clark [Wed, 26 Dec 2007 17:03:56 +0000]
Eliminate SVt_RV, and use SVt_IV to store plain references.
This frees up a scalar type for first class regular expressions.
p4raw-id: //depot/perl@32734
Nicholas Clark [Wed, 26 Dec 2007 17:02:34 +0000]
Better diagnostics by removing an && from an ok() and converting it to
two is()s.
p4raw-id: //depot/perl@32733
Robin Barker [Fri, 9 Nov 2007 14:40:22 +0000]
change/correction to 32246
From: "Robin Barker" <Robin.Barker@npl.co.uk>
Message-ID: <
2C2E01334A940D4792B3E115F95B722601604912@exchsvr1.npl.ad.local>
p4raw-id: //depot/perl@32732
Steve Peters [Wed, 26 Dec 2007 15:29:14 +0000]
Linking a RT ticket to an open TODO.
p4raw-id: //depot/perl@32731
Gabor Szabo [Wed, 26 Dec 2007 06:49:34 +0000]
docs: list of places where $_ is used
From: "Gabor Szabo" <szabgab@gmail.com>
Message-ID: <
d8a74af10712252049t1b63b475mfca9225324f5fce6@mail.gmail.com>
p4raw-id: //depot/perl@32730