This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for a559786348e0
[perl5.git] / pod / perldelta.pod
1 =encoding utf8
2
3 =head1 NAME
4
5 [ this is a template for a new perldelta file.  Any text flagged as XXX needs
6 to be processed before release. ]
7
8 perldelta - what is new for perl v5.31.7
9
10 =head1 DESCRIPTION
11
12 This document describes differences between the 5.31.6 release and the 5.31.7
13 release.
14
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.
17
18 =head1 Notice
19
20 XXX Any important notices here
21
22 =head1 Core Enhancements
23
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.
27
28 =head2 The isa Operator
29
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:
32
33     if( $obj isa Package::Name ) { ... }
34
35 For more detail see L<perlop/Class Instance Operator>.
36
37 [ List each enhancement as a =head2 entry ]
38
39 =head1 Security
40
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.
44
45 [ List each security issue as a =head2 entry ]
46
47 =head1 Incompatible Changes
48
49 XXX For a release on a stable branch, this section aspires to be:
50
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.
54
55 [ List each incompatible change as a =head2 entry ]
56
57 =head2 C<\p{I<user-defined>}> properties now always override official
58 Unicode ones
59
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]
70
71 =head1 Deprecations
72
73 XXX Any deprecated features, syntax, modules etc. should be listed here.
74
75 =head2 Module removals
76
77 XXX Remove this section if not applicable.
78
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
82 prerequisites.
83
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.
87
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.
92
93 =over
94
95 =item XXX
96
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.
99
100 =back
101
102 [ List each other deprecation as a =head2 entry ]
103
104 =head1 Performance Enhancements
105
106 XXX Changes which enhance performance without changing behaviour go here.
107 There may well be none in a stable release.
108
109 [ List each enhancement as an =item entry ]
110
111 =over 4
112
113 =item *
114
115 XXX
116
117 =back
118
119 =head1 Modules and Pragmata
120
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.
126
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.)
132
133 [ Within each section, list entries as an =item entry ]
134
135 =head2 New Modules and Pragmata
136
137 =over 4
138
139 =item *
140
141 XXX Remove this section if not applicable.
142
143 =back
144
145 =head2 Updated Modules and Pragmata
146
147 =over 4
148
149 =item *
150
151 L<XXX> has been upgraded from version A.xx to B.yy.
152
153 If there was something important to note about this change, include that here.
154
155 =item *
156
157 L<English> has been upgraded from version 1.10 to 1.11.
158
159 =item *
160
161 L<Test::Simple> has been upgraded from version 1.302169 to 1.302170.
162
163 =back
164
165 =head2 Removed Modules and Pragmata
166
167 =over 4
168
169 =item *
170
171 XXX
172
173 =back
174
175 =head1 Documentation
176
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>.
179
180 =head2 New Documentation
181
182 XXX Changes which create B<new> files in F<pod/> go here.
183
184 =head3 L<XXX>
185
186 XXX Description of the purpose of the new file here
187
188 =head2 Changes to Existing Documentation
189
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>.
193
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>
196 section.
197
198 Additionally, the following selected changes have been made:
199
200 =head3 L<XXX>
201
202 =over 4
203
204 =item *
205
206 XXX Description of the change here
207
208 =back
209
210 =head1 Diagnostics
211
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>.
215
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.
218
219 =head2 New Diagnostics
220
221 XXX Newly added diagnostic messages go under here, separated into New Errors
222 and New Warnings
223
224 =head3 New Errors
225
226 =over 4
227
228 =item *
229
230 XXX L<message|perldiag/"message">
231
232 =back
233
234 =head3 New Warnings
235
236 =over 4
237
238 =item *
239
240 XXX L<message|perldiag/"message">
241
242 =back
243
244 =head2 Changes to Existing Diagnostics
245
246 XXX Changes (i.e. rewording) of diagnostic messages go here
247
248 =over 4
249
250 =item *
251
252 XXX Describe change here
253
254 =back
255
256 =head1 Utility Changes
257
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>.
260
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. ]
264
265 =head2 L<XXX>
266
267 =over 4
268
269 =item *
270
271 XXX
272
273 =back
274
275 =head1 Configuration and Compilation
276
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.
281
282 [ List changes as an =item entry ].
283
284 =over 4
285
286 =item *
287
288 XXX
289
290 =back
291
292 =head1 Testing
293
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.
299
300 XXX If there were no significant test changes, say this:
301
302 Tests were added and changed to reflect the other additions and changes
303 in this release.
304
305 XXX If instead there were significant changes, say this:
306
307 Tests were added and changed to reflect the other additions and
308 changes in this release.  Furthermore, these significant changes were
309 made:
310
311 [ List each test improvement as an =item entry ]
312
313 =over 4
314
315 =item *
316
317 XXX
318
319 =back
320
321 =head1 Platform Support
322
323 XXX Any changes to platform support should be listed in the sections below.
324
325 [ Within the sections, list each platform as an =item entry with specific
326 changes as paragraphs below it. ]
327
328 =head2 New Platforms
329
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
333 source tree.
334
335 =over 4
336
337 =item XXX-some-platform
338
339 XXX
340
341 =back
342
343 =head2 Discontinued Platforms
344
345 XXX List any platforms that this version of perl no longer compiles on.
346
347 =over 4
348
349 =item XXX-some-platform
350
351 XXX
352
353 =back
354
355 =head2 Platform-Specific Notes
356
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.
361
362 =over 4
363
364 =item XXX-some-platform
365
366 XXX
367
368 =item Solaris
369
370 C<Configure> will now find recent versions of the Oracle Developer Studio
371 compiler, which are found under C</opt/developerstudio*>.
372
373 =back
374
375 =head1 Internal Changes
376
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
379 well.
380
381 [ List each change as an =item entry ]
382
383 =over 4
384
385 =item *
386
387 XXX
388
389 =back
390
391 =head1 Selected Bug Fixes
392
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>.
395
396 [ List each fix as an =item entry ]
397
398 =over 4
399
400 =item *
401
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]
406
407 =item *
408
409 C<PL_check> is now interpreter-local rather than global.  [#14816]
410
411 =back
412
413 =head1 Known Problems
414
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.
418
419 [ List each fix as an =item entry ]
420
421 =over 4
422
423 =item *
424
425 XXX
426
427 =back
428
429 =head1 Errata From Previous Releases
430
431 =over 4
432
433 =item *
434
435 XXX Add anything here that we forgot to add, or were mistaken about, in
436 the perldelta of a previous release.
437
438 =back
439
440 =head1 Obituary
441
442 XXX If any significant core contributor or member of the CPAN community has
443 died, add a short obituary here.
444
445 =head1 Acknowledgements
446
447 XXX Generate this with:
448
449   perl Porting/acknowledgements.pl v5.31.6..HEAD
450
451 =head1 Reporting Bugs
452
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.
456
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.
461
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.
466
467 =head1 Give Thanks
468
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:
471
472     perlthanks
473
474 This will send an email to the Perl 5 Porters list with your show of thanks.
475
476 =head1 SEE ALSO
477
478 The F<Changes> file for an explanation of how to view exhaustive details on
479 what changed.
480
481 The F<INSTALL> file for how to build Perl.
482
483 The F<README> file for general stuff.
484
485 The F<Artistic> and F<Copying> files for copyright information.
486
487 =cut