This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Suppress test warning added by 04698ff6
[perl5.git] / pod / perldelta.pod
index 58a3c46..7e30a87 100644 (file)
@@ -1,25 +1,23 @@
 =encoding utf8
 
 =for comment
-This has been completed up to 157486ae134392, except for:
-04777d295957ad270188e4debf51b523e07cc5b0
-c565ab54dc649bb62cd4d57149d7b2abb21df5f3
+This has been completed up to a3179684.
 
 =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.7
+perldelta - what is new for perl v5.13.8
 
 =head1 DESCRIPTION
 
-This document describes differences between the 5.13.6 release and
+This document describes differences between the 5.13.8 release and
 the 5.13.7 release.
 
-If you are upgrading from an earlier release such as 5.13.5, first read
-L<perl5136delta>, which describes differences between 5.13.5 and
-5.13.6.
+If you are upgrading from an earlier release such as 5.13.6, first read
+L<perl5137delta>, which describes differences between 5.13.6 and
+5.13.7.
 
 =head1 Notice
 
@@ -33,31 +31,31 @@ here, but most should go in the L</Performance Enhancements> section.
 
 [ List each enhancement as a =head2 entry ]
 
-=head2 Single term prototype
+=head2 C<-d:-foo> calls C<Devel::foo::unimport>
 
-The C<+> prototype is a special alternative to C<$> that will act like
-C<\[@%]> when given a literal array or hash variable, but will otherwise
-force scalar context on the argument.  This is useful for functions which
-should accept either a literal array or an array reference as the argument:
+The syntax C<-dI<B<:>foo>> was extended in 5.6.1 to make C<-dI<:fooB<=bar>>>
+equivalent to C<-MDevel::foo=bar>, which expands
+internally to C<use Devel::foo 'bar';>.
+F<perl> now allows prefixing the module name with C<->, with the same
+semantics as C<-M>, I<i.e.>
 
-    sub smartpush (+@) {
-        my $aref = shift;
-        die "Not an array or arrayref" unless ref $aref eq 'ARRAY';
-        push @$aref, @_;
-    }
+=over 4
+
+=item C<-d:-foo>
 
-When using the C<+> prototype, your function must check that the argument
-is of an acceptable type.
+Equivalent to C<-M-Devel::foo>, expands to
+C<no Devel::foo;>, calls C<< Devel::foo->unimport() >>
+if the method exists.
 
-=head2 C<use re '/flags';>
+=item C<-d:-foo=bar>
 
-The C<re> pragma now has the ability to turn on regular expression flags
-till the end of the lexical scope:
+Equivalent to C<-M-Devel::foo=bar>, expands to C<no Devel::foo 'bar';>,
+calls C<< Devel::foo->unimport('bar') >> if the method exists.
 
-    use re '/x';
-    "foo" =~ / (.+) /;  # /x implied
+=back
 
-See L<re/'/flags' mode> for details.
+This is particularly useful to suppresses the default actions of a
+C<Devel::*> module's C<import> method whilst still loading it for debugging.
 
 =head1 Security
 
@@ -84,6 +82,20 @@ listed as an updated module in the L</Modules and Pragmata> section.
 
 [ List each deprecation as a =head2 entry ]
 
+=head2 C<?PATTERN?> is deprecated
+
+C<?PATTERN?> (without the initial m) has been deprecated and now produces
+a warning.
+
+=head2 C<sv_compile_2op> is now deprecated
+
+The C<sv_compile_2op> 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
@@ -127,93 +139,25 @@ XXX
 
 =item *
 
