15 months agoadd Markus Jansen to the AUTHORS file maint-5.16
Ricardo Signes [Mon, 12 Aug 2013 02:34:22 +0000]
add Markus Jansen to the AUTHORS file

15 months agofix two my_setenv/my_clearenv bugs
Markus Jansen [Fri, 3 May 2013 14:02:30 +0000]
fix two my_setenv/my_clearenv bugs

RT #117121. This commit fixes two bugs. First, some old glibc's can crash
if unsetenv() is called with a null environ.

Secondly, the code in Perl_my_clearenv(), when freeing env vars with a
name longer than 80 chars, reallocs a tmp buffer, but didn't
update the buf lencausing this to fail under valgrind:

    $ENV{"a"x 90}=1; local %ENV;

16 months agoperldelta for fd430c957778
Tony Cook [Tue, 23 Jul 2013 01:19:57 +0000]
perldelta for fd430c957778

16 months agoRemove PERL_ASYNC_CHECK() from Perl_leave_scope().
Nicholas Clark [Sat, 14 Apr 2012 13:51:33 +0000]
Remove PERL_ASYNC_CHECK() from Perl_leave_scope().

PERL_ASYNC_CHECK() was added to Perl_leave_scope() as part of commit
f410a2119920dd04, which moved signal dispatch from the runloop to
control flow ops, to mitigate nearly all of the speed cost of safe
signals.

The assumption was that scope exit was a safe place to dispatch signals.
However, this is not true, as parts of the regex engine call
leave_scope(), the regex engine stores some state in per-interpreter
variables, and code called within signal handlers can change these
values.

Hence remove the call to PERL_ASYNC_CHECK() from Perl_leave_scope(), and
add it explicitly in the various OPs which were relying on their call to
leave_scope() to dispatch any pending signals. Also add a
PERL_ASYNC_CHECK() to the exit of the runloop, which ensures signals
still dispatch from S_sortcv() and S_sortcv_stacked(), as well as
addressing one of the concerns in the commit message of
f410a2119920dd04:

    Subtle bugs might remain - there might be constructions that enter
    the runloop (where signals used to be dispatched) but don't contain
    any PERL_ASYNC_CHECK() calls themselves.

Finally, move the PERL_ASYNC_CHECK(); added by that commit to pp_goto to
the end of the function, to be consistent with the positioning of all
other PERL_ASYNC_CHECK() calls - at the beginning or end of OP
functions, hence just before the return to or just after the call from
the runloop, and hence effectively at the same point as the previous
location of PERL_ASYNC_CHECK() in the runloop.

Conflicts:
scope.c

16 months agoFix MidnightBSD hints file for 0.4-RELEASE
Chris 'BinGOs' Williams [Sun, 7 Jul 2013 12:55:29 +0000]
Fix MidnightBSD hints file for 0.4-RELEASE

0.4 has no /usr/bin/objformat, so the hints file was
falling through to configure for aout with fatal consequences.

Confirmed that the objformat in 0.3 warns that it is deprecated.

Have switched around the logic of the checks so that it will always
configure for elf, using aout is explicitly detected.

17 months agoperldelta for #117947
Father Chrysostomos [Thu, 6 Jun 2013 00:49:28 +0000]
perldelta for #117947
(cherry picked from commit f6f12e5902ab71ba3fa84f1efff7569f14e7c302)

Conflicts:
pod/perldelta.pod

