This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta: Add to-do note for hash changes
[perl5.git] / pod / perldelta.pod
index 6c9ce10..cd2fde3 100644 (file)
@@ -1,5 +1,8 @@
 =encoding utf8
 
+=for to-do
+23b7025ebc definitely needs to be summarised.
+
 =head1 NAME
 
 [ this is a template for a new perldelta file.  Any text flagged as XXX needs
@@ -58,6 +61,13 @@ C<use feature>.
 This stops C<use feature ':all'> from warning, but causes
 C<my sub foo; my sub bar> to warn twice.
 
+=head2 Overridden C<glob> is now passed one argument
+
+C<glob> overrides used to be passed a magical undocumented second argument
+that identified the caller.  Nothing on CPAN was using this, and it got in
+the way of a bug fix, so it was removed.  If you really need to identify
+the caller, see L<Devel::Callsite> on CPAN.
+
 =head1 Deprecations
 
 XXX Any deprecated features, syntax, modules etc. should be listed here.  In
@@ -184,6 +194,20 @@ XXX
 
 =item *
 
+L<File::DosGlob> has been upgraded from version 1.08 to 1.09.  The internal
+cache of file names that it keeps for each caller is now freed when that
+caller is freed.  This means
+C<< use File::DosGlob 'glob'; eval 'scalar <*>' >> no longer leaks memory.
+
+=item *
+
+L<File::Glob> has been upgraded from version 1.18 to 1.19.  File::Glob has
+had exactly the same fix as File::DosGlob.  Since it is what Perl's own
+C<glob> operator itself uses (except on VMS), this means
+C<< eval 'scalar <*>' >> no longer leaks.
+
+=item *
+
 L<GDBM_File> has been upgraded from version 1.14 to 1.15. The undocumented
 optional fifth parameter to C<TIEHASH> has been removed. This was intended
 to provide control of the callback used by C<gdbm*> functions in case of
@@ -278,7 +302,11 @@ XXX Changes (i.e. rewording) of diagnostic messages go here
 
 =item *
 
-XXX Describe change here
+L<Constant(%s): Call to &{$^H{%s}} did not return a defined value|perldiag/Constant(%s): Call to &{$^H{%s}} did not return a defined value>
+
+Constant overloading that returns C<undef> results in this error message.
+For numeric constants, it used to say "Constant(undef)".  "undef" has been
+replaced with the number itself. 
 
 =back
 
@@ -445,6 +473,10 @@ bugs.
 The previous behaviour can still be enabled by running F<Configure> with
 B<-Accflags=-DPERL_SAWAMPERSAND>.
 
+=item *
+
+PL_glob_index is gone.
+
 =back
 
 =head1 Selected Bug Fixes
@@ -515,6 +547,27 @@ bug was introduced in Perl 5.14.
 Under some circumstances, C<local *method=...> would fail to reset method
 caches upon scope exit.
 
+=item *
+
+C</[.foo.]/> is no longer an error, but produces a warning (as before) and
+is treated as C</[.fo]/> [perl #115818].
+
+=item *
+
+C<goto $tied_var> now calls FETCH before deciding what type of goto
+(subroutine or label) this is.
+
+=item *
+
+Renaming packages through glob assignment
+(C<*Foo:: = *Bar::; *Bar:: = *Baz::>) in combination with C<m?...?> and
+C<reset> no longer makes threaded builds crash.
+
+=item *
+
+An earlier release in the 5.17.x series could crash if user code prevented
+_charnames from loading via C<$INC{'_charnames.pm'}++>.
+
 =back
 
 =head1 Known Problems