This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta: Correct misstatement
[perl5.git] / pod / perldelta.pod
index 85a9da5..6e943c1 100644 (file)
@@ -70,9 +70,7 @@ as an updated module in the L</Modules and Pragmata> section.
 
 =item *
 
-L<DB> has been updated from 1.05 to 1.06 and L<perl5db.pl> from 1.39_10
-to 1.40.  The call depth allowed by default in the debugger is now 1000
-rather than 100.
+XXXX
 
 =back
 
@@ -137,9 +135,28 @@ XXX
 
 B::Deparse has been upgraded from version 1.20 to 1.21.
 
-C<foreach my $lexical> is now deparse correctly with the B<-p> option.
+C<foreach my $lexical> is now deparsed correctly with the B<-p> option.
 [RT #117081]
 
+The B<-l> option no longer puts form feeds in the middle of a line when
+outputting C<map> and C<grep> blocks. [RT #117311]
+
+Elements of C<%#>, such as C<$# {foo}> and C<${#}{foo}> are now deparsed
+correctly. [RT #117531]
+
+=item *
+
+L<DB> has been updated from 1.05 to 1.06 and L<perl5db.pl> from 1.39_10
+to 1.40.  The call depth allowed by default in the debugger is now 1000
+rather than 100.
+
+=item *
+
+File::Spec has been upgraded from version 3.40 to 3.41.
+
+C<tmpdir> now respects changes to environment variables from which the
+temporary directory is derived. [RT #88940]
+
 =item *
 
 Test::Harness has been upgraded from version 3.26 to 3.28
@@ -187,13 +204,13 @@ 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.
 
-=head3 L<XXX>
+=head3 L<perltrap>
 
 =over 4
 
 =item *
 
-XXX Description of the change here
+There is now a L<JavaScript|perltrap/JavaScript Traps> section.
 
 =back
 
@@ -380,6 +397,17 @@ platforms has been removed. We believe that Perl has long been unable to
 build on mixed endian architectures (such as PDP-11s), so we don't think
 that this change will affect any platforms which are able to build v5.18.0.
 
+=item Windows
+
+The BUILD_STATIC and ALL_STATIC makefile options for linking some or (nearly)
+all extensions statically (into perl519.dll, and into a separate
+perl-static.exe too) were broken for MinGW builds. This has now been fixed.
+
+The ALL_STATIC option has also been improved to include the Win32 extension,
+and also the Encode extension for VC++ builds. (However, Encode and
+Compress/Raw/Bzip2 are currently still excluded from MinGW builds. This will
+hopefully be rectified soon.)
+
 =back
 
 =head1 Internal Changes
@@ -458,6 +486,14 @@ C<Perl_regexec_flags>. Previously intuit would try to guess the start of
 the string from the passed SV (if any), and would sometimes get it wrong
 (e.g. with an overloaded SV).
 
+=item *
+
+XS code may use various macros to change the case of a character or code
+point (for example C<toLOWER_utf8()>).  Only a couple of these were
+documented until now;
+and now they should be used in preference to calling the underlying
+functions.  See L<perlapi/Character case changing>.
+
 =back
 
 =head1 Selected Bug Fixes
@@ -485,6 +521,11 @@ all now work again.
 
 =item *
 
+C<@_> is now correctly visible in the debugger, fixing a regression
+introduced in v5.18.0's debugger. [RT #118169]
+
+=item *
+
 Evaluating large hashes in scalar context is now much faster, as the number
 of used chains in the hash is now cached for larger hashes. Smaller hashes
 continue not to store it and calculate it when needed, as this saves one IV.
@@ -516,6 +557,66 @@ Since Perl v5.12, inlining of constants that override built-in keywords of
 the same name had countermanded C<use subs>, causing subsequent mentions of
 the constant to use the built-in keyword instead.  This has been fixed.
 
+=item *
+
+Lexical constants (C<my sub a() { 42 }>) no longer crash when inlined.
+
+=item *
+
+Parameter prototypes attached to lexical subroutines are now respected when
+compiling sub calls without parentheses.  Previously, the prototypes were
+honoured only for calls I<with> parentheses. [RT #116735]
+
+=item *
+
+Syntax errors in lexical subroutines in combination with calls to the same
+subroutines no longer cause crashes at compile time.
+
+=item *
+
+The warning produced by C<-l $handle> now applies to IO refs and globs, not
+just to glob refs.  That warning is also now UTF8-clean. [RT #117595]
+
+=item *
+
+Various memory leaks involving the parsing of the C<(?[...])> regular
+expression construct have been fixed.
+
+=item *
+
+C<(?[...])> now allows interpolation of precompiled patterns consisting of
+C<(?[...])> with bracketed character classes inside (C<$pat =
+S<qr/(?[ [a] ])/;> S</(?[ $pat ])/>>).  Formerly, the brackets would
+confuse the regular expression parser.
+
+=item *
+
+The "Quantifier unexpected on zero-length expression" warning message could
+appear twice starting in Perl v5.10 for a regular expression also
+containing alternations (e.g., "a|b") triggering the trie optimisation.
+
+=item *
+
+C<delete local $ENV{nonexistent_env_var}> no longer leaks memory.
+
+=item *
+
+C<sort> and C<require> followed by a keyword prefixed with C<CORE::> now
+treat it as a keyword, and not as a subroutine or module name. [RT #24482]
+
+=item *
+
+Through certain conundrums, it is possible to cause the current package to
+be freed.  Certain operators (C<bless>, C<reset>, C<open>, C<eval>) could
+not cope and would crash.  They have been made more resilient. [RT #117941]
+
+=item *
+
+Aliasing filehandles through glob-to-glob assignment would not update
+internal method caches properly if a package of the same name as the
+filehandle existed, resulting in filehandle method calls going to the
+package instead.  This has been fixed.
+
 =back
 
 =head1 Known Problems