17 months ago[perl #117947] Verify lvalueness of XSUBs at run time
Father Chrysostomos [Tue, 28 May 2013 00:45:50 +0000]
[perl #117947] Verify lvalueness of XSUBs at run time

If the sub is not visible at compile time, the op tree is flagged such
that pp_entersub will know whether to check the lvalueness of the
called sub.

That check has been in pp_entersub since da1dff9483c.  When I moved
it to pp_entersub in that commit, I only added it to the pure-Perl
branch, not to the XS branch, allowing all XSUBs to be treated as
lvalues if they are not visible at compile time.
(cherry picked from commit 4587c5322c964beac01a38188957ca11026dc766)

Conflicts:
cop.h

17 months agoupdate link for DTrace user guide
Ricardo Signes [Fri, 31 May 2013 22:15:57 +0000]
update link for DTrace user guide

(cherry picked from commit d2a68ca8e9f23a357624176e0b4b7a3d63913441)

20 months agoadd new perldelta for (yet hypothetical) 5.16.4
Ricardo Signes [Mon, 11 Mar 2013 22:46:02 +0000]
add new perldelta for (yet hypothetical) 5.16.4

20 months agofinal changes for release as 5.16.3 v5.16.3
Ricardo Signes [Mon, 11 Mar 2013 14:15:27 +0000]
final changes for release as 5.16.3

20 months agoupdate Module::CoreList for non-RC release
Ricardo Signes [Mon, 11 Mar 2013 14:15:22 +0000]
update Module::CoreList for non-RC release

20 months agoperlhist: date for 5.16.3-RC1 v5.16.3-RC1
Ricardo Signes [Thu, 7 Mar 2013 02:13:25 +0000]
perlhist: date for 5.16.3-RC1

20 months agoperldelta: Encode update
Ricardo Signes [Wed, 6 Mar 2013 15:10:01 +0000]
perldelta: Encode update

20 months agoperldelta: Module::CoreList update
Ricardo Signes [Wed, 6 Mar 2013 14:44:47 +0000]
perldelta: Module::CoreList update

20 months agoadd 5.16.3 to Module:Corelist
Ricardo Signes [Wed, 6 Mar 2013 14:43:46 +0000]
add 5.16.3 to Module:Corelist

20 months agobump version number of Encode by _01
Ricardo Signes [Wed, 6 Mar 2013 14:51:29 +0000]
bump version number of Encode by _01

20 months agoEncode: Fixed a memory leak that occurred in the UTF-8 encoding.
chansen [Sun, 3 Mar 2013 21:43:53 +0000]
Encode: Fixed a memory leak that occurred in the UTF-8 encoding.

The decode and encode methods allocated a SV for the result, this SV
is passed to the process_utf8() function which may croak() if the
CHECK flag has FB_CROAK set.

20 months agonote that we are building 5.16.3-RC1
Ricardo Signes [Tue, 5 Mar 2013 21:40:55 +0000]
note that we are building 5.16.3-RC1

20 months agoperldelta for 5.16.3
Ricardo Signes [Tue, 5 Mar 2013 21:39:04 +0000]
perldelta for 5.16.3

20 months agobump version to 5.16.3
Ricardo Signes [Tue, 5 Mar 2013 20:47:54 +0000]
bump version to 5.16.3

20 months agobump XS-APItest version
David Mitchell [Mon, 4 Mar 2013 15:32:12 +0000]
bump XS-APItest version

20 months ago[perl #111610] Trouble with XS-APItest/t/clone-with-stack.t
Michael Schroeder [Sat, 9 Jun 2012 03:29:54 +0000]
[perl #111610] Trouble with XS-APItest/t/clone-with-stack.t

I ran into a bit of a problem when building perl-5.16.0.
'make test' showed a segfault in ext/XS-APItest/t/clone-with-stack.t.
It seems to be caused by accessing already freed memory, it
segfaults because I have MALLOC_PERTUBE_ set, thus glibc fills
freed memory with some value.

Digging deeper, it seems like perl_clone() does not fix
the cx's blk_oldcop element when doing context cloning, thus
blk_oldcop still points to PL_compiling in the old interp--the
calling scope for the BEGIN block being the compilation of the
code surrounding it--and the POPBLOCK done in leavesub will copy
the data from the old interp to PL_curcop.

After fixing this, it still crashed because interp_dup->Iop was
zero after the runops_standard() call (which is probably
correct as the end of the BEGIN block was reached). So I
also added an if statement that checks the pointer.

20 months agoAvoid wraparound when casting unsigned size_t to signed ssize_t.
Andy Dougherty [Wed, 16 Jan 2013 17:30:43 +0000]
Avoid wraparound when casting unsigned size_t to signed ssize_t.

Practically, this only affects a perl compiled with 64-bit IVs on a 32-bit
system.  In that instance a value of count >= 2**31 would turn negative
when cast to (ssize_t).

20 months agoPrevent premature hsplit() calls, and only trigger REHASH after hsplit()
Yves Orton [Tue, 12 Feb 2013 09:53:05 +0000]
Prevent premature hsplit() calls, and only trigger REHASH after hsplit()

Triggering a hsplit due to long chain length allows an attacker
to create a carefully chosen set of keys which can cause the hash
to use 2 * (2**32) * sizeof(void *) bytes ram. AKA a DOS via memory
exhaustion. Doing so also takes non trivial time.

Eliminating this check, and only inspecting chain length after a
normal hsplit() (triggered when keys>buckets) prevents the attack
entirely, and makes such attacks relatively benign.

21 months agoUpdate perlhist
Chris 'BinGOs' Williams [Wed, 20 Feb 2013 23:12:43 +0000]
Update perlhist

23 months agoAdd release date for 5.17.7 to perlhist
Dave Rolsky [Tue, 18 Dec 2012 22:23:47 +0000]
Add release date for 5.17.7 to perlhist

2 years agoupdate perlhist for 5.17 releases
Ricardo Signes [Wed, 21 Nov 2012 00:46:51 +0000]
update perlhist for 5.17 releases

2 years agoprep a perldelta template for 5.16.3
Ricardo Signes [Thu, 1 Nov 2012 14:09:12 +0000]
prep a perldelta template for 5.16.3

2 years ago5.16.2 is *not* mostly CPAN module updates v5.16.2
Ricardo Signes [Thu, 1 Nov 2012 03:33:45 +0000]
5.16.2 is *not* mostly CPAN module updates

2 years agofinalize the version number and date for 5.16.2
Ricardo Signes [Thu, 1 Nov 2012 01:12:39 +0000]
finalize the version number and date for 5.16.2

2 years agomark 5.16.2 RC1 in patchlevel.h
Ricardo Signes [Fri, 26 Oct 2012 03:02:47 +0000]
mark 5.16.2 RC1 in patchlevel.h

2 years agobump version to 5.16.2
Ricardo Signes [Fri, 26 Oct 2012 03:00:59 +0000]
bump version to 5.16.2

2 years agoimport Module-CoreList from blead, update for 5.16.2
Ricardo Signes [Fri, 26 Oct 2012 02:55:28 +0000]
import Module-CoreList from blead, update for 5.16.2

2 years agoupdate perldelta for upcoming 5.16.2
Ricardo Signes [Fri, 26 Oct 2012 02:49:41 +0000]
update perldelta for upcoming 5.16.2

2 years agoupdate perldelta for 5.16.2
Ricardo Signes [Wed, 17 Oct 2012 16:04:05 +0000]
update perldelta for 5.16.2

2 years agoavoid calling memset with a negative count
Andy Dougherty [Thu, 27 Sep 2012 13:52:18 +0000]
avoid calling memset with a negative count

Poorly written perl code that allows an attacker to specify the count to
perl's 'x' string repeat operator can already cause a memory exhaustion
denial-of-service attack. A flaw in versions of perl before 5.15.5 can
escalate that into a heap buffer overrun; coupled with versions of glibc
before 2.16, it possibly allows the execution of arbitrary code.

The flaw addressed to this commit has been assigned identifier
CVE-2012-5195.

2 years agoAdd references to perl5143delta
Dominic Hargreaves [Fri, 12 Oct 2012 22:44:46 +0000]
Add references to perl5143delta

2 years agoAdd the 5.14.3 perldelta
Dominic Hargreaves [Fri, 12 Oct 2012 22:39:22 +0000]
Add the 5.14.3 perldelta

2 years agomg_get should be called before access
Peter Martini [Tue, 25 Sep 2012 12:45:43 +0000]
mg_get should be called before access

2 years agoPATCH: [perl #114220] /\h/ not equiv to /[\h]/
Karl Williamson [Sat, 21 Jul 2012 18:12:33 +0000]
PATCH: [perl #114220] /\h/ not equiv to /[\h]/

\h matches the No-Break space even under /d.  It is the only
(non-complemented) Posix-like character class that has matches under /d
in the Latin1 range above ASCII.  A special case is made for it, and \H
to make sure they have the correct code points.

2 years agoAdd Karen Etheridge to AUTHORS.
Craig A. Berry [Sat, 1 Sep 2012 22:56:41 +0000]
Add Karen Etheridge to AUTHORS.

2 years agoRT#114312: prevent ls from colourizing output
Karen Etheridge [Sat, 1 Sep 2012 17:26:37 +0000]
RT#114312: prevent ls from colourizing output

ANSI colour codes in the `ls -l /dev` output was preventing some substitutions
from matching, causing a subsequent test to fail when 'stdout' or 'stderr' was
not properly removed from $DEV.

2 years agoAIX isn't a new platform, move its note to the right place
Tony Cook [Wed, 11 Jul 2012 12:12:25 +0000]
AIX isn't a new platform, move its note to the right place

2 years agoperldelta for 9d7bf4
Darin McBride [Sat, 30 Jun 2012 05:46:43 +0000]
perldelta for 9d7bf4

2 years agoAIX Hints file change
Darin McBride [Mon, 25 Jun 2012 23:36:32 +0000]
AIX Hints file change

Ok, I think my earlier problem came from not cleaning up properly between
multiple compiles.  So I don't need to modify any test.

Proposed log entry:

When compiling many of the perl modules available from CPAN, an expectation
of C99 support seems implied by many authors.  Unfortunately, xlC doesn't
do this by default, we have to add -qlanglvl=extc99 to the ccflags to get
this to work.  And by the time we get to installing modules, this flag
is already set in Config.

So, add the flag unconditionally at the outset.  Also, remove
-qlonglong and -qlanglvl=extended from the flags to silence the warning that
extc99 includes them and that xlC is going to ignore it, using extc99 instead.

Signed-off-by: H.Merijn Brand <h.m.brand@xs4all.nl>

2 years agoperldelta: get set for the 5.16.2 perldelta
Ricardo Signes [Thu, 9 Aug 2012 13:08:03 +0000]
perldelta: get set for the 5.16.2 perldelta

2 years agocorrect CoreList version of CoreList in 5.16.1
Ricardo Signes [Thu, 9 Aug 2012 12:52:05 +0000]
correct CoreList version of CoreList in 5.16.1

2 years agoperldelta: correct a version-bumping error v5.16.1
Ricardo Signes [Sun, 5 Aug 2012 02:18:11 +0000]
perldelta: correct a version-bumping error

2 years agoperl5.16.1, no RC
Ricardo Signes [Sat, 4 Aug 2012 23:07:15 +0000]
perl5.16.1, no RC

2 years agomark this as officially RC1
Ricardo Signes [Fri, 3 Aug 2012 14:26:00 +0000]
mark this as officially RC1

2 years agoperldelta: add acknowledgements for 5.16.1
Ricardo Signes [Thu, 2 Aug 2012 20:55:00 +0000]
perldelta: add acknowledgements for 5.16.1

2 years agobump version to v5.16.1
Ricardo Signes [Thu, 2 Aug 2012 20:53:38 +0000]
bump version to v5.16.1

2 years agoupdate Module::CoreList for 5.16.1
Ricardo Signes [Wed, 1 Aug 2012 02:37:03 +0000]
update Module::CoreList for 5.16.1

2 years agoimport Module::CoreList 2.69 from blead
Ricardo Signes [Wed, 1 Aug 2012 02:29:12 +0000]
import Module::CoreList 2.69 from blead

2 years agoperldelta for format fixes
Ricardo Signes [Fri, 27 Jul 2012 02:53:52 +0000]
perldelta for format fixes

2 years agobackport perlhist changes from 5.17.2
Tony Cook [Sun, 22 Jul 2012 03:52:35 +0000]
backport perlhist changes from 5.17.2

2 years agoCloning a format whose outside has been undefined
Father Chrysostomos [Sat, 30 Jun 2012 19:43:26 +0000]
Cloning a format whose outside has been undefined

This has crashed ever since 71f882da8, because the format tries to
close over a pad that does not exist:

sub x {
    {my ($a,$b,$c,$d,$e,$f,$g,$h,$i,$j,$k,$l,$m,$n,$o,$p,$q,$r,$s,$t,$u)}
    my $z;
    format =
@<<<
$z
.
}
undef &x;
write;

This commit adds checks for nonexistent pads, producing the ‘Variable
is not available’ warning in cases like this.

(cherry-picked from f2ead8b)

2 years agoFormats in closures called outside closures → crash
Father Chrysostomos [Fri, 29 Jun 2012 03:28:09 +0000]
Formats in closures called outside closures → crash

If a format closing over lexical variables is defined inside a clo-
sure, it must only be called directly inside that closure, not from
any other eval, sub, or format.

Calling it from anywhere else started causing a crash in 5.10.0,
because the format would try to close over variables in the currently-
running sub, using padoffsets intended for a completely unrelated pad.

This commit stops it from crashing by checking whether the currently-
running sub is a clone of the format’s outer sub (a closure proto-
type).  If it is not, the outer closure prototype is used, resulting
in ‘Variable is not available’ warnings.

This makes things work as well as they did in 5.8.  Ideally, we should
search the call stack for the topmost clone of the format’s outer sub;
but I’m saving that for another commit.
(cherry picked from commit af41786fe5732d5ec7932b946eec99a695ac6e43)

2 years agoDon’t let formats outlive their outer subs
Father Chrysostomos [Thu, 28 Jun 2012 23:31:17 +0000]
Don’t let formats outlive their outer subs

This began crashing in 5.11.3:

sub foo {
  sub bar {
    my ($a,$b,$c,$d,$e,$f,$g,$h,$i,$j,$k,$l,$m,$n,$o,$p,$q,$r,$s,$x);
    format =
@||||||
$x
.
  }
}
undef *bar;
write;

(On some systems, you need more alphabet soup to make it crash.)

This commit (just the perly.y part shown) caused it to crash:

commit 421f30ed1e95009450bdc7905bf3433ee806ea4f
Author: Zefram <zefram@fysh.org>
Date:   Tue Dec 15 11:48:31 2009 +0100

    [perl #22977] Bug in format/write

diff --git a/perly.y b/perly.y
index 18e5875..a61a6b3 100644
--- a/perly.y
+++ b/perly.y
@@ -511,7 +511,9 @@ peg : PEG
  ;

 format : FORMAT startformsub formname block
- { SvREFCNT_inc_simple_void(PL_compcv);
+ {
+   CV *fmtcv = PL_compcv;
+   SvREFCNT_inc_simple_void(PL_compcv);
 #ifdef MAD
    $$ = newFORM($2, $3, $4);
    prepend_madprops($1->tk_mad, $$, 'F');
@@ -521,6 +523,10 @@ format : FORMAT startformsub formname block
    newFORM($2, $3, $4);
    $$ = (OP*)NULL;
 #endif
+   if (CvOUTSIDE(fmtcv) && !CvUNIQUE(CvOUTSIDE(fmtcv))) {
+     SvREFCNT_inc_simple_void(fmtcv);
+     pad_add_anon((SV*)fmtcv, OP_NULL);
+   }
  }
  ;

Unfortunately, adding the format to the pad like that (to allow
pad_fixup_inner_anons to fix up formats as well as subs) is proble-
matic.  It causes the format’s CvOUTSIDE to be weak.  Since the for-
mat does not hold a reference count on its outer sub, that sub can be
freed before the format.  When that happens, regular subs are fixed
up by having CvOUTSIDE change to point to the grandparent.  If you
do that for formats, you run into a problem: Formats can be cloned
even when the outer sub is not running.  Formats are cloned whenever
invoked *by name* via write.  If CvOUTSIDE points to a different sub,
then closing over the scalars in specific pad offsets in that sub can
result in reading past the end of the pad.  If you don’t read past the
end of the pad, you are still making variables close over unrelated variables, so the inner $x could close over an outer @y, etc.  Subrou-
tines don’t have that problem, as they can only be cloned when they
have an outer sub.  (Even though the outer sub’s prototype, if it is a
closure, might have been freed, the outer sub itself is still running
and referenced by the context stack.)

This commit changes the direction of the weak reference between an
outer sub’s pad and an inner format, fixing the crash.

To do so, it has to store, not the format itself, but a weak RV point-
ing to the format, in the outer sub’s pad.
(cherry picked from commit e09ac076a1dab8e2c5712775f478fcfb61cb7eb3)

2 years agoperldelta: more updates from Father Chrysostomos
Ricardo Signes [Thu, 28 Jun 2012 11:51:03 +0000]
perldelta: more updates from Father Chrysostomos

2 years agobump version of B::Deparse
Ricardo Signes [Tue, 26 Jun 2012 00:39:03 +0000]
bump version of B::Deparse

2 years ago[perl #113798] Don’t hide PATH from perlglob
Father Chrysostomos [Sat, 23 Jun 2012 16:34:26 +0000]
[perl #113798] Don’t hide PATH from perlglob

To fix another bug, miniperl was changed to clear out %ENV before
shelling out to call the underlying glob program (csh on Unix;
perlglob on Windows), in commit a3342be368.

That proved slightly problematic, as it stopped <~> from working on
Unix, so commit 93b2dae1 changed it to preserve just $ENV{HOME}.

That turns out not to have been enough.  For some compilers, Win-
dows needs PATH preserved for perlglob to find certain DLLs it
needs to load.

2 years agoMake __SUB__ work in special blocks
Father Chrysostomos [Fri, 8 Jun 2012 17:00:38 +0000]
Make __SUB__ work in special blocks

2 years agoQuieten B::Deparse warnings (fixes #113464).
Paul Johnson [Sat, 2 Jun 2012 12:44:47 +0000]
Quieten B::Deparse warnings (fixes #113464).

2 years agoMake lvalue subs copy returned PADTMPs in rvalue cx
Father Chrysostomos [Thu, 26 Apr 2012 01:29:12 +0000]
Make lvalue subs copy returned PADTMPs in rvalue cx

I was trying to write a JAPH, but did not get what I expected:

$ ./perl -Ilib -e '@UNIVERSAL::ISA = CORE; print "just another "->ucfirst, "perl hacker,\n"->ucfirst'
Perl hacker,
Perl hacker,

This happened because coresubs use leavesublv, to avoid copying the
return value wastefully.

But since this is exactly the same ucfirst op being called each time
(the one in &CORE::ucfirst’s op tree), and since ucfirst uses TARG, we
end up with the same scalar.

We have the same problem with lvalue subs:

$ ./perl -Ilib -e 'sub UNIVERSAL::ucfirst :lvalue { ucfirst $_[0] } print "just another "->ucfirst, "perl hacker,\n"->ucfirst'
Perl hacker,
Perl hacker,

(This is not a regression, as 5.14 gave ‘Can't modify ucfirst in
lvalue subroutine return’.)

So ‘fixing’ coresubs would not be a solution, but a workaround.

The solution therefore is for leavesublv to copy PADTMPs in
rvalue context.

Commit 80422e24c fixed this for potential lvalue list context (i.e.,
for(lvsub()) {...}), but it wasn’t sufficient.

2 years ago[perl #113060] Save cop_stashlen threaded even with shared cop pv
Reini Urban [Tue, 29 May 2012 20:46:13 +0000]
[perl #113060] Save cop_stashlen threaded even with shared cop pv

Perl_sv_compile_2op_is_broken() does at line 3354 a LEAVE_with_name("eval"),
a SSPOPSTR via SAVEt_SHARED_PVREF for the localized cop_stashpv, but
not for the cop_stashlen.
The cop in question is PL_compiling, which was "AutoSplit" before with
len=9 and restores it back to "main" but keeps len 9. Thus leading to a
heap-overflow in gv_stashpvn.

2 years agoreplace B::COP::stashflags by B::COP::stashlen
Reini Urban [Tue, 22 May 2012 15:57:03 +0000]
replace B::COP::stashflags by B::COP::stashlen

6379d4a9a (between 5.15.9 and 5.16.0) broke B::COP::stashflags which was added
in 5.15.4.

2 years agoomnibus perldelta updates for commits cherry-picked to maint
Ricardo Signes [Fri, 22 Jun 2012 13:59:35 +0000]
omnibus perldelta updates for commits cherry-picked to maint

2 years agoperldelta for 88052e3fd2 (VMS include files).
Craig A. Berry [Tue, 19 Jun 2012 23:56:44 +0000]
perldelta for 88052e3fd2 (VMS include files).

(cherry picked from commit 112b686)

2 years agoversion bump for PerlIO::scalar
Ricardo Signes [Fri, 22 Jun 2012 13:17:47 +0000]
version bump for PerlIO::scalar

2 years ago[perl #113764] Make &= duping work with PerlIO::scalar
Father Chrysostomos [Thu, 21 Jun 2012 06:33:28 +0000]
[perl #113764] Make &= duping work with PerlIO::scalar

In trying to fix bug #112780, I made in-memory handle duplication tem-
porarily hide the underlying scalar so it wouldn’t be set to the empty
string (commit 49b69fb3a).

I used PerlIO_sv_dup in j rather than PerlIOScalar_arg.  The for-
mer is usually what is called anyway.  There is only one branch of
PerlIOScalar_arg that doesn’t call PerlIO_sv_dup.  I don’t remember
what I was thinking back then, but I think I thought that branch
was there for paranoia.  But actually, it is used for "&=", so this
started failing:

open FILE, '>', \my $content or die "Couldn't open scalar filehandle";
open my $fh, ">&=FILE" or die "Couldn't open: $!";
print $fh "Foo-Bar\n";
close $fh;
close FILE;
print $content;

This commit fixes the bug in the smallest way possible, which means
switching from PerlIO_sv_dup to PerlIOScalar_arg in PerlIOScalar_arg,
which, in turn, entails fiddling with RVs.

2 years agoperldelta for RT #113584
Karl Williamson [Mon, 11 Jun 2012 16:35:49 +0000]
perldelta for RT #113584

(cherry-picked from commit fc67deb3641ae65505a02c4a7414556efc6b91f6)

2 years agocreate perl5161delta
Ricardo Signes [Thu, 21 Jun 2012 00:47:43 +0000]
create perl5161delta

2 years agoPATCH: [perl #113584] tr/// multiple transliterations
Karl Williamson [Mon, 11 Jun 2012 15:56:56 +0000]
PATCH: [perl #113584] tr/// multiple transliterations

Commit 4de6d205aeab9ec737ca35ba4eb61f37cebefc55 failed to take into
consideration tr///.

2 years agomktables: Handle typo in Unicode 6.1 data file
Karl Williamson [Wed, 23 May 2012 23:14:36 +0000]
mktables: Handle typo in Unicode 6.1 data file

Unicode has published a correction to their data files for version 6.1.
This patch applies that correction.

2 years agoUpdate List-Util to CPAN version 1.25
Chris 'BinGOs' Williams [Sun, 27 May 2012 21:19:38 +0000]
Update List-Util to CPAN version 1.25

  [DELTA]

1.25 -- Sat Mar 24 13:10:13 UTC 2012

  * Restore back-compat. to perl 5.6 (thanks to Zefram)

1.24 -- Thu Mar 22 18:10:10 UTC 2012

  * Update to 1.24 release version (no other changes since 1.23_04).

1.23_04 -- Sat Mar 10 00:16:16 UTC 2012

  * RT#72700 Fix off-by-two on string literal length

1.23_03 -- Tue Sep 14 10:09:59 CDT 2010

  * Min perl version supported for build is not 5.008
  * Dropped the pure-Perl implementation of both Scalar::- and List::Util.
  * RT#61118 Fix assumption in sum() that once magic, always magic

1.23_02 -- Tue Mar 30 11:09:15 CDT 2010

  * Fix first() and reduce() to check the callback first; &first(1) is now illigal. [gfx]
  * Fix reduce() to allow XSUB callbacks [gfx]
  * Fix first() to allow XSUB callbacks [gfx]
  * Resolve RT #55763: tainted() doesn't do SvGETMAGIC(sv) [gfx]
  * define CvISXSUB so older perl versions will still compile

1.23_01 -- Mon Mar 22 08:24:11 CDT 2010

  * Add failing tests; SVt_RV is not directly SvROK [gfx]
  * Implement openhandle() in XS (with extra tests) [gfx]
  * Modernize *.pm [gfx]
  * Modernize ListUtil.xs [gfx]
  * Add ppport.h [gfx]
  * Fix an overloading issue on sum(), and add tests for overloading [gfx]
  * Small tweaks for minstr()/maxstr() [gfx]
  * Optimize dualvar() [gfx]
  * Use sv_copypv() instead of SvPV() and sv_setpv() [gfx]
  * avoid non-portable warnings

2 years agoPATCH: [perl #113750] re.pm clobbers $_
Karl Williamson [Wed, 20 Jun 2012 19:13:02 +0000]
PATCH: [perl #113750] re.pm clobbers $_

Thanks to Jesse Luehrs and Father Chrysostomos for testing advice.

(cherry-picked from commit 48895a0d16aef33c200bc9a07f22e18c23597c2a)

Conflicts:

ext/re/re.pm
pod/perldelta.pod

2 years agoRevert "replace B::COP::stashflags by B::COP::stashlen"
Father Chrysostomos [Sat, 23 Jun 2012 13:31:26 +0000]
Revert "replace B::COP::stashflags by B::COP::stashlen"

This reverts commit bbf5974c677f8f57671e2b54c2e756597ead21f9.

2 years agoRevert "[perl #113060] Save cop_stashlen threaded even with shared cop pv"
Father Chrysostomos [Sat, 23 Jun 2012 13:31:17 +0000]
Revert "[perl #113060] Save cop_stashlen threaded even with shared cop pv"

This reverts commit d828bad9a3194890e274f06525bf053614b4831b.

2 years agoRevert "Make lvalue subs copy returned PADTMPs in rvalue cx"
Father Chrysostomos [Sat, 23 Jun 2012 13:31:06 +0000]
Revert "Make lvalue subs copy returned PADTMPs in rvalue cx"

This reverts commit ab2dde4dec2fdb7a4916f146412cf3b2d173df5a.

2 years agoRevert "Quieten B::Deparse warnings (fixes #113464)."
Father Chrysostomos [Sat, 23 Jun 2012 13:30:56 +0000]
Revert "Quieten B::Deparse warnings (fixes #113464)."

This reverts commit 7d9995e9e41db0a4ee2cc9a79342f82f81db1f72.

2 years agoRevert "Make __SUB__ work in special blocks"
Father Chrysostomos [Sat, 23 Jun 2012 13:30:40 +0000]
Revert "Make __SUB__ work in special blocks"

This reverts commit 9c074c9444cd8f58ce65da07bd73d0ab82391093.

2 years agoMake __SUB__ work in special blocks
Father Chrysostomos [Fri, 8 Jun 2012 17:00:38 +0000]
Make __SUB__ work in special blocks

2 years agoQuieten B::Deparse warnings (fixes #113464).
Paul Johnson [Sat, 2 Jun 2012 12:44:47 +0000]
Quieten B::Deparse warnings (fixes #113464).

2 years agoMake lvalue subs copy returned PADTMPs in rvalue cx
Father Chrysostomos [Thu, 26 Apr 2012 01:29:12 +0000]
Make lvalue subs copy returned PADTMPs in rvalue cx

I was trying to write a JAPH, but did not get what I expected:

$ ./perl -Ilib -e '@UNIVERSAL::ISA = CORE; print "just another "->ucfirst, "perl hacker,\n"->ucfirst'
Perl hacker,
Perl hacker,

This happened because coresubs use leavesublv, to avoid copying the
return value wastefully.

But since this is exactly the same ucfirst op being called each time
(the one in &CORE::ucfirst’s op tree), and since ucfirst uses TARG, we
end up with the same scalar.

We have the same problem with lvalue subs:

$ ./perl -Ilib -e 'sub UNIVERSAL::ucfirst :lvalue { ucfirst $_[0] } print "just another "->ucfirst, "perl hacker,\n"->ucfirst'
Perl hacker,
Perl hacker,

(This is not a regression, as 5.14 gave ‘Can't modify ucfirst in
lvalue subroutine return’.)

So ‘fixing’ coresubs would not be a solution, but a workaround.

The solution therefore is for leavesublv to copy PADTMPs in
rvalue context.

Commit 80422e24c fixed this for potential lvalue list context (i.e.,
for(lvsub()) {...}), but it wasn’t sufficient.

2 years ago[perl #113060] Save cop_stashlen threaded even with shared cop pv
Reini Urban [Tue, 29 May 2012 20:46:13 +0000]
[perl #113060] Save cop_stashlen threaded even with shared cop pv

Perl_sv_compile_2op_is_broken() does at line 3354 a LEAVE_with_name("eval"),
a SSPOPSTR via SAVEt_SHARED_PVREF for the localized cop_stashpv, but
not for the cop_stashlen.
The cop in question is PL_compiling, which was "AutoSplit" before with
len=9 and restores it back to "main" but keeps len 9. Thus leading to a
heap-overflow in gv_stashpvn.

2 years agoreplace B::COP::stashflags by B::COP::stashlen
Reini Urban [Tue, 22 May 2012 15:57:03 +0000]
replace B::COP::stashflags by B::COP::stashlen

6379d4a9a (between 5.15.9 and 5.16.0) broke B::COP::stashflags which was added
in 5.15.4.

2 years agoInstall all include files on VMS.
Craig A. Berry [Sun, 10 Jun 2012 19:04:36 +0000]
Install all include files on VMS.

On most platforms, installperl copies *.h from the top-level source
directory to an appropriate installed location.  On VMS, we stage
everything to an archcore directory first and installperl copies
them from there.  Whether this is a good way to be doing things in
this day and age is questionable, but the more immediate problem is
that we have been (badly) maintaining our own list of what should
get staged in the archcore directory.  By my count, 5.16.0 shipped
with 18 of 69 include files missing.[1]  Ouch.

So this commit abolishes the separately-maintained, explicitly-named
list of include files and just copies all of them to the staging
directory, where installperl will pick them up.

[1] For folks counting at home, we have vmsish.h, which no one else
has, so that's why there are 69, not 68.

2 years agoinclude some more data in new-perldelta output
Ricardo Signes [Sun, 20 May 2012 23:10:11 +0000]
include some more data in new-perldelta output

2 years agoadd the 5.16.0 epigraph
Ricardo Signes [Sun, 20 May 2012 23:04:47 +0000]
add the 5.16.0 epigraph

2 years agoperlhist: add the perl-5.16.0 and -RC2 dates v5.16.0
Ricardo Signes [Sun, 20 May 2012 22:35:59 +0000]
perlhist: add the perl-5.16.0 and -RC2 dates

2 years agoremove the RC2; this will be the real perl 5.16.0
Ricardo Signes [Sun, 20 May 2012 12:53:02 +0000]
remove the RC2; this will be the real perl 5.16.0

2 years agoperldelta: fix the example of lvalue ref from substr
Ricardo Signes [Sun, 20 May 2012 12:35:04 +0000]
perldelta: fix the example of lvalue ref from substr

reported by Shlomi Fish

2 years agoperldelta: update acknowledgements with new contributors
Ricardo Signes [Sat, 19 May 2012 13:34:15 +0000]
perldelta: update acknowledgements with new contributors

2 years agominor tag consistency fixes for perldelta.pod
Breno G. de Oliveira [Sat, 19 May 2012 13:29:11 +0000]
minor tag consistency fixes for perldelta.pod

2 years agoperldelta: note the removal of the perl4 core .pl files
Ricardo Signes [Sat, 19 May 2012 13:15:46 +0000]
perldelta: note the removal of the perl4 core .pl files

Mistakenly omitted (somehow) from a patch originally from Reini
Urban

2 years ago[perl #112924] [PATCH] Clarify test instructions in INSTALL
Andy Dougherty [Wed, 16 May 2012 11:31:58 +0000]
[perl #112924] [PATCH] Clarify test instructions in INSTALL

While trying to track down a failed test, I found the instructions in
the INSTALL file to be less than optimal.

This patch re-orders the suggestions to put the ones most likely to work
first, clarifies which directory you should be in, and moves a "see-also"
type reference to where it is more likely to be useful.

The catalyst for this was that

    ./perl -MTestInit cpan/Archive-Extract/t/01_Archive-Extract.t

fails because it can't find strict.pm.  (See [perl #1122926].)  Since it's
probably not the only such case, I thought it useful and prudent to
advise using t/harness instead as a first recourse.

2 years agoperldelta: fix bad references to "unicode_strings" v5.16.0-RC2
Tom Hukins [Wed, 16 May 2012 01:42:48 +0000]
perldelta: fix bad references to "unicode_strings"

The documentation written for 2e2b2571 erroneously mentions
"unicode_semantics" instead of "unicode_strings".

2 years agoprevent PERL_UNICODE from affecting t/mro/package_aliases_utf8.t
Ricardo Signes [Wed, 16 May 2012 01:34:00 +0000]
prevent PERL_UNICODE from affecting t/mro/package_aliases_utf8.t

2 years agoperldelta: known issue: t/op/filetest.t
Ricardo Signes [Wed, 16 May 2012 01:22:21 +0000]
perldelta: known issue: t/op/filetest.t