-C<Archive::Extract> has been upgraded from 0.44 to 0.46
-
-Resolves an issue with NetBSD-current and its new unzip 
-executable.
-
-=item *
-
-XXX What should the version be?
-
-C<B::Deparse> has been upgraded from 0.99 to ???.
-
-It fixes deparsing of C<our> followed by a variable with funny characters
-(as permitted under the C<utf8> pragma)
-L<[perl #33752]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=33752>.
-
-=item *
-
-C<charnames> has been upgraded from 1.16 to 1.17.
-
-The algorithm used by C<charnames::viacode> to look up names has been
-rewritten to run faster
-L<[perl #75448]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=75448>.
-
-=item *
-
-C<CPAN> has been upgraded from 1.94_61 to 1.94_62
-
-=item *
-
-C<ExtUtils::Constant> has been upgraded from 0.22 to 0.23.
-
-=item *
-
-C<Fcntl> has been upgraded from 1.09 to 1.10.
-
-=item *
-
-C<File::Glob> has been upgraded from 1.09 to 1.10.
-
-=item *
-
-C<GDBM_File> has been upgraded from 1.11 to 1.12.
-
-This fixes a memory leak when DBM filters are used.
-
-=item *
-
-C<Hash::Util> has been upgraded from 0.09 to 0.10.
-
-This fixes a memory leak when DBM filters are used.
-
-=item *
-
-C<I18N::Langinfo> has been upgraded from 0.06 to 0.07.
-
-=item *
-
-C<Locale::Maketext> has been upgraded from 1.16 to 1.17
-
-=item *
+C<IPC::Cmd> has been upgraded from 0.64 to 0.66
 
-C<NDBM_File> has been upgraded from 1.09 to 1.10.
-
-This fixes a memory leak when DBM filters are used.
+Resolves an issue with splitting Win32 command lines
+and documentation enhancements.
 
 =item *
 
-C<ODBM_File> has been upgraded from 1.08 to 1.09.
+C<MIME::Base64> has been upgraded from 3.10 to 3.13
 
-This fixes a memory leak when DBM filters are used.
+Now provides encode_base64url and decode_base64url functions to process
+the base64 scheme for "URL applications".
 
 =item *
 
-C<POSIX> has been upgraded from 1.21 to 1.22.
+C<Unicode::Collate> has been upgraded from 0.67 to 0.68
 
 =item *
 
-C<re> has been upgraded from 0.13 to 0.14, for the sake of the new
-C<use re "/flags"> pragma.
-
-=item *
-
-C<SDBM_File> has been upgraded from 1.07 to 1.08.
-
-=item *
-
-C<Socket> has been upgraded from 1.90 to 1.91.
+C<Unicode::UCD> has been upgraded from 0.29 to 0.30.
 
 =back
 
@@ -246,11 +190,6 @@ 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.
 
-=item *
-
-Array, hash and list slices in scalar context are now documented in
-L<perldata>.
-
 =head3 L<XXX>
 
 =over 4
@@ -411,18 +350,7 @@ be noted as well.
 
 =item *
 
-C<lex_start> has been added to the API, but is considered experimental.
-
-=item *
-
-A new C<parse_block> function has been added to the API
-L<[perl #78222]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78222>.
-
-=item *
-
-A new, experimental API has been added for accessing the internal
-structure that Perl uses for C<%^H>. See the functions beginning with
-C<cophh_> in L<perlapi>.
+XXX
 
 =back
 
@@ -438,34 +366,11 @@ L</Modules and Pragmata>.
 
 =item *
 
-The C<parse_stmt> C function added in earlier in the 5.13.x series has been
-fixed to work with statements ending with C<}>
-L<[perl #78222]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78222>.
-
-=item *
-
-The C<parse_fullstmt> C function added in 5.13.5 has been fixed to work
-when called while an expression is being parsed.
-
-=item *
-
-Characters in the Latin-1 non-ASCII range (0x80 to 0xFF) used not to match
-themselves if the string happened to be UTF8-encoded internally, the
-regular expression was not, and the character in the regular expression was
-inside a repeated group (e.g.,
-C<Encode::decode_utf8("\303\200") =~ /(\xc0)+/>)
-L<[perl #78464]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78464>.
-
-=item *
-
-The C<(?d)> regular expression construct now overrides a previous C<(?u)>
-or C<use feature "unicode_string">
-L<[perl #78508]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78508>.
-
-=item *
-
-A memory leak in C<do "file">, introduced in perl 5.13.6, has been fixed
-L<[perl #78488]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78488>.
+C<BEGIN {require 5.12.0}> now behaves as documented, rather than behaving
+identically to C<use 5.12.0;>. Previously, C<require> in a C<BEGIN> block
+was erroneously executing the C<use feature ':5.12.0'> and
+C<use strict; use warnings;> behaviour, which only C<use> was documented to
+provide.
 
 =back
 
@@ -484,7 +389,9 @@ from either 5.XXX.XXX or 5.XXX.XXX.
 
 =item *
 
-XXX
+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.
 
 =back
 
@@ -504,7 +411,7 @@ recently posted to the comp.lang.perl.misc newsgroup and the perl
 bug database at http://rt.perl.org/perlbug/ .  There may also be
 information at http://www.perl.org/ , the Perl Home Page.
 
-If you believe you have an unreported bug, please run the B<perlbug>
+If you believe you have an unreported bug, please run the L<perlbug>
 program included with your release.  Be sure to trim your bug down
 to a tiny but sufficient test case.  Your bug report, along with the
 output of C<perl -V>, will be sent off to perlbug@perl.org to be