This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
"\cX" where X is non-printable is now fatal
[perl5.git] / pod / perldelta.pod
1 =encoding utf8
2
3 =head1 NAME
4
5 [ this is a template for a new perldelta file.  Any text flagged as XXX needs
6 to be processed before release. ]
7
8 perldelta - what is new for perl v5.21.1
9
10 =head1 DESCRIPTION
11
12 This document describes differences between the 5.21.0 release and the 5.21.1
13 release.
14
15 If you are upgrading from an earlier release such as 5.20.0, first read
16 L<perl5210delta>, which describes differences between 5.20.0 and 5.21.0.
17
18 =head1 Notice
19
20 XXX Any important notices here
21
22 =head1 Core Enhancements
23
24 XXX New core language features go here.  Summarize user-visible core language
25 enhancements.  Particularly prominent performance optimisations could go
26 here, but most should go in the L</Performance Enhancements> section.
27
28 [ List each enhancement as a =head2 entry ]
29
30 =head1 Security
31
32 XXX Any security-related notices go here.  In particular, any security
33 vulnerabilities closed should be noted here rather than in the
34 L</Selected Bug Fixes> section.
35
36 [ List each security issue as a =head2 entry ]
37
38 =head1 Incompatible Changes
39
40 XXX For a release on a stable branch, this section aspires to be:
41
42     There are no changes intentionally incompatible with 5.XXX.XXX
43     If any exist, they are bugs, and we request that you submit a
44     report.  See L</Reporting Bugs> below.
45
46 =head2 In double-quotish C<\cI<X>>, I<X> must now be a printable ASCII character
47
48 In prior releases, failure to do this raised a deprecation warning.
49
50 =head1 Deprecations
51
52 XXX Any deprecated features, syntax, modules etc. should be listed here.
53
54 =head2 Module removals
55
56 XXX Remove this section if inapplicable.
57
58 The following modules will be removed from the core distribution in a
59 future release, and will at that time need to be installed from CPAN.
60 Distributions on CPAN which require these modules will need to list them as
61 prerequisites.
62
63 The core versions of these modules will now issue C<"deprecated">-category
64 warnings to alert you to this fact.  To silence these deprecation warnings,
65 install the modules in question from CPAN.
66
67 Note that these are (with rare exceptions) fine modules that you are encouraged
68 to continue to use.  Their disinclusion from core primarily hinges on their
69 necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
70 not usually on concerns over their design.
71
72 =over
73
74 =item XXX
75
76 XXX Note that deprecated modules should be listed here even if they are listed
77 as an updated module in the L</Modules and Pragmata> section.
78
79 =back
80
81 [ List each other deprecation as a =head2 entry ]
82
83 =head1 Performance Enhancements
84
85 XXX Changes which enhance performance without changing behaviour go here.
86 There may well be none in a stable release.
87
88 [ List each enhancement as a =item entry ]
89
90 =over 4
91
92 =item *
93
94 XXX
95
96 =back
97
98 =head1 Modules and Pragmata
99
100 XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
101 go here.  If Module::CoreList is updated, generate an initial draft of the
102 following sections using F<Porting/corelist-perldelta.pl>.  A paragraph summary
103 for important changes should then be added by hand.  In an ideal world,
104 dual-life modules would have a F<Changes> file that could be cribbed.
105
106 [ Within each section, list entries as a =item entry ]
107
108 =head2 New Modules and Pragmata
109
110 =over 4
111
112 =item *
113
114 XXX
115
116 =back
117
118 =head2 Updated Modules and Pragmata
119
120 =over 4
121
122 =item *
123
124 L<Carp> has been upgraded from version 1.3301 to 1.34.
125
126 Carp::Heavy now ignores version mismatches with Carp if Carp is newer
127 than 1.12, since Carp::Heavy's guts were merged into Carp at that
128 point.
129 L<[perl #121574]|https://rt.perl.org/Ticket/Display.html?id=121574>
130
131 =item *
132
133 L<Math::BigInt> has been upgraded from version 1.9993 to 1.9994.
134
135 Synchronize POD changes from the CPAN release.
136
137 C<< Math::BigFloat->blog(x) >> would sometimes return blog(2*x) when
138 the accuracy was greater than 70 digits.
139
140 The result of C<< Math::BigFloat->bdiv() >> in list context now
141 satisfies C<< x = quotient * divisor + remainder >>.
142
143 =item *
144
145 L<Math::BigRat> has been upgraded from version 0.2606 to 0.2607.
146
147 Synchronize POD changes from the CPAN release.
148
149 =item *
150
151 L<perl5db.pl> has been upgraded from version 1.44 to 1.45.
152
153 fork() in the debugger under C<tmux> will now create a new window for
154 the forked process. L<[perl
155 #121333]|https://rt.perl.org/Ticket/Display.html?id=121333>
156
157 The debugger now saves the current working directory on startup and
158 restores it when you restart your program with C<R> or <rerun>. L<[perl
159 #121509]|https://rt.perl.org/Ticket/Display.html?id=121509>
160
161 L<Unicode::Collate> has been upgraded from version 1.04 to 1.07.
162
163 Version 0.67's improved discontiguous contractions is invalidated by default
164 and is supported as a parameter 'long_contraction'.
165
166 =item *
167
168 L<Unicode::Normalize> has been upgraded from version 1.17 to 1.18.
169
170 The XSUB implementation has been removed in favour of pure Perl.
171
172 =back
173
174 =head2 Removed Modules and Pragmata
175
176 =over 4
177
178 =item *
179
180 XXX
181
182 =back
183
184 =head1 Documentation
185
186 XXX Changes to files in F<pod/> go here.  Consider grouping entries by
187 file and be sure to link to the appropriate page, e.g. L<perlfunc>.
188
189 =head2 New Documentation
190
191 XXX Changes which create B<new> files in F<pod/> go here.
192
193 =head3 L<XXX>
194
195 XXX Description of the purpose of the new file here
196
197 =head2 Changes to Existing Documentation
198
199 XXX Changes which significantly change existing files in F<pod/> go here.
200 However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
201 section.
202
203 =head3 L<XXX>
204
205 =over 4
206
207 =item *
208
209 XXX Description of the change here
210
211 =back
212
213 =head1 Diagnostics
214
215 The following additions or changes have been made to diagnostic output,
216 including warnings and fatal error messages.  For the complete list of
217 diagnostic messages, see L<perldiag>.
218
219 XXX New or changed warnings emitted by the core's C<C> code go here.  Also
220 include any changes in L<perldiag> that reconcile it to the C<C> code.
221
222 =head2 New Diagnostics
223
224 XXX Newly added diagnostic messages go under here, separated into New Errors
225 and New Warnings
226
227 =head3 New Errors
228
229 =over 4
230
231 =item *
232
233 XXX L<message|perldiag/"message">
234
235 =back
236
237 =head3 New Warnings
238
239 =over 4
240
241 =item *
242
243 XXX L<message|perldiag/"message">
244
245 =back
246
247 =head2 Changes to Existing Diagnostics
248
249 XXX Changes (i.e. rewording) of diagnostic messages go here
250
251 =over 4
252
253 =item *
254
255 L<Unsuccessful %s on filename containing newline|perldiag/"Unsuccessful %s on filename containing newline">
256
257 This warning is now only produced when the newline is at the end of
258 the filename.
259
260 =back
261
262 =head1 Utility Changes
263
264 XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
265 Most of these are built within the directories F<utils> and F<x2p>.
266
267 [ List utility changes as a =head2 entry for each utility and =item
268 entries for each change
269 Use L<XXX> with program names to get proper documentation linking. ]
270
271 =head2 L<XXX>
272
273 =over 4
274
275 =item *
276
277 XXX
278
279 =back
280
281 =head1 Configuration and Compilation
282
283 XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
284 go here.  Any other changes to the Perl build process should be listed here.
285 However, any platform-specific changes should be listed in the
286 L</Platform Support> section, instead.
287
288 [ List changes as a =item entry ].
289
290 =over 4
291
292 =item *
293
294 XXX
295
296 =back
297
298 =head1 Testing
299
300 XXX Any significant changes to the testing of a freshly built perl should be
301 listed here.  Changes which create B<new> files in F<t/> go here as do any
302 large changes to the testing harness (e.g. when parallel testing was added).
303 Changes to existing files in F<t/> aren't worth summarizing, although the bugs
304 that they represent may be covered elsewhere.
305
306 [ List each test improvement as a =item entry ]
307
308 =over 4
309
310 =item *
311
312 XXX
313
314 =back
315
316 =head1 Platform Support
317
318 XXX Any changes to platform support should be listed in the sections below.
319
320 [ Within the sections, list each platform as a =item entry with specific
321 changes as paragraphs below it. ]
322
323 =head2 New Platforms
324
325 XXX List any platforms that this version of perl compiles on, that previous
326 versions did not.  These will either be enabled by new files in the F<hints/>
327 directories, or new subdirectories and F<README> files at the top level of the
328 source tree.
329
330 =over 4
331
332 =item XXX-some-platform
333
334 XXX
335
336 =back
337
338 =head2 Discontinued Platforms
339
340 XXX List any platforms that this version of perl no longer compiles on.
341
342 =over 4
343
344 =item XXX-some-platform
345
346 XXX
347
348 =back
349
350 =head2 Platform-Specific Notes
351
352 XXX List any changes for specific platforms.  This could include configuration
353 and compilation changes or changes in portability/compatibility.  However,
354 changes within modules for platforms should generally be listed in the
355 L</Modules and Pragmata> section.
356
357 =over 4
358
359 =item XXX-some-platform
360
361 XXX
362
363 =back
364
365 =head1 Internal Changes
366
367 XXX Changes which affect the interface available to C<XS> code go here.  Other
368 significant internal changes for future core maintainers should be noted as
369 well.
370
371 =over 4
372
373 =item *
374
375 The deprecated variable C<PL_sv_objcount> has been removed.
376
377 =back
378
379 =head1 Selected Bug Fixes
380
381 XXX Important bug fixes in the core language are summarized here.  Bug fixes in
382 files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
383
384 [ List each fix as a =item entry ]
385
386 =over 4
387
388 =item *
389
390 index() and rindex() no longer crash when used on strings over 2GB in
391 size.
392 L<[perl #121562]|https://rt.perl.org/Ticket/Display.html?id=121562>.
393
394 =back
395
396 =head1 Known Problems
397
398 XXX Descriptions of platform agnostic bugs we know we can't fix go here.  Any
399 tests that had to be C<TODO>ed for the release would be noted here.  Unfixed
400 platform specific bugs also go here.
401
402 [ List each fix as a =item entry ]
403
404 =over 4
405
406 =item *
407
408 XXX
409
410 =back
411
412 =head1 Errata From Previous Releases
413
414 =over 4
415
416 =item *
417
418 XXX Add anything here that we forgot to add, or were mistaken about, in
419 the perldelta of a previous release.
420
421 =back
422
423 =head1 Obituary
424
425 XXX If any significant core contributor has died, we've added a short obituary
426 here.
427
428 =head1 Acknowledgements
429
430 XXX Generate this with:
431
432   perl Porting/acknowledgements.pl v5.21.1..HEAD
433
434 =head1 Reporting Bugs
435
436 If you find what you think is a bug, you might check the articles recently
437 posted to the comp.lang.perl.misc newsgroup and the perl bug database at
438 https://rt.perl.org/ .  There may also be information at
439 http://www.perl.org/ , the Perl Home Page.
440
441 If you believe you have an unreported bug, please run the L<perlbug> program
442 included with your release.  Be sure to trim your bug down to a tiny but
443 sufficient test case.  Your bug report, along with the output of C<perl -V>,
444 will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
445
446 If the bug you are reporting has security implications, which make it
447 inappropriate to send to a publicly archived mailing list, then please send it
448 to perl5-security-report@perl.org.  This points to a closed subscription
449 unarchived mailing list, which includes all the core committers, who will be
450 able to help assess the impact of issues, figure out a resolution, and help
451 co-ordinate the release of patches to mitigate or fix the problem across all
452 platforms on which Perl is supported.  Please only use this address for
453 security issues in the Perl core, not for modules independently distributed on
454 CPAN.
455
456 =head1 SEE ALSO
457
458 The F<Changes> file for an explanation of how to view exhaustive details on
459 what changed.
460
461 The F<INSTALL> file for how to build Perl.
462
463 The F<README> file for general stuff.
464
465 The F<Artistic> and F<Copying> files for copyright information.
466
467 =cut