summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Horsfall <wolfsage@gmail.com>2015-08-20 08:05:16 -0400
committerMatthew Horsfall <wolfsage@gmail.com>2015-08-20 09:48:26 -0400
commit80e86009a1ba918b82ab94a400855d0168801db3 (patch)
treea2381cf7bf40d22edab7b00e1574cc69514b8ce3
parentceab18aaa172f34ab3b061efce684fc0899308ea (diff)
downloadperl-80e86009a1ba918b82ab94a400855d0168801db3.tar.gz
perldelta updates for 5.23.2.
-rw-r--r--pod/perldelta.pod252
1 files changed, 71 insertions, 181 deletions
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index b7755b627b..5ea5dba73a 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -2,9 +2,6 @@
=head1 NAME
-[ this is a template for a new perldelta file. Any text flagged as XXX needs
-to be processed before release. ]
-
perldelta - what is new for perl v5.23.2
=head1 DESCRIPTION
@@ -15,40 +12,24 @@ release.
If you are upgrading from an earlier release such as 5.23.0, first read
L<perl5231delta>, which describes differences between 5.23.0 and 5.23.1.
-=head1 Notice
-
-XXX Any important notices here
-
-=head1 Core Enhancements
-
-XXX New core language features go here. Summarize user-visible core language
-enhancements. Particularly prominent performance optimisations could go
-here, but most should go in the L</Performance Enhancements> section.
-
-[ List each enhancement as a =head2 entry ]
-
-=head1 Security
+=head1 Incompatible Changes
-XXX Any security-related notices go here. In particular, any security
-vulnerabilities closed should be noted here rather than in the
-L</Selected Bug Fixes> section.
+=head2 Nested declarations are now disallowed
-[ List each security issue as a =head2 entry ]
+A C<my>, C<our>, or C<state> declaration is no longer allowed inside
+of another C<my>, C<our>, or C<state> declaration.
-=head1 Incompatible Changes
+For example, these are now fatal:
-XXX For a release on a stable branch, this section aspires to be:
+ my ($x, my($y));
+ our (my $x);
- There are no changes intentionally incompatible with 5.XXX.XXX
- If any exist, they are bugs, and we request that you submit a
- report. See L</Reporting Bugs> below.
+L<[perl #125587]|https://rt.perl.org/Ticket/Display.html?id=125587>
-[ List each incompatible change as a =head2 entry ]
+L<[perl #121058]|https://rt.perl.org/Ticket/Display.html?id=121058>
=head1 Deprecations
-XXX Any deprecated features, syntax, modules etc. should be listed here.
-
=head2 sysread(), syswrite(), recv() and send() are deprecated on
:utf8 handles
@@ -102,11 +83,6 @@ as an updated module in the L</Modules and Pragmata> section.
=head1 Performance Enhancements
-XXX Changes which enhance performance without changing behaviour go here.
-There may well be none in a stable release.
-
-[ List each enhancement as a =item entry ]
-
=over 4
=item *
@@ -119,6 +95,13 @@ Loading XS modules created more glob/scalar combos. These things were created
regardless if the perl debugger was being used or not, unlike for pure perl
subs, and ignores that the perl debugger can not debug C code.
+=item *
+
+Single arguments in list assign are now slightly faster:
+
+ ($x) = (...);
+ (...) = ($x);
+
=back
=head1 Modules and Pragmata
@@ -147,6 +130,13 @@ XXX
=item *
+L<Hash::Util>'s C<unlock_hashref_recurse> and C<unlock_hash_recurse>
+didn't actually unlock parts of the data structures...
+
+...now they do.
+
+=item *
+
L<Encode> has been upgraded from version 2.75 to 2.76.
=item *
@@ -158,7 +148,8 @@ L<Filter::Util::Call> has been upgraded from version 1.54 to 1.55.
The PathTools module collection has been upgraded from version 3.55 to
3.56.
-Minor optimizations. [perl #125712]
+Minor optimizations.
+L<[perl #125712]|https://rt.perl.org/Ticket/Display.html?id=125712>
=back
@@ -174,30 +165,29 @@ XXX
=head1 Documentation
-XXX Changes to files in F<pod/> go here. Consider grouping entries by
-file and be sure to link to the appropriate page, e.g. L<perlfunc>.
+=head2 Changes to Existing Documentation
-=head2 New Documentation
+=head3 L<perlpolicy>
-XXX Changes which create B<new> files in F<pod/> go here.
+=over 4
-=head3 L<XXX>
+=item *
-XXX Description of the purpose of the new file here
+This note has been added to perlpolicy:
-=head2 Changes to Existing Documentation
+ While civility is required, kindness is encouraged; if you have any doubt
+ about whether you are being civil, simply ask yourself, "Am I being kind?"
+ and aspire to that.
-XXX Changes which significantly change existing files in F<pod/> go here.
-However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
-section.
+=back
-=head3 L<XXX>
+=head3 L<perlvar>
=over 4
=item *
-XXX Description of the change here
+Use of C<$OLD_PERL_VERSION> is now discouraged.
=back
@@ -207,21 +197,18 @@ The following additions or changes have been made to diagnostic output,
including warnings and fatal error messages. For the complete list of
diagnostic messages, see L<perldiag>.
-XXX New or changed warnings emitted by the core's C<C> code go here. Also
-include any changes in L<perldiag> that reconcile it to the C<C> code.
-
=head2 New Diagnostics
-XXX Newly added diagnostic messages go under here, separated into New Errors
-and New Warnings
-
=head3 New Errors
=over 4
=item *
-XXX L<message|perldiag/"message">
+L<Can't redeclare "%s" in "%s"|perldiag/"Can't redeclare "%s" in "%s"">
+
+(F) A "my", "our" or "state" declaration was found within another declaration,
+such as C<my ($x, my($y), $z)> or C<our (my $x)>.
=back
@@ -231,148 +218,77 @@ XXX L<message|perldiag/"message">
=item *
-XXX L<message|perldiag/"message">
-
-=back
-
-=head2 Changes to Existing Diagnostics
+L<%s() is deprecated on :utf8 handles|perldiag/"%s() is deprecated on :utf8 handles">
-XXX Changes (i.e. rewording) of diagnostic messages go here
+(W deprecated) The sysread(), recv(), syswrite() and send() operators
+are deprecated on handles that have the C<:utf8> layer, either
+explicitly, or implicitly, eg., with the C<:encoding(UTF-16LE)> layer.
-=over 4
+Both sysread() and recv() currently use only the C<:utf8> flag for the
+stream, ignoring the actual layers. Since sysread() and recv() do no
+UTF-8 validation they can end up creating invalidly encoded scalars.
-=item *
+Similarly, syswrite() and send() use only the C<:utf8> flag, otherwise
+ignoring any layers. If the flag is set, both write the value UTF-8
+encoded, even if the layer is some different encoding, such as the
+example above.
-XXX Describe change here
+Ideally, all of these operators would completely ignore the C<:utf8>
+state, working only with bytes, but this would result in silently
+breaking existing code. To avoid this a future version of perl will
+throw an exception when any of sysread(), recv(), syswrite() or send()
+are called on handle with the C<:utf8> layer.
=back
-=head1 Utility Changes
-
-XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
-Most of these are built within the directory F<utils>.
-
-[ List utility changes as a =head2 entry for each utility and =item
-entries for each change
-Use L<XXX> with program names to get proper documentation linking. ]
-
-=head2 L<XXX>
+=head2 Changes to Existing Diagnostics
=over 4
=item *
-XXX
+The diagnostic C<< Hexadecimal float: internal error >> has been changed to
+C<< Hexadecimal float: internal error (%s) >> to include more information.
=back
=head1 Configuration and Compilation
-XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
-go here. Any other changes to the Perl build process should be listed here.
-However, any platform-specific changes should be listed in the
-L</Platform Support> section, instead.
-
-[ List changes as a =item entry ].
-
=over 4
=item *
-XXX
+F<Configure> should handle spaces in paths a little better.
=back
=head1 Testing
-XXX Any significant changes to the testing of a freshly built perl should be
-listed here. Changes which create B<new> files in F<t/> go here as do any
-large changes to the testing harness (e.g. when parallel testing was added).
-Changes to existing files in F<t/> aren't worth summarizing, although the bugs
-that they represent may be covered elsewhere.
-
-[ List each test improvement as a =item entry ]
-
=over 4
=item *
-XXX
-
-=back
-
-=head1 Platform Support
-
-XXX Any changes to platform support should be listed in the sections below.
-
-[ Within the sections, list each platform as a =item entry with specific
-changes as paragraphs below it. ]
-
-=head2 New Platforms
-
-XXX List any platforms that this version of perl compiles on, that previous
-versions did not. These will either be enabled by new files in the F<hints/>
-directories, or new subdirectories and F<README> files at the top level of the
-source tree.
-
-=over 4
-
-=item XXX-some-platform
-
-XXX
-
-=back
-
-=head2 Discontinued Platforms
-
-XXX List any platforms that this version of perl no longer compiles on.
-
-=over 4
-
-=item XXX-some-platform
-
-XXX
-
-=back
-
-=head2 Platform-Specific Notes
-
-XXX List any changes for specific platforms. This could include configuration
-and compilation changes or changes in portability/compatibility. However,
-changes within modules for platforms should generally be listed in the
-L</Modules and Pragmata> section.
-
-=over 4
-
-=item XXX-some-platform
-
-XXX
+A new test (F<t/op/aassign.t>) has been added to test the list assignment operator
+C<OP_AASSIGN>.
=back
=head1 Internal Changes
-XXX Changes which affect the interface available to C<XS> code go here. Other
-significant internal changes for future core maintainers should be noted as
-well.
+=over 4
-[ List each change as a =item entry ]
+=item *
-=over 4
+C<PL_sawalias> and C<GPf_ALIASED_SV> have been removed.
=item *
-XXX
+C<GvASSIGN_GENERATION> and C<GvASSIGN_GENERATION_set> have been removed.
=back
=head1 Selected Bug Fixes
-XXX Important bug fixes in the core language are summarized here. Bug fixes in
-files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
-
-[ List each fix as a =item entry ]
-
=over 4
=item *
@@ -386,49 +302,23 @@ incorrectly said it did. This has been fixed.
Very large code-points (beyond Unicode) in regular expressions no
longer cause a buffer overflow in some cases when converted to UTF-8.
-[perl #125826]
+L<[perl #125826]|https://rt.perl.org/Ticket/Display.html?id=125826>
=item *
The integer overflow check for the range operator (...) in list
context now correctly handles the case where the size of the range is
larger than the address space. This could happen on 32-bits with
--Duse64bitint. [perl #125781]
-
-=back
-
-=head1 Known Problems
-
-XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
-tests that had to be C<TODO>ed for the release would be noted here. Unfixed
-platform specific bugs also go here.
-
-[ List each fix as a =item entry ]
-
-=over 4
-
-=item *
-
-XXX
-
-=back
-
-=head1 Errata From Previous Releases
-
-=over 4
+-Duse64bitint.
+L<[perl #125781]|https://rt.perl.org/Ticket/Display.html?id=125781>
=item *
-XXX Add anything here that we forgot to add, or were mistaken about, in
-the perldelta of a previous release.
+A crash with C<< %::=(); J->${\"::"} >> has been fixed.
+L<[perl #125541]|https://rt.perl.org/Ticket/Display.html?id=125541>
=back
-=head1 Obituary
-
-XXX If any significant core contributor has died, we've added a short obituary
-here.
-
=head1 Acknowledgements
XXX Generate this with: