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