This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
9 years agoupdate the schedule: rjbs will do 5.16
Ricardo Signes [Tue, 10 Jan 2012 21:16:05 +0000 (16:16 -0500)]
update the schedule: rjbs will do 5.16

9 years ago[perl #35865, #43011] FETCH after autovivifying
Father Chrysostomos [Tue, 10 Jan 2012 16:55:08 +0000 (08:55 -0800)]
[perl #35865, #43011] FETCH after autovivifying

After autovivification, perl should not assume that the value it has
assigned to a magical scalar is the one that would have been returned.

The result of this assumption is that any tie class that copies things
assigned to it will cause autovivification to assign to a temporary
aggregate without warning, in cases like this:

    $tied{nonexistent}{foo} = 7;

The hash implicitly assigned to $tied{nonexistent} ends up being freed
after the =7 assignment.

This commit changes autovivification to do FETCH immediately after
doing STORE.

This required changing some recently-added tests in gmagic.t.

Without this change, you end up with horrific workarounds (using B.pm
to get the reference count), like the one in JE::Object (which I’m
pasting here, in case it has changed by the time you read this):

sub STORE    {
my($self, $key, $val) = @_;
my $global = $self->global;
if(ref $val eq 'HASH' && !blessed $val
      && !%$val && svref_2object($val)->REFCNT == 2) {
$val = tie %$val, __PACKAGE__, __PACKAGE__->new(
$global);
} elsif (ref $val eq 'ARRAY' && !blessed $val && !@$val &&
         svref_2object($val)->REFCNT == 2) {
require JE::Object::Array;
$val = tie @$val, 'JE::Object::Array',
JE::Object::Array->new($global);
}
$self->prop($key => $global->upgrade($val))
}

9 years agoCorrect bad wording in perlsub
Father Chrysostomos [Tue, 10 Jan 2012 06:29:17 +0000 (22:29 -0800)]
Correct bad wording in perlsub

It seemed to imply that CORE:: syntax was introduced in 5.16.  What it
was supposed to say was that CORE:: breaking through the feature.pm
barrier was  introduced in 5.16.  (Which sounds a little odd, as 5.16
is still in the future, but whatever.)

9 years agoFix crash in hv_undef
Father Chrysostomos [Tue, 10 Jan 2012 06:18:56 +0000 (22:18 -0800)]
Fix crash in hv_undef

Commit 60edcf09a was supposed to make things less buggy, but putting
the ENTER/LEAVE in h_freeentries was a mistake, as both hv_undef and
hv_clear still access the hv after calling h_freeentries.  Why it
didn’t crash for me is anyone’s guess.

9 years ago[perl #40333] Another test
Joshua ben Jore [Tue, 10 Jan 2012 04:39:22 +0000 (20:39 -0800)]
[perl #40333] Another test

This test includes an explosive class, that overload::Overloaded
should be able to handle.

9 years ago[perl #40333] Stop overload::Overloaded from calling ->can
Father Chrysostomos [Tue, 10 Jan 2012 04:35:35 +0000 (20:35 -0800)]
[perl #40333] Stop overload::Overloaded from calling ->can

It’s possible, and too easy, for classes to define a can method to
deal with AUTOLOAD, without taking overloading into account.  Since
AUTOLOAD is the main reason for overriding can, and since overloading
does not respect autoloading, can overrides should not be expected to
deal with it.

Since overload.pm already has a mycan function that fits this purpose,
this commit changes Overloaded to use that.

The test includes an example of a class structure that the previous
Overloaded implementation could not handle.

9 years agoDocument that [ah]v_undef/clear may free the [ah]v
Father Chrysostomos [Tue, 10 Jan 2012 03:59:45 +0000 (19:59 -0800)]
Document that [ah]v_undef/clear may free the [ah]v

9 years agoBetter fix for perl #107440
Father Chrysostomos [Tue, 10 Jan 2012 03:54:26 +0000 (19:54 -0800)]
Better fix for perl #107440

> > Actually, the simplest solution seem to be to put the av or hv on
> > the mortals stack in pp_aassign and pp_undef, rather than in
> > [ah]v_undef/clear.
>
> This makes me nervous. The tmps stack is typically cleared only on
> statement boundaries, so we run the risks of
>
>     * user-visible delaying of freeing elements;
>     * large tmps stack growth might be possible with
>       certain types of loop that repeatedly assign to an array without
>       freeing tmps (eg map? I think I fixed most map/grep tmps leakage
> a
>       while back, but there may still be some edge cases).
>
> Surely an ENTER/SAVEFREESV/LEAVE inside pp_aassign is just as
> efficient,
> without any attendant risks?
>
> Also, although pp_aassign and pp_undef are now fixed, the
> [ah]v_undef/clear functions aren't, and they're part of the public API
> that can be called independently of pp_aassign etc. Ideally they
> should
> be fixed (so they don't crash in mid-loop), and their documentation
> updated to point out that on return, their AV/HV arg may have been
> freed.

This commit takes care of the first part; it changes pp_aassign to use
ENTER/SAVEFREESV/LEAVE and adds the same to h_freeentries (called both
by hv_undef and hv_clear), av_undef and av_clear.

It effectively reverts the C code part of 9f71cfe6ef2.

9 years agoRemove TODO functionality from assignwarn.t
Father Chrysostomos [Mon, 9 Jan 2012 20:50:59 +0000 (12:50 -0800)]
Remove TODO functionality from assignwarn.t

9 years ago[perl #44895] += warning on uninit magic var
Father Chrysostomos [Mon, 9 Jan 2012 20:46:01 +0000 (12:46 -0800)]
[perl #44895] += warning on uninit magic var

The only uses of USE_LEFT in core now occur when SvGETMAGIC has
already been called.  So returning true for magical SVs is not neces-
sary.  In fact, it was never correct.

Also, the code in do_vop (which handles bitwise operations on strings)
to avoid an uninitialized warning had the same buggy SvGMAGICAL check.

Now, the warning from $uninit += 1 is suppressed for all undefined
vars, not just amagical ones.

This causes 6 to-do tests in assignwarn.t to pass.

9 years agoRemove magical dPOPXnnrl_ul dPOPXiirl_ul macros
Father Chrysostomos [Mon, 9 Jan 2012 17:45:54 +0000 (09:45 -0800)]
Remove magical dPOPXnnrl_ul dPOPXiirl_ul macros

These are undocumented and unused on CPAN and in the core.

The core now uses _nomg variants.

9 years agoMerge the POSIX notes in perldelta.
Chris 'BinGOs' Williams [Mon, 9 Jan 2012 19:50:54 +0000 (19:50 +0000)]
Merge the POSIX notes in perldelta.

9 years agomissed in prev commit
H.Merijn Brand [Mon, 9 Jan 2012 18:05:44 +0000 (19:05 +0100)]
missed in prev commit

9 years ago'A' is not blank
H.Merijn Brand [Mon, 9 Jan 2012 17:20:10 +0000 (18:20 +0100)]
'A' is not blank

9 years agoAdd probe for isblank() (requested by khw)
H.Merijn Brand [Mon, 9 Jan 2012 17:10:21 +0000 (18:10 +0100)]
Add probe for isblank() (requested by khw)

9 years agoTest for perl #43663
Father Chrysostomos [Mon, 9 Jan 2012 16:37:01 +0000 (08:37 -0800)]
Test for perl #43663

9 years ago[perl #92254, #92256] Fix SAVE_DEFSV to do refcounting
Father Chrysostomos [Mon, 9 Jan 2012 02:14:03 +0000 (18:14 -0800)]
[perl #92254, #92256] Fix SAVE_DEFSV to do refcounting

The current definition of SAVE_DEFSV doesn’t take reference count-
ing into account.  Every instance of it in the perl core is buggy
as a result.

Most are also followed by DEFSV_set, which is likewise buggy.

This commit implements SAVE_DEFSV in terms of save_gp and
SAVEGENERICSV if PERL_CORE is defined.  save_gp and SAVEGENERICSV are
what local(*_) = \$foo uses.  Changing the definition for XS code is
probably too risky this close to 5.16.  It should probably be changed
later, though.

DEFSV_set is now changed to do reference counting too.

9 years agogrep.t: require test.pl in BEGIN block
Father Chrysostomos [Mon, 9 Jan 2012 01:18:23 +0000 (17:18 -0800)]
grep.t: require test.pl in BEGIN block

for parenthetical omissions.

9 years agoneed backwards-compatile to_utf8_foo()
Karl Williamson [Sun, 8 Jan 2012 21:59:13 +0000 (14:59 -0700)]
need backwards-compatile to_utf8_foo()

These 4 functions have been replaced by variants to_utf8_foo_flags(),
but for XS code that called the old ones in the Perl_to_utf8_foo()
forms, backwards compatibility versions need to be created.

For calls of just the to_utf8_foo() forms, macros have been used to
automatically call the new forms without the performance penalty of
going through the compatibility functions.

9 years agoembed.fnc: Revise comment
Karl Williamson [Sun, 8 Jan 2012 21:57:59 +0000 (14:57 -0700)]
embed.fnc: Revise comment

The 'd' flag doesn't mean that the documentation has to be even in the
same file as the source for that function; just somewhere in the source.

9 years agoembed.fnc: add comment
Karl Williamson [Sun, 8 Jan 2012 21:17:58 +0000 (14:17 -0700)]
embed.fnc: add comment

9 years agoUpdate perlfaq to CPAN version 5.0150037
Chris 'BinGOs' Williams [Sun, 8 Jan 2012 22:36:01 +0000 (22:36 +0000)]
Update perlfaq to CPAN version 5.0150037

  [DELTA]

  5.0150037 Sun  8 Jan 2012 21:24:39 +0100
    * Better XML parsing recommendations (apeiron)
    * Remove various old questions & update a few (ranguard)
    * Change auto generate of questions a bit (ranguard)
    * Autogenerate question index in perlfaq.pod (doherty)
    * Cleanups / typos, updating nested expressions (dami, reviewed by schwern)

9 years ago[perl #67490] Don’t call DELETE on scalar-tied elem
Father Chrysostomos [Sun, 8 Jan 2012 20:30:45 +0000 (12:30 -0800)]
[perl #67490] Don’t call DELETE on scalar-tied elem

This little snippet:

sub TIESCALAR{bless[]}
sub STORE{}
tie $^H{foo}, '';
$^H{foo} = 1;
delete $^H{foo};

dies with ‘Can't locate object method "DELETE"...’.

This bug was introduced for %^H by commit b3ca2e834c, but it is actu-
ally an older bug that already affected %ENV before that.

Clear-magic on a scalar is only called when it is an element of a mag-
ical aggregate.

For hashes, this clear-magic is called whenever the hash itself
is RMAGICAL.

Tied scalars and elements of tied aggregates use the same magic vta-
ble, under the assumption that mg_clear will never be called on a tied
scalar.  That assumption is wrong.

Commit b3ca2e834c is the one that made %^H magical, which is why it
caused this problem for %^H.

The obvious solution, giving tied scalars their own vtable, is not as
simple as it sounds, because then tied scalars are no longer RMAGICAL,
and at least some of the tie code assumes that they are.

So the easiest fix is to skip the DELETE call in Perl_magic_clearpack
if the type of magic is PERL_MAGIC_tiedscalar.

9 years agoSimplify magic logic in av.c:av_store
Father Chrysostomos [Sun, 8 Jan 2012 02:38:35 +0000 (18:38 -0800)]
Simplify magic logic in av.c:av_store

9 years agoclarify how $SIG{__DIE__} can return
David Mitchell [Sun, 8 Jan 2012 15:45:39 +0000 (15:45 +0000)]
clarify how $SIG{__DIE__} can return

It can return via 'goto &sub', but not via 'goto LABEL'.
The docs originally just said 'via goto'

See [perl #44367].

9 years agoperlfunc: spaces after dots
Father Chrysostomos [Sat, 7 Jan 2012 16:29:49 +0000 (08:29 -0800)]
perlfunc: spaces after dots

9 years agoMake localtime()' s documentation more succinct
Tom Hukins [Sat, 7 Jan 2012 15:37:38 +0000 (15:37 +0000)]
Make localtime()' s documentation more succinct

It's now twelve years since Y2K, so the documentation should not make
such a fuss about it.

9 years ago[perl #85670] Copy magic to ary elems properly
Father Chrysostomos [Sat, 7 Jan 2012 07:36:38 +0000 (23:36 -0800)]
[perl #85670] Copy magic to ary elems properly

On Tue Mar 08 07:26:35 2011, thospel wrote:
> #!/usr/bin/perl -l
> use Data::Dumper;
> use Scalar::Util qw(weaken);
> our @ISA;
>
> for (1..2) {
>     @ISA = qw(Foo);
>     weaken($a = \@ISA);
>     weaken($a = \$ISA[0]);
>     print STDERR Dumper(\@ISA);
> }
>
> This prints:
> $VAR1 = [
>           'Foo'
>         ];
> $VAR1 = [
>           'Foo',
>           \$VAR1->[0]
>         ];
>
> So the first time it's the expected @ISA, but the second time round it
>    automagically added a reference to to the first ISA element
>
> (bug also exists in blead)

Shorter:

#!/usr/bin/perl -l

use Scalar::Util qw(weaken);

weaken($a = \@ISA);
@ISA = qw(Foo);
use Devel::Peek; Dump \@ISA;
weaken($a = \$ISA[0]);
print scalar @ISA;   # prints 2

The dump shows the problem.  backref magic is being copied to the ele-
ment.  Put the magic in a different order, and everything is fine:

#!/usr/bin/perl -l

use Scalar::Util qw(weaken);

weaken($a = $b = []);
*ISA = $a;
@ISA = qw(Foo);
use Devel::Peek; Dump \@ISA;
weaken($a = \$ISA[0]);
print scalar @ISA;   # prints 2

This code in av_store is so wrong:

    if (SvSMAGICAL(av)) {
const MAGIC* const mg = SvMAGIC(av);
if (val != &PL_sv_undef) {
    sv_magic(val, MUTABLE_SV(av), toLOWER(mg->mg_type), 0, key);
}
if (PL_delaymagic && mg->mg_type == PERL_MAGIC_isa)
    PL_delaymagic |= DM_ARRAY_ISA;
else
   mg_set(MUTABLE_SV(av));
    }

It doesn’t follow the magic chain at all.  So anything magic could get
attached to the @ISA array, and that will be copied to the element
instead of isa magic.

Notice that MUTABLE_SV(av) is the second argument to sv_magic, so
mg->mg_obj for the element always points back to the array.

Since backref magic’s mg->mg_obj points to the backrefs array, @ISA
ends up being used as this element’s backrefs array.

What if arylen_p gets copied instead?  Let’s see:

$#ISA = -1;
@ISA = qw(Foo);
$ISA[0] = "Bar";

main->ber;

sub Bar::ber { warn "shave" }
__END__
Can't locate object method "ber" via package "main" at - line 7.

I’ve fixed this by making av_store walk the magic chain, copying any
magic for which toLOWER(mg->mg_type) != mg->mg_type.

9 years ago[perl #107440] Save av/hv on mortals stack when clearing
Father Chrysostomos [Fri, 6 Jan 2012 21:50:35 +0000 (13:50 -0800)]
[perl #107440] Save av/hv on mortals stack when clearing

In pp_undef and pp_aassign, we should put the av or hv that is being
cleared on the mortals stack (with an increased refcount), so that
destructors fired during the clearing do not free the av or hv.

I was going to put this in av_undef, etc., but pp_aassign also needs
to access the aggregate after clearing it.  We still get a crash with
that approach.

Putting the aggregate on the mortals stack in av_undef, av_clear and
h_freeentries would work, too, but might cause the aggregate to leak
too far.  That may cause problems, e.g., if it is %^H, because it may
last until the end of the current compilation unit.

Directly inside a runloop (in a pp function), it should be OK to use
the mortals stack, as it *will* be cleared ‘soon’.  This seems the
least intrusive approach.

9 years ago[perl #90632] perlfunc: Rewrite `split'
Michael Witten [Fri, 6 Jan 2012 21:11:37 +0000 (13:11 -0800)]
[perl #90632] perlfunc: Rewrite `split'

I couldn't stand the way the documenation for `split' was written;
it felt like a kludge of broken English dumped into a messy pile by
several people, each of whom was unaware of the other's work.

This variation completes sentences, adds new ones, rearranges ideas,
expands on ideas, simplifies and unifies examples, and includes more
cross references.

While the original text seemed to be written in a way that touched upon
the arguments in reverse order (which did have a hint of elegance), this
version attempts to provide the reader with the most useful information
upfront.

Thanks to Brad Baxter and Thomas R. Sibley for their constructive
criticism.

[Modified by the committer to incorporate suggestions from Aristotle
Pagaltzis and Tom Christiansen.]

9 years agodocument the upgrade of Perldoc
Ricardo Signes [Fri, 6 Jan 2012 21:07:45 +0000 (16:07 -0500)]
document the upgrade of Perldoc

9 years agoPod-Perldoc now includes test documents
Ricardo Signes [Fri, 6 Jan 2012 20:58:12 +0000 (15:58 -0500)]
Pod-Perldoc now includes test documents

do not test them as if they were Pod we ship

9 years agoUpgrade Pod-Perldoc to CPAN version 3.15_15
Ricardo Signes [Fri, 6 Jan 2012 12:58:33 +0000 (07:58 -0500)]
Upgrade Pod-Perldoc to CPAN version 3.15_15

9 years agoUncomment evals in sort.t
Father Chrysostomos [Fri, 6 Jan 2012 19:20:18 +0000 (11:20 -0800)]
Uncomment evals in sort.t

These were commented out temporarily during development.
I forgot to uncomment them before committing.

9 years agoPerlIO::scalar: allow writing to SvIOK SVs
Father Chrysostomos [Fri, 6 Jan 2012 07:55:32 +0000 (23:55 -0800)]
PerlIO::scalar: allow writing to SvIOK SVs

It used to crash if the PVX buffer happened to be null.
If the PVX buffer happened to be left over from before,
it would use that instead of the numeric value, even for
!SvPOK scalars.

9 years agoIn PerlIO::Scalar’s write, stringify refs
Father Chrysostomos [Fri, 6 Jan 2012 07:48:16 +0000 (23:48 -0800)]
In PerlIO::Scalar’s write, stringify refs

Otherwise, it won’t work with an overloaded object.

9 years agoperlsyn: spaces after dots
Father Chrysostomos [Fri, 6 Jan 2012 07:13:59 +0000 (23:13 -0800)]
perlsyn: spaces after dots

9 years agoregen pod issues
Father Chrysostomos [Fri, 6 Jan 2012 07:10:15 +0000 (23:10 -0800)]
regen pod issues

9 years agoperlsyn: wrap long verbatim line
Father Chrysostomos [Fri, 6 Jan 2012 07:10:04 +0000 (23:10 -0800)]
perlsyn: wrap long verbatim line

9 years agoIncrease $PerlIO::scalar::VERSION to 0.13
Father Chrysostomos [Fri, 6 Jan 2012 07:07:42 +0000 (23:07 -0800)]
Increase $PerlIO::scalar::VERSION to 0.13

9 years agoperlsyn: Correct ... example
Father Chrysostomos [Fri, 6 Jan 2012 07:05:16 +0000 (23:05 -0800)]
perlsyn: Correct ... example

9 years ago[perl #92706] In PerlIO::Scalar::seek, don’t assume SvPOKp
Father Chrysostomos [Fri, 6 Jan 2012 06:55:45 +0000 (22:55 -0800)]
[perl #92706] In PerlIO::Scalar::seek, don’t assume SvPOKp

Otherwise we get assertion failures.

In fact, since seeking might be just for reading, we can’t coerce and
SvGROW either.

In fact, since the scalar might be modified between seek and write,
there is no *point* in SvGROW during seek, even for SvPOK scalars.

PerlIO::scalar assumes in too many places that the scalar it is using
is its own private scalar that nothing else can modify.  Nothing could
be farther from the truth.

This commit moves the zero-fill that usually happens when seeking past
the end from seek to write.  During a write, if the current position
is past the end of the string, the intervening bytes are zero-filled
at that point, since the seek hasn’t done it.

9 years agoperlsyn: add triple-dot index entries and alias
Father Chrysostomos [Fri, 6 Jan 2012 04:50:55 +0000 (20:50 -0800)]
perlsyn: add triple-dot index entries and alias

This adds the index entries to perlsyn that were removed in
the previous commit, and mentions in perlsyn that the ellipsis
is also called a triple-dot.

9 years agoperlop: remove triple-dot
Father Chrysostomos [Fri, 6 Jan 2012 04:48:49 +0000 (20:48 -0800)]
perlop: remove triple-dot

This has been superseded by c2f1e229, which adds it
to perlsyn.

9 years ago[perl #90064] warn once for dbmopen with undef 3rd arg
Father Chrysostomos [Fri, 6 Jan 2012 04:41:08 +0000 (20:41 -0800)]
[perl #90064] warn once for dbmopen with undef 3rd arg

9 years agoIncrease $overload::VERSION to 1.17
Father Chrysostomos [Fri, 6 Jan 2012 04:24:32 +0000 (20:24 -0800)]
Increase $overload::VERSION to 1.17

9 years agoregen pod issues
Father Chrysostomos [Fri, 6 Jan 2012 04:23:52 +0000 (20:23 -0800)]
regen pod issues

9 years agoCorrect links to perlsyn and perlop
Father Chrysostomos [Fri, 6 Jan 2012 04:18:04 +0000 (20:18 -0800)]
Correct links to perlsyn and perlop

9 years ago[perl #90926] Corrections to the previous patch
Tom Christiansen [Fri, 6 Jan 2012 04:11:15 +0000 (20:11 -0800)]
[perl #90926] Corrections to the previous patch

Here is a patch against the second patch,
fixing typos reported to me.

9 years ago[perl #90926] smartmatch PATCH 2 of 2: perlsyn.pod
Tom Christiansen [Fri, 6 Jan 2012 04:02:59 +0000 (20:02 -0800)]
[perl #90926] smartmatch PATCH 2 of 2: perlsyn.pod

As previously explained, this patch against perlsyn
is part and parcel of the previous one against perlop
(two commits ago; perl #90906).

9 years ago[perl #90906] Corrections to the previous patch
Tom Christiansen [Fri, 6 Jan 2012 02:09:58 +0000 (18:09 -0800)]
[perl #90906] Corrections to the previous patch

Here is a patch against the first patch,
fixing typos reported to me.

9 years ago[perl #90906] smartmatch PATCH 1 of 2: perlop.pod
Tom Christiansen [Fri, 6 Jan 2012 02:07:48 +0000 (18:07 -0800)]
[perl #90906] smartmatch PATCH 1 of 2: perlop.pod

The thrust of this patch is to move the description of the ~~
operator into perlop where it properly belongs; given and when
remain relegated to perlsyn. This is also (nearly) the first-ever
set of examples for the smartmatch operator. Staggerment.

9 years agoUpdate CPANPLUS to CPAN version 0.9116
Chris 'BinGOs' Williams [Fri, 6 Jan 2012 00:16:06 +0000 (00:16 +0000)]
Update CPANPLUS to CPAN version 0.9116

  [DELTA]

  Changes for 0.9116      Thu Jan  5 22:45:06 2012
  ================================================
  * add NAME headings in modules with POD, Debian
    Lintian fixes, http://bugs.debian.org/65045
  * Implement reload command in the shell

9 years ago[perl #91850] utf8::decode: croak for ro scalars
Father Chrysostomos [Fri, 6 Jan 2012 00:47:54 +0000 (16:47 -0800)]
[perl #91850] utf8::decode: croak for ro scalars

9 years ago[perl #90064] perlfunc: Document special 0 mode for dbmopen
Father Chrysostomos [Thu, 5 Jan 2012 22:36:15 +0000 (14:36 -0800)]
[perl #90064] perlfunc: Document special 0 mode for dbmopen

9 years ago[perl #90648] perlop: There is no low-prec //
H.Merijn Brand [Thu, 5 Jan 2012 22:26:18 +0000 (14:26 -0800)]
[perl #90648] perlop: There is no low-prec //

9 years ago[perl #90648] perlop: There ain’t no C-style //
Father Chrysostomos [Thu, 5 Jan 2012 22:25:01 +0000 (14:25 -0800)]
[perl #90648] perlop: There ain’t no C-style //

9 years agoregen pod issues
Father Chrysostomos [Thu, 5 Jan 2012 20:29:34 +0000 (12:29 -0800)]
regen pod issues

9 years agoperlfunc: spaces after dots
Father Chrysostomos [Thu, 5 Jan 2012 17:43:31 +0000 (09:43 -0800)]
perlfunc: spaces after dots

9 years agocflags does not exists in Config.pm; use ccflags
ambs [Tue, 3 Jan 2012 22:01:27 +0000 (22:01 +0000)]
cflags does not exists in Config.pm; use ccflags

[dagolden bumped $VERSION and added ambs to the AUTHORS file]

Signed-off-by: David Golden <dagolden@cpan.org>
9 years ago[perl #90030] sort with no arguments
Father Chrysostomos [Thu, 5 Jan 2012 16:48:35 +0000 (08:48 -0800)]
[perl #90030] sort with no arguments

This eliminates the error ‘sort is now a reserved word’, which was
added for the sake of code that does close(sort) at about the time
that sort became a keyword.

As Tom Christiansen pointed out, it has been long enough.

This error only occurred with ) or ; after the keyword.  In other
cases with no arguments, like {sort} and (sort,0), it was treated as
an empty list.

So this commit makes it follow that.

Since the tests triggered it, this commit also fixes a crash caused by
commit 540dd770, which, when seeing whether it can optimise something
like ‘@a = sort @a’, assumes that there is something after the sort,
and crashes when there isn’t, as in {@a = sort}.

9 years ago[perl #89758] important perlfunc version guards
Tom Christiansen [Thu, 5 Jan 2012 07:53:33 +0000 (23:53 -0800)]
[perl #89758] important perlfunc version guards

This reminds users to put version guards on their neologisms.
We're changing Perl's basic sytnax a great deal, and users need
to understand that to use those syntactic changes will cause
weird errors if they don't put this sort of thing in.  This
sort of thing really should have gone in all along.  Let's
please continue what I have begun.

I also fixed the order: untie does not precede unshift. :(

9 years ago[perl #97464] Document actual case when @DB::args is set
Father Chrysostomos [Thu, 5 Jan 2012 07:33:23 +0000 (23:33 -0800)]
[perl #97464] Document actual case when @DB::args is set

9 years ago[perl #95548] Returned magical temps are not copied
Father Chrysostomos [Thu, 5 Jan 2012 07:28:54 +0000 (23:28 -0800)]
[perl #95548] Returned magical temps are not copied

return and leavesub, for speed, were not copying temp variables with a
refcount of 1, which is fine as long as the fact that it was not cop-
ied is not observable.

With magical variables, that *can* be observed, so we have to forego
the optimisation and copy the variable if it’s magical.

This obviously applies only to rvalue subs.

9 years agoDon’t iterate through magic with local $_
Father Chrysostomos [Wed, 4 Jan 2012 06:59:32 +0000 (22:59 -0800)]
Don’t iterate through magic with local $_

If we are going to skip all set-magic when restoring a localised tied
$_, there’s no point in looping through it.

9 years agoRestrict $[ comp warning to constants
Father Chrysostomos [Wed, 4 Jan 2012 06:56:37 +0000 (22:56 -0800)]
Restrict $[ comp warning to constants

$#a > $[ is a legitimate use of $[ with >.  So warning in that case
is not nice.  Most version comparisons are done with constants, like
5.006, so warn only for constants.

9 years agominiperl can no longer run installperl.
Craig A. Berry [Thu, 5 Jan 2012 01:07:59 +0000 (19:07 -0600)]
miniperl can no longer run installperl.

installperl now requires Porting/pod_lib.pl, which uses Digest::MD5,
which means we need something that can do dynamic loading (or has
extensions statically linked in).  But it doesn't really matter
because presumably we wouldn't be installing Perl if we hadn't
built it, so use the perl we've built rather than miniperl.

9 years agohv.c pod: 'Perl_sv_placeholder' should be 'PL_sv_placeholder'
Karl Williamson [Wed, 4 Jan 2012 18:57:12 +0000 (11:57 -0700)]
hv.c pod: 'Perl_sv_placeholder' should be 'PL_sv_placeholder'

9 years agoRemove some dead x2p-related code in vmsish.h.
Nicholas Clark [Wed, 4 Jan 2012 03:20:50 +0000 (21:20 -0600)]
Remove some dead x2p-related code in vmsish.h.

9 years ago[perl #105912] local $_ should not FETCH
Father Chrysostomos [Wed, 4 Jan 2012 06:44:49 +0000 (22:44 -0800)]
[perl #105912] local $_ should not FETCH

This commit finishes the work of 658a9f3 by skipping FETCH as well as
STORE during local($_).

9 years agoCorrect bug-report email in IO docs
Father Chrysostomos [Wed, 4 Jan 2012 03:47:12 +0000 (19:47 -0800)]
Correct bug-report email in IO docs

This was mentioned in ticket #75156.

9 years agoadd a missing apostrophe
Ricardo Signes [Wed, 4 Jan 2012 01:28:55 +0000 (20:28 -0500)]
add a missing apostrophe

thanks, Jim Keenan

9 years agoUpdate Module-Pluggable to CPAN version 4.0
Chris 'BinGOs' Williams [Tue, 3 Jan 2012 21:01:46 +0000 (21:01 +0000)]
Update Module-Pluggable to CPAN version 4.0

  [DELTA]

  No change log found for 4.0 release

9 years agoSync Maintainers.pl with CPAN for ExtUtils-ParseXS
Chris 'BinGOs' Williams [Tue, 3 Jan 2012 20:46:22 +0000 (20:46 +0000)]
Sync Maintainers.pl with CPAN for ExtUtils-ParseXS

9 years agoop.c Remove redundant continue
Father Chrysostomos [Tue, 3 Jan 2012 07:25:27 +0000 (23:25 -0800)]
op.c Remove redundant continue

9 years agoPacklist.t: add bug number
Father Chrysostomos [Tue, 3 Jan 2012 07:06:14 +0000 (23:06 -0800)]
Packlist.t: add bug number

9 years agoChange wording of \E warning
Father Chrysostomos [Tue, 3 Jan 2012 06:34:51 +0000 (22:34 -0800)]
Change wording of \E warning

following Karl Williamson’s suggestion.

9 years agotoke.c: Unpaired '\E's in double-quotish contexts should warn.
Brian Fraser [Fri, 30 Dec 2011 04:01:21 +0000 (01:01 -0300)]
toke.c: Unpaired '\E's in double-quotish contexts should warn.

Until now, an unpaired \E (that is, one lacking a \U, \L or \Q)
would just pass through unnoticed. This commit changes that
behavior to issue a warning instead.

9 years agoExtUtils::Packlist: Restore 5.005 compatibility
Father Chrysostomos [Tue, 3 Jan 2012 05:28:32 +0000 (21:28 -0800)]
ExtUtils::Packlist: Restore 5.005 compatibility

I think.  I haven’t actually tested it.

9 years ago[perl #107410] Tests for used-once warnings from ExtUtils::Packlist
Father Chrysostomos [Tue, 3 Jan 2012 05:26:52 +0000 (21:26 -0800)]
[perl #107410] Tests for used-once warnings from ExtUtils::Packlist

9 years agoAdd Joel Berger to AUTHORS
Father Chrysostomos [Tue, 3 Jan 2012 05:26:49 +0000 (21:26 -0800)]
Add Joel Berger to AUTHORS

9 years agoRemoved 'once' warnings in ExtUtils::Packlist::mkfh.
Joel Berger [Mon, 2 Jan 2012 18:55:52 +0000 (12:55 -0600)]
Removed 'once' warnings in ExtUtils::Packlist::mkfh.

Fixes cpan bug #50315.

9 years agoIncrease $ExtUtils::Packlist::VERSION to 1.46
Father Chrysostomos [Tue, 3 Jan 2012 04:33:30 +0000 (20:33 -0800)]
Increase $ExtUtils::Packlist::VERSION to 1.46

9 years agoCorrect test count in regen.t
Father Chrysostomos [Tue, 3 Jan 2012 00:43:59 +0000 (16:43 -0800)]
Correct test count in regen.t

9 years agoExplain perlguts changes in mg_vtable.pl comment
Father Chrysostomos [Tue, 3 Jan 2012 00:43:20 +0000 (16:43 -0800)]
Explain perlguts changes in mg_vtable.pl comment

9 years agoRegenerate perlguts’ mg table automatically
Father Chrysostomos [Tue, 3 Jan 2012 00:40:38 +0000 (16:40 -0800)]
Regenerate perlguts’ mg table automatically

regen/mg_vtable.pl was modified a while ago to generate the table
for copying and pasting, but at least twice since then it has not
been updated properly; once by me and once by the author of that
part of regen/mg_vtable.pl.

9 years agoperldelta for GV non-cloning
Father Chrysostomos [Mon, 2 Jan 2012 22:38:21 +0000 (14:38 -0800)]
perldelta for GV non-cloning

9 years agoperldelta for %n
Father Chrysostomos [Mon, 2 Jan 2012 22:36:41 +0000 (14:36 -0800)]
perldelta for %n

9 years agoperldelta for hash element deletion and destructors
Father Chrysostomos [Mon, 2 Jan 2012 22:34:22 +0000 (14:34 -0800)]
perldelta for hash element deletion and destructors

9 years agoperldelta for method deletion
Father Chrysostomos [Mon, 2 Jan 2012 22:32:15 +0000 (14:32 -0800)]
perldelta for method deletion

9 years agoperldelta for system SIGCHLD interference
Father Chrysostomos [Mon, 2 Jan 2012 22:30:30 +0000 (14:30 -0800)]
perldelta for system SIGCHLD interference

9 years agoperldelta for #! line errors
Father Chrysostomos [Mon, 2 Jan 2012 22:28:05 +0000 (14:28 -0800)]
perldelta for #! line errors

9 years agoperldelta for POSIX sigsuspend
Father Chrysostomos [Mon, 2 Jan 2012 22:24:20 +0000 (14:24 -0800)]
perldelta for POSIX sigsuspend

9 years agoperldelta: update status comment
Father Chrysostomos [Mon, 2 Jan 2012 22:18:34 +0000 (14:18 -0800)]
perldelta: update status comment

9 years agoperldelta for reifying tied arrays
Father Chrysostomos [Mon, 2 Jan 2012 22:16:48 +0000 (14:16 -0800)]
perldelta for reifying tied arrays

9 years agoperldelta for tied @DB::args
Father Chrysostomos [Mon, 2 Jan 2012 22:10:26 +0000 (14:10 -0800)]
perldelta for tied @DB::args

9 years agoperldelta for splain’s multiline support
Father Chrysostomos [Mon, 2 Jan 2012 22:06:21 +0000 (14:06 -0800)]
perldelta for splain’s multiline support

9 years agoperldelta for splain’s backtrace formatting
Father Chrysostomos [Mon, 2 Jan 2012 22:04:42 +0000 (14:04 -0800)]
perldelta for splain’s backtrace formatting

9 years agoperldelta for lvalue fixes
Father Chrysostomos [Mon, 2 Jan 2012 21:59:39 +0000 (13:59 -0800)]
perldelta for lvalue fixes

9 years agoperldelta for Data::Dumper and *{""}
Father Chrysostomos [Mon, 2 Jan 2012 21:48:15 +0000 (13:48 -0800)]
perldelta for Data::Dumper and *{""}