X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/4d4ca6a56be9d33d931a2fa0cdd3ab836ad49e79..935c8d19ecf9ad3ea7589ffd1721e6ba1c671ed9:/pod/perldelta.pod diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 3d9f5f4..42b7ee5 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -1,24 +1,20 @@ =encoding utf8 -=for comment -This has been completed up to dbe92b04c, except for 1b9f127-fad448f, which -Karl Williamson says he will do. - =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.13.8 +perldelta - what is new for perl v5.13.9 =head1 DESCRIPTION This document describes differences between the 5.13.8 release and -the 5.13.7 release. +the 5.13.9 release. -If you are upgrading from an earlier release such as 5.13.6, first read -L, which describes differences between 5.13.6 and -5.13.7. +If you are upgrading from an earlier release such as 5.13.7, first read +L, which describes differences between 5.13.7 and +5.13.8. =head1 Notice @@ -32,53 +28,6 @@ here, but most should go in the L section. [ List each enhancement as a =head2 entry ] -=head2 C<-d:-foo> calls C - -The syntax C<-dIfoo>> was extended in 5.6.1 to make C<-dI<:fooB<=bar>>> -equivalent to C<-MDevel::foo=bar>, which expands -internally to C. -F now allows prefixing the module name with C<->, with the same -semantics as C<-M>, I - -=over 4 - -=item C<-d:-foo> - -Equivalent to C<-M-Devel::foo>, expands to -C, calls C<< Devel::foo->unimport() >> -if the method exists. - -=item C<-d:-foo=bar> - -Equivalent to C<-M-Devel::foo=bar>, expands to C, -calls C<< Devel::foo->unimport('bar') >> if the method exists. - -=back - -This is particularly useful to suppresses the default actions of a -C module's C method whilst still loading it for debugging. - -=head2 Filehandle method calls load IO::File on demand - -When a method call on a filehandle would die because the method can not -be resolved and L has not been loaded, Perl now loads IO::File -via C and attempts method resolution again: - - open my $fh, ">", $file; - $fh->binmode(":raw"); # loads IO::File and succeeds - -This also works for globs like STDOUT, STDERR and STDIN: - - STDOUT->autoflush(1); - -Because this on-demand load only happens if method resolution fails, the -legacy approach of manually loading an IO::File parent class for partial -method support still works as expected: - - use IO::Handle; - open my $fh, ">", $file; - $fh->autoflush(1); # IO::File not loaded - =head1 Security XXX Any security-related notices go here. In particular, any security @@ -89,20 +38,12 @@ L section. =head1 Incompatible Changes -=head2 Attempting to use C<:=> as an empty attribute list is now a syntax error - -Previously C was exactly equivalent to C, -with the C<:> being treated as the start of an attribute list, ending before -the C<=>. The use of C<:=> to mean C<: => was deprecated in 5.12.0, and is now -a syntax error. This will allow the future use of C<:=> as a new token. +XXX For a release on a stable branch, this section aspires to be: -We find no Perl 5 code on CPAN using this construction, outside the core's -tests for it, so we believe that this change will have very little impact on -real-world codebases. + There are no changes intentionally incompatible with 5.XXX.XXX. If any + exist, they are bugs and reports are welcome. -If it is absolutely necessary to have empty attribute lists (for example, -because of a code generator) then avoid the error by adding a space before -the C<=>. +[ List each incompatible change as a =head2 entry ] =head1 Deprecations @@ -112,20 +53,6 @@ listed as an updated module in the L section. [ List each deprecation as a =head2 entry ] -=head2 C is deprecated - -C (without the initial m) has been deprecated and now produces -a warning. - -=head2 C is now deprecated - -The C is now deprecated, and will be removed. Searches suggest -that nothing on CPAN is using it, so this should have zero impact. - -It attempted to provide an API to compile code down to an optree, but failed -to bind correctly to lexicals in the enclosing scope. It's not possible to -fix this problem within the constraints of its parameters and return value. - =head1 Performance Enhancements XXX Changes which enhance performance without changing behaviour go here. There @@ -159,69 +86,45 @@ cribbed. =item * -XXX - -=back - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -C has been upgraded from 0.64 to 0.66 - -Resolves an issue with splitting Win32 command lines -and documentation enhancements. - -=item * - -C has been upgraded from version 1.01_03 to 1.02. +L 0.002 has been added as a dual-life module. It supports a +subset of YAML sufficient for reading and writing META.yml and MYMETA.yml files +included with CPAN distributions or generated by the module installation +toolchain. It should not be used for any other general YAML parsing or +generation task. =item * -C has been upgraded from 3.10 to 3.13 +L 1.002 has been added as a dual-life module. It maps Perl +operating system names (e.g. 'dragonfly' or 'MSWin32') to more generic types +with standardized names (e.g. "Unix" or "Windows"). It has been refactored +out of Module::Build and ExtUtils::CBuilder and consolidates such mappings into +a single location for easier maintenance. -Now provides encode_base64url and decode_base64url functions to process -the base64 scheme for "URL applications". - -=item * - -C has been upgraded from 1.11 to 1.12. - -=item * - -C has been upgraded from 0.10 to 0.11. - -A C after a C beyond the end of the string no longer thinks it -has data to read -L<[perl #78716]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78716>. +=back -=item * +=head2 Updated Modules and Pragmata -C has been upgraded from 0.14 to 0.15. +=over 4 =item * -C has been upgraded from 1.91 to 1.92. - -It has several new functions for handling IPv6 addresses. +C has been upgraded from version 3.50 to 3.51 =item * -C has been upgraded from 1.9721 to 1.9721_01. +C has been upgraded from version 2.40 to 2.42 =item * -C has been upgraded from 0.67 to 0.68 +C has been upgraded from version 1.81_03 to 1.82 =item * -C has been upgraded from 0.29 to 0.30. +C has been upgraded from version 1.35 to 1.36 =item * -C has been upgraded from 0.82 to 0.86. +C has been upgraded from version 1.1901_01 to 1.2000. =back @@ -283,7 +186,7 @@ XXX Newly added diagnostic messages go here =item * -There is a new "Closure prototype called" error. +XXX =back @@ -414,7 +317,12 @@ be noted as well. =item * -XXX +The opcode bodies for C and C and for C and C have +been merged. The implementation functions C and +C, never part of the public API, have been merged and moved to +a static function in F. This shrinks the perl binary slightly, and should +not affect any code outside the core (unless it is relying on the order of side +effects when C is passed a I of values). =back @@ -430,58 +338,7 @@ L. =item * -C now behaves as documented, rather than behaving -identically to C. Previously, C in a C block -was erroneously executing the C and -C behaviour, which only C was documented to -provide -L<[perl #69050]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=69050>. - -=item * - -C -L<[perl #69050]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=69050>, -C and C no longer leak memory. - -=item * - -C no longer leaks memory on non-threaded builds. - -=item * - -PerlIO no longer crashes when called recursively, e.g., from a signal -handler. Now it just leaks memory -L<[perl #75556]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=75556>. - -=item * - -Defining a constant with the same name as one of perl's special blocks -(e.g., INIT) stopped working in 5.12.0, but has now been fixed -L<[perl #78634]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78634>. - -=item * - -A reference to a literal value used as a hash key (C<$hash{\"foo"}>) used -to be stringified, even if the hash was tied -L<[perl #79178]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=79178>. - -=item * - -A number of bugs with regular expression bracketed character classes -have been fixed, mostly having to do with matching characters in the -non-ASCII Latin-1 range. - -=item * - -A closure containing an C statement followed by a constant or variable -is no longer treated as a constant -L<[perl #63540]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=63540>. - -=item * - -Calling a closure prototype (what is passed to an attribute handler for a -closure) now results in a "Closure prototype called" error message -L<[perl #68560]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=68560>. +XXX =back