This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for 572cd850,406d5545 (signbit)
[perl5.git] / pod / perldelta.pod
index 994b5b8..079513d 100644 (file)
@@ -98,6 +98,15 @@ a deprecation warning, unless that warning category is turned off.
 C<IV_MAX> is typically 2**31 -1 on 32-bit platforms, and 2**63-1 on
 64-bit ones.
 
+=head2 Doing bitwise operations on strings containing code points above
+0xFF is deprecated
+
+The string bitwise operators treat their operands as strings of bytes,
+and values beyond 0xFF are nonsensical in this context.  To operate on
+encoded bytes, first encode the strings.  To operate on code points'
+numeric values, use C<split> and C<map ord>.  In the future, this
+warning will be replaced by an exception.
+
 =head1 Performance Enhancements
 
 XXX Changes which enhance performance without changing behaviour go here.
@@ -139,7 +148,32 @@ XXX
 
 =item *
 
-L<XXX> has been upgraded from version A.xx to B.yy.
+L<Data::Dumper> has been upgraded from version 2.158 to 2.159.
+
+This adds a "Trailingcomma" option, which when enabled adds a trailing comma
+after the last element of dumped arrays and hashes that would otherwise be
+followed immediately by a line break.  [perl #126813]
+
+=item *
+
+L<DynaLoader> has been upgraded from version 1.36 to 1.37.
+
+Fixed an else nesting issue in dynamic loading support for OS/390 (and
+similar systems) that was introduced in 1.36.
+
+=item *
+
+L<utf8> has been upgraded from 1.17 to 1.18.
+
+Partly reverted a micro-optimization to F<lib/utf_heavy.pl> that
+caused self-recursion when it was loaded with C<${^ENCODING}> set.
+[perl #126593]
+
+=item *
+
+The modules L<sigtrap>, L<DB>, and the perl debugger could have under
+rare circumstances, without you expecting it, output containing raw
+control characters.  This has been fixed.
 
 =back
 
@@ -264,7 +298,8 @@ L</Platform Support> section, instead.
 
 =item *
 
-XXX
+F<make_ext.pl> is no longer inappropriately silent.  This was caused
+by an operator precedence error introduced in 5.23.4.
 
 =back
 
@@ -293,6 +328,17 @@ 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. ]
 
+=over 4
+
+=item All Solaris now builds shared libperl
+
+Solaris and variants like OpenIndiana now always build with the shared
+Perl library (Configure -Duseshrplib).  This was required for the
+OpenIndiana builds, but this has also been the setting for Oracle/Sun
+Perl builds for several years.
+
+=back
+
 =head2 New Platforms
 
 XXX List any platforms that this version of perl compiles on, that previous
@@ -302,9 +348,11 @@ source tree.
 
 =over 4
 
-=item XXX-some-platform
+=item OpenIndiana
 
-XXX
+OpenIndiana (continuation of OpenSolaris) builds were not working due
+to problems with the Perl shared library.  This should be working now.
+L<[perl #126958]|https://rt.perl.org/Ticket/Display.html?id=126958>
 
 =back
 
@@ -343,6 +391,22 @@ change.  We do not believe any such files are in existence, but if you
 do have one, submit a ticket at L<mailto:perlbug@perl.org>, and we will
 write a conversion script for you.
 
+=item OS X/Darwin
+
+Builds with both -DDEBUGGING and threading enabled would fail with a
+"panic: free from wrong pool" error when built or tested from Terminal
+on OS X.  This was caused by perl's internal management of the
+environment conflicting with an atfork handler using the libc
+setenv() function to update the environment.
+
+Perl now uses setenv()/unsetenv() to update the environment on OS X.
+[perl #126240]
+
+=item ppc64el floating point
+
+The floating point format of ppc64el (Debian naming for little-endian
+PowerPC) is now detected correctly.
+
 =back
 
 =head1 Internal Changes
@@ -357,7 +421,16 @@ well.
 
 =item *
 
-XXX
+Perl core code and the threads extension have been annotated so that
+if Perl is configured to use threads, during compile-time clang (3.6
+or later) will warn about suspicious uses of mutexes.
+See L<http://clang.llvm.org/docs/ThreadSafetyAnalysis.html> for more
+information.
+
+=item *
+
+The signbit() emulation has been enhanced.  This will help older
+and/or more exotic platforms or configurations.
 
 =back
 
@@ -378,6 +451,37 @@ many characters from the current C<pos()> position and start matching from
 there. However, it was counting back bytes rather than characters, which
 could lead to panics on utf8 strings.
 
+=item *
+
+In some cases operators that return integers would return negative
+integers as large positive integers.  [perl #126635]
+
+=item *
+
+The pipe() operator would assert for DEBUGGING builds instead of
+producing the correct error message.  The condition asserted on is
+detected and reported on correctly without the assertions, so the
+assertions were removed.  [perl #126480]
+
+=item *
+
+In some cases, failing to parse a here-doc would attempt to use freed
+memory.  This was caused by a pointer not being restored correctly.
+[perl #126443]
+
+=item *
+
+C<< @x = sort { *a = 0; $a <=> $b } 0 .. 1 >> no longer frees the GP
+for *a before restoring its SV slot.  [perl #124097]
+
+=item *
+
+Multiple problems with the new hexadecimal floating point printf
+format C<%a> were fixed:
+L<[perl #126582]|https://rt.perl.org/Ticket/Display.html?id=126582>,
+L<[perl #126586]|https://rt.perl.org/Ticket/Display.html?id=126586>,
+L<[perl #126822]|https://rt.perl.org/Ticket/Display.html?id=126822>
+
 =back
 
 =head1 Known Problems