This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldiag: rewording
[perl5.git] / pod / perldelta.pod
CommitLineData
3a5c9134
CBW
1=encoding utf8
2
3=head1 NAME
4
d17f3dbc
JV
5[ this is a template for a new perldelta file. Any text flagged as
6XXX needs to be processed before release. ]
15e6cdd9 7
d17f3dbc 8perldelta - what is new for perl v5.13.10
0d157ee2 9
d17f3dbc 10=head1 DESCRIPTION
b16cfc56 11
d17f3dbc
JV
12This document describes differences between the 5.XXX.XXX release and
13the 5.XXX.XXX release.
3a5c9134 14
d17f3dbc
JV
15If you are upgrading from an earlier release such as 5.YYY.YYY, first read
16L<perl5YYYdelta>, which describes differences between 5.ZZZ.ZZZ and
175.YYY.YYY.
d4560299 18
d17f3dbc 19=head1 Notice
d4560299 20
d17f3dbc 21XXX Any important notices here
d4560299 22
d17f3dbc 23=head1 Core Enhancements
d4560299 24
d17f3dbc
JV
25XXX New core language features go here. Summarise user-visible core language
26enhancements. Particularly prominent performance optimisations could go
27here, but most should go in the L</Performance Enhancements> section.
2638c0ff 28
d17f3dbc 29[ List each enhancement as a =head2 entry ]
2638c0ff 30
9e9ca9d7
KW
31=head2 Add C<\p{Titlecase}> as a synonym for C<\p{Title}>
32
33This synyom is added for symmetry with the Unicode property names
34C<\p{Uppercase}> and C<\p{Lowercase}>.
35
2f7f8cb1
KW
36=head2 New regular expression modifier option C</aa>
37
38Doubling the C</a> regular expression modifier increases its effect,
39so that in case-insensitive matching, no ASCII character will match a
40non-ASCII character. For example, normally,
41
42 'k' =~ /\N{KELVIN SIGN}/
43
44will match; it won't under C</aa>. Note that like C</a>, C</aa>
45in 5.14 will not actually be able to be used as a suffix at the end of a
46regular expression.
9e9ca9d7 47
d17f3dbc 48=head1 Security
17096837 49
d17f3dbc
JV
50XXX Any security-related notices go here. In particular, any security
51vulnerabilities closed should be noted here rather than in the
52L</Selected Bug Fixes> section.
e1165778 53
d17f3dbc 54[ List each security issue as a =head2 entry ]
17096837 55
d17f3dbc 56=head1 Incompatible Changes
935c8d19 57
d17f3dbc 58XXX For a release on a stable branch, this section aspires to be:
a3ab329f 59
d17f3dbc
JV
60 There are no changes intentionally incompatible with 5.XXX.XXX. If any
61 exist, they are bugs and reports are welcome.
a3ab329f 62
d17f3dbc 63[ List each incompatible change as a =head2 entry ]
6def3600 64
56ca34ca
KW
65=head2 Most C<\p{}> properties are now immune from case-insensitive matching
66
67For most Unicode properties, it doesn't make sense to have them match
68differently under C</i> case-insensitive matching than not. And doing
69so leads to unexpected results and potential security holes. For
70example
71
72 m/\p{ASCII_Hex_Digit}+/i
73
74could previously match non-ASCII characters because of the Unicode
75matching rules. There were a number of bugs in this feature until an
76earlier release in the 5.13 series. Now this release reverts, and
77removes the feature completely except for the few properties where
78people have come to expect it, namely the ones where casing is an
79integral part of their functionality, such as C<m/\p{Uppercase}/i> and
80C<m/\p{Lowercase}/i>, both of which match the exact same code points,
81namely those matched by C<m/\p{Cased}/i>. Details are in
82L<perlrecharclass/Unicode Properties>.
83
84User-defined property handlers that need to match differently under
85C</i> must change to read the new boolean parameter passed it which is
86non-zero if case-insensitive matching is in effect; 0 if not. See
87L<perluniprops/User-Defined Character Properties>.
88
d17f3dbc 89=head1 Deprecations
6def3600 90
d17f3dbc
JV
91XXX Any deprecated features, syntax, modules etc. should be listed here.
92In particular, deprecated modules should be listed here even if they are
93listed as an updated module in the L</Modules and Pragmata> section.
e8b333e6 94
d17f3dbc 95[ List each deprecation as a =head2 entry ]
e8b333e6 96
d17f3dbc 97=head1 Performance Enhancements
935c8d19 98
d17f3dbc
JV
99XXX Changes which enhance performance without changing behaviour go here. There
100may well be none in a stable release.
e1165778 101
d17f3dbc 102[ List each enhancement as a =item entry ]
f295f417 103
9f7a72d0 104=over 4
17096837 105
f295f417
FC
106=item *
107
d17f3dbc 108XXX
9c88a88b 109
d17f3dbc 110=back
9c88a88b 111
d17f3dbc 112=head1 Modules and Pragmata
b16cfc56 113
d17f3dbc
JV
114XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
115go here. If Module::CoreList is updated, generate an initial draft of the
116following sections using F<Porting/corelist-perldelta.pl>, which prints stub
117entries to STDOUT. Results can be pasted in place of the '=head2' entries
118below. A paragraph summary for important changes should then be added by hand.
119In an ideal world, dual-life modules would have a F<Changes> file that could be
120cribbed.
b16cfc56 121
d17f3dbc 122[ Within each section, list entries as a =item entry ]
8e1e0801 123
d17f3dbc 124=head2 New Modules and Pragmata
8e1e0801 125
d17f3dbc 126=over 4
4df1dffa
FC
127
128=item *
129
39ac3336
DG
130C<Version::Requirements> version 0.101020 has been added as a dual-life
131module. It provides a standard library to model and manipulates module
132prerequisites and version constraints as defined in the L<CPAN::Meta::Spec>.
4df1dffa 133
d17f3dbc 134=back
f5d41534 135
d17f3dbc 136=head2 Updated Modules and Pragmata
f5d41534 137
d17f3dbc 138=over 4
f5d41534
CBW
139
140=item *
141
f4c5852c
CBW
142C<CGI> has been upgraded from version 3.51 to 3.52
143
144=item *
145
28aafdbe
CBW
146C<CPANPLUS> has been upgraded from version 0.9011 to 0.91
147
148Includes support for META.json and MYMETA.json and a change to
149using Digest::SHA for CPAN checksums.
150
151=item *
152
f7f926be
CBW
153C<IPC::Cmd> has been upgraded from version 0.68 to 0.70
154
155=item *
156
44de791a
DG
157C<HTTP::Tiny> has been upgraded from version 0.009 to 0.010
158
159=item *
160
7cf8bfc0
DG
161C<Module::Build> has been upgraded from version 0.3607 to 0.3622.
162
163A notable change is the deprecation of several modules.
164Module::Build::Version has been deprecated and Module::Build now relies
165directly upon L<version>. Module::Build::ModuleInfo has been deprecated in
166favor of a standalone copy of it called L<Module::Metadata>.
167Module::Build::YAML has been deprecated in favor of L<CPAN::Meta::YAML>.
168
169=item *
170
f541799a 171C<Module::Load::Conditional> has been upgraded from version 0.40 to 0.44
a4031803
CBW
172
173=item *
174
2a856793
DG
175C<Module::Metadata> has been upgraded from version 1.000003 to 1.000004.
176
177=item *
178
34d5bd5d
DG
179C<Parse::CPAN::Meta> has been upgraded from version 1.40 to 1.4401.
180
181The latest Parse::CPAN::Meta can now read YAML or JSON files using
182L<CPAN::Meta::YAML> and L<JSON::PP>, which are now part of the Perl core.
183
184=item *
185
f31eab29
CBW
186C<Term::UI> has been upgraded from version 0.24 to 0.26
187
188=item *
189
f58b9ef1
CBW
190C<Unicode::Collate> has been upgraded from version 0.68 to 0.72
191
192This also sees the switch from using the pure-perl version of this
193module to the XS version.`
194
195=item *
196
d17f3dbc 197XXX
17096837 198
d17f3dbc 199=back
788ba0f4 200
d17f3dbc 201=head2 Removed Modules and Pragmata
98d645a7 202
d17f3dbc 203=over 4
98d645a7 204
7abec982
FC
205=item *
206
d17f3dbc 207XXX
7abec982 208
9f7a72d0 209=back
e1165778 210
9f7a72d0 211=head1 Documentation
17096837 212
d17f3dbc
JV
213XXX Changes to files in F<pod/> go here. Consider grouping entries by
214file and be sure to link to the appropriate page, e.g. L<perlfunc>.
b16cfc56 215
d17f3dbc 216=head2 New Documentation
b16cfc56 217
d17f3dbc 218XXX Changes which create B<new> files in F<pod/> go here.
b16cfc56 219
d17f3dbc 220=head3 L<XXX>
b16cfc56 221
d17f3dbc 222XXX Description of the purpose of the new file here
b16cfc56 223
d17f3dbc 224=head2 Changes to Existing Documentation
b16cfc56 225
d17f3dbc
JV
226XXX Changes which significantly change existing files in F<pod/> go here.
227However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
228section.
b16cfc56 229
04c692a8 230=head3 L<perlhack> and perlrepository
d4238815 231
9f7a72d0 232=over 4
17096837 233
d4238815
FC
234=item *
235
04c692a8
DR
236The L<perlhack> and perlrepository documents have been heavily edited and
237split up into several new documents.
238
239The L<perlhack> document is now much shorter, and focuses on the Perl 5
240development process and submitting patches to Perl. The technical content has
241been moved to several new documents, L<perlsource>, L<perlinterp>,
242L<perlhacktut>, and L<perlhacktips>. This technical content has only been
243lightly edited.
244
245The perlrepository document has been renamed to L<perlgit>. This new document
246is just a how-to on using git with the Perl source code. Any other content
247that used to be in perlrepository has been moved to perlhack.
e1165778 248
9f7a72d0 249=back
17096837 250
9f7a72d0 251=head1 Diagnostics
17096837 252
9f7a72d0
Z
253The following additions or changes have been made to diagnostic output,
254including warnings and fatal error messages. For the complete list of
255diagnostic messages, see L<perldiag>.
e1165778 256
d17f3dbc
JV
257XXX New or changed warnings emitted by the core's C<C> code go here. Also
258include any changes in L<perldiag> that reconcile it to the C<C> code.
259
260[ Within each section, list entries as a =item entry ]
261
9f7a72d0 262=head2 New Diagnostics
3a5c9134 263
d17f3dbc
JV
264XXX Newly added diagnostic messages go here
265
9f7a72d0 266=over 4
17096837 267
5024bc2d
KW
268=item "\b{" is deprecated; use "\b\{" instead
269
270=item "\B{" is deprecated; use "\B\{" instead
271
272Use of an unescaped "{" immediately following a C<\b> or C<\B> is now
273deprecated so as to reserve its use for Perl itself in a future release.
c2e0289e 274
17096837 275
9f7a72d0 276=back
e6f1cc4d 277
9f7a72d0 278=head2 Changes to Existing Diagnostics
e1165778 279
d17f3dbc
JV
280XXX Changes (i.e. rewording) of diagnostic messages go here
281
9f7a72d0 282=over 4
17096837 283
e1165778
Z
284=item *
285
d17f3dbc 286XXX
17096837 287
3a5c9134
CBW
288=back
289
9f7a72d0 290=head1 Utility Changes
e1165778 291
d17f3dbc
JV
292XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
293here. Most of these are built within the directories F<utils> and F<x2p>.
e1165778 294
d17f3dbc
JV
295[ List utility changes as a =head3 entry for each utility and =item
296entries for each change
297Use L<XXX> with program names to get proper documentation linking. ]
e1165778 298
d17f3dbc 299=head3 L<XXX>
b16cfc56
JV
300
301=over 4
302
303=item *
304
d17f3dbc 305XXX
b16cfc56
JV
306
307=back
308
d17f3dbc 309=head1 Configuration and Compilation
3a5c9134 310
d17f3dbc
JV
311XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
312go here. Any other changes to the Perl build process should be listed here.
313However, any platform-specific changes should be listed in the
314L</Platform Support> section, instead.
b16cfc56 315
d17f3dbc 316[ List changes as a =item entry ].
b16cfc56 317
d17f3dbc 318=over 4
3a5c9134 319
b16cfc56
JV
320=item *
321
d17f3dbc 322XXX
b16cfc56 323
d17f3dbc 324=back
b16cfc56 325
d17f3dbc 326=head1 Testing
b16cfc56 327
d17f3dbc
JV
328XXX Any significant changes to the testing of a freshly built perl should be
329listed here. Changes which create B<new> files in F<t/> go here as do any
330large changes to the testing harness (e.g. when parallel testing was added).
331Changes to existing files in F<t/> aren't worth summarising, although the bugs
332that they represent may be covered elsewhere.
b16cfc56 333
d17f3dbc 334[ List each test improvement as a =item entry ]
b16cfc56 335
d17f3dbc 336=over 4
b16cfc56
JV
337
338=item *
339
d17f3dbc 340XXX
b16cfc56 341
3a5c9134
CBW
342=back
343
9f7a72d0 344=head1 Platform Support
3a5c9134 345
d17f3dbc 346XXX Any changes to platform support should be listed in the sections below.
b16cfc56 347
d17f3dbc
JV
348[ Within the sections, list each platform as a =item entry with specific
349changes as paragraphs below it. ]
b16cfc56 350
d17f3dbc 351=head2 New Platforms
3a5c9134 352
d17f3dbc
JV
353XXX List any platforms that this version of perl compiles on, that previous
354versions did not. These will either be enabled by new files in the F<hints/>
355directories, or new subdirectories and F<README> files at the top level of the
356source tree.
3a5c9134 357
9f7a72d0 358=over 4
3a5c9134 359
d17f3dbc 360=item XXX-some-platform
b16cfc56 361
d17f3dbc 362XXX
b16cfc56 363
d17f3dbc 364=back
b16cfc56 365
d17f3dbc 366=head2 Discontinued Platforms
b16cfc56 367
d17f3dbc 368XXX List any platforms that this version of perl no longer compiles on.
b16cfc56 369
d17f3dbc 370=over 4
b16cfc56 371
d17f3dbc 372=item XXX-some-platform
b16cfc56 373
d17f3dbc 374XXX
b16cfc56
JV
375
376=back
377
d17f3dbc 378=head2 Platform-Specific Notes
b16cfc56 379
d17f3dbc
JV
380XXX List any changes for specific platforms. This could include configuration
381and compilation changes or changes in portability/compatibility. However,
382changes within modules for platforms should generally be listed in the
383L</Modules and Pragmata> section.
3a5c9134 384
9f7a72d0 385=over 4
3a5c9134 386
347ee86f 387=item Windows
c61b6d0f 388
347ee86f
TC
389=over 4
390
391=item *
392
393The C<test-prep> build target now depends on F<pod/perltoc.pod> to allow the
394F<t/porting/buildtoc.t> test to run successfully.
395
396=back
6d4f9cf2 397
d17f3dbc 398=back
a62b1201 399
d17f3dbc 400=head1 Internal Changes
a62b1201 401
d17f3dbc
JV
402XXX Changes which affect the interface available to C<XS> code go here.
403Other significant internal changes for future core maintainers should
404be noted as well.
b030240b 405
d17f3dbc 406[ List each test improvement as a =item entry ]
b030240b 407
d17f3dbc 408=over 4
b16cfc56 409
4dc93f40
JV
410=item *
411
d17f3dbc 412XXX
b16cfc56 413
3a5c9134
CBW
414=back
415
416=head1 Selected Bug Fixes
417
d17f3dbc
JV
418XXX Important bug fixes in the core language are summarised here.
419Bug fixes in files in F<ext/> and F<lib/> are best summarised in
420L</Modules and Pragmata>.
0c7420e7 421
d17f3dbc 422[ List each fix as a =item entry ]
0c7420e7 423
d17f3dbc 424=over 4
f3fe4ed7 425
712ef7ca
FC
426=item *
427
e40e74fe
KW
428A Unicode C<\p{}> property match in a regular rexpression pattern will
429now force Unicode rules for the rest of the regular expression
712ef7ca 430
d17f3dbc 431=back
ecede56a 432
d17f3dbc 433=head1 Known Problems
ecede56a 434
d17f3dbc
JV
435XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
436tests that had to be C<TODO>ed for the release would be noted here, unless
437they were specific to a particular platform (see below).
ecede56a 438
d17f3dbc
JV
439This is a list of some significant unfixed bugs, which are regressions
440from either 5.XXX.XXX or 5.XXX.XXX.
d4560299 441
d17f3dbc 442[ List each fix as a =item entry ]
d4560299 443
d17f3dbc 444=over 4
d4560299 445
7db1267d
KW
446=item *
447
d17f3dbc 448XXX
7db1267d 449
9f7a72d0 450=back
460c4bfb 451
d17f3dbc 452=head1 Obituary
836d5805 453
d17f3dbc
JV
454XXX If any significant core contributor has died, we've added a short obituary
455here.
3a5c9134 456
9f7a72d0 457=head1 Acknowledgements
b0c3724f 458
d17f3dbc 459XXX The list of people to thank goes here.
3a5c9134
CBW
460
461=head1 Reporting Bugs
462
463If you find what you think is a bug, you might check the articles
464recently posted to the comp.lang.perl.misc newsgroup and the perl
465bug database at http://rt.perl.org/perlbug/ . There may also be
466information at http://www.perl.org/ , the Perl Home Page.
467
468If you believe you have an unreported bug, please run the L<perlbug>
469program included with your release. Be sure to trim your bug down
470to a tiny but sufficient test case. Your bug report, along with the
471output of C<perl -V>, will be sent off to perlbug@perl.org to be
472analysed by the Perl porting team.
473
474If the bug you are reporting has security implications, which make it
475inappropriate to send to a publicly archived mailing list, then please send
476it to perl5-security-report@perl.org. This points to a closed subscription
477unarchived mailing list, which includes all the core committers, who be able
478to help assess the impact of issues, figure out a resolution, and help
479co-ordinate the release of patches to mitigate or fix the problem across all
480platforms on which Perl is supported. Please only use this address for
481security issues in the Perl core, not for modules independently
482distributed on CPAN.
483
484=head1 SEE ALSO
485
486The F<Changes> file for an explanation of how to view exhaustive details
487on what changed.
488
489The F<INSTALL> file for how to build Perl.
490
491The F<README> file for general stuff.
492
493The F<Artistic> and F<Copying> files for copyright information.
494
495=cut