This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for the shift work.
[perl5.git] / pod / perldelta.pod
index f1ba720..d985359 100644 (file)
@@ -5,13 +5,16 @@
 [ 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.23.0
+perldelta - what is new for perl v5.23.1
 
 =head1 DESCRIPTION
 
-This document describes differences between the 5.22.0 release and the 5.23.0
+This document describes differences between the 5.23.0 release and the 5.23.1
 release.
 
+If you are upgrading from an earlier release such as 5.22.0, first read
+L<perl5230delta>, which describes differences between 5.22.0 and 5.23.0.
+
 =head1 Notice
 
 XXX Any important notices here
@@ -24,6 +27,35 @@ here, but most should go in the L</Performance Enhancements> section.
 
 [ List each enhancement as a =head2 entry ]
 
+=head2 Integer shift (C<< << >> and C<< >> >>) now explicitly defined
+
+Negative shifts are reverse shifts: left shift becomes right shift,
+and right shift becomes left shift.
+
+Shifting by the number of bits in a native integer (or more) is zero,
+except when the "overshift" is right shifting a negative value under
+C<use integer>, in which case the result is -1 (arithmetic shift).
+
+Until now negative shifting and overshifting have been undefined
+because they have relied on whatever the C implementation happens
+to do.  For example, for the "overshift" a common behavior C is
+"modulo shift":
+
+  1 >> 64 == 1 >> (64 % 64) == 1 >> 0 == 1  # Common C behavior.
+
+  # And the same for <<, while Perl now produces 0 for both.
+
+Now these behaviors are well-defined under Perl, regardless of what
+the underlying C implementation does.  Note, however, that you cannot
+escape the native integer width.  If you need more bits on the left shift,
+you could use the C<bigint> pragma.
+
+=head2 Postfix dereferencing is no longer experimental
+
+Using the C<postderef> and C<postderef_qq> features no longer emits a warning.
+Existing code that disables that warning category will continue to work. The
+C<5.24> feature bundle now includes those features.
+
 =head1 Security
 
 XXX Any security-related notices go here.  In particular, any security
@@ -116,44 +148,7 @@ XXX
 
 =item *
 
-L<CPAN::Meta::Requirements> has been upgraded from version 2.132 to 2.133.
-
-=item *
-
-L<CPAN::Meta::YAML> has been upgraded from version 0.014 to 0.016.
-
-=item *
-
-L<Getopt::Long> has been upgraded from version 2.45 to 2.46.
-
-=item *
-
-L<HTTP::Tiny> has been upgraded from version 0.054 to 0.056.
-
-=item *
-
-L<Math::BigInt> has been upgraded from version 1.9997 to 1.999701.
-
-Correct the behaviour of bdiv() and bmod() in list context. [perl #124300]
-
-Correct C<< Math::BigInt->new() >> for non-integer input.  [perl #124325]
-
-Speed up Math::BigFloat -> blog(). [perl #124382]
-
-Fix bug in Math::BigFloat's bceil() and bint() methods. [perl #124412]
-
-=item *
-
-L<Math::BigRat> has been upgraded from version 0.2608 to 0.260801.
-
-Correct the behaviour of bdiv() and bmod() in list context. [perl #124303]
-
-=item *
-
-L<perl5db.pl> has been upgraded from version 1.49 to 1.49_01.
-
-User actions are no longer evaluated after the script under the
-debugger finishes.  [perl #71678]
+L<XXX> has been upgraded from version A.xx to B.yy.
 
 =back
 
@@ -339,14 +334,15 @@ L</Modules and Pragmata> section.
 
 =over 4
 
-=item Win32
+=item VMS
 
 =over
 
 =item *
 
-Visual C++ 2013 builds will now execute on XP and higher. Previously they would
-only execute on Vista and higher.
+The minimum supported version of VMS is now v7.3-2, released in 2003.  As a
+side effect of this change, VAX is no longer supported as the terminal
+release of OpenVMS VAX was v7.3 in 2001.
 
 =back
 
@@ -379,8 +375,7 @@ files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
 
 =item *
 
-Duplicating a closed file handle for write no longer creates a
-filename of the form F<GLOB(0xXXXXXXXX)>.  [perl #125115]
+XXX
 
 =back
 
@@ -420,14 +415,14 @@ here.
 
 XXX Generate this with:
 
-  perl Porting/acknowledgements.pl v5.23.0..HEAD
+  perl Porting/acknowledgements.pl v5.23.1..HEAD
 
 =head1 Reporting Bugs
 
 If you find what you think is a bug, you might check the articles recently
 posted to the comp.lang.perl.misc newsgroup and the perl bug database at
-https://rt.perl.org/ .  There may also be information at
-http://www.perl.org/ , the Perl Home Page.
+L<https://rt.perl.org/> .  There may also be information at
+L<http://www.perl.org/> , the Perl Home Page.
 
 If you believe you have an unreported bug, please run the L<perlbug> program
 included with your release.  Be sure to trim your bug down to a tiny but