This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for 6b2c7479, dd688536
[perl5.git] / pod / perldelta.pod
index c182040..28c1cc0 100644 (file)
@@ -5,15 +5,15 @@
 [ 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.25.4
+perldelta - what is new for perl v5.25.8
 
 =head1 DESCRIPTION
 
-This document describes differences between the 5.25.3 release and the 5.25.4
+This document describes differences between the 5.25.7 release and the 5.25.8
 release.
 
-If you are upgrading from an earlier release such as 5.25.2, first read
-L<perl5253delta>, which describes differences between 5.25.2 and 5.25.3.
+If you are upgrading from an earlier release such as 5.25.6, first read
+L<perl5257delta>, which describes differences between 5.25.6 and 5.25.7.
 
 =head1 Notice
 
@@ -27,6 +27,16 @@ here, but most should go in the L</Performance Enhancements> section.
 
 [ List each enhancement as a =head2 entry ]
 
+=head2 New Hash Function For 64-bit Builds
+
+We have switched to a hybrid hash function to better balance
+performance for short and long keys.
+
+For short keys, 16 bytes and under, we use an optimised variant of
+One At A Time Hard, and for longer keys we use Siphash 1-3. For very
+long keys this is a big improvement in performance. For shorter keys
+there is a modest improvement.
+
 =head1 Security
 
 XXX Any security-related notices go here.  In particular, any security
@@ -87,11 +97,16 @@ There may well be none in a stable release.
 
 =over 4
 
-=item *
+=item * New Faster Hash Function on 64 bit builds
+
+We use a different hash function for short and long keys. This should
+improve performance and security, especially for long keys.
+
+=item * readline is faster
 
-The rather slow implementation for the experimental subroutine signatures
-feature has been made much faster; it is now comparable in speed with the
-old-style C<my ($a, $b, @c) = @_>.
+Reading from a file line-by-line with c<readline()> or C<< <> >> should
+now typically be faster due to a better implementation of the code that
+searches for the next newline character.
 
 =back
 
@@ -125,7 +140,11 @@ L<XXX> has been upgraded from version A.xx to B.yy.
 
 =item *
 
-L<NEXT> has been upgraded from version 0.65 to 0.67.
+L<Pod::Simple> has been upgraded from version 3.32 to 3.35.
+
+=item *
+
+L<Test::Simple> has been upgraded from version 1.302067 to 1.302071.
 
 =back
 
@@ -246,7 +265,8 @@ L</Platform Support> section, instead.
 
 =item *
 
-XXX
+Zero out the alignment bytes when calculating the bytes for 80-bit C<NaN>
+and C<Inf> to make builds more reproducible. [perl #130133]
 
 =back
 
@@ -329,9 +349,8 @@ well.
 
 =item *
 
-Three new ops, C<OP_ARGELEM>, C<OP_ARGDEFELEM> and C<OP_ARGCHECK> have
-been added. These are intended principally to implement the individual
-elements of a subroutine signature, plus any overall checking required.
+A new API function, C<sv_set_undef(sv)>, has been added. This is
+equivalent to C<sv_setsv(sv, &PL_sv_undef)>, but is more efficient.
 
 =back
 
@@ -346,88 +365,7 @@ files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
 
 =item *
 
-Problems with in-place array sorts: code like C<@a = sort { ... } @a>,
-where the source and destination of the sort are the same plain array, are
-optimised to do less copying around. Two side-effects of this optimisation
-were that the contents of C<@a> as visible to to sort routine were
-partially sorted, and under some circumstances accessing C<@a> during the
-sort could crash the interpreter. Both these issues have been fixed, and
-Sort functions see the original value of C<@a>.
-
-=item *
-
-Non-ASCII string delimiters are now reported correctly in error messages
-for unterminated strings.  [perl #128701]
-
-=item *
-
-C<pack("p", ...)> used to emit its warning ("Attempt to pack pointer to
-temporary value") erroneously in some cases, but has been fixed.
-
-=item *
-
-C<@DB::args> is now exempt from "used once" warnings.  The warnings only
-occurred under B<-w>, because F<warnings.pm> itself uses C<@DB::args>
-multiple times.
-
-=item *
-
-The use of built-in arrays or hash slices in a double-quoted string no
-longer issues a warning ("Possible unintended interpolation...") if the
-variable has not been mentioned before.  This affected code like
-C<qq|@DB::args|> and C<qq|@SIG{'CHLD', 'HUP'}|>.  (The special variables
-C<@-> and C<@+> were already exempt from the warning.)
-
-=item *
-
-C<gethostent> and similar functions now perform a null check internally, to
-avoid crashing with torsocks.  This was a regression from 5.22.  [perl
-#128740]
-
-=item *
-
-C<defined *{'!'}>, C<defined *{'['}>, and C<defined *{'-'}> no longer leak
-memory if the typeglob in question has never been accessed before.
-
-=item *
-
-In 5.25.4 fchown() was changed not to accept negative one as an argument
-because in some platforms that is an error.  However, in some other platforms
-that is an acceptable argument.  This change has been reverted [perl #128967].
-
-=item *
-
-Mentioning the same constant twice in a row (which is a syntax error) no
-longer fails an assertion under debugging builds.  This was a regression
-from 5.20.  [perl #126482]
-
-=item *
-
-Many issues relating to C<printf "%a"> of hexadecimal floating point
-were fixed.  In addition, the "subnormals" (formerly known as "denormals")
-floating point anumbers are now supported both with the plain IEEE 754
-floating point numbers (64-bit or 128-bit) and the x86 80-bit
-"extended precision".  Note that subnormal hexadecimal floating
-point literals will give a warning about "exponent underflow".
-[perl #128843, #128889, #128890, #128893, #128909, #128919]
-
-=item *
-
-A regression in 5.24 with C<tr/\N{U+...}/foo/> when the code point was between
-128 and 255 has been fixed. [perl #128734].
-
-=item *
-
-A regression from the previous development release, 5.23.3, where
-compiling a regular expression could crash the interpreter has been
-fixed. [perl #128686].
-
-=item *
-
-Use of a string delimiter whose code point is above 2**32 is now
-supported on platforms that allow this.  Note that this is non-portable,
-and is based on Perl's extension to UTF-8, and is probably not
-displayable nor enterable by any editor. [perl #128738]
+XXX
 
 =back
 
@@ -467,7 +405,7 @@ here.
 
 XXX Generate this with:
 
-  perl Porting/acknowledgements.pl v5.25.3..HEAD
+  perl Porting/acknowledgements.pl v5.25.5..HEAD
 
 =head1 Reporting Bugs