This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta abda9fe0fe75ae824723761c1c98af958f17a41c
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
25219f3f
KE
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.7
89853d76 9
b5cbfe35 10=head1 DESCRIPTION
89853d76 11
25219f3f 12This document describes differences between the 5.27.6 release and the 5.27.7
b5cbfe35 13release.
89853d76 14
25219f3f
KE
15If you are upgrading from an earlier release such as 5.27.5, first read
16L<perl5276delta>, which describes differences between 5.27.5 and 5.27.6.
e6a2e5ca 17
25219f3f 18=head1 Notice
e6a2e5ca 19
25219f3f 20XXX Any important notices here
f99042c8 21
25219f3f 22=head1 Core Enhancements
f99042c8 23
25219f3f
KE
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.
2e8ea15a 27
25219f3f 28[ List each enhancement as a =head2 entry ]
2e8ea15a 29
eaee9cdd
KW
30=head2 The C<sprintf> C<%j> format size modifier is now available with
31pre-C99 compilers
32
33The actual size used depends on the platform, so remains unportable.
34
25219f3f 35=head1 Security
e6a2e5ca 36
25219f3f
KE
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.
29d69c3c 40
25219f3f 41[ List each security issue as a =head2 entry ]
29d69c3c 42
25219f3f 43=head1 Incompatible Changes
29d69c3c 44
25219f3f 45XXX For a release on a stable branch, this section aspires to be:
29d69c3c 46
25219f3f
KE
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.
7d65f652 50
25219f3f 51[ List each incompatible change as a =head2 entry ]
7d65f652 52
25219f3f 53=head1 Deprecations
7d65f652 54
25219f3f 55XXX Any deprecated features, syntax, modules etc. should be listed here.
7d65f652 56
8e796115
DIM
57=head2 Assignment to C<$[> will be fatal in Perl 5.30
58
59Assigning a non-zero value to L<C<$[>|perlvar/$[> has been deprecated
60since Perl 5.12, but was never given a deadline for removal. This has
61now been scheduled for Perl 5.30.
62
25219f3f 63=head2 Module removals
4c46c124 64
25219f3f 65XXX Remove this section if not applicable.
7d65f652 66
25219f3f
KE
67The following modules will be removed from the core distribution in a
68future release, and will at that time need to be installed from CPAN.
69Distributions on CPAN which require these modules will need to list them as
70prerequisites.
e2091bb6 71
25219f3f
KE
72The core versions of these modules will now issue C<"deprecated">-category
73warnings to alert you to this fact. To silence these deprecation warnings,
74install the modules in question from CPAN.
a8ba758d 75
25219f3f
KE
76Note that these are (with rare exceptions) fine modules that you are encouraged
77to continue to use. Their disinclusion from core primarily hinges on their
78necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
79not usually on concerns over their design.
cf663f87 80
25219f3f 81=over
1b510166 82
183fb71f 83=item L<Locale::Codes> and its associated Country, Currency and Language modules
1b510166 84
25219f3f
KE
85XXX Note that deprecated modules should be listed here even if they are listed
86as an updated module in the L</Modules and Pragmata> section.
8ed1839e 87
25219f3f 88=back
8ed1839e 89
25219f3f 90[ List each other deprecation as a =head2 entry ]
8ed1839e 91
25219f3f 92=head1 Performance Enhancements
8ed1839e 93
25219f3f
KE
94XXX Changes which enhance performance without changing behaviour go here.
95There may well be none in a stable release.
8ed1839e 96
25219f3f 97[ List each enhancement as an =item entry ]
8ed1839e 98
25219f3f 99=over 4
d912eab8 100
7d65f652
FC
101=item *
102
25219f3f 103XXX
7d65f652 104
c83a3d01 105=back
d912eab8 106
c83a3d01 107=head1 Modules and Pragmata
af94b3ac 108
25219f3f
KE
109XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
110go here. If Module::CoreList is updated, generate an initial draft of the
111following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
112for important changes should then be added by hand. In an ideal world,
113dual-life modules would have a F<Changes> file that could be cribbed.
9b78f210 114
25219f3f
KE
115The list of new and updated modules is modified automatically as part of
116preparing a Perl release, so the only reason to manually add entries here is if
117you're summarising the important changes in the module update. (Also, if the
118manually-added details don't match the automatically-generated ones, the
119release manager will have to investigate the situation carefully.)
9b78f210 120
25219f3f 121[ Within each section, list entries as an =item entry ]
1218f5ba 122
25219f3f 123=head2 New Modules and Pragmata
e6a2e5ca
SH
124
125=over 4
64b9a139
SH
126
127=item *
128
25219f3f 129XXX Remove this section if not applicable.
b2a6778b 130
25219f3f 131=back
b2a6778b 132
25219f3f 133=head2 Updated Modules and Pragmata
b2a6778b 134
25219f3f 135=over 4
b2a6778b
KE
136
137=item *
138
183fb71f 139L<Locale::Codes> has been upgraded from version 3.54 to 3.55
b2a6778b 140
183fb71f
SB
141B<NOTE>: L<Locale::Codes> is deprecated in core and will be removed
142from Perl 5.30.
b2a6778b 143
95609a20
Z
144=item *
145
146L<Data::Dumper> has been upgraded from version 2.167_02 to 2.168.
147Quoting of glob names now obeys the Useqq option [perl #119831].
148
25219f3f 149=back
b2a6778b 150
25219f3f 151=head2 Removed Modules and Pragmata
b2a6778b 152
25219f3f 153=over 4
b2a6778b
KE
154
155=item *
156
25219f3f 157XXX
ad3f654c 158
25219f3f 159=back
7358a033 160
25219f3f 161=head1 Documentation
64b9a139 162
25219f3f
KE
163XXX Changes to files in F<pod/> go here. Consider grouping entries by
164file and be sure to link to the appropriate page, e.g. L<perlfunc>.
e6a2e5ca 165
25219f3f 166=head2 New Documentation
b2a6778b 167
25219f3f 168XXX Changes which create B<new> files in F<pod/> go here.
b2a6778b 169
25219f3f 170=head3 L<XXX>
b2a6778b 171
25219f3f 172XXX Description of the purpose of the new file here
b2a6778b 173
25219f3f 174=head2 Changes to Existing Documentation
b2a6778b 175
25219f3f
KE
176We have attempted to update the documentation to reflect the changes
177listed in this document. If you find any we have missed, send email
178to L<perlbug@perl.org|mailto:perlbug@perl.org>.
b2a6778b 179
25219f3f
KE
180XXX Changes which significantly change existing files in F<pod/> go here.
181However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
182section.
b2a6778b 183
25219f3f 184Additionally, the following selected changes have been made:
b2a6778b 185
497a8271
Z
186=head3 L<perlapi>
187
188The documentation of C<newGIVENOP()> has been belatedly updated to
189account for the removal of lexical C<$_>.
190
56e48c10
KW
191=head3 L<perluniprops>
192
193For each binary table or property, the documentation now includes which
194characters in the range C<\x00-\xFF> it matches, as well as a list of
195the first few ranges of code points matched above that.
b2a6778b 196
25219f3f 197=over 4
b2a6778b
KE
198
199=item *
200
25219f3f 201XXX Description of the change here
b2a6778b 202
25219f3f 203=back
b2a6778b 204
25219f3f 205=head1 Diagnostics
b2a6778b 206
25219f3f
KE
207The following additions or changes have been made to diagnostic output,
208including warnings and fatal error messages. For the complete list of
209diagnostic messages, see L<perldiag>.
b2a6778b 210
25219f3f
KE
211XXX New or changed warnings emitted by the core's C<C> code go here. Also
212include any changes in L<perldiag> that reconcile it to the C<C> code.
b2a6778b 213
25219f3f 214=head2 New Diagnostics
b2a6778b 215
25219f3f
KE
216XXX Newly added diagnostic messages go under here, separated into New Errors
217and New Warnings
b2a6778b 218
25219f3f 219=head3 New Errors
b2a6778b 220
25219f3f 221=over 4
b2a6778b
KE
222
223=item *
224
a01f4640
FC
225L<Can't "goto" into a "given" block|perldiag/"Can't E<quot>gotoE<quot> into a E<quot>givenE<quot> block">
226
227(F) A "goto" statement was executed to jump into the middle of a C<given>
228block. You can't get there from here. See L<perlfunc/goto>.
b2a6778b 229
25219f3f 230=back
b2a6778b 231
25219f3f 232=head3 New Warnings
b2a6778b 233
25219f3f 234=over 4
64b9a139
SH
235
236=item *
237
0b4678bf
FC
238L<Old package separator used in string|perldiag/"Old package separator used in string">
239
240(W syntax) You used the old package separator, "'", in a variable
241named inside a double-quoted string; e.g., C<"In $name's house">. This
242is equivalent to C<"In $name::s house">. If you meant the former, put
243a backslash before the apostrophe (C<"In $name\'s house">).
64b9a139 244
e6a2e5ca 245=back
64b9a139 246
25219f3f 247=head2 Changes to Existing Diagnostics
64b9a139 248
25219f3f 249XXX Changes (i.e. rewording) of diagnostic messages go here
e6a2e5ca 250
04f89ea7
Z
251=over 4
252
64b9a139
SH
253=item *
254
25219f3f 255XXX Describe change here
2b8b74b0 256
52e3acf8
Z
257=item *
258
259Warnings that a variable or subroutine "masks earlier declaration in same
260...", or that an C<our> variable has been redeclared, have been moved to a
261new warnings category "shadow". Previously they were in category "misc".
262
25219f3f 263=back
e509fc38 264
25219f3f 265=head1 Utility Changes
e509fc38 266
25219f3f
KE
267XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
268Most of these are built within the directory F<utils>.
64b9a139 269
25219f3f
KE
270[ List utility changes as a =head2 entry for each utility and =item
271entries for each change
272Use L<XXX> with program names to get proper documentation linking. ]
64b9a139 273
25219f3f 274=head2 L<XXX>
64b9a139 275
25219f3f 276=over 4
64b9a139
SH
277
278=item *
279
25219f3f 280XXX
64b9a139 281
e6a2e5ca
SH
282=back
283
25219f3f 284=head1 Configuration and Compilation
64b9a139 285
25219f3f
KE
286XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
287go here. Any other changes to the Perl build process should be listed here.
288However, any platform-specific changes should be listed in the
289L</Platform Support> section, instead.
e6a2e5ca 290
25219f3f 291[ List changes as an =item entry ].
64b9a139 292
e6a2e5ca 293=over 4
64b9a139
SH
294
295=item *
296
25219f3f 297XXX
f99042c8 298
e6a2e5ca
SH
299=back
300
25219f3f 301=head1 Testing
e6a2e5ca 302
25219f3f
KE
303XXX Any significant changes to the testing of a freshly built perl should be
304listed here. Changes which create B<new> files in F<t/> go here as do any
305large changes to the testing harness (e.g. when parallel testing was added).
306Changes to existing files in F<t/> aren't worth summarizing, although the bugs
307that they represent may be covered elsewhere.
e6a2e5ca 308
25219f3f 309XXX If there were no significant test changes, say this:
64b9a139 310
25219f3f
KE
311Tests were added and changed to reflect the other additions and changes
312in this release.
64b9a139 313
25219f3f 314XXX If instead there were significant changes, say this:
e6a2e5ca 315
25219f3f
KE
316Tests were added and changed to reflect the other additions and
317changes in this release. Furthermore, these significant changes were
318made:
e6a2e5ca 319
25219f3f 320[ List each test improvement as an =item entry ]
e6a2e5ca 321
e6a2e5ca 322=over 4
64b9a139 323
25219f3f 324=item *
dea26044 325
25219f3f 326XXX
dea26044 327
25219f3f 328=back
dea26044 329
25219f3f 330=head1 Platform Support
dea26044 331
25219f3f 332XXX Any changes to platform support should be listed in the sections below.
dea26044 333
25219f3f
KE
334[ Within the sections, list each platform as an =item entry with specific
335changes as paragraphs below it. ]
dea26044 336
25219f3f 337=head2 New Platforms
dea26044 338
25219f3f
KE
339XXX List any platforms that this version of perl compiles on, that previous
340versions did not. These will either be enabled by new files in the F<hints/>
341directories, or new subdirectories and F<README> files at the top level of the
342source tree.
dea26044 343
25219f3f 344=over 4
dea26044 345
25219f3f 346=item XXX-some-platform
dea26044 347
25219f3f 348XXX
dea26044
MB
349
350=back
e6a2e5ca 351
e6a2e5ca
SH
352=head2 Discontinued Platforms
353
25219f3f
KE
354XXX List any platforms that this version of perl no longer compiles on.
355
e6a2e5ca
SH
356=over 4
357
25219f3f 358=item XXX-some-platform
e6a2e5ca 359
25219f3f 360XXX
e6a2e5ca
SH
361
362=back
363
a8ba758d
JSA
364=head2 Platform-Specific Notes
365
25219f3f
KE
366XXX List any changes for specific platforms. This could include configuration
367and compilation changes or changes in portability/compatibility. However,
368changes within modules for platforms should generally be listed in the
369L</Modules and Pragmata> section.
370
a8ba758d 371=over 4
9ef07b78 372
04139aa0 373=item Windows
a8ba758d 374
04139aa0
SH
375We now set C<$Config{libpth}> correctly for 64-bit builds using Visual C++
376versions earlier than 14.1.
a8ba758d
JSA
377
378=back
379
e6a2e5ca
SH
380=head1 Internal Changes
381
25219f3f
KE
382XXX Changes which affect the interface available to C<XS> code go here. Other
383significant internal changes for future core maintainers should be noted as
384well.
8ed1839e 385
25219f3f 386=over 4
a8ba758d 387
ee5287f6
LM
388=item *
389
59eb8be1
KW
390XS modules can now automatically get reentrant versions of system
391functions on threaded perls.
392
393By saying
394
395 #define PERL_REENTRANT
396
397near the beginning of an C<XS> file, it will be compiled so that
398whatever reentrant functions perl knows about on that system will
399automatically and invisibly be used instead of the plain, non-reentrant
400versions. For example, if you write C<getpwnam()> in your code, on a
401system that has C<pwnam_r()> all calls to the former will be translated
402invisibly into the latter. This does not happen except on threaded
403perls, as they aren't needed otherwise. Be aware that which functions
404have reentrant versions varies from system to system.
ee5287f6 405
e6a2e5ca
SH
406=back
407
408=head1 Selected Bug Fixes
409
25219f3f
KE
410XXX Important bug fixes in the core language are summarized here. Bug fixes in
411files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
a155eb05 412
25219f3f 413[ List each fix as an =item entry ]
c2bb91f9 414
25219f3f 415=over 4
e6a2e5ca 416
4faa3060
TC
417=item *
418
25219f3f 419XXX
4faa3060 420
64072da0
Z
421=item *
422
423Perl's own C<malloc> no longer gets confused by attempts to allocate
7b9d2ba3 424more than a gigabyte on a 64-bit platform. [perl #119829]
64072da0 425
244d2682
FC
426=item *
427
428C<open $$scalarref...> and similar invocations no longer leak the file
429handle. [perl #115814]
430
431=item *
432
433The default typemap, by avoiding C<newGVgen>, now no longer leaks when
434XSUBs return file handles (C<PerlIO *> or C<FILE *>). [perl #115814]
435
25219f3f 436=back
4faa3060 437
25219f3f 438=head1 Known Problems
4faa3060 439
25219f3f
KE
440XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
441tests that had to be C<TODO>ed for the release would be noted here. Unfixed
442platform specific bugs also go here.
d1ac83c4 443
25219f3f 444[ List each fix as an =item entry ]
d1ac83c4 445
25219f3f 446=over 4
c4f4b223
Z
447
448=item *
449
25219f3f 450XXX
02d43d4f 451
e6a2e5ca
SH
452=back
453
e6a2e5ca
SH
454=head1 Errata From Previous Releases
455
456=over 4
8abafd33 457
e6a2e5ca
SH
458=item *
459
25219f3f
KE
460XXX Add anything here that we forgot to add, or were mistaken about, in
461the perldelta of a previous release.
8abafd33 462
e6a2e5ca 463=back
b2e49ab9 464
25219f3f 465=head1 Obituary
060724e5 466
25219f3f
KE
467XXX If any significant core contributor or member of the CPAN community has
468died, add a short obituary here.
060724e5 469
25219f3f 470=head1 Acknowledgements
060724e5 471
25219f3f 472XXX Generate this with:
060724e5 473
25219f3f 474 perl Porting/acknowledgements.pl v5.27.6..HEAD
f5b73711 475
44691e6f
AB
476=head1 Reporting Bugs
477
b5cbfe35
S
478If you find what you think is a bug, you might check the perl bug database
479at L<https://rt.perl.org/> . There may also be information at
480L<http://www.perl.org/> , the Perl Home Page.
44691e6f 481
e08634c5
SH
482If you believe you have an unreported bug, please run the L<perlbug> program
483included with your release. Be sure to trim your bug down to a tiny but
484sufficient test case. Your bug report, along with the output of C<perl -V>,
b5cbfe35 485will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 486
87c118b9
DM
487If the bug you are reporting has security implications which make it
488inappropriate to send to a publicly archived mailing list, then see
c0ea3294
SH
489L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
490for details of how to report the issue.
44691e6f 491
390ae6f9
S
492=head1 Give Thanks
493
494If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
495you can do so by running the C<perlthanks> program:
496
497 perlthanks
498
499This will send an email to the Perl 5 Porters list with your show of thanks.
500
44691e6f
AB
501=head1 SEE ALSO
502
e08634c5
SH
503The F<Changes> file for an explanation of how to view exhaustive details on
504what changed.
44691e6f
AB
505
506The F<INSTALL> file for how to build Perl.
507
508The F<README> file for general stuff.
509
510The F<Artistic> and F<Copying> files for copyright information.
511
512=cut