[ 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.19.5
+perldelta - what is new for perl v5.19.6
=head1 DESCRIPTION
-This document describes differences between the 5.19.4 release and the 5.19.5
+This document describes differences between the 5.19.5 release and the 5.19.6
release.
-If you are upgrading from an earlier release such as 5.19.3, first read
-L<perl5194delta>, which describes differences between 5.19.3 and 5.19.4.
+If you are upgrading from an earlier release such as 5.19.4, first read
+L<perl5195delta>, which describes differences between 5.19.4 and 5.19.5.
=head1 Notice
=over
-XXX Note that deprecated modules should be listed here even if they are listed
-as an updated module in the L</Modules and Pragmata> section.
+=item L<Package::Constants>
=back
=item *
-Perl has an optimizer for regular expression patterns. It analyzes the
-pattern to find things such as the minimum length a string has to be to
-match, etc. It now better handles code points that are above the Latin1
-range.
+XXX
=back
=item *
-L<autodie> has been upgraded from version 2.21 to 2.22.
+L<B> has been upgraded from version 1.46 to 1.47.
+
+C<< B::PMOP->precomp >> now preserves the internal UTF8 flag correctly, so
+chr 256 remains chr 256, instead of turning into "\xc4\x80". This allows
+L<B::Deparse> to deparse Unicode regular expression correctly.
+[perl #120182]
+
+=item *
+
+L<B::Concise> has been upgraded from version 0.99 to 0.991.
+
+B<-debug> output now includes C<op_other> pointers.
+
+=item *
+
+L<B::Deparse> has been upgraded from version 1.23 to 1.24.
-No changes have been made to the installed code other than the version bump to
-keep in sync with the latest CPAN release.
+C<s//\(3)/e> is now deparsed in a way that does not issue warnings when
+parsed again. [perl #119807]
=item *
-L<Module::CoreList> has been upgraded from version 2.99 to 3.00.
+L<Module::CoreList> has been upgraded from version 3.00 to 3.01.
The list of Perl versions covered has been updated.
=item *
-The podlators modules have been upgraded from version 2.5.1 to 2.5.2.
+L<PerlIO::scalar> has been upgraded from version 0.17 to 0.18.
+
+A bug fix in 0.17 caused references to be stringified as soon as a handle
+to it was opened, even if it was opened only for reading. It also croaked
+on read-only references. This has been fixed. [perl #119529]
+
+=item *
+
+L<Tie::StdHandle> has been upgraded from version 4.3 to 4.4.
+
+It no longer prints C<$\> twice. [perl #120202]
-Numerous updates and bug fixes are incorporated. See the F<Changes> file in
-the CPAN distribution for full details.
+It no longer ignores the offset passed to C<syswrite>.
=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
+=item Synology
-XXX
+Synology ships its NAS boxes with a lean Linux distribution (DSM) on relative
+cheap CPU's (like the Marvell Kirkwood mv6282 - ARMv5tel or Freescale QorIQ
+P1022 ppc - e500v2) not meant for workstations or development. These boxes
+should build now. The basic problems are the non-standard location for tools.
=back
=over 4
-=item XXX-some-platform
+=item Windows
-XXX
+Support for building with Visual C++ 2013 has been added. There are currently
+two possible test failures (see L<perlwin32/"Testing Perl on Windows">) which
+will hopefully be resolved soon.
+
+=item WinCE
+
+Perl can now be built in one shot with no user intervention on WinCE by running
+C<nmake -f Makefile.ce all>.
+
+Support for building with EVC (Embedded Visual C++) 4 has been restored. Perl
+can also be built using Smart Devices for Visual C++ 2005 or 2008.
=back
=item *
-XXX
+Compiling with C<-Accflags=-PERL_BOOL_AS_CHAR> now allows C99 and C++
+compilers to emulate the aliasing of C<bool> to C<char> that perl does for
+C89 compilers. [perl #120314]
=back
=item *
-XXX
+Perl 5.18.0 accidentally disallowed C<-bareword> under C<use strict> and
+C<use integer>. This has been fixed. [perl #120288]
+
+=item *
+
+C<-a> at the start of a line (or a hyphen with any single letter that is
+not a filetest operator) no longer produces an erroneous 'Use of "-a"
+without parentheses is ambiguous' warning. [perl #120288]
+
+=item *
+
+Lvalue context is now properly propagated into bare blocks and C<if> and
+C<else> blocks in lvalue subroutines. Previously, arrays and hashes would
+sometimes incorrectly be flattened when returned in lvalue list context, or
+"Bizarre copy" errors could occur. [perl #119797]
+
+=item *
+
+Lvalue context is now propagated to the branches of C<||> and C<&&> (and
+their alphabetic equivalents, C<or> and C<and>). This means
+C<foreach (pos $x || pos $y) {...}> now allows C<pos> to be modified
+through $_.
+
+=item *
+
+C<*DB::DB = sub {} if 0> no longer stops Perl's debugging mode from finding
+C<DB::DB> subs declared thereafter.
+
+=item *
+
+C<stat> and C<readline> remember the last handle used; the former
+for the special C<_> filehandle, the latter for C<${^LAST_FH}>.
+C<eval "*foo if 0"> where *foo was the last handle passed to C<stat>
+or C<readline> could cause that handle to be forgotten if the
+handle were not opened yet. This has been fixed.
+
+=item *
+
+Various cases of C<delete $::{a}>, C<delete $::{ENV}> etc. causing a crash
+have been fixed. [perl #54044]
+
+=item *
+
+Assigning another typeglob to C<*^R> no longer makes the regular expression
+engine crash.
+
+=item *
+
+C<%{'_<...'}> hashes now set breakpoints on the corresponding C<@{'_<...'}>
+rather than whichever array C<@DB::dbline> is aliased to. [perl #119799]
+
+=item *
+
+Setting C<$!> to EACCESS before calling C<require> could affect
+C<require>'s behaviour. This has been fixed.
+
+=item *
+
+The "Can't use \1 to mean $1 in expression" warning message now only occurs
+on the right-hand (replacement) part of a substitution. Formerly it could
+happen in code embedded in the left-hand side, or in any other quote-like
+operator.
+
+=item *
+
+The C<\N> regular expression escape, when used without the curly braces (to
+mean C<[^\n]>), was ignoring a following C<*> if followed by whitespace
+under /x. It had been this way since C<\N> to mean C<[^\n]> was introduced
+in 5.12.0.
+
+=item *
+
+Blessing into a reference (C<bless $thisref, $thatref>) has long been
+disallowed, but magical scalars for the second like C<$/> and those tied
+were exempt. They no longer are. [perl #119809]
=back
XXX Generate this with:
- perl Porting/acknowledgements.pl v5.19.4..HEAD
+ perl Porting/acknowledgements.pl v5.19.5..HEAD
=head1 Reporting Bugs