This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta: module updates for 5.27.2
[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
ba2fe89f 127L<arybase> has been upgraded from version 0.12 to 0.13.
9a4e033c 128
516aa7ad
JK
129=item *
130
ba0219e6
Z
131L<Carp> has been upgraded from version 1.42 to 1.43.
132
133=item *
134
ba2fe89f
AC
135L<Encode> has been upgraded from version 2.88 to 2.92.
136
137=item *
138
139L<encoding> has been upgraded from version 2.19 to 2.20.
d912eab8
Z
140
141=item *
142
6baee08a 143L<ExtUtils::CBuilder> has been upgraded from version 0.280225 to 0.280228.
516aa7ad 144
af94b3ac
Z
145=item *
146
ba2fe89f 147L<feature> has been upgraded from version 1.48 to 1.49.
af94b3ac 148
ba2fe89f 149=item *
16beba24 150
ba2fe89f 151L<File::Glob> has been upgraded from version 1.28 to 1.29.
a049258c 152
ba2fe89f
AC
153=item *
154
155L<File::Spec> and L<Cwd> have been upgraded from version 3.67 to 3.68.
fbe3f407 156
759020c9 157=item *
7ca0bfc4 158
ba2fe89f
AC
159L<List::Util> has been upgraded from version 1.46_02 to 1.48.
160
161=item *
162
163L<Math::BigRat> has been upgraded from version 0.2611 to 0.2613.
164
165=item *
166
167L<Module::CoreList> has been upgraded from version 5.20170621 to 5.20170720.
168
169=item *
170
171L<Opcode> has been upgraded from version 1.39 to 1.40.
172
173=item *
174
175L<PerlIO::scalar> has been upgraded from version 0.27 to 0.29.
176
177=item *
178
179L<POSIX> has been upgraded from version 1.76 to 1.77.
180
181=item *
182
183L<re> has been upgraded from version 0.34 to 0.35.
184
185=item *
186
187L<Scalar::Util> has been upgraded from version 1.46_02 to 1.48.
188
189=item *
190
191L<Time::HiRes> has been upgraded from version 1.9741 to 1.9743.
192
193=item *
194
195L<Time::Piece> has been upgraded from version 1.31 to 1.3201.
1b510166 196
1e189079 197=back
9a4e033c 198
1e189079 199=head1 Documentation
9a4e033c 200
1e189079
EH
201XXX Changes to files in F<pod/> go here. Consider grouping entries by
202file and be sure to link to the appropriate page, e.g. L<perlfunc>.
9a4e033c 203
1e189079 204=head2 New Documentation
1b510166 205
1e189079 206XXX Changes which create B<new> files in F<pod/> go here.
1b510166 207
1e189079 208=head3 L<XXX>
1b510166 209
1e189079 210XXX Description of the purpose of the new file here
1b510166 211
1e189079 212=head2 Changes to Existing Documentation
1b510166 213
1e189079
EH
214We have attempted to update the documentation to reflect the changes
215listed in this document. If you find any we have missed, send email
216to L<perlbug@perl.org|mailto:perlbug@perl.org>.
1b510166 217
1e189079
EH
218XXX Changes which significantly change existing files in F<pod/> go here.
219However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
220section.
f717dc4d 221
1e189079 222Additionally, the following selected changes have been made:
1b510166 223
1e189079 224=head3 L<XXX>
1b510166 225
1e189079 226=over 4
a049258c 227
2c8edc25 228=item *
d5c7a4fc 229
1e189079 230XXX Description of the change here
a049258c 231
1e189079 232=back
3abe9611 233
1e189079 234=head1 Diagnostics
1b510166 235
1e189079
EH
236The following additions or changes have been made to diagnostic output,
237including warnings and fatal error messages. For the complete list of
238diagnostic messages, see L<perldiag>.
1b510166 239
1e189079
EH
240XXX New or changed warnings emitted by the core's C<C> code go here. Also
241include any changes in L<perldiag> that reconcile it to the C<C> code.
1b510166 242
1e189079 243=head2 New Diagnostics
1b510166 244
1e189079
EH
245XXX Newly added diagnostic messages go under here, separated into New Errors
246and New Warnings
1b510166 247
1e189079 248=head3 New Errors
1b510166 249
1e189079 250=over 4
1b510166
S
251
252=item *
253
1e189079 254XXX L<message|perldiag/"message">
1b510166 255
1e189079 256=back
1b510166 257
1e189079
EH
258=head3 New Warnings
259
260=over 4
1b510166
S
261
262=item *
263
1e189079 264XXX L<message|perldiag/"message">
1b510166 265
1e189079 266=back
1b510166 267
1e189079 268=head2 Changes to Existing Diagnostics
1b510166 269
1e189079 270XXX Changes (i.e. rewording) of diagnostic messages go here
1b510166 271
1e189079 272=over 4
1b510166
S
273
274=item *
275
1e189079 276XXX Describe change here
1b510166 277
1e189079 278=back
0cc8c746 279
1e189079 280=head1 Utility Changes
0cc8c746 281
1e189079
EH
282XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
283Most of these are built within the directory F<utils>.
0cc8c746 284
1e189079
EH
285[ List utility changes as a =head2 entry for each utility and =item
286entries for each change
287Use L<XXX> with program names to get proper documentation linking. ]
0cc8c746 288
1e189079 289=head2 L<XXX>
0cc8c746 290
1e189079 291=over 4
1b510166
S
292
293=item *
294
1e189079 295XXX
1b510166 296
1e189079 297=back
1b510166 298
1e189079 299=head1 Configuration and Compilation
1b510166 300
1e189079
EH
301XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
302go here. Any other changes to the Perl build process should be listed here.
303However, any platform-specific changes should be listed in the
304L</Platform Support> section, instead.
305
306[ List changes as a =item entry ].
1b510166 307
1e189079 308=over 4
1b510166
S
309
310=item *
311
1e189079 312XXX
1b510166
S
313
314=back
315
316=head1 Testing
317
1e189079
EH
318XXX Any significant changes to the testing of a freshly built perl should be
319listed here. Changes which create B<new> files in F<t/> go here as do any
320large changes to the testing harness (e.g. when parallel testing was added).
321Changes to existing files in F<t/> aren't worth summarizing, although the bugs
322that they represent may be covered elsewhere.
323
324XXX If there were no significant test changes, say this:
325
326Tests were added and changed to reflect the other additions and changes
327in this release.
328
329XXX If instead there were significant changes, say this:
330
f717dc4d
KW
331Tests were added and changed to reflect the other additions and
332changes in this release. Furthermore, these significant changes were
333made:
1b510166 334
1e189079 335[ List each test improvement as a =item entry ]
1b510166 336
1e189079 337=over 4
1b510166 338
10b7d799
TC
339=item *
340
1e189079 341XXX
10b7d799 342
1b510166
S
343=back
344
345=head1 Platform Support
346
1e189079 347XXX Any changes to platform support should be listed in the sections below.
1b510166 348
1e189079
EH
349[ Within the sections, list each platform as a =item entry with specific
350changes as paragraphs below it. ]
351
352=head2 New Platforms
1b510166 353
1e189079
EH
354XXX List any platforms that this version of perl compiles on, that previous
355versions did not. These will either be enabled by new files in the F<hints/>
356directories, or new subdirectories and F<README> files at the top level of the
357source tree.
1b510166 358
d8efeb46
SH
359=over 4
360
1e189079 361=item XXX-some-platform
d8efeb46 362
1e189079 363XXX
d8efeb46
SH
364
365=back
1b510166 366
1e189079
EH
367=head2 Discontinued Platforms
368
369XXX List any platforms that this version of perl no longer compiles on.
370
371=over 4
372
373=item XXX-some-platform
374
375XXX
376
1b510166
S
377=back
378
1e189079
EH
379=head2 Platform-Specific Notes
380
381XXX List any changes for specific platforms. This could include configuration
382and compilation changes or changes in portability/compatibility. However,
383changes within modules for platforms should generally be listed in the
384L</Modules and Pragmata> section.
1b510166 385
1b510166
S
386=over 4
387
1e189079 388=item XXX-some-platform
1b510166 389
1e189079 390XXX
1b510166 391
1e189079
EH
392=back
393
394=head1 Internal Changes
395
396XXX Changes which affect the interface available to C<XS> code go here. Other
397significant internal changes for future core maintainers should be noted as
398well.
f566c7cf 399
1e189079
EH
400[ List each change as a =item entry ]
401
402=over 4
f566c7cf 403
0cbf5865
KW
404=item *
405
1e189079 406XXX
0cbf5865 407
1b510166
S
408=back
409
410=head1 Selected Bug Fixes
411
1e189079
EH
412XXX Important bug fixes in the core language are summarized here. Bug fixes in
413files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
414
415[ List each fix as a =item entry ]
416
1b510166
S
417=over 4
418
419=item *
420
43901c14
TC
421List assignment (C<aassign>) could in some rare cases allocate an
422entry on the mortal stack and leave the entry uninitialized. [perl
423#131570]
1b510166 424
3072e759
TC
425=item *
426
427Attempting to apply an attribute to an C<our> variable where a
428function of that name already exists could result in a NULL pointer
429being supplied where an SV was expected, crashing perl. [perl
430#131597]
431
20ae58f7
AC
432=item *
433
434C<split ' '> now correctly handles the argument being split when in the
435scope of the L<< C<unicode_strings>|feature/"The 'unicode_strings' feature"
436>> feature. Previously, when a string using the single-byte internal
437representation contained characters that are whitespace by Unicode rules but
438not by ASCII rules, it treated those characters as part of fields rather
439than as field separators. [perl #130907]
440
ab9a6a63
AC
441=item *
442
443Several built-in functions previously had bugs that could cause them to
444write to the internal stack without allocating room for the item being
445written. In rare situations, this could have led to a crash. These bugs have
446now been fixed, and if any similar bugs are introduced in future, they will
447be detected automatically in debugging builds.
448
449=item *
450
451Using a symbolic ref with postderef syntax as the key in a hash lookup was
452yielding an assertion failure on debugging builds. [perl #131627]
453
454=item *
455
456Array and hash variables whose names begin with a caret now admit indexing
457inside their curlies when interpolated into strings, as in C<<
458"${^CAPTURE[0]}" >> to index C<@{^CAPTURE}>. [perl #131664]
459
1e189079 460=back
9a4e033c 461
1e189079 462=head1 Known Problems
9a4e033c 463
1e189079
EH
464XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
465tests that had to be C<TODO>ed for the release would be noted here. Unfixed
466platform specific bugs also go here.
9a4e033c 467
1e189079 468[ List each fix as a =item entry ]
9a4e033c 469
1e189079
EH
470=over 4
471
472=item *
473
474XXX
9a4e033c 475
1b510166
S
476=back
477
1e189079 478=head1 Errata From Previous Releases
1b510166 479
1e189079
EH
480=over 4
481
482=item *
1b510166 483
1e189079
EH
484XXX Add anything here that we forgot to add, or were mistaken about, in
485the perldelta of a previous release.
1b510166 486
1e189079
EH
487=back
488
489=head1 Obituary
1b510166 490
1e189079
EH
491XXX If any significant core contributor has died, we've added a short obituary
492here.
1b510166 493
1e189079 494=head1 Acknowledgements
0cc8c746 495
1e189079 496XXX Generate this with:
2e0dcc12 497
1e189079 498 perl Porting/acknowledgements.pl v5.25.5..HEAD
f5b73711 499
44691e6f
AB
500=head1 Reporting Bugs
501
b5cbfe35
S
502If you find what you think is a bug, you might check the perl bug database
503at L<https://rt.perl.org/> . There may also be information at
504L<http://www.perl.org/> , the Perl Home Page.
44691e6f 505
e08634c5
SH
506If you believe you have an unreported bug, please run the L<perlbug> program
507included with your release. Be sure to trim your bug down to a tiny but
508sufficient test case. Your bug report, along with the output of C<perl -V>,
b5cbfe35 509will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 510
87c118b9
DM
511If the bug you are reporting has security implications which make it
512inappropriate to send to a publicly archived mailing list, then see
c0ea3294
SH
513L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
514for details of how to report the issue.
44691e6f 515
390ae6f9
S
516=head1 Give Thanks
517
518If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
519you can do so by running the C<perlthanks> program:
520
521 perlthanks
522
523This will send an email to the Perl 5 Porters list with your show of thanks.
524
44691e6f
AB
525=head1 SEE ALSO
526
e08634c5
SH
527The F<Changes> file for an explanation of how to view exhaustive details on
528what changed.
44691e6f
AB
529
530The F<INSTALL> file for how to build Perl.
531
532The F<README> file for general stuff.
533
534The F<Artistic> and F<Copying> files for copyright information.
535
536=cut