=encoding utf8 =head1 NAME perldelta - what is new for perl v5.31.7 =head1 DESCRIPTION This document describes differences between the 5.31.6 release and the 5.31.7 release. If you are upgrading from an earlier release such as 5.31.5, first read L, which describes differences between 5.31.5 and 5.31.6. =head1 Core Enhancements =head2 The isa Operator A new experimental infix operator called C tests whether a given object is an instance of a given class or a class derived from it: if( $obj isa Package::Name ) { ... } For more detail see L. =head1 Incompatible Changes =head2 C<\p{I}> properties now always override official Unicode ones Previously, if and only if a user-defined property was declared prior to the compilation of the regular expression pattern containing it, its definition was used instead of any official Unicode property with the same name. Now, it always overrides the official property. This change could break existing code that relied (likely unwittingly) on the previous behavior. Without this fix, if Unicode released a new version with a new property that happens to have the same name as the one you had long been using, your program would break when you upgraded to a perl that used that new Unicode version. See L. [L] =head1 Deprecations =head2 Module removals The following modules will be removed from the core distribution in a future release, and will at that time need to be installed from CPAN. Distributions on CPAN which require these modules will need to list them as prerequisites. The core versions of these modules will now issue C<"deprecated">-category warnings to alert you to this fact. To silence these deprecation warnings, install the modules in question from CPAN. Note that these are (with rare exceptions) fine modules that you are encouraged to continue to use. Their disinclusion from core primarily hinges on their necessity to bootstrapping a fully functional, CPAN-capable Perl installation, not usually on concerns over their design. =over =item B::Debug B::Debug is no longer shipped with Perl, you can still install it from CPAN. =back =head1 Modules and Pragmata =head2 Updated Modules and Pragmata =over 4 =item * L has been upgraded from version 1.77 to 1.78. =item * L has been upgraded from version 1.51 to 1.52. =item * L has been upgraded from version 2.090 to 2.093. =item * L has been upgraded from version 2.090 to 2.093. =item * L now points to version 2.27 instead of version 2.27-TRIAL2. =item * L has been upgraded from version 3.55 to 3.56. =item * L has been upgraded from version 1.10 to 1.11. =item * L has been upgraded from version 7.38 to 7.42. =item * L has been upgraded from version 1.56 to 1.57. =item * L has been upgraded from version 1.08 to 1.09. =item * L has been upgraded from version 0.95 to 0.96. =item * L is now a dual-life module. =item * L has been upgraded from version 2.090 to 2.093. =item * L has been upgraded from version 5.20191120 to 5.20191220. =item * L has been upgraded from version 2.71 to 2.72. =item * L has been upgraded from version 1.44 to 1.45. =item * L has been upgraded from version 3.17 to 3.18. fix to disallow vstring magic strings over 2GB. =item * L has been upgraded from version 1.302169 to 1.302170. =item * L has been upgraded from version 0.11 to 0.13. =item * L has been upgraded from version 2.44 to 2.45. =item * L has been upgraded from version 1.45 to 1.46. =item * L has been upgraded from version 1.04 to 1.05. =back =head1 Documentation =head2 Changes to Existing Documentation We have attempted to update the documentation to reflect the changes listed in this document. If you find any we have missed, send email to L. Additionally, the following selected changes have been made: =head3 L =over 4 =item Simplify a couple regnode definitions Update BOUND and NBOUND definitions. =item Add ANYOFHs regnode This node is like ANYOFHb, but is used when more than one leading byte is the same in all the matched code points. ANYOFHb is used to avoid having to convert from UTF-8 to code point for something that won't match. It checks that the first byte in the UTF-8 encoded target is the desired one, thus ruling out most of the possible code points. =back =head3 L =over 4 =item Add documentation for experimental 'isa' operator (S experimental::isa) This warning is emitted if you use the (C) operator. This operator is currently experimental and its behaviour may change in future releases of Perl. =back =head3 L =over 4 =item caller Like L|/__FILE__> and L|/__LINE__>, the filename and line number returned here may be altered by the mechanism described at L. =item __FILE__ It can be altered by the mechanism described at L. =item __LINE__ It can be altered by the mechanism described at L. =item return Mention that you cannot return from do BLOCK =back =head3 L =over 4 =item Update documentation for UTF8f =item Add missing '=for apidoc' lines =back =head3 L =over 4 =item Perl strings are NOT the same as C strings =back =head3 L =over 4 =item 'isa' operator is experimental This is an experimental feature and is available from Perl 5.31.6 when enabled by C. It emits a warning in the C category. =back =head3 L =over 4 =item Fix some typos. =back =head3 L =over 4 =item Remove ${^FEATURE_BITS}. =back =head1 Utility Changes =head2 L =over 4 =item Adjust bug tracker homepage url to point to GitHub. =back =head1 Configuration and Compilation =head2 F =over 4 =item Check if the compiler can handle inline attribute. =item Check for character data alignment. =back =head1 Testing Tests were added and changed to reflect the other additions and changes in this release. Furthermore, these significant changes were made: =over 4 =item t/charset_tools.pl Avoid some work on ASCII platforms =item t/re/regexp.t Speed up many regex tests on ASCII platform =item t/re/pat.t Skip tests that don't work on EBCDIC =back =head1 Platform Support =head2 Platform-Specific Notes =over 4 =item Solaris C will now find recent versions of the Oracle Developer Studio compiler, which are found under C. =back =head1 Selected Bug Fixes =over 4 =item Fix MYMALLOC (PERL_MALLOC) build on Windows =item \p{user-defined} overrides official Unicode [L] Prior to this patch, they only sometimes overrode. =item Regular Expressions Properly handle filled /il regnodes and multi-char folds =item Compilation error during make minitest [L] move the implementation of %-, %+ into core =item read beyond buffer in grok_inf_nan [L] =item Workaround glibc bug with LC_MESSAGES [L] =back =head1 Acknowledgements Perl 5.31.7 represents approximately 4 weeks of development since Perl 5.31.6 and contains approximately 9,300 lines of changes across 450 files from 22 authors. Excluding auto-generated files, documentation and release tools, there were approximately 5,200 lines of changes to 280 .pm, .t, .c and .h files. Perl continues to flourish into its fourth decade thanks to a vibrant community of users and developers. The following people are known to have contributed the improvements that became Perl 5.31.7: Ask Bjørn Hansen, brian d foy, Bryan Stenson, Chad Granum, Chris 'BinGOs' Williams, Dan Book, David Mitchell, Felipe Gasper, James E Keenan, Karl Williamson, Matthew Horsfall, Max Maischein, Nicolas R., Pali, Paul Evans, Ricardo Signes, Sawyer X, Stefan Seifert, Steve Hay, Tomasz Konojacki, Tony Cook, Vitali Peil. The list above is almost certainly incomplete as it is automatically generated from version control history. In particular, it does not include the names of the (very much appreciated) contributors who reported issues to the Perl bug tracker. Many of the changes included in this version originated in the CPAN modules included in Perl's core. We're grateful to the entire CPAN community for helping Perl to flourish. For a more complete list of all of Perl's historical contributors, please see the F file in the Perl source distribution. =head1 Reporting Bugs If you find what you think is a bug, you might check the perl bug database at L. There may also be information at L, the Perl Home Page. If you believe you have an unreported bug, please run the L program included with your release. Be sure to trim your bug down to a tiny but sufficient test case. Your bug report, along with the output of C, will be sent off to perlbug@perl.org to be analysed by the Perl porting team. If the bug you are reporting has security implications which make it inappropriate to send to a publicly archived mailing list, then see L for details of how to report the issue. =head1 Give Thanks If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, you can do so by running the C program: perlthanks This will send an email to the Perl 5 Porters list with your show of thanks. =head1 SEE ALSO The F file for an explanation of how to view exhaustive details on what changed. The F file for how to build Perl. The F file for general stuff. The F and F files for copyright information. =cut