[ 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
[ 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
=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.
-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) = @_>.
+=item * readline is faster
+
+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
=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
=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]
+
+=item *
+
+Since 5.18 for testing purposes we have included support for
+building perl with a variety of non-standard, and non-recommended
+hash functions. Since we do not recommend the use of these functions
+we have removed them and their corresponding build options. Specifically
+this includes the following build options:
+
+ PERL_HASH_FUNC_SDBM
+ PERL_HASH_FUNC_DJB2
+ PERL_HASH_FUNC_SUPERFAST
+ PERL_HASH_FUNC_MURMUR3
+ PERL_HASH_FUNC_ONE_AT_A_TIME
+ PERL_HASH_FUNC_ONE_AT_A_TIME_OLD
+ PERL_HASH_FUNC_MURMUR_HASH_64A
+ PERL_HASH_FUNC_MURMUR_HASH_64B
=back
=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
=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]
+XXX
=back
XXX Generate this with:
- perl Porting/acknowledgements.pl v5.25.3..HEAD
+ perl Porting/acknowledgements.pl v5.25.5..HEAD
=head1 Reporting Bugs