perl.git
9 years agoDon't clone the contents of lexicals in pads.
Nicholas Clark [Thu, 25 Feb 2010 21:35:39 +0000 (21:35 +0000)] 
Don't clone the contents of lexicals in pads.

This stops the values of lexicals in active stack frames in the parent leaking
into the lexicals in the child thread.

With an exception for lexicals with a reference count of > 1, to cope with the
implementation of ?{{ ... }} blocks in regexps. :-(

9 years agoIn Perl_pad_tidy(), merge the SvPADTMP_on() loops for padtidy_SUB and _FORMAT.
Nicholas Clark [Thu, 25 Feb 2010 16:56:53 +0000 (16:56 +0000)] 
In Perl_pad_tidy(), merge the SvPADTMP_on() loops for padtidy_SUB and _FORMAT.

9 years agoIn Perl_padlist_dup() don't duplicate @_ or pads caused by recursion.
Nicholas Clark [Thu, 25 Feb 2010 14:21:18 +0000 (14:21 +0000)] 
In Perl_padlist_dup() don't duplicate @_ or pads caused by recursion.

CvDEPTH() is 0 in a new thread, so duplicating pads beyond the always-present
first level is a waste of effort and memory.

9 years agoConvert PAD_DUP to a function Perl_padlist_dup().
Nicholas Clark [Wed, 10 Feb 2010 09:57:23 +0000 (09:57 +0000)] 
Convert PAD_DUP to a function Perl_padlist_dup().

assert() that pads are never AvREAL().

9 years agoWhen deleting CLONE_PARAMS, push any unreferenced SVs onto the temps stack.
Nicholas Clark [Thu, 25 Feb 2010 11:12:03 +0000 (11:12 +0000)] 
When deleting CLONE_PARAMS, push any unreferenced SVs onto the temps stack.

Effectively this leaves the cloned-into interpreter in a consistent state.
In the cloned-from interpreter, the SV targets of non-reference owning pointers
*are* referenced and managed by other pointers. SvREFCNT() == 0 SVs in the
cloned-into interpreter result from the non-reference owning pointers being
found and followed, but the reference owning and managing pointers not being
part of the subsection of interpreter state cloned over. Hence, this change
creates reference owning pointers to this SVs on the temps stack, which ensures
that they are correctly cleaned up, and don't "leak" until interpreter
destruction. (Which might be some time away, in a persistent process.)

9 years agoBetter ithreads cloning - add all SVs with a 0 refcnt to the temps stack.
Nicholas Clark [Wed, 24 Feb 2010 17:15:41 +0000 (17:15 +0000)] 
Better ithreads cloning - add all SVs with a 0 refcnt to the temps stack.

Track all SVs created by sv_dup() that have a 0 reference count. If they still
have a 0 reference count at the end of cloning, assign a reference to each to
the temps stack. As the temps stack is cleared at thread exit, SVs book keeping
will be correct and consistent before perl_destruct() makes its check for
leaked scalars.

Remove special case code for checking each @_ and the parent's temp stack.

9 years agoCleaner implementations for Perl_clone_params_{new,del}
Nicholas Clark [Mon, 24 May 2010 14:48:06 +0000 (15:48 +0100)] 
Cleaner implementations for Perl_clone_params_{new,del}

Not source or binary compatible with maint-5.12.

9 years agoAbstract *correct* initialisation of CLONE_PARAMS into Perl_clone_params_new().
Nicholas Clark [Wed, 24 Feb 2010 11:47:08 +0000 (11:47 +0000)] 
Abstract *correct* initialisation of CLONE_PARAMS into Perl_clone_params_new().

As it allocates memory dynamically, add Perl_clone_params_del(). This will
allow CLONE_PARAMS to be expand in future in a source and binary compatible
fashion.

These implementations of Perl_clone_params_new()/Perl_clone_params_del() jump
through hoops to remain source and binary compatible, in particular, by not
assuming that the structure member is present and correctly initialised. Hence
they should be suitable for inclusion into Devel::PPPort.

Convert threads.xs to use them, resolving RT #73046.

9 years agoConvert Perl_sv_dup_inc() from a macro to a real function.
Nicholas Clark [Tue, 23 Feb 2010 14:48:17 +0000 (14:48 +0000)] 
Convert Perl_sv_dup_inc() from a macro to a real function.

9 years agoIn perl_clone_using(), turn off AvREAL() on param->stashes.
Nicholas Clark [Wed, 24 Feb 2010 15:07:51 +0000 (15:07 +0000)] 
In perl_clone_using(), turn off AvREAL() on param->stashes.

This is an optimisation, not a bug fix.

9 years agoAdd package block syntax to perldelta
Zefram [Mon, 24 May 2010 11:38:24 +0000 (07:38 -0400)] 
Add package block syntax to perldelta

9 years agoAdd perldelta entry for non-destructive substitution
David Golden [Mon, 24 May 2010 00:04:38 +0000 (20:04 -0400)] 
Add perldelta entry for non-destructive substitution

9 years agoChange the API documentation from sv_2nv to sv_2nv_flags.
Nicholas Clark [Sun, 23 May 2010 20:09:13 +0000 (21:09 +0100)] 
Change the API documentation from sv_2nv to sv_2nv_flags.

Addendum to 39d5de13bc6d138b.

9 years agofix MAD handling of package block syntax
Zefram [Sat, 22 May 2010 22:10:16 +0000 (23:10 +0100)] 
fix MAD handling of package block syntax

There was a broken TOKEN_GETMAD attempting to handle the label preceding a
package-block statement, where no label is actually possible.  The correct
behaviour for no label is a no-op, so just remove the TOKEN_GETMAD.

9 years agoadd perldelta entry for overload fixes
David Mitchell [Sun, 23 May 2010 14:04:37 +0000 (15:04 +0100)] 
add perldelta entry for overload fixes

9 years agoFormat perlhist consistently by maint/dev track
David Golden [Sun, 23 May 2010 11:51:04 +0000 (07:51 -0400)] 
Format perlhist consistently by maint/dev track

9 years agocreate perl5132delta
David Golden [Sun, 23 May 2010 11:22:32 +0000 (07:22 -0400)] 
create perl5132delta

9 years agoRephrase perlop for non-destructive substitution
David Golden [Sun, 23 May 2010 02:46:50 +0000 (22:46 -0400)] 
Rephrase perlop for non-destructive substitution

9 years agoAdd David Caldwell to AUTHORS
David Golden [Sun, 23 May 2010 02:31:38 +0000 (22:31 -0400)] 
Add David Caldwell to AUTHORS

9 years agoAdd s///r (non-destructive substitution).
David Caldwell [Tue, 24 Nov 2009 01:24:25 +0000 (17:24 -0800)] 
Add s///r (non-destructive substitution).

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.

9 years agoRestore strict refs on stashes, removed by ce10b5d1ec5b5f68b0811018a415bc37.
Nicholas Clark [Tue, 17 Nov 2009 10:17:11 +0000 (10:17 +0000)] 
Restore strict refs on stashes, removed by ce10b5d1ec5b5f68b0811018a415bc37.

Strictures on stashes were special-cased, because the lexer was special-cased
to avoid autovivifying stashes (in adc51b978ed1b2e9d4512c9bfa80386ac917d05a,
now reverted), to keep the behaviour of defined %stash:: consistent.

defined %stash:: is deprecated.

Keep the new regression tests from ce10b5d1ec5b5f68b0811018a415bc37bb6bfe5e.

9 years agoRe-instate the use of gv_stashpvn_flags(), and the correct non-boolean argument.
Nicholas Clark [Sat, 24 Oct 2009 11:22:01 +0000 (12:22 +0100)] 
Re-instate the use of gv_stashpvn_flags(), and the correct non-boolean argument.

This restores the change of 9bde8eb087a2c05d4c8b0394a59d28a09fe5f529.

9 years agoRemove the tokeniser hack that prevents compile-time vivification of %stash::
Nicholas Clark [Sat, 24 Oct 2009 10:36:06 +0000 (11:36 +0100)] 
Remove the tokeniser hack that prevents compile-time vivification of %stash::

This was put in to ensure that defined %stash:: continued to return false after
the implementation of hashes was changed, such that stashes were always defined.
defined %stash:: is deprecated.

This reverts the tokeniser changes of adc51b978ed1b2e9d4512c9bfa80386ac917d05a,
76138434928a968a390c791aec92e5f00017d01d,
d6069db2e52f58ef65bf59f2fd453604270d2205 and part of
9bde8eb087a2c05d4c8b0394a59d28a09fe5f529, and updates the tests added with those
commits to reflect the restored (but as yet unreleased) behaviour.

I don't think that this should be merged to blead until after 5.12.0 ships,
with the enabled deprecation warnings on defined %hash, as it changes subtle
behaviour that all current released stable perls accept without warning.

9 years agoPL_in_load_module only has values 0 and 1, so can be a bool instead of int.
Nicholas Clark [Fri, 21 May 2010 19:32:28 +0000 (20:32 +0100)] 
PL_in_load_module only has values 0 and 1, so can be a bool instead of int.

9 years agoPerl_hv_fill(), count empty chains down, rather than used chains up.
Nicholas Clark [Sat, 13 Mar 2010 11:23:46 +0000 (11:23 +0000)] 
Perl_hv_fill(), count empty chains down, rather than used chains up.

The assumption is that most chains of a hash are in use.

Suggestion and initial patch by Ruslan Zakirov.

9 years agoEliminate xhv_fill from struct xpvhv.
Nicholas Clark [Sun, 24 Jan 2010 15:39:53 +0000 (15:39 +0000)] 
Eliminate xhv_fill from struct xpvhv.

9 years agoMake HvFILL() count the allocated buckets, instead of reading a stored value.
Nicholas Clark [Sun, 24 Jan 2010 15:07:50 +0000 (15:07 +0000)] 
Make HvFILL() count the allocated buckets, instead of reading a stored value.

Add a function Perl_hv_fill to perform the count. This will save 1 IV per hash,
and on some systems cause struct xpvhv to become cache aligned.

9 years agoReplace boolean use of HvFILL(hv) with HvTOTALKEYS(hv), which is equivalent.
Nicholas Clark [Sun, 24 Jan 2010 10:50:02 +0000 (10:50 +0000)] 
Replace boolean use of HvFILL(hv) with HvTOTALKEYS(hv), which is equivalent.

9 years agofollowup to magic/overload fix
David Mitchell [Fri, 21 May 2010 16:07:40 +0000 (17:07 +0100)] 
followup to magic/overload fix

6f1401dc2acd2a2b85df22b0a74e5f7e6e0a33aa was over-enthusiastic
on removing redundant code in the comparison ops. This code was only used
on 64-bit #ifdef branches which is why I failed to spot it earlier.
So restore that code!

9 years agomake overload respect get magic
David Mitchell [Fri, 21 May 2010 13:18:21 +0000 (14:18 +0100)] 
make overload respect get magic

In most places, ops checked their args for overload *before* doing
mg_get(). This meant that, among other issues, tied vars that
returned overloaded objects wouldn't trigger calling the
overloaded method.  (Actually, for tied and arrays and hashes, it
still often would since mg_get gets called beforehand in rvalue
context).

This patch does the following:

Makes sure get magic is called first.

Moves most of the overload code formerly included by macros at the
start of each pp function into the separate helper functions
Perl_try_amagic_bin, Perl_try_amagic_un, S_try_amagic_ftest,
with 3 new wrapper macros:
tryAMAGICbin_MG, tryAMAGICun_MG, tryAMAGICftest_MG.
This made the code 3800 bytes smaller.

Makes sure that FETCH is not called multiple times. Much of this
bit was helped by some earlier work from Father Chrysostomos.

Added new functions and macros sv_inc_nomg(), sv_dec_nomg(),
dPOPnv_nomg, dPOPXiirl_ul_nomg, dPOPTOPnnrl_nomg, dPOPTOPiirl_ul_nomg
dPOPTOPiirl_nomg, SvIV_please_nomg, SvNV_nomg (again, some of
these were based on Father Chrysostomos's work).

Fixed the list version of the repeat operator (x): it now only
calls overloaded methods for the scalar version:
    (1,2,$overloaded) x 10
no longer erroneously calls
    x_method($overloaded,10))

The only thing I haven't checked/fixed yet is overloading the
iterator operator, <>.

9 years agoRemove union _xivu from _XPVCV_COMMON, and hence structs xpvcv and xpvfm
Nicholas Clark [Tue, 26 Jan 2010 17:03:41 +0000 (17:03 +0000)] 
Remove union _xivu from _XPVCV_COMMON, and hence structs xpvcv and xpvfm

Replaced with xcv_depth and xfm_lines respectively. Both structures might
benefit from some field re-ordering.

Update the descriptive comments in the definition of union _xivu.

9 years agoRemove union _xivu from struct regexp - replace it with a non-union paren_names.
Nicholas Clark [Tue, 26 Jan 2010 16:28:59 +0000 (16:28 +0000)] 
Remove union _xivu from struct regexp - replace it with a non-union paren_names.

This was the only user of xivu_hv in union _xivu, so remove that too.

9 years agoRemove union _xivu from struct xpvhv - replace it with a non-union xav_keys.
Nicholas Clark [Mon, 25 Jan 2010 14:28:30 +0000 (14:28 +0000)] 
Remove union _xivu from struct xpvhv - replace it with a non-union xav_keys.

9 years agoRemove union _xivu from struct xpvav - replace it with a non-union xav_alloc.
Nicholas Clark [Mon, 25 Jan 2010 13:55:28 +0000 (13:55 +0000)] 
Remove union _xivu from struct xpvav - replace it with a non-union xav_alloc.

This was the only user of xivu_p1 in union _xivu, so remove that too.

9 years agoReinstate space optimisations to SV body structures.
Nicholas Clark [Mon, 25 Jan 2010 13:30:16 +0000 (13:30 +0000)] 
Reinstate space optimisations to SV body structures.

9 years agoIn the SV body, exchange the positions of the NV and stash/magic.
Nicholas Clark [Mon, 25 Jan 2010 09:27:56 +0000 (09:27 +0000)] 
In the SV body, exchange the positions of the NV and stash/magic.

9 years agoRemove all space optimisations from SV body structures.
Nicholas Clark [Fri, 22 Jan 2010 15:31:49 +0000 (15:31 +0000)] 
Remove all space optimisations from SV body structures.

9 years agoThe size of a character in C is per definition 1
H.Merijn Brand [Fri, 21 May 2010 06:01:54 +0000 (08:01 +0200)] 
The size of a character in C is per definition 1

9 years agoFix CCINCDIR and CCLIBDIR for mingw64 cross compiler
Sisyphus [Fri, 21 May 2010 00:56:07 +0000 (17:56 -0700)] 
Fix CCINCDIR and CCLIBDIR for mingw64 cross compiler

When building perl with the mingw64 x64 cross-compiler 'incpath', 'libpth',
'ldflags', 'lddlflags' and 'ldflags_nolargefiles' values in Config.pm and
Config_heavy.pl are not being set correctly because, with that compiler, the
include and lib directories are not immediately below $(CCHOME).

9 years agofully test package-version-block syntax
Zefram [Thu, 20 May 2010 20:48:03 +0000 (21:48 +0100)] 
fully test package-version-block syntax

Extend the exhaustive package-version tests in t/op/packagev.t
to test each case using package-block syntax in addition to the
package-declaration syntax.

9 years agoadditional tests for package block syntax
Zefram [Sat, 1 May 2010 16:51:21 +0000 (17:51 +0100)] 
additional tests for package block syntax

Test that __PACKAGE__ propagates into string eval correctly.  Test that
__LINE__ is correct.  Test that goto into and out of package blocks
works correctly.

9 years agofix SEGV with eval("package Foo {")
Zefram [Sat, 1 May 2010 16:30:26 +0000 (17:30 +0100)] 
fix SEGV with eval("package Foo {")

OPs relating to the package name and version were subject to double
freeing during error recovery from an incomplete package block.  Fixed by
using the op_latefree mechanism to shift the op free time.

9 years agosupport "package Foo { ... }"
Zefram [Mon, 19 Apr 2010 19:37:25 +0000 (20:37 +0100)] 
support "package Foo { ... }"

Package block syntax limits the scope of the package declaration to the
attached block.  It's cleaner than requiring the declaration to come
inside the block.

9 years agoPL_endav can be NULL, so in S_ithread_create() no need to set it to newAV().
Nicholas Clark [Tue, 23 Feb 2010 20:35:29 +0000 (20:35 +0000)] 
PL_endav can be NULL, so in S_ithread_create() no need to set it to newAV().

9 years agoRemove redundant hv_exists() calls from ithread_create()'s spec parser.
Nicholas Clark [Sat, 13 Feb 2010 09:05:18 +0000 (09:05 +0000)] 
Remove redundant hv_exists() calls from ithread_create()'s spec parser.

hv_fetch(..., 0) won't create the element if it doesn't exist, returning a NULL
pointer, so hv_exists() and hv_fetch() is doing two hash lookups where one would
suffice.

On this machine, reduces the object code by 3K, about 7%. Everyone's a winner.

9 years agoChange S_ithread_create() params from a single AV* to a pair of SV** pointers.
Nicholas Clark [Sat, 13 Feb 2010 08:31:55 +0000 (08:31 +0000)] 
Change S_ithread_create() params from a single AV* to a pair of SV** pointers.

This saves creating, duplicating and freeing and AV, which is only ever used for
an internal calling convention.

9 years agoIn threads.xs, convert thread->params from RV to AV.
Nicholas Clark [Sat, 13 Feb 2010 08:01:45 +0000 (08:01 +0000)] 
In threads.xs, convert thread->params from RV to AV.

Pass around and store the array directly, rather than creating, holding and
dereferencing a reference to it.

9 years agoSvIVX() isn't valid on SVt_REGEXP
Nicholas Clark [Tue, 26 Jan 2010 12:00:56 +0000 (12:00 +0000)] 
SvIVX() isn't valid on SVt_REGEXP

9 years agoIn sv.c, _all_ {new,del}_X* macros can be *_body_allocated.
Nicholas Clark [Mon, 25 Jan 2010 10:53:33 +0000 (10:53 +0000)] 
In sv.c, _all_ {new,del}_X* macros can be *_body_allocated.

Previously those where bodies_by_type[sv_type].offset was zero were using
{new,del}_body_typed. However, the optimiser can spot this, and generates the
same object code. This allows simplification of the C code, and more
flexibility to rearrange the structures without generating bugs.

9 years agoupdate Ricardo Signes's email
Ricardo Signes [Thu, 20 May 2010 14:14:39 +0000 (10:14 -0400)] 
update Ricardo Signes's email

9 years agoDo not try to load a feature bundle when doing "no VERSION"
Rafael Garcia-Suarez [Wed, 19 May 2010 18:36:12 +0000 (20:36 +0200)] 
Do not try to load a feature bundle when doing "no VERSION"

9 years agodo not check for deprecation of removed lib v5.13.1
Ricardo Signes [Thu, 20 May 2010 12:29:40 +0000 (08:29 -0400)] 
do not check for deprecation of removed lib

9 years agoadd the v5.13.1 epigraph
Ricardo Signes [Thu, 20 May 2010 11:49:35 +0000 (07:49 -0400)] 
add the v5.13.1 epigraph

9 years agoremove =over/=back from epigraphs.pod, add empty sections
Ricardo Signes [Thu, 20 May 2010 11:47:09 +0000 (07:47 -0400)] 
remove =over/=back from epigraphs.pod, add empty sections

...even though they are *totally legal* and the suggested way to make a
blockquote-like paragraph.  Pod::Checker doesn't like them.

9 years agoadd new release to perlhist
Ricardo Signes [Thu, 20 May 2010 11:25:47 +0000 (07:25 -0400)] 
add new release to perlhist

9 years agoupdate MANIFEST, remove delta for uninstalled file
Ricardo Signes [Thu, 20 May 2010 11:24:16 +0000 (07:24 -0400)] 
update MANIFEST, remove delta for uninstalled file

9 years agofurther updates to CoreList
Ricardo Signes [Thu, 20 May 2010 11:18:17 +0000 (07:18 -0400)] 
further updates to CoreList

Who knew there was a helper to do this, now!

9 years agoUpdate META.yml
Ricardo Signes [Thu, 20 May 2010 11:06:16 +0000 (07:06 -0400)] 
Update META.yml

Notice the glorious deletion of Switch from the manifest!

9 years agobump CoreList version
Ricardo Signes [Thu, 20 May 2010 11:01:43 +0000 (07:01 -0400)] 
bump CoreList version

9 years agoadd vertical space to CoreList.pm
Ricardo Signes [Thu, 20 May 2010 11:00:42 +0000 (07:00 -0400)] 
add vertical space to CoreList.pm

This makes it easy to move through the file with { and } in vi.
Yes, this really helps.

9 years agoremove empty perldelta section
Ricardo Signes [Thu, 20 May 2010 04:50:55 +0000 (00:50 -0400)] 
remove empty perldelta section

9 years agoupdate change command
Ricardo Signes [Thu, 20 May 2010 04:50:44 +0000 (00:50 -0400)] 
update change command

9 years agoBump the perl version in various places for 5.13.1
Ricardo Signes [Thu, 20 May 2010 04:45:27 +0000 (00:45 -0400)] 
Bump the perl version in various places for 5.13.1

9 years agoreplace 2nd 5.013000 block with 5.013001
Ricardo Signes [Thu, 20 May 2010 04:31:11 +0000 (00:31 -0400)] 
replace 2nd 5.013000 block with 5.013001

9 years agoupdate CoreList for 5.13.1
Ricardo Signes [Thu, 20 May 2010 04:29:02 +0000 (00:29 -0400)] 
update CoreList for 5.13.1

9 years agobump version on modules changed since 5.13.0
Ricardo Signes [Thu, 20 May 2010 04:28:42 +0000 (00:28 -0400)] 
bump version on modules changed since 5.13.0

9 years agopass through perl5131delta in prep of release
Ricardo Signes [Thu, 20 May 2010 04:12:47 +0000 (00:12 -0400)] 
pass through perl5131delta in prep of release

9 years agoAdd a note in perl5131delta about given return values
Vincent Pit [Thu, 20 May 2010 00:44:22 +0000 (02:44 +0200)] 
Add a note in perl5131delta about given return values

And tweak its documentation.

9 years agoAdding script used for recent perlhist changes.
Curtis Jewell [Mon, 17 May 2010 07:55:28 +0000 (01:55 -0600)] 
Adding script used for recent perlhist changes.

9 years agoUpdate perlhist.pod for 5.10.1-5.12.1
Curtis Jewell [Mon, 17 May 2010 07:50:19 +0000 (01:50 -0600)] 
Update perlhist.pod for 5.10.1-5.12.1

9 years agobumped File::Find version to 1.16
David Golden [Wed, 19 May 2010 21:04:35 +0000 (17:04 -0400)] 
bumped File::Find version to 1.16

9 years agoFixed typo: "effecting data" -> "affecting data".
Dan Dascalescu [Tue, 18 May 2010 22:12:19 +0000 (15:12 -0700)] 
Fixed typo: "effecting data" -> "affecting data".

9 years agoMerge branch 'vincent/rvalue_stmt_given' into blead
Vincent Pit [Wed, 19 May 2010 20:59:58 +0000 (22:59 +0200)] 
Merge branch 'vincent/rvalue_stmt_given' into blead

9 years agoperldelta entries for my changes in 5.13.1.
Nicholas Clark [Wed, 19 May 2010 19:02:59 +0000 (20:02 +0100)] 
perldelta entries for my changes in 5.13.1.

9 years agoadd reminder about updating epigraphs.pod to RMG
David Golden [Wed, 19 May 2010 16:30:31 +0000 (12:30 -0400)] 
add reminder about updating epigraphs.pod to RMG

9 years agothe proper term is epigraph, not epigram
David Golden [Wed, 19 May 2010 16:27:52 +0000 (12:27 -0400)] 
the proper term is epigraph, not epigram

9 years agodocument historical release epigrams
David Golden [Wed, 19 May 2010 16:20:40 +0000 (12:20 -0400)] 
document historical release epigrams

9 years agoActually note that Shell.pm is deprecated for 5.13 and 5.14, so we can
Jesse Vincent [Tue, 18 May 2010 16:17:24 +0000 (12:17 -0400)] 
Actually note that Shell.pm is deprecated for 5.13 and 5.14, so we can
remove it in 5.15 in the Spring of 2011.

9 years agoShell.pm was missing its deprecation warning in 5.12. So it can't be
Jesse Vincent [Tue, 18 May 2010 16:15:41 +0000 (12:15 -0400)] 
Shell.pm was missing its deprecation warning in 5.12. So it can't be
removed in 5.14.

Revert "Remove Shell from the core distribution. Get it from CPAN now."

This reverts commit 28d302d426b73ed76fdcc816dd51bb1a8f93332b.

9 years agoMerge branch 'blead' of ssh://perl5.git.perl.org/gitroot/perl into blead
Jesse Vincent [Tue, 18 May 2010 15:55:15 +0000 (11:55 -0400)] 
Merge branch 'blead' of ssh://perl5.git.perl.org/gitroot/perl into blead

* 'blead' of ssh://perl5.git.perl.org/gitroot/perl:
  Fix groups.t test on AIX
  further fix for RT #23810
  use the correct format codes in warnings from gmtime/localtime
  Better perldiag heading for "\cX" deprecation warning
  PATCH: Clean up EBCDIC handling of \cX
  [perl #41530] s/non-utf8/is-utf8/ fails.
  Fix for README.aix and XL C/C++ V11

9 years agoAdding Chris Williams as our November 2010 sucker
Jesse Vincent [Tue, 18 May 2010 15:54:01 +0000 (11:54 -0400)] 
Adding Chris Williams as our November 2010 sucker

9 years agoFix groups.t test on AIX
Rainer Tammer [Sun, 16 May 2010 09:37:57 +0000 (11:37 +0200)] 
Fix groups.t test on AIX

'id -a' doesn't work, so try it without the -a if that fails.

9 years agofurther fix for RT #23810
David Mitchell [Mon, 17 May 2010 23:54:50 +0000 (00:54 +0100)] 
further fix for RT #23810

The fix for #23810, 27e904532594b7fb, introduced a regression, spotted by
Nicholas as RT #75146.

Basically, in S_doeval() if the yyparse() fails due to dying (rather than
just bailing out with with a syntax error, say), then the topmost EVAL
context will have been popped. My improved error handling code mostly
understood the difference, but forgot that in the die case, PL_eval_root
will have been restored to its previous value by the CX pop, and thus
its value shouldn't be messed with.

9 years agouse the correct format codes in warnings from gmtime/localtime
Tony Cook [Tue, 23 Feb 2010 13:35:35 +0000 (00:35 +1100)] 
use the correct format codes in warnings from gmtime/localtime

9 years agoBetter perldiag heading for "\cX" deprecation warning
Rafael Garcia-Suarez [Mon, 17 May 2010 09:47:48 +0000 (11:47 +0200)] 
Better perldiag heading for "\cX" deprecation warning

9 years agoPATCH: Clean up EBCDIC handling of \cX
Karl Williamson [Wed, 12 May 2010 17:50:19 +0000 (11:50 -0600)] 
PATCH: Clean up EBCDIC handling of \cX

The function perl_ebcdic_control() is unnecessary, as the toCTRL macro
that calls it can be changed to just map EBCDIC to ASCII first, and then
doing the normal procedure.

This means that EBCDIC and ASCII will no longer diverge.  Currently,
EBCIDIC gives a syntax error for inputs outside its domain, whereas the
ASCII version accepts some of them.

9 years ago[perl #41530] s/non-utf8/is-utf8/ fails.
Karl Williamson [Tue, 11 May 2010 16:57:41 +0000 (10:57 -0600)] 
[perl #41530] s/non-utf8/is-utf8/ fails.

When the replacement is in utf8, there was failure to upgrade the result
when the source and the pattern weren't in utf8.  This simply checks
that when there is a match that will lead to the replacement being done.
It then does the upgrade.  If this led to changes in the source, we redo
the match because pointers to saved buffers could have changed.  There
may be other cases where we don't need to redo the match, but I don't
know the code well-enough to easily figure it out.

9 years agoFix for README.aix and XL C/C++ V11
Rainer Tammer [Fri, 14 May 2010 07:53:51 +0000 (09:53 +0200)] 
Fix for README.aix and XL C/C++ V11

Hello,
I have attached a small doc fix for README.aix. It contains information
regarding the new XL C/C++ V11 compiler. This patch is only for bleed.
I have already posted the correct fix for maint-5.12.

Thanks.

Bye
  Rainer

From f66807e32b4c01bb58b61cb3e48d89da9c2c4bd7 Mon Sep 17 00:00:00 2001
From: Rainer Tammer <tammer@tammer.net>
Date: Fri, 14 May 2010 09:48:25 +0200
Subject: [PATCH] FIX to README.aix for V11 compiler

Signed-off-by: H.Merijn Brand <h.m.brand@xs4all.nl>
9 years agoPerl 5.12.1 now includes Safe.pm 2.27. Module::CoreList should say so
Jesse Vincent [Thu, 13 May 2010 20:00:26 +0000 (16:00 -0400)] 
Perl 5.12.1 now includes Safe.pm 2.27. Module::CoreList should say so

9 years agoNew release date for 5.12.1 in light of the new RC
Jesse Vincent [Thu, 13 May 2010 19:58:51 +0000 (15:58 -0400)] 
New release date for 5.12.1 in light of the new RC

9 years agoMerge branch 'blead' of ssh://perl5.git.perl.org/gitroot/perl into blead
Jesse Vincent [Thu, 13 May 2010 17:04:37 +0000 (13:04 -0400)] 
Merge branch 'blead' of ssh://perl5.git.perl.org/gitroot/perl into blead

* 'blead' of ssh://perl5.git.perl.org/gitroot/perl:
  Return 0 (with a warning) for sprintf("%.0g") and sprintf("%.0f")
  Updating list of DOSish perls in perlport.pod.
  Add Porting/checkpodencoding.pl to MANIFEST
  separate the 0755 from the . $TAINT0. this silences the warning "Dot after octal literal is concatenation".
  Clarify that mail to perlbug also goes to p5p

9 years agoCorrecting the release date of 5.12.1
Jesse Vincent [Thu, 13 May 2010 17:04:10 +0000 (13:04 -0400)] 
Correcting the release date of 5.12.1

9 years agoReturn 0 (with a warning) for sprintf("%.0g") and sprintf("%.0f")
Nicholas Clark [Thu, 13 May 2010 11:04:55 +0000 (12:04 +0100)] 
Return 0 (with a warning) for sprintf("%.0g") and sprintf("%.0f")

There is special case code in the sprintf implementation, for simple %f and %g
formats, conditionally compiled in only when NVs are doubles. Under long
doubles, these are handled by the general purpose code, which always returns
0 if the argument is missing. Note that sprintf(" %.0g"), ie a leading space,
sufficient to bypass the special case code, would return the string " 0".

The special case code used to return an empty string, meaning that the
behaviour of sprintf("%.0g") and sprintf("%.0f") was inconsistent between a
perl built with doubles, and a perl with long doubles, and the behaviour of
sprintf("%.0g") and sprintf(" %.0g") was inconsistent.

5b98cd54dff3b163 fixed #62874 - the special case code did not warn, but
changed behaviour to return 0. d347ad18ecf3da70 undid the behaviour change,
viewing it as a regression. However, the tests added in 5b98cd54dff3b163
expose the inconsistency in behaviour between doubles and long doubles.

There should be no inconsistency, hence the only logically consistent
conclusion is that the special case implementation was wrong - it cannot
give results inconsistent with the general code. Hence this commit changes
it to return 0 (with a warning). This is achieved by simply skipping the
special case code, if there are insufficient arguments.

9 years agoUpdating list of DOSish perls in perlport.pod.
Curtis Jewell [Wed, 12 May 2010 12:55:56 +0000 (06:55 -0600)] 
Updating list of DOSish perls in perlport.pod.

9 years agoAdd Porting/checkpodencoding.pl to MANIFEST
H.Merijn Brand [Tue, 11 May 2010 05:54:51 +0000 (07:54 +0200)] 
Add Porting/checkpodencoding.pl to MANIFEST

9 years agoseparate the 0755 from the . $TAINT0. this silences the warning "Dot after octal...
Richard Soderberg [Wed, 28 Apr 2010 21:44:47 +0000 (14:44 -0700)] 
separate the 0755 from the . $TAINT0. this silences the warning "Dot after octal literal is concatenation".

9 years agoClarify that mail to perlbug also goes to p5p
Ævar Arnfjörð Bjarmason [Sun, 9 May 2010 12:38:29 +0000 (12:38 +0000)] 
Clarify that mail to perlbug also goes to p5p

The wording added in 64a8e22bd3 didn't clarify that mail to perlbug is
also forwarded to perl5-porters. Make this section clearer so that it
now explains that perlbug is just perl5-porters + RT tracking.

See the discussion after Craig A. Berry's comment in RT #73914 for
reference.

9 years agoPATCH [perl #74978] dot after } breaks \N{}
Karl Williamson [Sat, 8 May 2010 20:06:10 +0000 (14:06 -0600)] 
PATCH [perl #74978] dot after } breaks \N{}

The problem is that a dot can come between the braces in \N{foo.bar},
but when searching for it, I didn't stop looking at the right brace, so
it generated an error inappropriately.

This is essentially a minimum patch; efficiency could be improved
slightly with a little more work.

9 years agoNote in comment that many \N{...} tests won't work here
Karl Williamson [Sat, 8 May 2010 19:38:27 +0000 (13:38 -0600)] 
Note in comment that many \N{...} tests won't work here

9 years agoComment where to find file's format
Karl Williamson [Sat, 8 May 2010 19:12:53 +0000 (13:12 -0600)] 
Comment where to find file's format