This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for [perl #75174] (dirp_dup)
[perl5.git] / pod / perldelta.pod
index d549441..1b98619 100644 (file)
@@ -118,6 +118,13 @@ has come to rely on the incorrect behavior.
 
 [ List each incompatible change as a =head2 entry ]
 
+=head2 Directory handles not copied to threads
+
+On systems that do not have a C<fchdir> function, newly-created threads no
+longer inherit directory handles from their parent threads. Such programs
+would probably have crashed anyway
+L<[perl #75154]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=75154>.
+
 =head1 Deprecations
 
 XXX Any deprecated features, syntax, modules etc. should be listed here.
@@ -169,6 +176,14 @@ XXX
 
 =item *
 
+C<Carp> has been upgraded from version 1.18 to 1.19.
+
+It no longer autovivifies the C<*CORE::GLOBAL::caller> glob, something it
+started doing in 1.18, which was released with perl 5.13.4
+L<[perl #78082]|http://rt.perl.org/rt3//Public/Bug/Display.html?id=78082>
+
+=item *
+
 C<Data::Dumper> has been upgraded from version 2.128 to 2.129.
 
 C<Dumpxs> no longer crashes with globs returned by C<*$io_ref>
@@ -221,6 +236,10 @@ working with tainted values
 
 =item *
 
+C<Math::BigInt> has been upgraded from version 1.95 to 1.96.
+
+=item *
+
 C<NEXT> has been upgraded from version 0.64 to 0.65.
 
 =item *
@@ -237,6 +256,10 @@ L<[perl #72340]|http://rt.perl.org/rt3//Public/Bug/Display.html?id=72340>.
 
 =item *
 
+C<threads> has been upgrade from version 1.77_03 to 1.81
+
+=item *
+
 C<Unicode::Collate> has been upgraded from version 0.59 to 0.60
 
 =item *
@@ -316,7 +339,24 @@ XXX Changes (i.e. rewording) of diagnostic messages go here
 
 =item *
 
-XXX
+The 'Layer does not match this perl' error message has been replaced with
+these more helpful messages:
+
+=over 4
+
+=item *
+
+PerlIO layer function table size (%d) does not match size expected by this
+perl (%d)
+
+=item *
+
+PerlIO layer instance size (%d) does not match size expected by this perl
+(%d)
+
+=back
+
+L<[perl #73754]|http://rt.perl.org/rt3//Public/Bug/Display.html?id=73754>
 
 =back
 
@@ -417,9 +457,21 @@ L</Modules and Pragmata> section.
 
 =over 4
 
-=item XXX-some-platform
+=item Mac OS X
 
-XXX
+Early versions of Mac OS X (Darwin) had buggy implementations of the
+C<setregid>, C<setreuid>, C<setrgid> and C<setruid> functions, so perl
+would pretend they did not exist.
+
+These functions are now recognised on Mac OS 10.5 (Leopard; Darwin 9) and
+higher, as they have been fixed
+L<[perl #72990]|http://rt.perl.org/rt3//Public/Bug/Display.html?id=72990>.
+
+=item Windows
+
+C<$Config{gccversion}> is now set correctly when perl is built using the
+mingw64 compiler from L<http://mingw64.org>
+L<[perl #73754]|http://rt.perl.org/rt3//Public/Bug/Display.html?id=73754>.
 
 =back
 
@@ -544,9 +596,33 @@ perl 5.12.
 
 =item *
 
-The C<-C> option can now be followed by other options
+The C<-C> command line option can now be followed by other options
 L<[perl #72434]|http://rt.perl.org/rt3//Public/Bug/Display.html?id=72434>.
 
+=item *
+
+Assigning a glob to a PVLV used to convert it to a plain string. Now it
+works correctly, and a PVLV can hold a glob. This would happen when a
+nonexistent hash or array element was passed to a subroutine:
+
+  sub { $_[0] = *foo }->($hash{key});
+  # $_[0] would have been the string "*main::foo"
+
+It also happened when a glob was assigned to, or returned from, an element
+of a tied array or hash
+L<[perl #36051]|http://rt.perl.org/rt3//Public/Bug/Display.html?id=36051>.
+
+=item *
+
+Creating a new thread when directory handles were open used to cause a
+crash, because the handles were not cloned, but simply passed to the new
+thread, resulting in a double free.
+
+Now directory handles are properly, on systems that have a C<fchdir>
+function. On other systems, new threads simply do not inherit directory
+handles from their parent threads
+L<[perl #75154]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=75154>.
+
 =back
 
 =head1 Known Problems