This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Maintainers.pl for ExtUtils-ParseXS on teh CPAN
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
249950d7 3=for comment
eff8c8ec 4This has been completed up to a75c6ed6bbe.
249950d7 5
44691e6f
AB
6=head1 NAME
7
c1e74734
CBW
8[ this is a template for a new perldelta file. Any text flagged as
9XXX needs to be processed before release. ]
ad32999b 10
c1e74734 11perldelta - what is new for perl v5.15.8
88c5c971 12
c1e74734 13=head1 DESCRIPTION
8f12b018 14
c1e74734
CBW
15This document describes differences between the 5.15.7 release and
16the 5.15.8 release.
8f12b018 17
c1e74734
CBW
18If you are upgrading from an earlier release such as 5.15.6, first read
19L<perl5157delta>, which describes differences between 5.15.6 and
205.15.7.
26afcec5 21
c1e74734 22=head1 Notice
8f12b018 23
c1e74734 24XXX Any important notices here
d7fbd56d 25
c1e74734 26=head1 Core Enhancements
d7fbd56d 27
c1e74734
CBW
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.
d7fbd56d 31
c1e74734 32[ List each enhancement as a =head2 entry ]
711a3903 33
66cbab2c
KW
34=head2 Improved ability to mix locales and Unicode, including UTF-8 locales
35
36An optional parameter has been added to C<use locale>
37
38 use locale ':not_characters';
39
40which tells Perl to use all but the C<LC_CTYPE> and C<LC_COLLATE>
41portions of the current locale. Instead, the character set is assumed
42to be Unicode. This allows locales and Unicode to be seamlessly mixed,
43including the increasingly frequent UTF-8 locales. When using this
44hybrid form of locales, the C<:locale> layer to the L<open> pragma can
45be used to interface with the file system, and there are CPAN modules
46available for ARGV and environment variable conversions.
47
48Full details are in L<perllocale>.
49
628253b8
BF
50=head2 New function C<fc> and corresponding escape sequence C<\F> for Unicode foldcase
51
52Unicode foldcase is an extension to lowercase that gives better results
53when comparing two strings case-insensitively. It has long been used
54internally in regular expression C</i> matching. Now it is available
55explicitly through the new C<fc> function call (enabled by
56S<C<"use feature 'fc'">>, or C<use v5.16>, or explicitly callable via
249950d7 57C<CORE::fc>) or through the new C<\F> sequence in double-quotish
628253b8
BF
58strings.
59
60Full details are in L<perlfunc/fc>.
61
c1e74734 62=head1 Security
711a3903 63
c1e74734
CBW
64XXX Any security-related notices go here. In particular, any security
65vulnerabilities closed should be noted here rather than in the
66L</Selected Bug Fixes> section.
711a3903 67
c1e74734 68[ List each security issue as a =head2 entry ]
6ba817f3 69
c1e74734 70=head1 Incompatible Changes
6ba817f3 71
c1e74734 72XXX For a release on a stable branch, this section aspires to be:
6b339779 73
c1e74734
CBW
74 There are no changes intentionally incompatible with 5.XXX.XXX
75 If any exist, they are bugs, and we request that you submit a
76 report. See L</Reporting Bugs> below.
6b339779 77
c1e74734 78[ List each incompatible change as a =head2 entry ]
b240fc0f 79
249950d7
FC
80=head2 Special blocks called in void context
81
82Special blocks (C<BEGIN>, C<CHECK>, C<INIT>, C<UNITCHECK>, C<END>) are now
83called in void context. This avoids wasteful copying of the result of the
84last statement [perl #108794].
85
eff8c8ec
FC
86=head2 The C<overloading> pragma and regexp objects
87
88With C<no overloading>, regular expression objects returned by C<qr//> are
89now stringified as "Regexp=REGEXP(0xbe600d)" instead of the regular
90expression itself [perl #108780].
91
c1e74734 92=head1 Deprecations
b240fc0f 93
c1e74734
CBW
94XXX Any deprecated features, syntax, modules etc. should be listed here.
95In particular, deprecated modules should be listed here even if they are
96listed as an updated module in the L</Modules and Pragmata> section.
4e6ab4ad 97
c1e74734 98[ List each deprecation as a =head2 entry ]
4e6ab4ad 99
c1e74734 100=head1 Performance Enhancements
79e10968 101
c1e74734
CBW
102XXX Changes which enhance performance without changing behaviour go here. There
103may well be none in a stable release.
79e10968 104
c1e74734 105[ List each enhancement as a =item entry ]
ea88c40c 106
c1e74734 107=over 4
9d055b1a
CBW
108
109=item *
110
c1e74734 111XXX
cadced9f 112
c1e74734 113=back
cadced9f 114
c1e74734 115=head1 Modules and Pragmata
cadced9f 116
c1e74734
CBW
117XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
118go here. If Module::CoreList is updated, generate an initial draft of the
119following sections using F<Porting/corelist-perldelta.pl>, which prints stub
120entries to STDOUT. Results can be pasted in place of the '=head2' entries
121below. A paragraph summary for important changes should then be added by hand.
122In an ideal world, dual-life modules would have a F<Changes> file that could be
123cribbed.
cadced9f 124
c1e74734 125[ Within each section, list entries as a =item entry ]
07feb684 126
c1e74734 127=head2 New Modules and Pragmata
cadced9f 128
c1e74734 129=over 4
632c5d30
NC
130
131=item *
132
c1e74734 133XXX
4e6e9b23 134
c1e74734 135=back
4e6e9b23 136
c1e74734 137=head2 Updated Modules and Pragmata
4e6e9b23 138
c1e74734 139=over 4
1887da8c
RS
140
141=item *
142
197aacaf
FC
143L<B> has been upgraded from version 1.33 to version 1.34.
144
145C<B::COP> now has a C<stashflags> method, corresponding to a new internal
146field added in 5.15.4 [perl #108860].
147
148=item *
149
df697508 150L<Compress::Raw::Bzip2> has been upgraded from version 2.045 to version 2.048.
76f546a2
CBW
151
152=item *
153
ecea5ab2 154L<Compress::Raw::Zlib> has been upgraded from version 2.045 to version 2.048.
589c1691
CBW
155
156=item *
157
8dcc3739 158L<Compress::Zlib> has been upgraded from version 2.046 to version 2.048.
422d6414
CBW
159
160=item *
161
b34385a6 162L<DB_File> has been upgraded from version 1.824 to version 1.826.
acb29889
CBW
163
164=item *
165
ce2c4022
NC
166L<diagnostics> has been upgraded from version 1.27 to version 1.28.
167
168When searching for F<perldiag.pod>, it no longer uses paths that were only
169relevant on Perl 5.004 and earlier.
170
171=item *
172
eb96f3fa
CBW
173L<IPC::Cmd> has been upgraded from version 0.72 to version 0.76.
174
175=item *
176
1051d5b5 177L<Pod::Parser> has been upgraded from version 1.37 to version 1.51.
88c5c971 178
2a7afa74
NC
179=item *
180
181L<Unicode::UCD> has been upgraded from version 0.39 to 0.40.
182
183The only change is to fix a formatting error in the Pod.
184
c1e74734 185=back
c0504019 186
c1e74734 187=head2 Removed Modules and Pragmata
937a45d0 188
c1e74734 189=over 4
937a45d0 190
ef337e16
CBW
191=item *
192
c1e74734 193XXX
ef337e16 194
7f28d7ed 195=back
679b54e7 196
52deee2e 197=head1 Documentation
3c7c5233 198
c1e74734
CBW
199XXX Changes to files in F<pod/> go here. Consider grouping entries by
200file and be sure to link to the appropriate page, e.g. L<perlfunc>.
a71d67b1 201
c1e74734 202=head2 New Documentation
cadced9f 203
c1e74734 204XXX Changes which create B<new> files in F<pod/> go here.
cadced9f 205
c1e74734 206=head3 L<XXX>
cadced9f 207
c1e74734 208XXX Description of the purpose of the new file here
cadced9f 209
c1e74734 210=head2 Changes to Existing Documentation
cadced9f 211
c1e74734
CBW
212XXX Changes which significantly change existing files in F<pod/> go here.
213However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
214section.
cadced9f 215
c1e74734 216=head3 L<XXX>
7e7629fa 217
52deee2e 218=over 4
7e7629fa
FC
219
220=item *
221
c1e74734 222XXX Description of the change here
c2654555 223
52deee2e 224=back
85ca3be7 225
52deee2e 226=head1 Diagnostics
85ca3be7 227
52deee2e
DR
228The following additions or changes have been made to diagnostic output,
229including warnings and fatal error messages. For the complete list of
230diagnostic messages, see L<perldiag>.
7788a270 231
c1e74734
CBW
232XXX New or changed warnings emitted by the core's C<C> code go here. Also
233include any changes in L<perldiag> that reconcile it to the C<C> code.
6138a722 234
c1e74734
CBW
235[ Within each section, list entries as a =item entry that links to perldiag,
236 e.g.
a47fb3fe 237
c1e74734 238 =item *
4888c563 239
c1e74734
CBW
240 L<Invalid version object|perldiag/"Invalid version object">
241]
a3f52e2e 242
c1e74734 243=head2 New Diagnostics
52272450 244
c1e74734 245XXX Newly added diagnostic messages go here
52272450 246
c1e74734 247=head3 New Errors
a47fb3fe 248
0aaeb177 249=over 4
7ef25837 250
6d110ad0
FC
251=item *
252
c1e74734 253XXX L<message|perldiag/"message">
604a99bd 254
c1e74734 255=back
ea88c40c 256
c1e74734 257=head3 New Warnings
ea88c40c 258
c1e74734 259=over 4
ea88c40c
FC
260
261=item *
262
c1e74734 263XXX L<message|perldiag/"message">
ea88c40c 264
6d110ad0
FC
265=back
266
c1e74734
CBW
267=head2 Changes to Existing Diagnostics
268
269XXX Changes (i.e. rewording) of diagnostic messages go here
cadced9f
FC
270
271=over 4
272
273=item *
274
c1e74734 275XXX Describe change here
cadced9f
FC
276
277=back
278
0aaeb177 279=head1 Utility Changes
9cfd094e 280
c1e74734
CBW
281XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
282here. Most of these are built within the directories F<utils> and F<x2p>.
d7fbd56d 283
c1e74734
CBW
284[ List utility changes as a =head3 entry for each utility and =item
285entries for each change
286Use L<XXX> with program names to get proper documentation linking. ]
d7fbd56d 287
c1e74734 288=head3 L<XXX>
d7fbd56d 289
c1e74734 290=over 4
ba91b4f3 291
b18aa002
FC
292=item *
293
c1e74734 294XXX
b18aa002 295
52deee2e 296=back
ba91b4f3 297
52deee2e 298=head1 Configuration and Compilation
f4912a50 299
c1e74734
CBW
300XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
301go here. Any other changes to the Perl build process should be listed here.
302However, any platform-specific changes should be listed in the
303L</Platform Support> section, instead.
a3f52e2e 304
c1e74734 305[ List changes as a =item entry ].
a3f52e2e 306
0aaeb177 307=over 4
ad32999b 308
f4912a50 309=item *
ad32999b 310
c1e74734 311XXX
c15f899f 312
7f28d7ed 313=back
ad32999b 314
c1e74734 315=head1 Testing
39de7394 316
c1e74734
CBW
317XXX Any significant changes to the testing of a freshly built perl should be
318listed here. Changes which create B<new> files in F<t/> go here as do any
319large changes to the testing harness (e.g. when parallel testing was added).
320Changes to existing files in F<t/> aren't worth summarising, although the bugs
321that they represent may be covered elsewhere.
39de7394 322
c1e74734 323[ List each test improvement as a =item entry ]
39de7394 324
c1e74734 325=over 4
5dd80d85 326
52272450
FC
327=item *
328
c1e74734 329XXX
52272450 330
52deee2e 331=back
5dd80d85 332
c1e74734 333=head1 Platform Support
52272450 334
c1e74734 335XXX Any changes to platform support should be listed in the sections below.
52272450 336
c1e74734
CBW
337[ Within the sections, list each platform as a =item entry with specific
338changes as paragraphs below it. ]
ad266194 339
c1e74734 340=head2 New Platforms
ad266194 341
c1e74734
CBW
342XXX List any platforms that this version of perl compiles on, that previous
343versions did not. These will either be enabled by new files in the F<hints/>
344directories, or new subdirectories and F<README> files at the top level of the
345source tree.
ad266194 346
c1e74734 347=over 4
838cf719 348
c1e74734 349=item XXX-some-platform
838cf719 350
c1e74734 351XXX
b00f6edb 352
c1e74734 353=back
b00f6edb 354
c1e74734 355=head2 Discontinued Platforms
7a3fd9ed 356
c1e74734 357XXX List any platforms that this version of perl no longer compiles on.
7a3fd9ed 358
c1e74734 359=over 4
1a50d74b 360
c1e74734 361=item XXX-some-platform
1a50d74b 362
c1e74734 363XXX
ea88c40c 364
c1e74734 365=back
ea88c40c 366
c1e74734 367=head2 Platform-Specific Notes
ea88c40c 368
c1e74734
CBW
369XXX List any changes for specific platforms. This could include configuration
370and compilation changes or changes in portability/compatibility. However,
371changes within modules for platforms should generally be listed in the
372L</Modules and Pragmata> section.
ea88c40c 373
c1e74734 374=over 4
ea88c40c 375
c1e74734 376=item XXX-some-platform
ea88c40c 377
c1e74734 378XXX
ea88c40c 379
c1e74734 380=back
ea88c40c 381
c1e74734 382=head1 Internal Changes
ea88c40c 383
c1e74734
CBW
384XXX Changes which affect the interface available to C<XS> code go here.
385Other significant internal changes for future core maintainers should
386be noted as well.
ea88c40c 387
c1e74734 388[ List each change as a =item entry ]
ea88c40c 389
c1e74734 390=over 4
ea88c40c
FC
391
392=item *
393
c1e74734 394XXX
ea88c40c 395
c1e74734 396=back
ea88c40c 397
c1e74734 398=head1 Selected Bug Fixes
ea88c40c 399
c1e74734
CBW
400XXX Important bug fixes in the core language are summarised here.
401Bug fixes in files in F<ext/> and F<lib/> are best summarised in
402L</Modules and Pragmata>.
ea88c40c 403
c1e74734 404[ List each fix as a =item entry ]
ea88c40c 405
c1e74734 406=over 4
ea88c40c
FC
407
408=item *
409
6025c6dd
RS
410C<~~> now correctly handles the precedence of Any~~Object, and is not tricked
411by an overloaded object on the left-hand side.
ea88c40c 412
249950d7
FC
413=item *
414
415C<stat _> no longer warns about unopened filehandles [perl #71002].
416
417=item *
418
419C<stat> on an unopened filehandle now warns consistently, instead of
420skipping the warning at times.
421
422=item *
423
424A change in an earlier 5.15 release caused warning hints to propagate into
425C<do $file>. This has been fixed [rt.cpan.org #72767].
426
427=item *
428
429Starting with 5.12.0, Perl used to get its internal bookkeeping muddled up
430after assigning C<${ qr// }> to a hash element and locking it with
431L<Hash::Util>. This could result in double frees, crashes or erratic
432behaviour.
433
92c88ef1
FC
434=item *
435
436In 5.15.7, some typeglobs in the CORE namespace were made read-only by
437mistake. This has been fixed [rt.cpan.org #74289].
438
b1ea7742
FC
439=item *
440
441C<-t> now works when stacked with other filetest operators [perl #77388].
442
a1d95121
FC
443=item *
444
445Stacked filetest operators now only call FETCH once on a tied argument.
446
ea88c40c
FC
447=back
448
c1e74734 449=head1 Known Problems
ea88c40c 450
c1e74734
CBW
451XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
452tests that had to be C<TODO>ed for the release would be noted here, unless
453they were specific to a particular platform (see below).
ea88c40c 454
c1e74734
CBW
455This is a list of some significant unfixed bugs, which are regressions
456from either 5.XXX.XXX or 5.XXX.XXX.
ea88c40c 457
c1e74734 458[ List each fix as a =item entry ]
ea88c40c 459
c1e74734 460=over 4
18af289e 461
c1e74734 462=item *
18af289e 463
c1e74734 464XXX
1ac442bc 465
c1e74734 466=back
c0154fe2 467
c1e74734 468=head1 Obituary
1ac442bc 469
c1e74734
CBW
470XXX If any significant core contributor has died, we've added a short obituary
471here.
84b2a83e 472
52deee2e 473=head1 Acknowledgements
8fe05716 474
c1e74734
CBW
475XXX Generate this with:
476
477 perl Porting/acknowledgements.pl v5.15.7..HEAD
29cf780c 478
44691e6f
AB
479=head1 Reporting Bugs
480
481If you find what you think is a bug, you might check the articles
52deee2e
DR
482recently posted to the comp.lang.perl.misc newsgroup and the perl
483bug database at http://rt.perl.org/perlbug/ . There may also be
44691e6f
AB
484information at http://www.perl.org/ , the Perl Home Page.
485
486If you believe you have an unreported bug, please run the L<perlbug>
52deee2e
DR
487program included with your release. Be sure to trim your bug down
488to a tiny but sufficient test case. Your bug report, along with the
489output of C<perl -V>, will be sent off to perlbug@perl.org to be
490analysed by the Perl porting team.
44691e6f
AB
491
492If the bug you are reporting has security implications, which make it
52deee2e
DR
493inappropriate to send to a publicly archived mailing list, then please send
494it to perl5-security-report@perl.org. This points to a closed subscription
495unarchived mailing list, which includes
496all the core committers, who will 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.
44691e6f
AB
502
503=head1 SEE ALSO
504
52deee2e
DR
505The F<Changes> file for an explanation of how to view exhaustive details
506on what changed.
44691e6f
AB
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