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