summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Hay <steve.m.hay@googlemail.com>2016-04-10 13:31:07 +0100
committerSteve Hay <steve.m.hay@googlemail.com>2016-04-10 13:31:07 +0100
commit1e281fb3063c0569dac1905938e644f8d82530d0 (patch)
treee47ae9488422b1438c9b1f4588d308bf7f5b10c1
parent2e56db99e9c5fd027954d68ea2b8d43b6de07830 (diff)
downloadperl-1e281fb3063c0569dac1905938e644f8d82530d0.tar.gz
A few more perldelta tweaks
-rw-r--r--pod/perldelta.pod107
1 files changed, 58 insertions, 49 deletions
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index 5827b12f6b..412b72d552 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -26,10 +26,10 @@ L<[perl #126862]|https://rt.perl.org/Ticket/Display.html?id=126862>.
=head2 Set proper umask before calling C<mkstemp(3)>
-In 5.22 perl started setting umask to C<0600> before calling C<mkstemp(3)> and
-restoring it afterwards. This wrongfully tells C<open(2)> to strip the owner
-read and write bits from the given mode before applying it, rather than the
-intended negation of leaving only those bits in place.
+In 5.22.0 perl started setting umask to C<0600> before calling C<mkstemp(3)>
+and restoring it afterwards. This wrongfully tells C<open(2)> to strip the
+owner read and write bits from the given mode before applying it, rather than
+the intended negation of leaving only those bits in place.
Systems that use mode C<0666> in C<mkstemp(3)> (like old versions of glibc)
create a file with permissions C<0066>, leaving world read and write permissions
@@ -41,28 +41,28 @@ L<[perl #127322]|https://rt.perl.org/Ticket/Display.html?id=127322>
=head2 Avoid accessing uninitialized memory in Win32 C<crypt()>
-Added validation that will detect both a short salt and invalid characters in
-the salt.
+Validation that will detect both a short salt and invalid characters in the
+salt has been added.
L<[perl #126922]|https://rt.perl.org/Ticket/Display.html?id=126922>
=head2 Remove duplicate environment variables from C<environ>
Previously, if an environment variable appeared more than once in C<environ[]>,
-C<%ENV> would contain the last entry for that name, while a typical C<getenv()>
-would return the first entry. We now make sure C<%ENV> contains the same as
-what C<getenv()> returns.
+L<C<%ENV>|perlvar/%ENV> would contain the last entry for that name, while a
+typical C<getenv()> would return the first entry. We now make sure C<%ENV>
+contains the same as what C<getenv()> returns.
-Second, we remove duplicates from C<environ[]>, so if a setting with that name
-is set in C<%ENV> we won't pass an unsafe value to a child process.
+Secondly, we now remove duplicates from C<environ[]>, so if a setting with that
+name is set in C<%ENV> we won't pass an unsafe value to a child process.
This is CVE-2016-2381.
=head1 Incompatible Changes
-There are no changes intentionally incompatible with 5.22.1. If any exist,
-they are bugs, and we request that you submit a report. See L</Reporting Bugs>
-below.
+There are no changes intentionally incompatible with Perl 5.22.1. If any
+exist, they are bugs, and we request that you submit a report. See
+L</Reporting Bugs> below.
=head1 Modules and Pragmata
@@ -74,7 +74,8 @@ below.
L<File::Spec> has been upgraded from version 3.56 to 3.56_01.
-C<canonpath()> now preserves taint. See L</"Fix loss of taint in C<canonpath()>">.
+C<canonpath()> now preserves taint. See L</"Fix loss of taint in
+C<canonpath()>">.
=item *
@@ -109,7 +110,8 @@ and improved.
=item *
-The documentation of C<hex()> has been revised to clarify valid inputs.
+The documentation of L<C<hex()>|perlfunc/hex> has been revised to clarify valid
+inputs.
=back
@@ -155,11 +157,6 @@ Compiling perl with B<-Dusecbacktrace> on Darwin now works again.
L<[perl #127764]|https://rt.perl.org/Ticket/Display.html?id=127764>
-=item ppc64el
-
-The floating point format of ppc64el (Debian naming for little-endian PowerPC)
-is now detected correctly.
-
=item OS X/Darwin
Builds with both B<-DDEBUGGING> and threading enabled would fail with a "panic:
@@ -171,6 +168,11 @@ Perl now uses C<setenv()>/C<unsetenv()> to update the environment on OS X.
L<[perl #126240]|https://rt.perl.org/Ticket/Display.html?id=126240>
+=item ppc64el
+
+The floating point format of ppc64el (Debian naming for little-endian PowerPC)
+is now detected correctly.
+
=item Tru64
A test failure in F<t/porting/extrefs.t> has been fixed.
@@ -183,10 +185,10 @@ A test failure in F<t/porting/extrefs.t> has been fixed.
=item *
-Remove unwarranted assertion in C<Perl_newATTRSUB_x()>. If a stub subroutine
-definition with a prototype has been seen, then any subsequent stub (or
-definition) of the same subroutine with an attribute was causing an assertion
-failure because of a null pointer.
+An unwarranted assertion in C<Perl_newATTRSUB_x()> has been removed. If a stub
+subroutine definition with a prototype has been seen, then any subsequent stub
+(or definition) of the same subroutine with an attribute was causing an
+assertion failure because of a null pointer.
L<[perl #126845]|https://rt.perl.org/Ticket/Display.html?id=126845>
@@ -204,9 +206,10 @@ L<[perl #126042]|https://rt.perl.org/Ticket/Display.html?id=126042>
=item *
-The C<pipe()> operator would assert for C<DEBUGGING> builds instead of
-producing the correct error message. The condition asserted on is detected and
-reported on correctly without the assertions, so the assertions were removed.
+The L<C<pipe()>|perlfunc/pipe> operator would assert for C<DEBUGGING> builds
+instead of producing the correct error message. The condition asserted on is
+detected and reported on correctly without the assertions, so the assertions
+were removed.
L<[perl #126480]|https://rt.perl.org/Ticket/Display.html?id=126480>
=item *
@@ -217,8 +220,8 @@ L<[perl #126443]|https://rt.perl.org/Ticket/Display.html?id=126443>
=item *
-Report more context when we see an array where we expect to see an operator and
-avoid an assertion failure.
+Perl now reports more context when it sees an array where it expects to see an
+operator, and avoids an assertion failure.
L<[perl #123737]|https://rt.perl.org/Ticket/Display.html?id=123737>
=item *
@@ -231,14 +234,14 @@ L<[perl #125540]|https://rt.perl.org/Ticket/Display.html?id=125540>
=item *
-Avoid parsing beyond the end of the buffer when processing a C<#line> directive
-with no filename.
+Parsing beyond the end of the buffer when processing a C<#line> directive with
+no filename is now avoided.
L<[perl #127334]|https://rt.perl.org/Ticket/Display.html?id=127334>
=item *
-Perl 5.22 added support to the C99 hexadecimal floating point notation, but
-sometimes misparses hex floats. This had been fixed.
+Perl 5.22.0 added support for the C99 hexadecimal floating point notation, but
+sometimes misparsed hex floats. This has been fixed.
L<[perl #127183]|https://rt.perl.org/Ticket/Display.html?id=127183>
=item *
@@ -251,8 +254,9 @@ L<[perl #127537]|https://rt.perl.org/Ticket/Display.html?id=127537>
=item *
-Fixed an issue with C<pack()> where C<< pack "H" >> (and C<< pack "h" >>) could
-read past the source when given a non-utf8 source and a utf8 target.
+Fixed an issue with L<C<pack()>|perlfunc/pack> where C<< pack "H" >> (and
+C<< pack "h" >>) could read past the source when given a non-utf8 source and a
+utf8 target.
L<[perl #126325]|https://rt.perl.org/Ticket/Display.html?id=126325>
=item *
@@ -269,24 +273,26 @@ L<[perl #127786]|https://rt.perl.org/Ticket/Display.html?id=127786>
=item *
-Avoid leaking memory when setting C<$ENV{foo}> on Darwin.
+A memory leak when setting C<$ENV{foo}> on Darwin has been fixed.
L<[perl #126240]|https://rt.perl.org/Ticket/Display.html?id=126240>
=item *
-Correctly raise an error when trying to compile patterns with unterminated
-character classes while there are trailing backslashes.
+Perl now correctly raises an error when trying to compile patterns with
+unterminated character classes while there are trailing backslashes.
L<[perl #126141]|https://rt.perl.org/Ticket/Display.html?id=126141>
=item *
-Handle C<NOTHING> regops and C<EXACTFU_SS> regops in C<make_trie()> properly.
+C<NOTHING> regops and C<EXACTFU_SS> regops in C<make_trie()> are now handled
+properly.
L<[perl #126206]|https://rt.perl.org/Ticket/Display.html?id=126206>
=item *
-Only test C<semctl()> if we have everything needed to use it. In a FreeBSD the
-C<semctl()> entry point may exist, but it can be disabled by policy.
+Perl now only tests C<semctl()> if we have everything needed to use it. In
+FreeBSD the C<semctl()> entry point may exist, but it can be disabled by
+policy.
L<[perl #127533]|https://rt.perl.org/Ticket/Display.html?id=127533>
=item *
@@ -297,16 +303,19 @@ L<[perl #126981]|https://rt.perl.org/Ticket/Display.html?id=126981>
=item *
-As an optimization, C<uc()>, C<lc()>, C<ucfirst()> and C<lcfirst()> sometimes
-modify their argument in-place rather than returning a modified copy, as of
-Perl 5.20.0. The critera for this optimization has been made stricter to avoid
-these functions accidentally modifying in-place when they should not, which has
-been happening in some cases, e.g. in L<List::Util>.
+As an optimization (introduced in Perl 5.20.0), L<C<uc()>|perlfunc/uc>,
+L<C<lc()>|perlfunc/lc>, L<C<ucfirst()>|perlfunc/ucfirst> and
+L<C<lcfirst()>|perlfunc/lcfirst> sometimes modify their argument in-place
+rather than returning a modified copy. The criteria for this optimization has
+been made stricter to avoid these functions accidentally modifying in-place
+when they should not, which has been happening in some cases, e.g. in
+L<List::Util>.
=item *
-A problem with excessive memory usage in the compilation of some regular
-expressions involving non-ASCII characters has been alleviated.
+Excessive memory usage in the compilation of some regular expressions involving
+non-ASCII characters has been reduced. A more complete fix is forthcoming in
+Perl 5.24.0.
=back