5 [ this is a template for a new perldelta file. Any text flagged as XXX needs
6 to be processed before release. ]
8 perldelta - what is new for perl v5.31.7
12 This document describes differences between the 5.31.6 release and the 5.31.7
15 If you are upgrading from an earlier release such as 5.31.5, first read
16 L<perl5316delta>, which describes differences between 5.31.5 and 5.31.6.
20 XXX Any important notices here
22 =head1 Core Enhancements
24 XXX New core language features go here. Summarize user-visible core language
25 enhancements. Particularly prominent performance optimisations could go
26 here, but most should go in the L</Performance Enhancements> section.
28 =head2 The isa Operator
30 A new experimental infix operator called C<isa> tests whether a given object
31 is an instance of a given class or a class derived from it:
33 if( $obj isa Package::Name ) { ... }
35 For more detail see L<perlop/Class Instance Operator>.
37 [ List each enhancement as a =head2 entry ]
41 XXX Any security-related notices go here. In particular, any security
42 vulnerabilities closed should be noted here rather than in the
43 L</Selected Bug Fixes> section.
45 [ List each security issue as a =head2 entry ]
47 =head1 Incompatible Changes
49 XXX For a release on a stable branch, this section aspires to be:
51 There are no changes intentionally incompatible with 5.XXX.XXX
52 If any exist, they are bugs, and we request that you submit a
53 report. See L</Reporting Bugs> below.
55 [ List each incompatible change as a =head2 entry ]
57 =head2 C<\p{I<user-defined>}> properties now always override official
60 Previously, if and only if a user-defined property was declared prior to
61 the compilation of the regular expression pattern containing it, its
62 definition was used instead of any official Unicode property with the
63 same name. Now, it always overrides the offical property. This
64 change could break existing code that relied (likely unwittingly) on the
65 previous behavior. Without this fix, if Unicode released a new version
66 with a new property that happens to have the same name as the one you
67 had long been using, your program would break when you upgraded to a
68 perl that used that new Unicode version. See L<perlunicode/User-Defined
69 Character Properties>. [GH #17205]
73 XXX Any deprecated features, syntax, modules etc. should be listed here.
75 =head2 Module removals
77 XXX Remove this section if not applicable.
79 The following modules will be removed from the core distribution in a
80 future release, and will at that time need to be installed from CPAN.
81 Distributions on CPAN which require these modules will need to list them as
84 The core versions of these modules will now issue C<"deprecated">-category
85 warnings to alert you to this fact. To silence these deprecation warnings,
86 install the modules in question from CPAN.
88 Note that these are (with rare exceptions) fine modules that you are encouraged
89 to continue to use. Their disinclusion from core primarily hinges on their
90 necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
91 not usually on concerns over their design.
97 XXX Note that deprecated modules should be listed here even if they are listed
98 as an updated module in the L</Modules and Pragmata> section.
102 [ List each other deprecation as a =head2 entry ]
104 =head1 Performance Enhancements
106 XXX Changes which enhance performance without changing behaviour go here.
107 There may well be none in a stable release.
109 [ List each enhancement as an =item entry ]
119 =head1 Modules and Pragmata
121 XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
122 go here. If Module::CoreList is updated, generate an initial draft of the
123 following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
124 for important changes should then be added by hand. In an ideal world,
125 dual-life modules would have a F<Changes> file that could be cribbed.
127 The list of new and updated modules is modified automatically as part of
128 preparing a Perl release, so the only reason to manually add entries here is if
129 you're summarising the important changes in the module update. (Also, if the
130 manually-added details don't match the automatically-generated ones, the
131 release manager will have to investigate the situation carefully.)
133 [ Within each section, list entries as an =item entry ]
135 =head2 New Modules and Pragmata
141 XXX Remove this section if not applicable.
145 =head2 Updated Modules and Pragmata
151 L<XXX> has been upgraded from version A.xx to B.yy.
153 If there was something important to note about this change, include that here.
157 L<English> has been upgraded from version 1.10 to 1.11.
161 L<Test::Simple> has been upgraded from version 1.302169 to 1.302170.
165 =head2 Removed Modules and Pragmata
177 XXX Changes to files in F<pod/> go here. Consider grouping entries by
178 file and be sure to link to the appropriate page, e.g. L<perlfunc>.
180 =head2 New Documentation
182 XXX Changes which create B<new> files in F<pod/> go here.
186 XXX Description of the purpose of the new file here
188 =head2 Changes to Existing Documentation
190 We have attempted to update the documentation to reflect the changes
191 listed in this document. If you find any we have missed, send email
192 to L<perlbug@perl.org|mailto:perlbug@perl.org>.
194 XXX Changes which significantly change existing files in F<pod/> go here.
195 However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
198 Additionally, the following selected changes have been made:
206 XXX Description of the change here
212 The following additions or changes have been made to diagnostic output,
213 including warnings and fatal error messages. For the complete list of
214 diagnostic messages, see L<perldiag>.
216 XXX New or changed warnings emitted by the core's C<C> code go here. Also
217 include any changes in L<perldiag> that reconcile it to the C<C> code.
219 =head2 New Diagnostics
221 XXX Newly added diagnostic messages go under here, separated into New Errors
230 XXX L<message|perldiag/"message">
240 XXX L<message|perldiag/"message">
244 =head2 Changes to Existing Diagnostics
246 XXX Changes (i.e. rewording) of diagnostic messages go here
252 XXX Describe change here
256 =head1 Utility Changes
258 XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
259 Most of these are built within the directory F<utils>.
261 [ List utility changes as a =head2 entry for each utility and =item
262 entries for each change
263 Use L<XXX> with program names to get proper documentation linking. ]
275 =head1 Configuration and Compilation
277 XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
278 go here. Any other changes to the Perl build process should be listed here.
279 However, any platform-specific changes should be listed in the
280 L</Platform Support> section, instead.
282 [ List changes as an =item entry ].
294 XXX Any significant changes to the testing of a freshly built perl should be
295 listed here. Changes which create B<new> files in F<t/> go here as do any
296 large changes to the testing harness (e.g. when parallel testing was added).
297 Changes to existing files in F<t/> aren't worth summarizing, although the bugs
298 that they represent may be covered elsewhere.
300 XXX If there were no significant test changes, say this:
302 Tests were added and changed to reflect the other additions and changes
305 XXX If instead there were significant changes, say this:
307 Tests were added and changed to reflect the other additions and
308 changes in this release. Furthermore, these significant changes were
311 [ List each test improvement as an =item entry ]
321 =head1 Platform Support
323 XXX Any changes to platform support should be listed in the sections below.
325 [ Within the sections, list each platform as an =item entry with specific
326 changes as paragraphs below it. ]
330 XXX List any platforms that this version of perl compiles on, that previous
331 versions did not. These will either be enabled by new files in the F<hints/>
332 directories, or new subdirectories and F<README> files at the top level of the
337 =item XXX-some-platform
343 =head2 Discontinued Platforms
345 XXX List any platforms that this version of perl no longer compiles on.
349 =item XXX-some-platform
355 =head2 Platform-Specific Notes
357 XXX List any changes for specific platforms. This could include configuration
358 and compilation changes or changes in portability/compatibility. However,
359 changes within modules for platforms should generally be listed in the
360 L</Modules and Pragmata> section.
364 =item XXX-some-platform
370 C<Configure> will now find recent versions of the Oracle Developer Studio
371 compiler, which are found under C</opt/developerstudio*>.
375 =head1 Internal Changes
377 XXX Changes which affect the interface available to C<XS> code go here. Other
378 significant internal changes for future core maintainers should be noted as
381 [ List each change as an =item entry ]
391 =head1 Selected Bug Fixes
393 XXX Important bug fixes in the core language are summarized here. Bug fixes in
394 files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
396 [ List each fix as an =item entry ]
402 Updates to C<cop_features> are now handled by magic on C<%^H> rather
403 than by F<feature.pm> updating C<${^FEATURE_BITS}>, which has been
404 removed. This allows perl code to save and restore the contents of
405 C<%^H> without also having to manage C<${^FEATURE_BITS}>. [#17337]
409 C<PL_check> is now interpreter-local rather than global. [#14816]
413 =head1 Known Problems
415 XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
416 tests that had to be C<TODO>ed for the release would be noted here. Unfixed
417 platform specific bugs also go here.
419 [ List each fix as an =item entry ]
429 =head1 Errata From Previous Releases
435 XXX Add anything here that we forgot to add, or were mistaken about, in
436 the perldelta of a previous release.
442 XXX If any significant core contributor or member of the CPAN community has
443 died, add a short obituary here.
445 =head1 Acknowledgements
447 XXX Generate this with:
449 perl Porting/acknowledgements.pl v5.31.6..HEAD
451 =head1 Reporting Bugs
453 If you find what you think is a bug, you might check the perl bug database
454 at L<https://github.com/Perl/perl5/issues>. There may also be information at
455 L<http://www.perl.org/>, the Perl Home Page.
457 If you believe you have an unreported bug, please run the L<perlbug> program
458 included with your release. Be sure to trim your bug down to a tiny but
459 sufficient test case. Your bug report, along with the output of C<perl -V>,
460 will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
462 If the bug you are reporting has security implications which make it
463 inappropriate to send to a publicly archived mailing list, then see
464 L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
465 for details of how to report the issue.
469 If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
470 you can do so by running the C<perlthanks> program:
474 This will send an email to the Perl 5 Porters list with your show of thanks.
478 The F<Changes> file for an explanation of how to view exhaustive details on
481 The F<INSTALL> file for how to build Perl.
483 The F<README> file for general stuff.
485 The F<Artistic> and F<Copying> files for copyright information.