This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
fix PathTools dynamic linking for Perl 5.6
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
1e189079
EH
5[ this is a template for a new perldelta file. Any text flagged as XXX needs
6to be processed before release. ]
7
8perldelta - what is new for perl v5.27.2
89853d76 9
b5cbfe35 10=head1 DESCRIPTION
89853d76 11
1e189079 12This document describes differences between the 5.27.1 release and the 5.27.2
b5cbfe35 13release.
89853d76 14
1e189079
EH
15If you are upgrading from an earlier release such as 5.27.0, first read
16L<perl5271delta>, which describes differences between 5.27.0 and 5.27.1.
fbdbf2a7 17
1e189079 18=head1 Notice
fbdbf2a7 19
1e189079 20XXX Any important notices here
fbdbf2a7 21
1e189079 22=head1 Core Enhancements
fbdbf2a7 23
1e189079
EH
24XXX New core language features go here. Summarize user-visible core language
25enhancements. Particularly prominent performance optimisations could go
26here, but most should go in the L</Performance Enhancements> section.
fbdbf2a7 27
1e189079 28[ List each enhancement as a =head2 entry ]
fbdbf2a7 29
a8b85d6c
KW
30=head2 Unicode 10.0 is supported
31
32A list of changes is at
33L<http://www.unicode.org/versions/Unicode10.0.0>.
34
1e189079 35=head1 Security
fbdbf2a7 36
1e189079
EH
37XXX Any security-related notices go here. In particular, any security
38vulnerabilities closed should be noted here rather than in the
39L</Selected Bug Fixes> section.
fbdbf2a7 40
1e189079 41[ List each security issue as a =head2 entry ]
1b510166
S
42
43=head1 Incompatible Changes
44
1e189079 45XXX For a release on a stable branch, this section aspires to be:
85cd139f 46
1e189079
EH
47 There are no changes intentionally incompatible with 5.XXX.XXX
48 If any exist, they are bugs, and we request that you submit a
49 report. See L</Reporting Bugs> below.
be332ba0 50
1e189079 51[ List each incompatible change as a =head2 entry ]
be332ba0 52
1e189079 53=head1 Deprecations
489c16bf 54
1e189079 55XXX Any deprecated features, syntax, modules etc. should be listed here.
489c16bf 56
1e189079 57=head2 Module removals
c6e25b09 58
1e189079 59XXX Remove this section if inapplicable.
c6e25b09 60
1e189079
EH
61The following modules will be removed from the core distribution in a
62future release, and will at that time need to be installed from CPAN.
63Distributions on CPAN which require these modules will need to list them as
64prerequisites.
520b6fb6 65
1e189079
EH
66The core versions of these modules will now issue C<"deprecated">-category
67warnings to alert you to this fact. To silence these deprecation warnings,
68install the modules in question from CPAN.
520b6fb6 69
1e189079
EH
70Note that these are (with rare exceptions) fine modules that you are encouraged
71to continue to use. Their disinclusion from core primarily hinges on their
72necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
73not usually on concerns over their design.
02729eab 74
1e189079 75=over
02729eab 76
1e189079 77=item XXX
d0d6d4ce 78
1e189079
EH
79XXX Note that deprecated modules should be listed here even if they are listed
80as an updated module in the L</Modules and Pragmata> section.
d0d6d4ce 81
1e189079 82=back
64278e8c 83
1e189079 84[ List each other deprecation as a =head2 entry ]
64278e8c 85
1e189079 86=head1 Performance Enhancements
5d09ee1c 87
1e189079
EH
88XXX Changes which enhance performance without changing behaviour go here.
89There may well be none in a stable release.
5d09ee1c 90
1e189079 91[ List each enhancement as a =item entry ]
fd503f5c 92
1e189079 93=over 4
fd503f5c 94
1e189079 95=item *
c8787424 96
1e189079 97XXX
c8787424 98
1e189079 99=back
9a4e033c 100
1e189079 101=head1 Modules and Pragmata
9a4e033c 102
1e189079
EH
103XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
104go here. If Module::CoreList is updated, generate an initial draft of the
105following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
106for important changes should then be added by hand. In an ideal world,
107dual-life modules would have a F<Changes> file that could be cribbed.
1b510166 108
1e189079 109[ Within each section, list entries as a =item entry ]
315f3fc1 110
1e189079 111=head2 New Modules and Pragmata
315f3fc1 112
1e189079 113=over 4
53fdf12a 114
1e189079 115=item *
53fdf12a 116
1e189079 117XXX
53fdf12a 118
1e189079 119=back
53fdf12a 120
1e189079 121=head2 Updated Modules and Pragmata
1b510166 122
1b510166
S
123=over 4
124
125=item *
126
1e189079 127L<XXX> has been upgraded from version A.xx to B.yy.
9a4e033c 128
516aa7ad
JK
129=item *
130
89e2d2f3 131L<ExtUtils::CBuilder> has been upgraded from version 0.280225 to 0.280227.
516aa7ad 132
af94b3ac
Z
133=item *
134
135L<Time::HiRes> has been upgraded from version 1.9742 to 1.9743.
136
1b510166 137=back
16beba24 138
1e189079 139=head2 Removed Modules and Pragmata
a049258c
S
140
141=over 4
fbe3f407 142
759020c9 143=item *
7ca0bfc4 144
1e189079 145XXX
1b510166 146
1e189079 147=back
9a4e033c 148
1e189079 149=head1 Documentation
9a4e033c 150
1e189079
EH
151XXX Changes to files in F<pod/> go here. Consider grouping entries by
152file and be sure to link to the appropriate page, e.g. L<perlfunc>.
9a4e033c 153
1e189079 154=head2 New Documentation
1b510166 155
1e189079 156XXX Changes which create B<new> files in F<pod/> go here.
1b510166 157
1e189079 158=head3 L<XXX>
1b510166 159
1e189079 160XXX Description of the purpose of the new file here
1b510166 161
1e189079 162=head2 Changes to Existing Documentation
1b510166 163
1e189079
EH
164We have attempted to update the documentation to reflect the changes
165listed in this document. If you find any we have missed, send email
166to L<perlbug@perl.org|mailto:perlbug@perl.org>.
1b510166 167
1e189079
EH
168XXX Changes which significantly change existing files in F<pod/> go here.
169However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
170section.
f717dc4d 171
1e189079 172Additionally, the following selected changes have been made:
1b510166 173
1e189079 174=head3 L<XXX>
1b510166 175
1e189079 176=over 4
a049258c 177
2c8edc25 178=item *
d5c7a4fc 179
1e189079 180XXX Description of the change here
a049258c 181
1e189079 182=back
3abe9611 183
1e189079 184=head1 Diagnostics
1b510166 185
1e189079
EH
186The following additions or changes have been made to diagnostic output,
187including warnings and fatal error messages. For the complete list of
188diagnostic messages, see L<perldiag>.
1b510166 189
1e189079
EH
190XXX New or changed warnings emitted by the core's C<C> code go here. Also
191include any changes in L<perldiag> that reconcile it to the C<C> code.
1b510166 192
1e189079 193=head2 New Diagnostics
1b510166 194
1e189079
EH
195XXX Newly added diagnostic messages go under here, separated into New Errors
196and New Warnings
1b510166 197
1e189079 198=head3 New Errors
1b510166 199
1e189079 200=over 4
1b510166
S
201
202=item *
203
1e189079 204XXX L<message|perldiag/"message">
1b510166 205
1e189079 206=back
1b510166 207
1e189079
EH
208=head3 New Warnings
209
210=over 4
1b510166
S
211
212=item *
213
1e189079 214XXX L<message|perldiag/"message">
1b510166 215
1e189079 216=back
1b510166 217
1e189079 218=head2 Changes to Existing Diagnostics
1b510166 219
1e189079 220XXX Changes (i.e. rewording) of diagnostic messages go here
1b510166 221
1e189079 222=over 4
1b510166
S
223
224=item *
225
1e189079 226XXX Describe change here
1b510166 227
1e189079 228=back
0cc8c746 229
1e189079 230=head1 Utility Changes
0cc8c746 231
1e189079
EH
232XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
233Most of these are built within the directory F<utils>.
0cc8c746 234
1e189079
EH
235[ List utility changes as a =head2 entry for each utility and =item
236entries for each change
237Use L<XXX> with program names to get proper documentation linking. ]
0cc8c746 238
1e189079 239=head2 L<XXX>
0cc8c746 240
1e189079 241=over 4
1b510166
S
242
243=item *
244
1e189079 245XXX
1b510166 246
1e189079 247=back
1b510166 248
1e189079 249=head1 Configuration and Compilation
1b510166 250
1e189079
EH
251XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
252go here. Any other changes to the Perl build process should be listed here.
253However, any platform-specific changes should be listed in the
254L</Platform Support> section, instead.
255
256[ List changes as a =item entry ].
1b510166 257
1e189079 258=over 4
1b510166
S
259
260=item *
261
1e189079 262XXX
1b510166
S
263
264=back
265
266=head1 Testing
267
1e189079
EH
268XXX Any significant changes to the testing of a freshly built perl should be
269listed here. Changes which create B<new> files in F<t/> go here as do any
270large changes to the testing harness (e.g. when parallel testing was added).
271Changes to existing files in F<t/> aren't worth summarizing, although the bugs
272that they represent may be covered elsewhere.
273
274XXX If there were no significant test changes, say this:
275
276Tests were added and changed to reflect the other additions and changes
277in this release.
278
279XXX If instead there were significant changes, say this:
280
f717dc4d
KW
281Tests were added and changed to reflect the other additions and
282changes in this release. Furthermore, these significant changes were
283made:
1b510166 284
1e189079 285[ List each test improvement as a =item entry ]
1b510166 286
1e189079 287=over 4
1b510166 288
10b7d799
TC
289=item *
290
1e189079 291XXX
10b7d799 292
1b510166
S
293=back
294
295=head1 Platform Support
296
1e189079 297XXX Any changes to platform support should be listed in the sections below.
1b510166 298
1e189079
EH
299[ Within the sections, list each platform as a =item entry with specific
300changes as paragraphs below it. ]
301
302=head2 New Platforms
1b510166 303
1e189079
EH
304XXX List any platforms that this version of perl compiles on, that previous
305versions did not. These will either be enabled by new files in the F<hints/>
306directories, or new subdirectories and F<README> files at the top level of the
307source tree.
1b510166 308
d8efeb46
SH
309=over 4
310
1e189079 311=item XXX-some-platform
d8efeb46 312
1e189079 313XXX
d8efeb46
SH
314
315=back
1b510166 316
1e189079
EH
317=head2 Discontinued Platforms
318
319XXX List any platforms that this version of perl no longer compiles on.
320
321=over 4
322
323=item XXX-some-platform
324
325XXX
326
1b510166
S
327=back
328
1e189079
EH
329=head2 Platform-Specific Notes
330
331XXX List any changes for specific platforms. This could include configuration
332and compilation changes or changes in portability/compatibility. However,
333changes within modules for platforms should generally be listed in the
334L</Modules and Pragmata> section.
1b510166 335
1b510166
S
336=over 4
337
1e189079 338=item XXX-some-platform
1b510166 339
1e189079 340XXX
1b510166 341
1e189079
EH
342=back
343
344=head1 Internal Changes
345
346XXX Changes which affect the interface available to C<XS> code go here. Other
347significant internal changes for future core maintainers should be noted as
348well.
f566c7cf 349
1e189079
EH
350[ List each change as a =item entry ]
351
352=over 4
f566c7cf 353
0cbf5865
KW
354=item *
355
1e189079 356XXX
0cbf5865 357
1b510166
S
358=back
359
360=head1 Selected Bug Fixes
361
1e189079
EH
362XXX Important bug fixes in the core language are summarized here. Bug fixes in
363files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
364
365[ List each fix as a =item entry ]
366
1b510166
S
367=over 4
368
369=item *
370
43901c14
TC
371List assignment (C<aassign>) could in some rare cases allocate an
372entry on the mortal stack and leave the entry uninitialized. [perl
373#131570]
1b510166 374
3072e759
TC
375=item *
376
377Attempting to apply an attribute to an C<our> variable where a
378function of that name already exists could result in a NULL pointer
379being supplied where an SV was expected, crashing perl. [perl
380#131597]
381
20ae58f7
AC
382=item *
383
384C<split ' '> now correctly handles the argument being split when in the
385scope of the L<< C<unicode_strings>|feature/"The 'unicode_strings' feature"
386>> feature. Previously, when a string using the single-byte internal
387representation contained characters that are whitespace by Unicode rules but
388not by ASCII rules, it treated those characters as part of fields rather
389than as field separators. [perl #130907]
390
ab9a6a63
AC
391=item *
392
393Several built-in functions previously had bugs that could cause them to
394write to the internal stack without allocating room for the item being
395written. In rare situations, this could have led to a crash. These bugs have
396now been fixed, and if any similar bugs are introduced in future, they will
397be detected automatically in debugging builds.
398
399=item *
400
401Using a symbolic ref with postderef syntax as the key in a hash lookup was
402yielding an assertion failure on debugging builds. [perl #131627]
403
404=item *
405
406Array and hash variables whose names begin with a caret now admit indexing
407inside their curlies when interpolated into strings, as in C<<
408"${^CAPTURE[0]}" >> to index C<@{^CAPTURE}>. [perl #131664]
409
1e189079 410=back
9a4e033c 411
1e189079 412=head1 Known Problems
9a4e033c 413
1e189079
EH
414XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
415tests that had to be C<TODO>ed for the release would be noted here. Unfixed
416platform specific bugs also go here.
9a4e033c 417
1e189079 418[ List each fix as a =item entry ]
9a4e033c 419
1e189079
EH
420=over 4
421
422=item *
423
424XXX
9a4e033c 425
1b510166
S
426=back
427
1e189079 428=head1 Errata From Previous Releases
1b510166 429
1e189079
EH
430=over 4
431
432=item *
1b510166 433
1e189079
EH
434XXX Add anything here that we forgot to add, or were mistaken about, in
435the perldelta of a previous release.
1b510166 436
1e189079
EH
437=back
438
439=head1 Obituary
1b510166 440
1e189079
EH
441XXX If any significant core contributor has died, we've added a short obituary
442here.
1b510166 443
1e189079 444=head1 Acknowledgements
0cc8c746 445
1e189079 446XXX Generate this with:
2e0dcc12 447
1e189079 448 perl Porting/acknowledgements.pl v5.25.5..HEAD
f5b73711 449
44691e6f
AB
450=head1 Reporting Bugs
451
b5cbfe35
S
452If you find what you think is a bug, you might check the perl bug database
453at L<https://rt.perl.org/> . There may also be information at
454L<http://www.perl.org/> , the Perl Home Page.
44691e6f 455
e08634c5
SH
456If you believe you have an unreported bug, please run the L<perlbug> program
457included with your release. Be sure to trim your bug down to a tiny but
458sufficient test case. Your bug report, along with the output of C<perl -V>,
b5cbfe35 459will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 460
87c118b9
DM
461If the bug you are reporting has security implications which make it
462inappropriate to send to a publicly archived mailing list, then see
c0ea3294
SH
463L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
464for details of how to report the issue.
44691e6f 465
390ae6f9
S
466=head1 Give Thanks
467
468If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
469you can do so by running the C<perlthanks> program:
470
471 perlthanks
472
473This will send an email to the Perl 5 Porters list with your show of thanks.
474
44691e6f
AB
475=head1 SEE ALSO
476
e08634c5
SH
477The F<Changes> file for an explanation of how to view exhaustive details on
478what changed.
44691e6f
AB
479
480The F<INSTALL> file for how to build Perl.
481
482The F<README> file for general stuff.
483
484The F<Artistic> and F<Copying> files for copyright information.
485
486=cut