This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta d3f0c815eccb54ae88550259c06aa395b2274580
[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
01d02537
Z
191The API functions C<newCONSTSUB()> and C<newCONSTSUB_flags()> are
192documented much more comprehensively than before.
193
40a66856
Z
194=head3 L<perlop>
195
196The documentation for the C<\> referencing operator now explains the
197unusual context that it supplies to its operand. [perl #131061]
198
f6c3d597
Z
199=head3 L<perlfunc>
200
201The documentation for the C<exists> operator no longer says that
202autovivification behaviour "may be fixed in a future release".
203We've determined that we're not going to change the default behaviour.
204[perl #127712]
205
56e48c10
KW
206=head3 L<perluniprops>
207
208For each binary table or property, the documentation now includes which
209characters in the range C<\x00-\xFF> it matches, as well as a list of
210the first few ranges of code points matched above that.
b2a6778b 211
01d02537
Z
212=head3 L<perlintern>
213
214The internal functions C<newXS_len_flags()> and C<newATTRSUB_x()> are
215now documented.
216
25219f3f 217=over 4
b2a6778b
KE
218
219=item *
220
25219f3f 221XXX Description of the change here
b2a6778b 222
25219f3f 223=back
b2a6778b 224
25219f3f 225=head1 Diagnostics
b2a6778b 226
25219f3f
KE
227The following additions or changes have been made to diagnostic output,
228including warnings and fatal error messages. For the complete list of
229diagnostic messages, see L<perldiag>.
b2a6778b 230
25219f3f
KE
231XXX New or changed warnings emitted by the core's C<C> code go here. Also
232include any changes in L<perldiag> that reconcile it to the C<C> code.
b2a6778b 233
25219f3f 234=head2 New Diagnostics
b2a6778b 235
25219f3f
KE
236XXX Newly added diagnostic messages go under here, separated into New Errors
237and New Warnings
b2a6778b 238
25219f3f 239=head3 New Errors
b2a6778b 240
25219f3f 241=over 4
b2a6778b
KE
242
243=item *
244
a01f4640
FC
245L<Can't "goto" into a "given" block|perldiag/"Can't E<quot>gotoE<quot> into a E<quot>givenE<quot> block">
246
247(F) A "goto" statement was executed to jump into the middle of a C<given>
248block. You can't get there from here. See L<perlfunc/goto>.
b2a6778b 249
25219f3f 250=back
b2a6778b 251
25219f3f 252=head3 New Warnings
b2a6778b 253
25219f3f 254=over 4
64b9a139
SH
255
256=item *
257
0b4678bf
FC
258L<Old package separator used in string|perldiag/"Old package separator used in string">
259
260(W syntax) You used the old package separator, "'", in a variable
261named inside a double-quoted string; e.g., C<"In $name's house">. This
262is equivalent to C<"In $name::s house">. If you meant the former, put
263a backslash before the apostrophe (C<"In $name\'s house">).
64b9a139 264
e6a2e5ca 265=back
64b9a139 266
25219f3f 267=head2 Changes to Existing Diagnostics
64b9a139 268
25219f3f 269XXX Changes (i.e. rewording) of diagnostic messages go here
e6a2e5ca 270
04f89ea7
Z
271=over 4
272
64b9a139
SH
273=item *
274
25219f3f 275XXX Describe change here
2b8b74b0 276
52e3acf8
Z
277=item *
278
279Warnings that a variable or subroutine "masks earlier declaration in same
280...", or that an C<our> variable has been redeclared, have been moved to a
281new warnings category "shadow". Previously they were in category "misc".
282
25219f3f 283=back
e509fc38 284
25219f3f 285=head1 Utility Changes
e509fc38 286
25219f3f
KE
287XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
288Most of these are built within the directory F<utils>.
64b9a139 289
25219f3f
KE
290[ List utility changes as a =head2 entry for each utility and =item
291entries for each change
292Use L<XXX> with program names to get proper documentation linking. ]
64b9a139 293
25219f3f 294=head2 L<XXX>
64b9a139 295
25219f3f 296=over 4
64b9a139
SH
297
298=item *
299
25219f3f 300XXX
64b9a139 301
e6a2e5ca
SH
302=back
303
25219f3f 304=head1 Configuration and Compilation
64b9a139 305
25219f3f
KE
306XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
307go here. Any other changes to the Perl build process should be listed here.
308However, any platform-specific changes should be listed in the
309L</Platform Support> section, instead.
e6a2e5ca 310
25219f3f 311[ List changes as an =item entry ].
64b9a139 312
e6a2e5ca 313=over 4
64b9a139
SH
314
315=item *
316
25219f3f 317XXX
f99042c8 318
e6a2e5ca
SH
319=back
320
25219f3f 321=head1 Testing
e6a2e5ca 322
25219f3f
KE
323XXX Any significant changes to the testing of a freshly built perl should be
324listed here. Changes which create B<new> files in F<t/> go here as do any
325large changes to the testing harness (e.g. when parallel testing was added).
326Changes to existing files in F<t/> aren't worth summarizing, although the bugs
327that they represent may be covered elsewhere.
e6a2e5ca 328
25219f3f 329XXX If there were no significant test changes, say this:
64b9a139 330
25219f3f
KE
331Tests were added and changed to reflect the other additions and changes
332in this release.
64b9a139 333
25219f3f 334XXX If instead there were significant changes, say this:
e6a2e5ca 335
25219f3f
KE
336Tests were added and changed to reflect the other additions and
337changes in this release. Furthermore, these significant changes were
338made:
e6a2e5ca 339
25219f3f 340[ List each test improvement as an =item entry ]
e6a2e5ca 341
e6a2e5ca 342=over 4
64b9a139 343
25219f3f 344=item *
dea26044 345
25219f3f 346XXX
dea26044 347
25219f3f 348=back
dea26044 349
25219f3f 350=head1 Platform Support
dea26044 351
25219f3f 352XXX Any changes to platform support should be listed in the sections below.
dea26044 353
25219f3f
KE
354[ Within the sections, list each platform as an =item entry with specific
355changes as paragraphs below it. ]
dea26044 356
25219f3f 357=head2 New Platforms
dea26044 358
25219f3f
KE
359XXX List any platforms that this version of perl compiles on, that previous
360versions did not. These will either be enabled by new files in the F<hints/>
361directories, or new subdirectories and F<README> files at the top level of the
362source tree.
dea26044 363
25219f3f 364=over 4
dea26044 365
25219f3f 366=item XXX-some-platform
dea26044 367
25219f3f 368XXX
dea26044
MB
369
370=back
e6a2e5ca 371
e6a2e5ca
SH
372=head2 Discontinued Platforms
373
25219f3f
KE
374XXX List any platforms that this version of perl no longer compiles on.
375
e6a2e5ca
SH
376=over 4
377
25219f3f 378=item XXX-some-platform
e6a2e5ca 379
25219f3f 380XXX
e6a2e5ca
SH
381
382=back
383
a8ba758d
JSA
384=head2 Platform-Specific Notes
385
25219f3f
KE
386XXX List any changes for specific platforms. This could include configuration
387and compilation changes or changes in portability/compatibility. However,
388changes within modules for platforms should generally be listed in the
389L</Modules and Pragmata> section.
390
a8ba758d 391=over 4
9ef07b78 392
04139aa0 393=item Windows
a8ba758d 394
04139aa0
SH
395We now set C<$Config{libpth}> correctly for 64-bit builds using Visual C++
396versions earlier than 14.1.
a8ba758d
JSA
397
398=back
399
e6a2e5ca
SH
400=head1 Internal Changes
401
25219f3f
KE
402XXX Changes which affect the interface available to C<XS> code go here. Other
403significant internal changes for future core maintainers should be noted as
404well.
8ed1839e 405
25219f3f 406=over 4
a8ba758d 407
ee5287f6
LM
408=item *
409
59eb8be1
KW
410XS modules can now automatically get reentrant versions of system
411functions on threaded perls.
412
413By saying
414
415 #define PERL_REENTRANT
416
417near the beginning of an C<XS> file, it will be compiled so that
418whatever reentrant functions perl knows about on that system will
419automatically and invisibly be used instead of the plain, non-reentrant
420versions. For example, if you write C<getpwnam()> in your code, on a
421system that has C<pwnam_r()> all calls to the former will be translated
422invisibly into the latter. This does not happen except on threaded
423perls, as they aren't needed otherwise. Be aware that which functions
424have reentrant versions varies from system to system.
ee5287f6 425
e6a2e5ca
SH
426=back
427
428=head1 Selected Bug Fixes
429
25219f3f
KE
430XXX Important bug fixes in the core language are summarized here. Bug fixes in
431files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
a155eb05 432
25219f3f 433[ List each fix as an =item entry ]
c2bb91f9 434
25219f3f 435=over 4
e6a2e5ca 436
4faa3060
TC
437=item *
438
25219f3f 439XXX
4faa3060 440
64072da0
Z
441=item *
442
1b16b015
Z
443The canonical truth value no longer has a spurious special meaning as
444a callable. It used to be a magic placeholder for a missing C<import>
445or C<unimport> method. It is now treated like any other string C<1>.
446[perl #126042]
447
448=item *
449
64072da0 450Perl's own C<malloc> no longer gets confused by attempts to allocate
7b9d2ba3 451more than a gigabyte on a 64-bit platform. [perl #119829]
64072da0 452
244d2682
FC
453=item *
454
455C<open $$scalarref...> and similar invocations no longer leak the file
456handle. [perl #115814]
457
458=item *
459
460The default typemap, by avoiding C<newGVgen>, now no longer leaks when
461XSUBs return file handles (C<PerlIO *> or C<FILE *>). [perl #115814]
462
aa0c5741
Z
463=item *
464
465Creating a C<BEGIN> block as an XS subroutine with a prototype no longer
466crashes because of the early freeing of the subroutine.
467
25219f3f 468=back
4faa3060 469
25219f3f 470=head1 Known Problems
4faa3060 471
25219f3f
KE
472XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
473tests that had to be C<TODO>ed for the release would be noted here. Unfixed
474platform specific bugs also go here.
d1ac83c4 475
25219f3f 476[ List each fix as an =item entry ]
d1ac83c4 477
25219f3f 478=over 4
c4f4b223
Z
479
480=item *
481
25219f3f 482XXX
02d43d4f 483
e6a2e5ca
SH
484=back
485
e6a2e5ca
SH
486=head1 Errata From Previous Releases
487
488=over 4
8abafd33 489
e6a2e5ca
SH
490=item *
491
25219f3f
KE
492XXX Add anything here that we forgot to add, or were mistaken about, in
493the perldelta of a previous release.
8abafd33 494
e6a2e5ca 495=back
b2e49ab9 496
25219f3f 497=head1 Obituary
060724e5 498
25219f3f
KE
499XXX If any significant core contributor or member of the CPAN community has
500died, add a short obituary here.
060724e5 501
25219f3f 502=head1 Acknowledgements
060724e5 503
25219f3f 504XXX Generate this with:
060724e5 505
25219f3f 506 perl Porting/acknowledgements.pl v5.27.6..HEAD
f5b73711 507
44691e6f
AB
508=head1 Reporting Bugs
509
b5cbfe35
S
510If you find what you think is a bug, you might check the perl bug database
511at L<https://rt.perl.org/> . There may also be information at
512L<http://www.perl.org/> , the Perl Home Page.
44691e6f 513
e08634c5
SH
514If you believe you have an unreported bug, please run the L<perlbug> program
515included with your release. Be sure to trim your bug down to a tiny but
516sufficient test case. Your bug report, along with the output of C<perl -V>,
b5cbfe35 517will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 518
87c118b9
DM
519If the bug you are reporting has security implications which make it
520inappropriate to send to a publicly archived mailing list, then see
c0ea3294
SH
521L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
522for details of how to report the issue.
44691e6f 523
390ae6f9
S
524=head1 Give Thanks
525
526If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
527you can do so by running the C<perlthanks> program:
528
529 perlthanks
530
531This will send an email to the Perl 5 Porters list with your show of thanks.
532
44691e6f
AB
533=head1 SEE ALSO
534
e08634c5
SH
535The F<Changes> file for an explanation of how to view exhaustive details on
536what changed.
44691e6f
AB
537
538The F<INSTALL> file for how to build Perl.
539
540The F<README> file for general stuff.
541
542The F<Artistic> and F<Copying> files for copyright information.
543
544=cut