This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
pod/perldelta.pod: fix POD syntax in 7319f91d2a
[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
bada4ede 146C<CPANPLUS> has been upgraded from version 0.9011 to 0.9101
28aafdbe
CBW
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
d9672076 197Added new function C<Unicode::UCD::num()>. This function will return the
7319f91d
KW
198numeric value of the string passed it; C<undef> if the string in its
199entirety has no safe numeric value.
200
201To be safe, a string must be a single character which has a numeric
202value, or consist entirely of characters that match \d, coming from the
203same Unicode block of digits. Thus, a mix of Bengali and Western
204digits would be considered unsafe, as well as a mix of half- and
205full-width digits, but strings consisting entirely of Devanagari digits
206or of "Mathematical Bold" digits would would be safe.
207
208=item *
209
d17f3dbc 210XXX
17096837 211
d17f3dbc 212=back
788ba0f4 213
d17f3dbc 214=head2 Removed Modules and Pragmata
98d645a7 215
d17f3dbc 216=over 4
98d645a7 217
7abec982
FC
218=item *
219
d17f3dbc 220XXX
7abec982 221
9f7a72d0 222=back
e1165778 223
9f7a72d0 224=head1 Documentation
17096837 225
d17f3dbc
JV
226XXX Changes to files in F<pod/> go here. Consider grouping entries by
227file and be sure to link to the appropriate page, e.g. L<perlfunc>.
b16cfc56 228
d17f3dbc 229=head2 New Documentation
b16cfc56 230
d17f3dbc 231XXX Changes which create B<new> files in F<pod/> go here.
b16cfc56 232
d17f3dbc 233=head3 L<XXX>
b16cfc56 234
d17f3dbc 235XXX Description of the purpose of the new file here
b16cfc56 236
d17f3dbc 237=head2 Changes to Existing Documentation
b16cfc56 238
d17f3dbc
JV
239XXX Changes which significantly change existing files in F<pod/> go here.
240However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
241section.
b16cfc56 242
04c692a8 243=head3 L<perlhack> and perlrepository
d4238815 244
9f7a72d0 245=over 4
17096837 246
d4238815
FC
247=item *
248
04c692a8
DR
249The L<perlhack> and perlrepository documents have been heavily edited and
250split up into several new documents.
251
252The L<perlhack> document is now much shorter, and focuses on the Perl 5
253development process and submitting patches to Perl. The technical content has
254been moved to several new documents, L<perlsource>, L<perlinterp>,
255L<perlhacktut>, and L<perlhacktips>. This technical content has only been
256lightly edited.
257
258The perlrepository document has been renamed to L<perlgit>. This new document
259is just a how-to on using git with the Perl source code. Any other content
260that used to be in perlrepository has been moved to perlhack.
e1165778 261
9f7a72d0 262=back
17096837 263
9f7a72d0 264=head1 Diagnostics
17096837 265
9f7a72d0
Z
266The following additions or changes have been made to diagnostic output,
267including warnings and fatal error messages. For the complete list of
268diagnostic messages, see L<perldiag>.
e1165778 269
d17f3dbc
JV
270XXX New or changed warnings emitted by the core's C<C> code go here. Also
271include any changes in L<perldiag> that reconcile it to the C<C> code.
272
273[ Within each section, list entries as a =item entry ]
274
9f7a72d0 275=head2 New Diagnostics
3a5c9134 276
d17f3dbc
JV
277XXX Newly added diagnostic messages go here
278
9f7a72d0 279=over 4
17096837 280
5024bc2d
KW
281=item "\b{" is deprecated; use "\b\{" instead
282
283=item "\B{" is deprecated; use "\B\{" instead
284
285Use of an unescaped "{" immediately following a C<\b> or C<\B> is now
286deprecated so as to reserve its use for Perl itself in a future release.
c2e0289e 287
17096837 288
9f7a72d0 289=back
e6f1cc4d 290
9f7a72d0 291=head2 Changes to Existing Diagnostics
e1165778 292
d17f3dbc
JV
293XXX Changes (i.e. rewording) of diagnostic messages go here
294
9f7a72d0 295=over 4
17096837 296
e1165778
Z
297=item *
298
d17f3dbc 299XXX
17096837 300
3a5c9134
CBW
301=back
302
9f7a72d0 303=head1 Utility Changes
e1165778 304
d17f3dbc
JV
305XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
306here. Most of these are built within the directories F<utils> and F<x2p>.
e1165778 307
d17f3dbc
JV
308[ List utility changes as a =head3 entry for each utility and =item
309entries for each change
310Use L<XXX> with program names to get proper documentation linking. ]
e1165778 311
d17f3dbc 312=head3 L<XXX>
b16cfc56
JV
313
314=over 4
315
316=item *
317
d17f3dbc 318XXX
b16cfc56
JV
319
320=back
321
d17f3dbc 322=head1 Configuration and Compilation
3a5c9134 323
d17f3dbc
JV
324XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
325go here. Any other changes to the Perl build process should be listed here.
326However, any platform-specific changes should be listed in the
327L</Platform Support> section, instead.
b16cfc56 328
d17f3dbc 329[ List changes as a =item entry ].
b16cfc56 330
d17f3dbc 331=over 4
3a5c9134 332
b16cfc56
JV
333=item *
334
d17f3dbc 335XXX
b16cfc56 336
d17f3dbc 337=back
b16cfc56 338
d17f3dbc 339=head1 Testing
b16cfc56 340
d17f3dbc
JV
341XXX Any significant changes to the testing of a freshly built perl should be
342listed here. Changes which create B<new> files in F<t/> go here as do any
343large changes to the testing harness (e.g. when parallel testing was added).
344Changes to existing files in F<t/> aren't worth summarising, although the bugs
345that they represent may be covered elsewhere.
b16cfc56 346
d17f3dbc 347[ List each test improvement as a =item entry ]
b16cfc56 348
d17f3dbc 349=over 4
b16cfc56
JV
350
351=item *
352
110c4fb7
TC
353F<porting/FindExt.t> now skips all tests on a static (-Uusedl) build
354of perl.
355
356=item *
357
358F<porting/FindExt.t> now passes on non-Win32 platforms when some
359extensions are built statically.
b16cfc56 360
3a5c9134
CBW
361=back
362
9f7a72d0 363=head1 Platform Support
3a5c9134 364
d17f3dbc 365XXX Any changes to platform support should be listed in the sections below.
b16cfc56 366
d17f3dbc
JV
367[ Within the sections, list each platform as a =item entry with specific
368changes as paragraphs below it. ]
b16cfc56 369
d17f3dbc 370=head2 New Platforms
3a5c9134 371
d17f3dbc
JV
372XXX List any platforms that this version of perl compiles on, that previous
373versions did not. These will either be enabled by new files in the F<hints/>
374directories, or new subdirectories and F<README> files at the top level of the
375source tree.
3a5c9134 376
9f7a72d0 377=over 4
3a5c9134 378
d17f3dbc 379=item XXX-some-platform
b16cfc56 380
d17f3dbc 381XXX
b16cfc56 382
d17f3dbc 383=back
b16cfc56 384
d17f3dbc 385=head2 Discontinued Platforms
b16cfc56 386
d17f3dbc 387XXX List any platforms that this version of perl no longer compiles on.
b16cfc56 388
d17f3dbc 389=over 4
b16cfc56 390
d17f3dbc 391=item XXX-some-platform
b16cfc56 392
d17f3dbc 393XXX
b16cfc56
JV
394
395=back
396
d17f3dbc 397=head2 Platform-Specific Notes
b16cfc56 398
d17f3dbc
JV
399XXX List any changes for specific platforms. This could include configuration
400and compilation changes or changes in portability/compatibility. However,
401changes within modules for platforms should generally be listed in the
402L</Modules and Pragmata> section.
3a5c9134 403
9f7a72d0 404=over 4
3a5c9134 405
347ee86f 406=item Windows
c61b6d0f 407
347ee86f
TC
408=over 4
409
410=item *
411
412The C<test-prep> build target now depends on F<pod/perltoc.pod> to allow the
413F<t/porting/buildtoc.t> test to run successfully.
414
415=back
6d4f9cf2 416
d17f3dbc 417=back
a62b1201 418
d17f3dbc 419=head1 Internal Changes
a62b1201 420
d17f3dbc
JV
421XXX Changes which affect the interface available to C<XS> code go here.
422Other significant internal changes for future core maintainers should
423be noted as well.
b030240b 424
d17f3dbc 425[ List each test improvement as a =item entry ]
b030240b 426
d17f3dbc 427=over 4
b16cfc56 428
4dc93f40
JV
429=item *
430
d17f3dbc 431XXX
b16cfc56 432
3a5c9134
CBW
433=back
434
435=head1 Selected Bug Fixes
436
d17f3dbc
JV
437XXX Important bug fixes in the core language are summarised here.
438Bug fixes in files in F<ext/> and F<lib/> are best summarised in
439L</Modules and Pragmata>.
0c7420e7 440
d17f3dbc 441[ List each fix as a =item entry ]
0c7420e7 442
d17f3dbc 443=over 4
f3fe4ed7 444
712ef7ca
FC
445=item *
446
e40e74fe
KW
447A Unicode C<\p{}> property match in a regular rexpression pattern will
448now force Unicode rules for the rest of the regular expression
712ef7ca 449
d17f3dbc 450=back
ecede56a 451
d17f3dbc 452=head1 Known Problems
ecede56a 453
d17f3dbc
JV
454XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
455tests that had to be C<TODO>ed for the release would be noted here, unless
456they were specific to a particular platform (see below).
ecede56a 457
d17f3dbc
JV
458This is a list of some significant unfixed bugs, which are regressions
459from either 5.XXX.XXX or 5.XXX.XXX.
d4560299 460
d17f3dbc 461[ List each fix as a =item entry ]
d4560299 462
d17f3dbc 463=over 4
d4560299 464
7db1267d
KW
465=item *
466
d17f3dbc 467XXX
7db1267d 468
9f7a72d0 469=back
460c4bfb 470
d17f3dbc 471=head1 Obituary
836d5805 472
d17f3dbc
JV
473XXX If any significant core contributor has died, we've added a short obituary
474here.
3a5c9134 475
9f7a72d0 476=head1 Acknowledgements
b0c3724f 477
d17f3dbc 478XXX The list of people to thank goes here.
3a5c9134
CBW
479
480=head1 Reporting Bugs
481
482If you find what you think is a bug, you might check the articles
483recently posted to the comp.lang.perl.misc newsgroup and the perl
484bug database at http://rt.perl.org/perlbug/ . There may also be
485information at http://www.perl.org/ , the Perl Home Page.
486
487If you believe you have an unreported bug, please run the L<perlbug>
488program included with your release. Be sure to trim your bug down
489to a tiny but sufficient test case. Your bug report, along with the
490output of C<perl -V>, will be sent off to perlbug@perl.org to be
491analysed by the Perl porting team.
492
493If the bug you are reporting has security implications, which make it
494inappropriate to send to a publicly archived mailing list, then please send
495it to perl5-security-report@perl.org. This points to a closed subscription
496unarchived mailing list, which includes all the core committers, who be able
497to help assess the impact of issues, figure out a resolution, and help
498co-ordinate the release of patches to mitigate or fix the problem across all
499platforms on which Perl is supported. Please only use this address for
500security issues in the Perl core, not for modules independently
501distributed on CPAN.
502
503=head1 SEE ALSO
504
505The F<Changes> file for an explanation of how to view exhaustive details
506on what changed.
507
508The F<INSTALL> file for how to build Perl.
509
510The F<README> file for general stuff.
511
512The F<Artistic> and F<Copying> files for copyright information.
513
514=cut