This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta - More copy-editing
[perl5.git] / pod / perldelta.pod
index 72fd668..7fa6d54 100644 (file)
@@ -4,6 +4,9 @@
 To do:
 df8c7dee Fix segfault in filehandle duplication
 b66f3475 Fix PerlIO_get_cnt and friends
+e94bb470 install useful Regexp::CARP_TRACE from Carp
+9d32676e [perl #117265] fix various problems with safesyscalls
+531d75b0 [perl #89502]: Add support for Atari FreeMiNT platform
 
 =head1 NAME
 
@@ -55,18 +58,18 @@ characters.  [perl #112790, #116907]
 
 =head2 New slice syntax
 
-The new C<%hash{...}> and C<@array[...]> syntax returns a list of key/value (or
+The new C<%hash{...}> and C<%array[...]> syntax returns a list of key/value (or
 index/value) pairs.
 
 =head2 EBCDIC support
 
-Core Perl now mostly works on EBCDIC platforms.   This is not true of
-many modules, including some which are shipped with this release.  If
-you have resources to help continue this process, including test
-machines, send email to L<mailto:perl-mvs@perl.org>.
+Core Perl now mostly works on EBCDIC platforms.  This is not true of many
+modules, including some which are shipped with this release.  If you have
+resources to help continue this process, including test machines, send email to
+L<mailto:perl-mvs@perl.org>.
 
-As a result of this, certain C<XS> functions are now deprecated; see
-L</Internal Changes>.
+As a result of this, certain XS functions are now deprecated; see L</Internal
+Changes>.
 
 =head1 Security
 
@@ -134,7 +137,17 @@ numeric values under the hood.)
 
 =head1 Deprecations
 
-XXX Any deprecated features, syntax, modules etc. should be listed here.
+=head2 Literal control characters in variable names
+
+This deprecation affects things like $\cT, where \cT is a literal control in
+the source code.  Surprisingly, it appears that originally this was intended as
+the canonical way of accessing variables like $^T, with the caret form only
+being added as an alternative.
+
+The literal control form is being deprecated for two main reasons.  It has what
+are likely unfixable bugs, such as $\cI not working as an alias for $^I, and
+their usage not being portable to non-ASCII platforms: While $^T will work
+everywhere, \cT is whitespace in EBCDIC.
 
 =head2 Module removals
 
@@ -216,6 +229,10 @@ C<B::CV::GV>, changing the return value from a C<B::SPECIAL> object on a
 C<NULL> C<CvGV> to C<undef>.  C<B::CV::GV> again returns a C<B::SPECIAL> object
 in this case.  [perl #119351]
 
+B version 1.44 (Perl 5.19.2) introduced four new B::OP methods, C<slabbed>,
+C<savefree>, C<static> and C<folded>, but these have never actually worked
+until now.  They used to croak.
+
 =item *
 
 L<B::Concise> has been upgraded from version 0.98 to 0.99.
@@ -271,6 +288,13 @@ This module now works on EBCDIC platforms.
 
 =item *
 
+L<CPAN> has been upgraded from version 2.00 to 2.03-TRIAL.
+
+Numerous updates and bug fixes are incorporated.  See the F<Changes> file for
+full details.
+
+=item *
+
 L<CPAN::Meta> has been upgraded from version 2.132140 to 2.132510.
 
 No changes have been made to the installed code other than the version bump to
@@ -305,6 +329,14 @@ fixed.
 
 =item *
 
+L<diagnostics> has been upgraded from version 1.32 to 1.33.
+
+C<=back> is now treated as the end of a warning description, thus keeping any
+trailing data in the file from showing up as part of the last warning's
+description.  [perl #119817]
+
+=item *
+
 L<DynaLoader> has been upgraded from version 1.19 to 1.20.
 
 The documentation now makes it clear, as has always been the case, that
@@ -410,6 +442,14 @@ A minor internals-only change has been made to the XS code.
 
 =item *
 
+L<IO::Socket> has been upgraded from version 1.36 to 1.37.
+
+The C<connect> method has been updated in the light of changes made in the
+assignment of sockets error codes to $! on Windows (see L</Incompatible
+Changes>).
+
+=item *
+
 L<IPC::Open3> has been upgraded from version 1.15 to 1.16.
 
 This upgrade is part of a larger change to preserve referential identity when
@@ -418,6 +458,12 @@ nonexistent array elements.
 
 =item *
 
+L<JSON::PP> has been patched from version 2.27202 to 2.27202_01.
+
+A precedence issue has been fixed in the return value of a private subroutine.
+
+=item *
+
 L<Locale::Codes> has been upgraded from version 3.26 to 3.27.
 
 New codes have been added and the (deprecated) set of FIPS-10 country codes has
@@ -441,10 +487,15 @@ by using SSize_t instead of I32 for array indices.
 
 =item *
 
-L<Module::CoreList> has been upgraded from version 2.97 to 2.98.
+L<Module::CoreList> has been upgraded from version 2.97 to 2.99.
 
 The list of Perl versions covered has been updated.
 
+A function C<is_core> has been added, which returns true if the specified
+module was bundled with Perl.  Optionally you can specify a minimum version of
+the module, and the specific version of Perl you're interested in (defaults to
+$^V, the running version of Perl).
+
 =item *
 
 L<Module::Load::Conditional> has been upgraded from version 0.54 to 0.58.
@@ -474,7 +525,7 @@ The new kvaslice and kvhslice operators have been added.
 
 =item *
 
-L<parent> has been upgraded from version 0.226 to 0.227.
+L<parent> has been upgraded from version 0.226 to 0.228.
 
 No changes have been made to the installed code other than the version bump to
 keep in sync with the latest CPAN release.
@@ -551,6 +602,13 @@ Term::ReadLine::EditLine support has been added.
 
 =item *
 
+L<Test::Simple> has been patched from version 0.98 to 0.98_06.
+
+A precedence issue has been fixed in the return value of a private subroutine
+in L<Test::Builder>.
+
+=item *
+
 L<Time::Piece> has been upgraded from version 1.22 to 1.23.
 
 Day of year parsing (like "%y%j") has been fixed.
@@ -868,6 +926,11 @@ expression matches on very large strings now succeed as expected.
 
 =item *
 
+A bug that was fixed in Perl 5.15.4 is now tested by the new test script
+F<t/io/eintr_print.t>.  [perl #119097]
+
+=item *
+
 The new test scripts F<t/op/kvaslice.t> and F<t/op/kvhslice.t> test the new
 index/value array slice and key/value hash slice syntax respectively.
 
@@ -878,6 +941,11 @@ now tested by the new test script F<t/op/rt119311.t>.
 
 =item *
 
+The new test script F<t/op/waitpid.t> tests the fix for [perl #85228] (see
+L</Selected Bug Fixes>).
+
+=item *
+
 The latest copyright years in the top-level F<README> file and the B<perl -v>
 output are now tested as matching each other by the new test script
 F<t/porting/copyright.t>
@@ -940,8 +1008,21 @@ L</Modules and Pragmata> section.
 
 =over 4
 
+=item VMS
+
+The C<PERL_ENV_TABLES> feature to control the population of %ENV at perl
+start-up was broken in Perl 5.16.0 but has now been fixed.
+
+=item Win32
+
+C<rename> and C<link> on Win32 now set $! to ENOSPC and EDQUOT when
+appropriate.  [perl #119857]
+
 =item WinCE
 
+Perl now builds again on WinCE, following locale-related breakage (WinCE has
+non-existent locale support) introduced around 5.19.1.  [perl #119443]
+
 The building of XS modules has largely been restored.  Several still cannot
 (yet) be built but it is now possible to build Perl on WinCE with only a couple
 of further patches (to L<Socket> and L<ExtUtils::MakeMaker>), hopefully to be
@@ -986,8 +1067,8 @@ of the underlying hash key when that key is not stored as a SV.  [perl
 
 =item *
 
-Certain rarely used functions and macros available to C<XS> code are
-now, or are planned to be deprecated.  These are:
+Certain rarely used functions and macros available to XS code are now, or are
+planned to be, deprecated.  These are:
 C<utf8n_to_uvuni> (use C<utf8_to_uvchr_buf> instead),
 C<utf8_to_uni_buf> (use C<utf8_to_uvchr_buf> instead),
 C<valid_utf8_to_uvuni> (use C<utf8_to_uvchr_buf> instead),
@@ -1177,6 +1258,17 @@ far fewer false positives.  In particular, C<@hash{+function_returning_a_list}>
 and C<@hash{ qw "foo bar baz" }> no longer warn.  The same applies to array
 slices.  [perl #28380, #114024]
 
+=item *
+
+C<$! = EINVAL; waitpid(0, WNOHANG);> no longer goes into an internal infinite
+loop.  [perl #85228]
+
+=item *
+
+Perl 5.19.3 accidentally caused C<\(1+2)> to return a reference to the same
+mutable scalar each time, so that modifications affect future evaluations.
+This has been fixed.  [perl #119501]
+
 =back
 
 =head1 Known Problems