Commit a5777955 authored by Brendan O'Dea's avatar Brendan O'Dea Committed by Niko Tyni

Imported Debian patch 5.10.0-1

parent d54b536c

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

This diff is collapsed.
This diff is collapsed.
...@@ -6,7 +6,7 @@ New things ...@@ -6,7 +6,7 @@ New things
---------- ----------
The -w switch is much more informative. The -w switch is much more informative.
References. See t/op/ref.t for examples. All entities in Perl 5 are References. See t/op/ref.t for examples. All entities in Perl 5 are
reference counted so that it knows when each item should be destroyed. reference counted so that it knows when each item should be destroyed.
Objects. See t/op/ref.t for examples. Objects. See t/op/ref.t for examples.
...@@ -24,7 +24,7 @@ New things ...@@ -24,7 +24,7 @@ New things
execution yet). execution yet).
The interpreter is now flattened out. Compare Perl 4's eval.c with The interpreter is now flattened out. Compare Perl 4's eval.c with
the perl 5's pp.c. Compare Perl 4's 900 line interpreter loop in cmd.c the perl 5's pp.c. Compare Perl 4's 900 line interpreter loop in cmd.c
with Perl 5's 1 line interpreter loop in run.c. Eventually we'll make with Perl 5's 1 line interpreter loop in run.c. Eventually we'll make
everything non-blocking so we can interface nicely with a scheduler. everything non-blocking so we can interface nicely with a scheduler.
...@@ -35,11 +35,11 @@ New things ...@@ -35,11 +35,11 @@ New things
a do {} block. a do {} block.
You may now define BEGIN and END subroutines for each package. The BEGIN You may now define BEGIN and END subroutines for each package. The BEGIN
subroutine executes the moment it's parsed. The END subroutine executes subroutine executes the moment it's parsed. The END subroutine executes
just before exiting. just before exiting.
Flags on the #! line are interpreted even if the script wasn't Flags on the #! line are interpreted even if the script wasn't
executed directly. (And even if the script was located by "perl -x"!) executed directly. (And even if the script was located by "perl -x"!)
The ?: operator is now legal as an lvalue. The ?: operator is now legal as an lvalue.
...@@ -48,7 +48,7 @@ New things ...@@ -48,7 +48,7 @@ New things
The "defined" function can now take a general expression. The "defined" function can now take a general expression.
Lexical scoping available via "my". eval can see the current lexical Lexical scoping available via "my". eval can see the current lexical
variables. variables.
The preferred package delimiter is now :: rather than '. The preferred package delimiter is now :: rather than '.
...@@ -102,7 +102,7 @@ New things ...@@ -102,7 +102,7 @@ New things
indicate that the pattern is supposed to match as little as possible. indicate that the pattern is supposed to match as little as possible.
Pattern matches may now be followed by an m or s modifier to explicitly Pattern matches may now be followed by an m or s modifier to explicitly
request multiline or singleline semantics. An s modifier makes . match request multiline or singleline semantics. An s modifier makes . match
newline. newline.
Patterns may now contain \A to match only at the beginning of the string, Patterns may now contain \A to match only at the beginning of the string,
...@@ -141,7 +141,7 @@ Incompatibilities ...@@ -141,7 +141,7 @@ Incompatibilities
Saying "shift @foo + 20" is now a semantic error because of precedence. Saying "shift @foo + 20" is now a semantic error because of precedence.
"open FOO || die" is now incorrect. You need parens around the filehandle. "open FOO || die" is now incorrect. You need parens around the filehandle.
The elements of argument lists for formats are now evaluated in list The elements of argument lists for formats are now evaluated in list
context. This means you can interpolate list values now. context. This means you can interpolate list values now.
......
...@@ -23,7 +23,7 @@ Files patched: README ...@@ -23,7 +23,7 @@ Files patched: README
NETaa13033: goto pushed a bogus scope on the context stack. NETaa13033: goto pushed a bogus scope on the context stack.
From: Steve Vinoski From: Steve Vinoski
Files patched: pp_ctl.c Files patched: pp_ctl.c
The goto operator pushed an extra bogus scope onto the context stack. (This The goto operator pushed an extra bogus scope onto the context stack. (This
often didn't matter, since many things pop extra unrecognized scopes off.) often didn't matter, since many things pop extra unrecognized scopes off.)
NETaa13034: tried to get valid pointer from undef. NETaa13034: tried to get valid pointer from undef.
...@@ -146,7 +146,7 @@ Files patched: op.c ...@@ -146,7 +146,7 @@ Files patched: op.c
outside the eval only partially took into consideration that there outside the eval only partially took into consideration that there
might be extra debugger subroutine frames that shouldn't be used, and might be extra debugger subroutine frames that shouldn't be used, and
ended up comparing the wrong statement sequence number to the range of ended up comparing the wrong statement sequence number to the range of
valid sequence numbers for the scope of the lexical variable. (There valid sequence numbers for the scope of the lexical variable. (There
was also a bug fixed in passing that caused the scope of lexical to go was also a bug fixed in passing that caused the scope of lexical to go
clear to the end of the subroutine even if it was within an inner block.) clear to the end of the subroutine even if it was within an inner block.)
...@@ -180,7 +180,7 @@ Files patched: pod/perlsyn.pod ...@@ -180,7 +180,7 @@ Files patched: pod/perlsyn.pod
NETaa13164: the dot detector for the end of formats was over-rambunctious. NETaa13164: the dot detector for the end of formats was over-rambunctious.
From: John Stoffel From: John Stoffel
Files patched: toke.c Files patched: toke.c
The dot detector for the end of formats was over-rambunctious. It would The dot detector for the end of formats was over-rambunctious. It would
pick up any dot that didn't have a space in front of it. pick up any dot that didn't have a space in front of it.
NETaa13165: do {} while 1 never linked outer block into next chain. NETaa13165: do {} while 1 never linked outer block into next chain.
...@@ -188,7 +188,7 @@ From: Gisle Aas ...@@ -188,7 +188,7 @@ From: Gisle Aas
Files patched: op.c Files patched: op.c
When the conditional of do {} while 1; was optimized away, it confused the When the conditional of do {} while 1; was optimized away, it confused the
postfix order construction so that the block that ordinarily sits around the postfix order construction so that the block that ordinarily sits around the
whole loop was never executed. So when the loop tried to unstack between whole loop was never executed. So when the loop tried to unstack between
iterations, it got the wrong context, and blew away the lexical variables iterations, it got the wrong context, and blew away the lexical variables
of the outer scope. Fixed it by introducing a NULL opcode that will be of the outer scope. Fixed it by introducing a NULL opcode that will be
optimized away later. optimized away later.
...@@ -315,7 +315,7 @@ NETaa13181: m//g didn't keep track of whether previous match matched null. ...@@ -315,7 +315,7 @@ NETaa13181: m//g didn't keep track of whether previous match matched null.
From: "philippe.verdret" From: "philippe.verdret"
Files patched: mg.h pp_hot.c Files patched: mg.h pp_hot.c
A pattern isn't allowed to match a null string in the same place twice in A pattern isn't allowed to match a null string in the same place twice in
a row. m//g wasn't keeping track of whether the previous match matched a row. m//g wasn't keeping track of whether the previous match matched
the null string. the null string.
NETaa13182: now includes whitespace as a regexp metacharacter. NETaa13182: now includes whitespace as a regexp metacharacter.
...@@ -374,7 +374,7 @@ From: lusol@Dillon.CC.Lehigh.EDU ...@@ -374,7 +374,7 @@ From: lusol@Dillon.CC.Lehigh.EDU
Files patched: mg.c Files patched: mg.c
Since there was no regexp prior to the "use", it was returning whatever the Since there was no regexp prior to the "use", it was returning whatever the
last successful match was within the "use", because there was no current last successful match was within the "use", because there was no current
regexp, so it treated it as a normal variable. It now returns undef. regexp, so it treated it as a normal variable. It now returns undef.
NETaa13195: semop had one S too many. NETaa13195: semop had one S too many.
From: Joachim Huober From: Joachim Huober
...@@ -389,7 +389,7 @@ Files patched: toke.c ...@@ -389,7 +389,7 @@ Files patched: toke.c
NETaa13197: changed implicit -> message to be more understandable. NETaa13197: changed implicit -> message to be more understandable.
From: Bruce Barnett From: Bruce Barnett
Files patched: op.c pod/perldiag.pod Files patched: op.c pod/perldiag.pod
I changed the error message to be more understandable. It now says I changed the error message to be more understandable. It now says
Can't use subscript on sort... Can't use subscript on sort...
...@@ -513,7 +513,7 @@ NETaa13342: grep and map with block would enter block but never leave it. ...@@ -513,7 +513,7 @@ NETaa13342: grep and map with block would enter block but never leave it.
From: Ian Phillipps From: Ian Phillipps
Files patched: op.c Files patched: op.c
The compiler use some sort-checking code to handle the arguments of The compiler use some sort-checking code to handle the arguments of
grep and map. Unfortunately, this wiped out the block exit opcode while grep and map. Unfortunately, this wiped out the block exit opcode while
leaving the block entry opcode. This doesn't matter to sort, but did leaving the block entry opcode. This doesn't matter to sort, but did
matter to grep and map. It now leave the block entry intact. matter to grep and map. It now leave the block entry intact.
...@@ -536,8 +536,8 @@ Files patched: gv.c ...@@ -536,8 +536,8 @@ Files patched: gv.c
use strict; use strict;
sub foo { sub foo {
local(*IN); local(*IN);
open(IN,"file"); open(IN,"file");
} }
...@@ -554,7 +554,7 @@ Files patched: av.c ...@@ -554,7 +554,7 @@ Files patched: av.c
NETaa13349: sort sub accumulated save stack entries NETaa13349: sort sub accumulated save stack entries
From: David Filo From: David Filo
Files patched: pp_ctl.c Files patched: pp_ctl.c
COMMON only gets set if assigning to @_, which is reasonable. Most of the COMMON only gets set if assigning to @_, which is reasonable. Most of the
problem was a memory leak. problem was a memory leak.
NETaa13351: didn't treat indirect filehandles as references. NETaa13351: didn't treat indirect filehandles as references.
...@@ -621,7 +621,7 @@ Files patched: toke.c ...@@ -621,7 +621,7 @@ Files patched: toke.c
untainted. Unfortunately, the scope removal optimization for very untainted. Unfortunately, the scope removal optimization for very
short blocks removed the statementhood of statements that were short blocks removed the statementhood of statements that were
attempting to read $1 as an untainted value, with the effect that $1 attempting to read $1 as an untainted value, with the effect that $1
appeared to be tainted anyway. The optimization is now disabled when appeared to be tainted anyway. The optimization is now disabled when
tainting and the block contains $1 (or equivalent). tainting and the block contains $1 (or equivalent).
NETaa13366: fixed this a better way in toke.c. NETaa13366: fixed this a better way in toke.c.
...@@ -666,7 +666,7 @@ NETaa13370: some code assumed SvCUR was of type int. ...@@ -666,7 +666,7 @@ NETaa13370: some code assumed SvCUR was of type int.
From: Spider Boardman From: Spider Boardman
Files patched: pp_sys.c Files patched: pp_sys.c
Did something similar to the proposed patch. I also fixed the problem that Did something similar to the proposed patch. I also fixed the problem that
it assumed the type of SvCUR was int. And fixed get{peer,sock}name the it assumed the type of SvCUR was int. And fixed get{peer,sock}name the
same way. same way.
NETaa13375: sometimes dontbother wasn't added back into strend. NETaa13375: sometimes dontbother wasn't added back into strend.
...@@ -994,7 +994,7 @@ Files patched: op.c pod/perlop.pod ...@@ -994,7 +994,7 @@ Files patched: op.c pod/perlop.pod
NETaa13500: needed DESTROY in FileHandle NETaa13500: needed DESTROY in FileHandle
From: Tim Bunce From: Tim Bunce
Files patched: ext/POSIX/POSIX.pm Files patched: ext/POSIX/POSIX.pm
Added DESTROY method. Also fixed ungensym to use POSIX:: instead of _POSIX. Added DESTROY method. Also fixed ungensym to use POSIX:: instead of _POSIX.
Removed ungensym from close method, since DESTROY should do that now. Removed ungensym from close method, since DESTROY should do that now.
NETaa13502: now complains if you use local on a lexical variable NETaa13502: now complains if you use local on a lexical variable
...@@ -1013,7 +1013,7 @@ From: William Setzer ...@@ -1013,7 +1013,7 @@ From: William Setzer
Files patched: op.c Files patched: op.c
When a lexical variable is declared, introduction is delayed until When a lexical variable is declared, introduction is delayed until
the start of the next statement, so that any initialization code runs the start of the next statement, so that any initialization code runs
outside the scope of the new variable. Thus, outside the scope of the new variable. Thus,
my $y = 3; my $y = 3;
my $y = $y; my $y = $y;
...@@ -1054,7 +1054,7 @@ Files patched: embed.h ...@@ -1054,7 +1054,7 @@ Files patched: embed.h
NETaa13525: random cleanup NETaa13525: random cleanup
Files patched: MANIFEST Todo cop.h lib/TieHash.pm lib/perl5db.pl opcode.h patchlevel.h pod/perldata.pod pod/perlsub.pod t/op/ref.t toke.c Files patched: MANIFEST Todo cop.h lib/TieHash.pm lib/perl5db.pl opcode.h patchlevel.h pod/perldata.pod pod/perlsub.pod t/op/ref.t toke.c
NETaa13525: random cleanup NETaa13525: random cleanup
Files patched: pp_ctl.c util.c Files patched: pp_ctl.c util.c
NETaa13527: File::Find needed to export $name and $dir NETaa13527: File::Find needed to export $name and $dir
...@@ -1149,7 +1149,7 @@ NETaa13589: return was enforcing list context on its arguments ...@@ -1149,7 +1149,7 @@ NETaa13589: return was enforcing list context on its arguments
From: Tim Freeman From: Tim Freeman
Files patched: opcode.pl Files patched: opcode.pl
A return was being treated like a normal list operator, in that it was A return was being treated like a normal list operator, in that it was
setting list context on its arguments. This was bogus. setting list context on its arguments. This was bogus.
NETaa13591: POSIX::creat used wrong argument NETaa13591: POSIX::creat used wrong argument
From: Paul Marquess From: Paul Marquess
...@@ -1232,7 +1232,7 @@ Files patched: lib/Exporter.pm ...@@ -1232,7 +1232,7 @@ Files patched: lib/Exporter.pm