This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta b3893bfa90e8810497e2f81458a5a46db611cadf
[perl5.git] / pod / perldelta.pod
index 7ef8c7f..e1992b4 100644 (file)
@@ -50,6 +50,13 @@ XXX For a release on a stable branch, this section aspires to be:
 
 [ List each incompatible change as a =head2 entry ]
 
+=head2 Over-radix digits in floating point literals
+
+Octal and binary floating point literals used to permit any hexadecimal
+digit to appear after the radix point.  The digits are now restricted
+to those appropriate for the radix, as digits before the radix point
+always were.
+
 =head1 Deprecations
 
 XXX Any deprecated features, syntax, modules etc. should be listed here.
@@ -60,6 +67,12 @@ Assigning a non-zero value to L<C<$[>|perlvar/$[> has been deprecated
 since Perl 5.12, but was never given a deadline for removal.  This has
 now been scheduled for Perl 5.30.
 
+=head2 hostname() won't accept arguments in Perl 5.32
+
+Passing arguments to C<Sys::Hostname::hostname()> was already deprecated,
+but didn't have a removal date.  This has now been scheduled for Perl
+5.32.  [perl #124349]
+
 =head2 Module removals
 
 XXX Remove this section if not applicable.
@@ -141,6 +154,11 @@ L<Locale::Codes> has been upgraded from version 3.54 to 3.55
 B<NOTE>: L<Locale::Codes> is deprecated in core and will be removed
 from Perl 5.30.
 
+=item *
+
+L<Data::Dumper> has been upgraded from version 2.167_02 to 2.168.
+Quoting of glob names now obeys the Useqq option [perl #119831].
+
 =back
 
 =head2 Removed Modules and Pragmata
@@ -178,12 +196,54 @@ section.
 
 Additionally, the following selected changes have been made:
 
+=head3 L<perlapi>
+
+The documentation of C<newGIVENOP()> has been belatedly updated to
+account for the removal of lexical C<$_>.
+
+The API functions C<newCONSTSUB()> and C<newCONSTSUB_flags()> are
+documented much more comprehensively than before.
+
+=head3 L<perlop>
+
+The general explanation of operator precedence and associativity has
+been corrected and clarified.  [perl #127391]
+
+The documentation for the C<\> referencing operator now explains the
+unusual context that it supplies to its operand.  [perl #131061]
+
+=head3 L<perlsyn>
+
+The means to disambiguate between code blocks and hash constructors,
+already documented in L<perlref>, are now documented in L<perlsyn> too.
+[perl #130958]
+
+=head3 L<perlfunc>
+
+The documentation for the C<exists> operator no longer says that
+autovivification behaviour "may be fixed in a future release".
+We've determined that we're not going to change the default behaviour.
+[perl #127712]
+
+A couple of small details in the documentation for the C<bless> operator
+have been clarified.  [perl #124428]
+
 =head3 L<perluniprops>
 
 For each binary table or property, the documentation now includes which
 characters in the range C<\x00-\xFF> it matches, as well as a list of
 the first few ranges of code points matched above that.
 
+=head3 L<perldebguts>
+
+The description of the conditions under which C<DB::sub()> will be called
+has been clarified.  [perl #131672]
+
+=head3 L<perlintern>
+
+The internal functions C<newXS_len_flags()> and C<newATTRSUB_x()> are
+now documented.
+
 =over 4
 
 =item *
@@ -250,6 +310,12 @@ Warnings that a variable or subroutine "masks earlier declaration in same
 ...", or that an C<our> variable has been redeclared, have been moved to a
 new warnings category "shadow".  Previously they were in category "misc".
 
+=item *
+
+The deprecation warning from C<Sys::Hostname::hostname()> saying that
+it doesn't accept arguments now states the Perl version in which the
+warning will be upgraded to an error.  [perl #124349]
+
 =back
 
 =head1 Utility Changes
@@ -373,13 +439,25 @@ XXX Changes which affect the interface available to C<XS> code go here.  Other
 significant internal changes for future core maintainers should be noted as
 well.
 
-[ List each change as an =item entry ]
-
 =over 4
 
 =item *
 
-XXX
+XS modules can now automatically get reentrant versions of system
+functions on threaded perls.
+
+By saying
+
+ #define PERL_REENTRANT
+
+near the beginning of an C<XS> file, it will be compiled so that
+whatever reentrant functions perl knows about on that system will
+automatically and invisibly be used instead of the plain, non-reentrant
+versions.  For example, if you write C<getpwnam()> in your code, on a
+system that has C<pwnam_r()> all calls to the former will be translated
+invisibly into the latter.  This does not happen except on threaded
+perls, as they aren't needed otherwise.  Be aware that which functions
+have reentrant versions varies from system to system.
 
 =back
 
@@ -398,11 +476,31 @@ XXX
 
 =item *
 
+The canonical truth value no longer has a spurious special meaning as
+a callable.  It used to be a magic placeholder for a missing C<import>
+or C<unimport> method.  It is now treated like any other string C<1>.
+[perl #126042]
+
+=item *
+
 Perl's own C<malloc> no longer gets confused by attempts to allocate
 more than a gigabyte on a 64-bit platform.  [perl #119829]
 
 =item *
 
+An identity C<tr///> transformation on a reference is no longer mistaken
+for that reference for the purposes of deciding whether it can be
+assigned to.  [perl #130578]
+
+=item *
+
+Lengthy hexadecimal, octal, or binary floating point literals no
+longer cause undefined behaviour when parsing digits that are of such
+low significance that they can't affect the floating point value.
+[perl #131894]
+
+=item *
+
 C<open $$scalarref...> and similar invocations no longer leak the file
 handle.  [perl #115814]
 
@@ -411,6 +509,11 @@ handle.  [perl #115814]
 The default typemap, by avoiding C<newGVgen>, now no longer leaks when
 XSUBs return file handles (C<PerlIO *> or C<FILE *>).  [perl #115814]
 
+=item *
+
+Creating a C<BEGIN> block as an XS subroutine with a prototype no longer
+crashes because of the early freeing of the subroutine.
+
 =back
 
 =head1 Known Problems