This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Remove unnecessary TAINT_NOT
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
34dc2ec0
DM
5[ this is a template for a new perldelta file. Any text flagged as
6XXX needs to be processed before release. ]
c71a852f 7
34dc2ec0 8perldelta - what is new for perl v5.15.0
6e925ecb 9
34dc2ec0 10=head1 DESCRIPTION
a27ff1be 11
34dc2ec0
DM
12This document describes differences between the 5.15.0 release and
13the 5.14.0 release.
a27ff1be 14
34dc2ec0
DM
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.
a27ff1be 18
34dc2ec0 19=head1 Notice
a27ff1be 20
34dc2ec0 21XXX Any important notices here
a27ff1be 22
34dc2ec0 23=head1 Core Enhancements
a27ff1be 24
34dc2ec0
DM
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.
a27ff1be 28
34dc2ec0 29[ List each enhancement as a =head2 entry ]
a27ff1be 30
34dc2ec0 31=head1 Security
a27ff1be 32
34dc2ec0
DM
33XXX Any security-related notices go here. In particular, any security
34vulnerabilities closed should be noted here rather than in the
35L</Selected Bug Fixes> section.
a27ff1be 36
34dc2ec0 37[ List each security issue as a =head2 entry ]
a27ff1be 38
34dc2ec0 39=head1 Incompatible Changes
9a5a48b7 40
34dc2ec0 41[ List each incompatible change as a =head2 entry ]
9a5a48b7 42
34dc2ec0 43=head1 Deprecations
cdc10f43 44
34dc2ec0
DM
45XXX Any deprecated features, syntax, modules etc. should be listed here.
46In particular, deprecated modules should be listed here even if they are
47listed as an updated module in the L</Modules and Pragmata> section.
cdc10f43 48
34dc2ec0 49[ List each deprecation as a =head2 entry ]
9a5a48b7 50
34dc2ec0 51=head1 Performance Enhancements
9a5a48b7 52
34dc2ec0
DM
53XXX Changes which enhance performance without changing behaviour go here. There
54may well be none in a stable release.
9a5a48b7 55
34dc2ec0 56[ List each enhancement as a =item entry ]
9a5a48b7 57
34dc2ec0 58=over 4
c8c13991 59
5076a392
FC
60=item *
61
34dc2ec0 62XXX
e8e35311
FC
63
64=back
65
34dc2ec0 66=head1 Modules and Pragmata
c8c13991 67
34dc2ec0
DM
68XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
69go here. If Module::CoreList is updated, generate an initial draft of the
70following sections using F<Porting/corelist-perldelta.pl>, which prints stub
71entries to STDOUT. Results can be pasted in place of the '=head2' entries
72below. A paragraph summary for important changes should then be added by hand.
73In an ideal world, dual-life modules would have a F<Changes> file that could be
74cribbed.
f00d3350 75
34dc2ec0 76[ Within each section, list entries as a =item entry ]
e9784f55 77
34dc2ec0 78=head2 New Modules and Pragmata
d430b8e7 79
34dc2ec0 80=over 4
d430b8e7 81
31ecc2aa
FC
82=item *
83
34dc2ec0 84XXX
31ecc2aa 85
e9784f55 86=back
c34a735e 87
34dc2ec0 88=head2 Updated Modules and Pragmata
24b164a5 89
34dc2ec0 90=over 4
2c389f6c 91
9780b8fa
FC
92=item *
93
daca484d
NC
94L<B> has been upgraded from version 1.29 to version 1.30.
95
96=item *
97
f95396b3 98L<Math::Complex> has been upgraded from version 1.56 to version 1.57.
3194a40a
Z
99
100Correct copy constructor usage.
101Fix polarwise formatting with numeric format specifier.
102More stable C<great_circle_direction> algorithm.
103
104=item *
105
e5904012
NC
106L<PerlIO::encoding> has been upgraded from version 0.14 to 0.15
107
108=item *
109
daca484d
NC
110L<Storable> has been upgraded from version 2.27 to version 2.28.
111
112=item *
113
f95396b3 114L<Time::HiRes> has been upgraded from version 1.9721_01 to version 1.9722.
91a2e9f6
Z
115
116Portability fix, and avoiding some compiler warnings.
117
118=item *
119
0b3bdea4
LB
120L<Module::CoreList> has been upgraded from version 2.49 to 2.50.
121
122Updated for v5.12.4.
123
124=item *
125
34dc2ec0 126XXX
9780b8fa 127
e8e35311
FC
128=back
129
34dc2ec0 130=head2 Removed Modules and Pragmata
bdb0cce8 131
34dc2ec0 132=over 4
44691e6f 133
5076a392 134=item *
44691e6f 135
34dc2ec0 136XXX
e8e35311
FC
137
138=back
139
34dc2ec0 140=head1 Documentation
44691e6f 141
34dc2ec0
DM
142XXX Changes to files in F<pod/> go here. Consider grouping entries by
143file and be sure to link to the appropriate page, e.g. L<perlfunc>.
6d96b0fe 144
34dc2ec0 145=head2 New Documentation
6d96b0fe 146
34dc2ec0 147XXX Changes which create B<new> files in F<pod/> go here.
6d96b0fe 148
34dc2ec0 149=head3 L<XXX>
e8e35311 150
34dc2ec0 151XXX Description of the purpose of the new file here
6d96b0fe 152
34dc2ec0 153=head2 Changes to Existing Documentation
b7188eb5 154
34dc2ec0
DM
155XXX Changes which significantly change existing files in F<pod/> go here.
156However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
157section.
b7188eb5 158
34dc2ec0 159=head3 L<XXX>
b7188eb5 160
34dc2ec0 161=over 4
e8e35311 162
2c389f6c
FC
163=item *
164
34dc2ec0 165XXX Description of the change here
2c389f6c 166
e8e35311
FC
167=back
168
34dc2ec0 169=head1 Diagnostics
b7188eb5 170
34dc2ec0
DM
171The following additions or changes have been made to diagnostic output,
172including warnings and fatal error messages. For the complete list of
173diagnostic messages, see L<perldiag>.
44691e6f 174
34dc2ec0
DM
175XXX New or changed warnings emitted by the core's C<C> code go here. Also
176include any changes in L<perldiag> that reconcile it to the C<C> code.
6c9cd4a1 177
34dc2ec0 178[ Within each section, list entries as a =item entry ]
6c9cd4a1 179
34dc2ec0 180=head2 New Diagnostics
44691e6f 181
34dc2ec0 182XXX Newly added diagnostic messages go here
44691e6f 183
34dc2ec0 184=over 4
44691e6f 185
5076a392 186=item *
44691e6f 187
34dc2ec0 188XXX
2c389f6c
FC
189
190=back
191
34dc2ec0 192=head2 Changes to Existing Diagnostics
b7188eb5 193
34dc2ec0 194XXX Changes (i.e. rewording) of diagnostic messages go here
b7188eb5 195
34dc2ec0 196=over 4
b7188eb5 197
5076a392 198=item *
b7188eb5 199
34dc2ec0 200XXX
b7188eb5 201
e8e35311 202=back
5076a392 203
34dc2ec0 204=head1 Utility Changes
5076a392 205
34dc2ec0
DM
206XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
207here. Most of these are built within the directories F<utils> and F<x2p>.
5076a392 208
34dc2ec0
DM
209[ List utility changes as a =head3 entry for each utility and =item
210entries for each change
211Use L<XXX> with program names to get proper documentation linking. ]
5076a392 212
34dc2ec0 213=head3 L<XXX>
5076a392 214
34dc2ec0 215=over 4
5076a392
FC
216
217=item *
218
34dc2ec0 219XXX
5076a392 220
2c389f6c 221=back
e8e35311 222
34dc2ec0 223=head1 Configuration and Compilation
5076a392 224
34dc2ec0
DM
225XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
226go here. Any other changes to the Perl build process should be listed here.
227However, any platform-specific changes should be listed in the
228L</Platform Support> section, instead.
2c389f6c 229
34dc2ec0 230[ List changes as a =item entry ].
2c389f6c 231
34dc2ec0 232=over 4
5076a392 233
e8e35311 234=item *
5076a392 235
34dc2ec0 236XXX
5076a392 237
34dc2ec0 238=back
5076a392 239
34dc2ec0 240=head1 Testing
5076a392 241
34dc2ec0
DM
242XXX Any significant changes to the testing of a freshly built perl should be
243listed here. Changes which create B<new> files in F<t/> go here as do any
244large changes to the testing harness (e.g. when parallel testing was added).
245Changes to existing files in F<t/> aren't worth summarising, although the bugs
246that they represent may be covered elsewhere.
5076a392 247
34dc2ec0 248[ List each test improvement as a =item entry ]
5076a392 249
34dc2ec0 250=over 4
5076a392
FC
251
252=item *
253
34dc2ec0 254XXX
e8e35311 255
34dc2ec0 256=back
5076a392 257
34dc2ec0 258=head1 Platform Support
5076a392 259
34dc2ec0 260XXX Any changes to platform support should be listed in the sections below.
5076a392 261
34dc2ec0
DM
262[ Within the sections, list each platform as a =item entry with specific
263changes as paragraphs below it. ]
5076a392 264
34dc2ec0 265=head2 New Platforms
5076a392 266
34dc2ec0
DM
267XXX List any platforms that this version of perl compiles on, that previous
268versions did not. These will either be enabled by new files in the F<hints/>
269directories, or new subdirectories and F<README> files at the top level of the
270source tree.
cdc10f43 271
34dc2ec0 272=over 4
cdc10f43 273
34dc2ec0 274=item XXX-some-platform
d430b8e7 275
34dc2ec0 276XXX
d430b8e7 277
2c389f6c 278=back
5076a392 279
34dc2ec0 280=head2 Discontinued Platforms
5076a392 281
34dc2ec0 282XXX List any platforms that this version of perl no longer compiles on.
5076a392 283
34dc2ec0 284=over 4
e8e35311 285
34dc2ec0 286=item XXX-some-platform
e8e35311 287
34dc2ec0 288XXX
1e463951 289
c71a852f 290=back
b7188eb5 291
34dc2ec0 292=head2 Platform-Specific Notes
42a91c97 293
34dc2ec0
DM
294XXX List any changes for specific platforms. This could include configuration
295and compilation changes or changes in portability/compatibility. However,
296changes within modules for platforms should generally be listed in the
297L</Modules and Pragmata> section.
42a91c97 298
34dc2ec0 299=over 4
42a91c97 300
34dc2ec0 301=item XXX-some-platform
42a91c97 302
34dc2ec0 303XXX
42a91c97 304
34dc2ec0 305=back
42a91c97 306
34dc2ec0 307=head1 Internal Changes
42a91c97 308
34dc2ec0
DM
309XXX Changes which affect the interface available to C<XS> code go here.
310Other significant internal changes for future core maintainers should
311be noted as well.
42a91c97 312
34dc2ec0 313=over 4
42a91c97 314
2c389f6c
FC
315=item *
316
74e0ddf7
NC
317The compiled representation of formats is now stored via the mg_ptr of
318their PERL_MAGIC_fm. Previously it was stored in the string buffer,
319beyond SvLEN(), the regular end of the string. SvCOMPILED() and
320SvCOMPILED_{on,off}() now exist solely for compatibility for XS code.
321The first is always 0, the other two now no-ops.
cdc10f43 322
34dc2ec0 323=back
cdc10f43 324
34dc2ec0 325=head1 Selected Bug Fixes
cdc10f43 326
34dc2ec0
DM
327XXX Important bug fixes in the core language are summarised here.
328Bug fixes in files in F<ext/> and F<lib/> are best summarised in
329L</Modules and Pragmata>.
cdc10f43 330
34dc2ec0 331[ List each fix as a =item entry ]
d430b8e7 332
34dc2ec0 333=over 4
d430b8e7
FC
334
335=item *
336
f7a45dff
KW
337The new (in 5.14.0) regular expression modifier C</a> when repeated like
338C</aa> forbids the characters outside the ASCII range that match
339characters inside that range from matching under C</i>. This did not
340work under some circumstances, all involving alternation, such as:
341
342 "\N{KELVIN SIGN}" =~ /k|foo/iaa;
343
344succeeded inaprropriately. This is now fixed.
345
346=item *
347
3485.14.0 introduced some memory leaks in regular expression character
349classes such as C<[\w\s]>, which have now been fixed.
350
351=item *
352
353An edge case in regular expression matching could potentially loop.
354This happened only under C</i> in bracketed character classes that have
355characters with multi-character folds, and the target string to match
356against includes the first portion of the fold, followed by another
357character that has a multi-character fold that begins with the remaining
358portion of the fold, plus some more.
359
360 "s\N{U+DF}" =~ /[\x{DF}foo]/i
361
362is one such case. C<\xDF> folds to C<"ss">
363
364=item *
365
366A few characters in regular expression pattern matches did not
367match correctly in some circumstances, all involving C</i>. The
368affected characters are:
369COMBINING GREEK YPOGEGRAMMENI,
370GREEK CAPITAL LETTER IOTA,
371GREEK CAPITAL LETTER UPSILON,
372GREEK PROSGEGRAMMENI,
373GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA,
374GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS,
375GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA,
376GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS,
377LATIN SMALL LETTER LONG S,
378LATIN SMALL LIGATURE LONG S T,
379and
380LATIN SMALL LIGATURE ST.
d430b8e7 381
2fbb14a0
DG
382=item *
383
384Formats: number of edge cases have been fixed with formats and formline;
385in particular, where the format itself is potentially variable (such as
386with ties and overloading), and where the format and data differ in their
387encoding. In both these cases, it used to possible for the output to be
388corrupted.
389
42a91c97
FC
390=back
391
c71a852f 392=head1 Known Problems
44691e6f 393
34dc2ec0
DM
394XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
395tests that had to be C<TODO>ed for the release would be noted here, unless
396they were specific to a particular platform (see below).
cdc10f43 397
34dc2ec0
DM
398This is a list of some significant unfixed bugs, which are regressions
399from either 5.XXX.XXX or 5.XXX.XXX.
cdc10f43 400
34dc2ec0 401[ List each fix as a =item entry ]
ca767864 402
34dc2ec0 403=over 4
cf5da40b
CB
404
405=item *
406
34dc2ec0 407XXX
cf5da40b 408
c71a852f 409=back
014fb485 410
c71a852f 411=head1 Obituary
014fb485 412
34dc2ec0
DM
413XXX If any significant core contributor has died, we've added a short obituary
414here.
44691e6f 415
44691e6f
AB
416=head1 Acknowledgements
417
34dc2ec0 418XXX The list of people to thank goes here.
29cf780c 419
44691e6f
AB
420=head1 Reporting Bugs
421
422If you find what you think is a bug, you might check the articles
34dc2ec0 423recently posted to the comp.lang.perl.misc newsgroup and the perl
44691e6f
AB
424bug database at http://rt.perl.org/perlbug/ . There may also be
425information at http://www.perl.org/ , the Perl Home Page.
426
427If you believe you have an unreported bug, please run the L<perlbug>
428program included with your release. Be sure to trim your bug down
429to a tiny but sufficient test case. Your bug report, along with the
430output of C<perl -V>, will be sent off to perlbug@perl.org to be
431analysed by the Perl porting team.
432
433If the bug you are reporting has security implications, which make it
434inappropriate to send to a publicly archived mailing list, then please send
34dc2ec0 435it to perl5-security-report@perl.org. This points to a closed subscription
44691e6f
AB
436unarchived mailing list, which includes all the core committers, who be able
437to help assess the impact of issues, figure out a resolution, and help
438co-ordinate the release of patches to mitigate or fix the problem across all
34dc2ec0
DM
439platforms on which Perl is supported. Please only use this address for
440security issues in the Perl core, not for modules independently
44691e6f
AB
441distributed on CPAN.
442
443=head1 SEE ALSO
444
445The F<Changes> file for an explanation of how to view exhaustive details
446on what changed.
447
448The F<INSTALL> file for how to build Perl.
449
450The F<README> file for general stuff.
451
452The F<Artistic> and F<Copying> files for copyright information.
453
454=cut