This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for 6b2c7479, dd688536
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
733dba2b
CG
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.25.8
eabfc7bc 9
2cfe9b50 10=head1 DESCRIPTION
eabfc7bc 11
733dba2b 12This document describes differences between the 5.25.7 release and the 5.25.8
4b8803f0 13release.
f3ed8cbf 14
733dba2b
CG
15If you are upgrading from an earlier release such as 5.25.6, first read
16L<perl5257delta>, which describes differences between 5.25.6 and 5.25.7.
8bbdbfcb 17
733dba2b 18=head1 Notice
8bbdbfcb 19
733dba2b 20XXX Any important notices here
8bbdbfcb 21
733dba2b 22=head1 Core Enhancements
ce6646d7 23
733dba2b
CG
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.
c0ea3294 27
733dba2b 28[ List each enhancement as a =head2 entry ]
ce6646d7 29
eaed4a85
YO
30=head2 New Hash Function For 64-bit Builds
31
32We have switched to a hybrid hash function to better balance
33performance for short and long keys.
34
35For short keys, 16 bytes and under, we use an optimised variant of
36One At A Time Hard, and for longer keys we use Siphash 1-3. For very
37long keys this is a big improvement in performance. For shorter keys
38there is a modest improvement.
39
733dba2b 40=head1 Security
8bbdbfcb 41
733dba2b
CG
42XXX Any security-related notices go here. In particular, any security
43vulnerabilities closed should be noted here rather than in the
44L</Selected Bug Fixes> section.
8bbdbfcb 45
733dba2b 46[ List each security issue as a =head2 entry ]
8bbdbfcb 47
733dba2b 48=head1 Incompatible Changes
8bbdbfcb 49
733dba2b 50XXX For a release on a stable branch, this section aspires to be:
2f4cbc09 51
733dba2b
CG
52 There are no changes intentionally incompatible with 5.XXX.XXX
53 If any exist, they are bugs, and we request that you submit a
54 report. See L</Reporting Bugs> below.
2f4cbc09 55
733dba2b 56[ List each incompatible change as a =head2 entry ]
226eba01 57
733dba2b 58=head1 Deprecations
8bbdbfcb 59
733dba2b 60XXX Any deprecated features, syntax, modules etc. should be listed here.
8bbdbfcb 61
733dba2b 62=head2 Module removals
8bbdbfcb 63
733dba2b 64XXX Remove this section if inapplicable.
8bbdbfcb 65
733dba2b
CG
66The following modules will be removed from the core distribution in a
67future release, and will at that time need to be installed from CPAN.
68Distributions on CPAN which require these modules will need to list them as
69prerequisites.
8bbdbfcb 70
733dba2b
CG
71The core versions of these modules will now issue C<"deprecated">-category
72warnings to alert you to this fact. To silence these deprecation warnings,
73install the modules in question from CPAN.
8bbdbfcb 74
733dba2b
CG
75Note that these are (with rare exceptions) fine modules that you are encouraged
76to continue to use. Their disinclusion from core primarily hinges on their
77necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
78not usually on concerns over their design.
8bbdbfcb 79
733dba2b 80=over
8bbdbfcb 81
733dba2b 82=item XXX
8bbdbfcb 83
733dba2b
CG
84XXX Note that deprecated modules should be listed here even if they are listed
85as an updated module in the L</Modules and Pragmata> section.
8bbdbfcb 86
a09f502b 87=back
226eba01 88
733dba2b 89[ List each other deprecation as a =head2 entry ]
55a729d3 90
733dba2b 91=head1 Performance Enhancements
226eba01 92
733dba2b
CG
93XXX Changes which enhance performance without changing behaviour go here.
94There may well be none in a stable release.
226eba01 95
733dba2b 96[ List each enhancement as a =item entry ]
8bbdbfcb
CG
97
98=over 4
99
eaed4a85 100=item * New Faster Hash Function on 64 bit builds
8bbdbfcb 101
eaed4a85
YO
102We use a different hash function for short and long keys. This should
103improve performance and security, especially for long keys.
8bbdbfcb 104
dd3d2a3f
DM
105=item * readline is faster
106
107Reading from a file line-by-line with c<readline()> or C<< <> >> should
108now typically be faster due to a better implementation of the code that
109searches for the next newline character.
110
8bbdbfcb
CG
111=back
112
733dba2b 113=head1 Modules and Pragmata
8bbdbfcb 114
733dba2b
CG
115XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
116go here. If Module::CoreList is updated, generate an initial draft of the
117following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
118for important changes should then be added by hand. In an ideal world,
119dual-life modules would have a F<Changes> file that could be cribbed.
8bbdbfcb 120
733dba2b 121[ Within each section, list entries as a =item entry ]
8bbdbfcb 122
733dba2b 123=head2 New Modules and Pragmata
226eba01 124
a09f502b 125=over 4
226eba01
AC
126
127=item *
128
733dba2b 129XXX
8bbdbfcb
CG
130
131=back
132
733dba2b 133=head2 Updated Modules and Pragmata
8bbdbfcb
CG
134
135=over 4
136
137=item *
138
733dba2b 139L<XXX> has been upgraded from version A.xx to B.yy.
8bbdbfcb 140
ff10d69b
JK
141=item *
142
143L<Pod::Simple> has been upgraded from version 3.32 to 3.35.
144
76ea8b6a
JK
145=item *
146
147L<Test::Simple> has been upgraded from version 1.302067 to 1.302071.
148
8bbdbfcb
CG
149=back
150
733dba2b 151=head2 Removed Modules and Pragmata
8bbdbfcb
CG
152
153=over 4
154
155=item *
156
733dba2b 157XXX
8bbdbfcb
CG
158
159=back
160
733dba2b 161=head1 Documentation
8bbdbfcb 162
733dba2b
CG
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>.
8bbdbfcb 165
733dba2b 166=head2 New Documentation
8bbdbfcb 167
733dba2b 168XXX Changes which create B<new> files in F<pod/> go here.
8bbdbfcb 169
733dba2b 170=head3 L<XXX>
8bbdbfcb 171
733dba2b 172XXX Description of the purpose of the new file here
8bbdbfcb 173
733dba2b 174=head2 Changes to Existing Documentation
8bbdbfcb 175
733dba2b
CG
176XXX Changes which significantly change existing files in F<pod/> go here.
177However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
178section.
8bbdbfcb 179
733dba2b 180=head3 L<XXX>
8bbdbfcb
CG
181
182=over 4
183
184=item *
185
733dba2b 186XXX Description of the change here
8bbdbfcb
CG
187
188=back
189
733dba2b 190=head1 Diagnostics
8bbdbfcb 191
733dba2b
CG
192The following additions or changes have been made to diagnostic output,
193including warnings and fatal error messages. For the complete list of
194diagnostic messages, see L<perldiag>.
8bbdbfcb 195
733dba2b
CG
196XXX New or changed warnings emitted by the core's C<C> code go here. Also
197include any changes in L<perldiag> that reconcile it to the C<C> code.
8bbdbfcb 198
733dba2b 199=head2 New Diagnostics
8bbdbfcb 200
733dba2b
CG
201XXX Newly added diagnostic messages go under here, separated into New Errors
202and New Warnings
8bbdbfcb 203
733dba2b 204=head3 New Errors
8bbdbfcb
CG
205
206=over 4
207
208=item *
209
733dba2b 210XXX L<message|perldiag/"message">
8bbdbfcb
CG
211
212=back
213
733dba2b 214=head3 New Warnings
8bbdbfcb
CG
215
216=over 4
217
218=item *
219
733dba2b 220XXX L<message|perldiag/"message">
8bbdbfcb 221
be293293 222=back
8c3f6b0b 223
a09f502b
AC
224=head2 Changes to Existing Diagnostics
225
733dba2b 226XXX Changes (i.e. rewording) of diagnostic messages go here
2c4879e2 227
733dba2b 228=over 4
8bbdbfcb
CG
229
230=item *
231
733dba2b 232XXX Describe change here
bd5630ab 233
2c4879e2
SL
234=back
235
a09f502b
AC
236=head1 Utility Changes
237
733dba2b
CG
238XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
239Most of these are built within the directory F<utils>.
8bbdbfcb 240
733dba2b
CG
241[ List utility changes as a =head2 entry for each utility and =item
242entries for each change
243Use L<XXX> with program names to get proper documentation linking. ]
8bbdbfcb 244
733dba2b 245=head2 L<XXX>
8bbdbfcb 246
733dba2b 247=over 4
8bbdbfcb
CG
248
249=item *
250
733dba2b 251XXX
07cfdfcc 252
262514fd 253=back
2c4879e2 254
a09f502b
AC
255=head1 Configuration and Compilation
256
733dba2b
CG
257XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
258go here. Any other changes to the Perl build process should be listed here.
259However, any platform-specific changes should be listed in the
260L</Platform Support> section, instead.
8bbdbfcb 261
733dba2b 262[ List changes as a =item entry ].
8bbdbfcb 263
733dba2b 264=over 4
a09f502b 265
a07f6112 266=item *
a09f502b 267
c730b126
TC
268Zero out the alignment bytes when calculating the bytes for 80-bit C<NaN>
269and C<Inf> to make builds more reproducible. [perl #130133]
a09f502b 270
a07f6112 271=back
7d897bd0 272
a07f6112 273=head1 Testing
a09f502b 274
733dba2b
CG
275XXX Any significant changes to the testing of a freshly built perl should be
276listed here. Changes which create B<new> files in F<t/> go here as do any
277large changes to the testing harness (e.g. when parallel testing was added).
278Changes to existing files in F<t/> aren't worth summarizing, although the bugs
279that they represent may be covered elsewhere.
a6a32e96 280
733dba2b 281[ List each test improvement as a =item entry ]
a6a32e96 282
733dba2b 283=over 4
a6a32e96 284
e7e6e8d4
KW
285=item *
286
733dba2b 287XXX
e7e6e8d4 288
262514fd 289=back
046a081f 290
262514fd 291=head1 Platform Support
046a081f 292
733dba2b 293XXX Any changes to platform support should be listed in the sections below.
8bbdbfcb 294
733dba2b
CG
295[ Within the sections, list each platform as a =item entry with specific
296changes as paragraphs below it. ]
8bbdbfcb 297
733dba2b 298=head2 New Platforms
8bbdbfcb 299
733dba2b
CG
300XXX List any platforms that this version of perl compiles on, that previous
301versions did not. These will either be enabled by new files in the F<hints/>
302directories, or new subdirectories and F<README> files at the top level of the
303source tree.
8bbdbfcb 304
733dba2b 305=over 4
8bbdbfcb 306
733dba2b 307=item XXX-some-platform
a07f6112 308
733dba2b 309XXX
8bbdbfcb 310
733dba2b 311=back
8bbdbfcb 312
733dba2b 313=head2 Discontinued Platforms
8bbdbfcb 314
733dba2b 315XXX List any platforms that this version of perl no longer compiles on.
8bbdbfcb 316
733dba2b 317=over 4
8bbdbfcb 318
733dba2b 319=item XXX-some-platform
8bbdbfcb 320
733dba2b 321XXX
8bbdbfcb 322
733dba2b 323=back
8bbdbfcb 324
733dba2b 325=head2 Platform-Specific Notes
8bbdbfcb 326
733dba2b
CG
327XXX List any changes for specific platforms. This could include configuration
328and compilation changes or changes in portability/compatibility. However,
329changes within modules for platforms should generally be listed in the
330L</Modules and Pragmata> section.
8bbdbfcb 331
733dba2b 332=over 4
8bbdbfcb 333
733dba2b 334=item XXX-some-platform
8bbdbfcb 335
733dba2b 336XXX
8bbdbfcb
CG
337
338=back
339
a07f6112 340=head1 Internal Changes
f9380377 341
733dba2b
CG
342XXX Changes which affect the interface available to C<XS> code go here. Other
343significant internal changes for future core maintainers should be noted as
344well.
a6a32e96 345
733dba2b 346[ List each change as a =item entry ]
a6a32e96 347
733dba2b 348=over 4
a6a32e96
AC
349
350=item *
351
e03e82a0
DM
352A new API function, C<sv_set_undef(sv)>, has been added. This is
353equivalent to C<sv_setsv(sv, &PL_sv_undef)>, but is more efficient.
bd5630ab 354
a09f502b 355=back
a6a32e96 356
a09f502b 357=head1 Selected Bug Fixes
a6a32e96 358
733dba2b
CG
359XXX Important bug fixes in the core language are summarized here. Bug fixes in
360files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
a6a32e96 361
733dba2b 362[ List each fix as a =item entry ]
8bbdbfcb 363
733dba2b 364=over 4
8bbdbfcb
CG
365
366=item *
367
733dba2b 368XXX
2f4cbc09 369
733dba2b 370=back
8bbdbfcb 371
733dba2b 372=head1 Known Problems
8bbdbfcb 373
733dba2b
CG
374XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
375tests that had to be C<TODO>ed for the release would be noted here. Unfixed
376platform specific bugs also go here.
8bbdbfcb 377
733dba2b 378[ List each fix as a =item entry ]
8bbdbfcb 379
733dba2b 380=over 4
8bbdbfcb
CG
381
382=item *
383
733dba2b 384XXX
8bbdbfcb 385
733dba2b 386=back
8bbdbfcb 387
733dba2b 388=head1 Errata From Previous Releases
8bbdbfcb 389
733dba2b 390=over 4
8bbdbfcb
CG
391
392=item *
393
733dba2b
CG
394XXX Add anything here that we forgot to add, or were mistaken about, in
395the perldelta of a previous release.
8bbdbfcb 396
262514fd
SL
397=back
398
733dba2b 399=head1 Obituary
a6a32e96 400
733dba2b
CG
401XXX If any significant core contributor has died, we've added a short obituary
402here.
262514fd 403
733dba2b 404=head1 Acknowledgements
226eba01 405
733dba2b 406XXX Generate this with:
24528e8e 407
733dba2b 408 perl Porting/acknowledgements.pl v5.25.5..HEAD
f5b73711 409
44691e6f
AB
410=head1 Reporting Bugs
411
c0ea3294
SH
412If you find what you think is a bug, you might check the perl bug database
413at L<https://rt.perl.org/> . There may also be information at
4b8803f0 414L<http://www.perl.org/> , the Perl Home Page.
44691e6f 415
e08634c5
SH
416If you believe you have an unreported bug, please run the L<perlbug> program
417included with your release. Be sure to trim your bug down to a tiny but
418sufficient test case. Your bug report, along with the output of C<perl -V>,
419will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 420
87c118b9
DM
421If the bug you are reporting has security implications which make it
422inappropriate to send to a publicly archived mailing list, then see
c0ea3294
SH
423L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
424for details of how to report the issue.
44691e6f
AB
425
426=head1 SEE ALSO
427
e08634c5
SH
428The F<Changes> file for an explanation of how to view exhaustive details on
429what changed.
44691e6f
AB
430
431The F<INSTALL> file for how to build Perl.
432
433The F<README> file for general stuff.
434
435The F<Artistic> and F<Copying> files for copyright information.
436
437=cut