This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
B.pm: Document stashflags
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
249950d7
FC
3=for comment
4This has been completed up to 675dc5e1a.
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
c1e74734 86=head1 Deprecations
b240fc0f 87
c1e74734
CBW
88XXX Any deprecated features, syntax, modules etc. should be listed here.
89In particular, deprecated modules should be listed here even if they are
90listed as an updated module in the L</Modules and Pragmata> section.
4e6ab4ad 91
c1e74734 92[ List each deprecation as a =head2 entry ]
4e6ab4ad 93
c1e74734 94=head1 Performance Enhancements
79e10968 95
c1e74734
CBW
96XXX Changes which enhance performance without changing behaviour go here. There
97may well be none in a stable release.
79e10968 98
c1e74734 99[ List each enhancement as a =item entry ]
ea88c40c 100
c1e74734 101=over 4
9d055b1a
CBW
102
103=item *
104
c1e74734 105XXX
cadced9f 106
c1e74734 107=back
cadced9f 108
c1e74734 109=head1 Modules and Pragmata
cadced9f 110
c1e74734
CBW
111XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
112go here. If Module::CoreList is updated, generate an initial draft of the
113following sections using F<Porting/corelist-perldelta.pl>, which prints stub
114entries to STDOUT. Results can be pasted in place of the '=head2' entries
115below. A paragraph summary for important changes should then be added by hand.
116In an ideal world, dual-life modules would have a F<Changes> file that could be
117cribbed.
cadced9f 118
c1e74734 119[ Within each section, list entries as a =item entry ]
07feb684 120
c1e74734 121=head2 New Modules and Pragmata
cadced9f 122
c1e74734 123=over 4
632c5d30
NC
124
125=item *
126
c1e74734 127XXX
4e6e9b23 128
c1e74734 129=back
4e6e9b23 130
c1e74734 131=head2 Updated Modules and Pragmata
4e6e9b23 132
c1e74734 133=over 4
1887da8c
RS
134
135=item *
136
df697508 137L<Compress::Raw::Bzip2> has been upgraded from version 2.045 to version 2.048.
76f546a2
CBW
138
139=item *
140
ecea5ab2 141L<Compress::Raw::Zlib> has been upgraded from version 2.045 to version 2.048.
589c1691
CBW
142
143=item *
144
8dcc3739 145L<Compress::Zlib> has been upgraded from version 2.046 to version 2.048.
422d6414
CBW
146
147=item *
148
b34385a6 149L<DB_File> has been upgraded from version 1.824 to version 1.826.
acb29889
CBW
150
151=item *
152
ce2c4022
NC
153L<diagnostics> has been upgraded from version 1.27 to version 1.28.
154
155When searching for F<perldiag.pod>, it no longer uses paths that were only
156relevant on Perl 5.004 and earlier.
157
158=item *
159
eb96f3fa
CBW
160L<IPC::Cmd> has been upgraded from version 0.72 to version 0.76.
161
162=item *
163
1051d5b5 164L<Pod::Parser> has been upgraded from version 1.37 to version 1.51.
88c5c971 165
2a7afa74
NC
166=item *
167
168L<Unicode::UCD> has been upgraded from version 0.39 to 0.40.
169
170The only change is to fix a formatting error in the Pod.
171
c1e74734 172=back
c0504019 173
c1e74734 174=head2 Removed Modules and Pragmata
937a45d0 175
c1e74734 176=over 4
937a45d0 177
ef337e16
CBW
178=item *
179
c1e74734 180XXX
ef337e16 181
7f28d7ed 182=back
679b54e7 183
52deee2e 184=head1 Documentation
3c7c5233 185
c1e74734
CBW
186XXX Changes to files in F<pod/> go here. Consider grouping entries by
187file and be sure to link to the appropriate page, e.g. L<perlfunc>.
a71d67b1 188
c1e74734 189=head2 New Documentation
cadced9f 190
c1e74734 191XXX Changes which create B<new> files in F<pod/> go here.
cadced9f 192
c1e74734 193=head3 L<XXX>
cadced9f 194
c1e74734 195XXX Description of the purpose of the new file here
cadced9f 196
c1e74734 197=head2 Changes to Existing Documentation
cadced9f 198
c1e74734
CBW
199XXX Changes which significantly change existing files in F<pod/> go here.
200However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
201section.
cadced9f 202
c1e74734 203=head3 L<XXX>
7e7629fa 204
52deee2e 205=over 4
7e7629fa
FC
206
207=item *
208
c1e74734 209XXX Description of the change here
c2654555 210
52deee2e 211=back
85ca3be7 212
52deee2e 213=head1 Diagnostics
85ca3be7 214
52deee2e
DR
215The following additions or changes have been made to diagnostic output,
216including warnings and fatal error messages. For the complete list of
217diagnostic messages, see L<perldiag>.
7788a270 218
c1e74734
CBW
219XXX New or changed warnings emitted by the core's C<C> code go here. Also
220include any changes in L<perldiag> that reconcile it to the C<C> code.
6138a722 221
c1e74734
CBW
222[ Within each section, list entries as a =item entry that links to perldiag,
223 e.g.
a47fb3fe 224
c1e74734 225 =item *
4888c563 226
c1e74734
CBW
227 L<Invalid version object|perldiag/"Invalid version object">
228]
a3f52e2e 229
c1e74734 230=head2 New Diagnostics
52272450 231
c1e74734 232XXX Newly added diagnostic messages go here
52272450 233
c1e74734 234=head3 New Errors
a47fb3fe 235
0aaeb177 236=over 4
7ef25837 237
6d110ad0
FC
238=item *
239
c1e74734 240XXX L<message|perldiag/"message">
604a99bd 241
c1e74734 242=back
ea88c40c 243
c1e74734 244=head3 New Warnings
ea88c40c 245
c1e74734 246=over 4
ea88c40c
FC
247
248=item *
249
c1e74734 250XXX L<message|perldiag/"message">
ea88c40c 251
6d110ad0
FC
252=back
253
c1e74734
CBW
254=head2 Changes to Existing Diagnostics
255
256XXX Changes (i.e. rewording) of diagnostic messages go here
cadced9f
FC
257
258=over 4
259
260=item *
261
c1e74734 262XXX Describe change here
cadced9f
FC
263
264=back
265
0aaeb177 266=head1 Utility Changes
9cfd094e 267
c1e74734
CBW
268XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
269here. Most of these are built within the directories F<utils> and F<x2p>.
d7fbd56d 270
c1e74734
CBW
271[ List utility changes as a =head3 entry for each utility and =item
272entries for each change
273Use L<XXX> with program names to get proper documentation linking. ]
d7fbd56d 274
c1e74734 275=head3 L<XXX>
d7fbd56d 276
c1e74734 277=over 4
ba91b4f3 278
b18aa002
FC
279=item *
280
c1e74734 281XXX
b18aa002 282
52deee2e 283=back
ba91b4f3 284
52deee2e 285=head1 Configuration and Compilation
f4912a50 286
c1e74734
CBW
287XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
288go here. Any other changes to the Perl build process should be listed here.
289However, any platform-specific changes should be listed in the
290L</Platform Support> section, instead.
a3f52e2e 291
c1e74734 292[ List changes as a =item entry ].
a3f52e2e 293
0aaeb177 294=over 4
ad32999b 295
f4912a50 296=item *
ad32999b 297
c1e74734 298XXX
c15f899f 299
7f28d7ed 300=back
ad32999b 301
c1e74734 302=head1 Testing
39de7394 303
c1e74734
CBW
304XXX Any significant changes to the testing of a freshly built perl should be
305listed here. Changes which create B<new> files in F<t/> go here as do any
306large changes to the testing harness (e.g. when parallel testing was added).
307Changes to existing files in F<t/> aren't worth summarising, although the bugs
308that they represent may be covered elsewhere.
39de7394 309
c1e74734 310[ List each test improvement as a =item entry ]
39de7394 311
c1e74734 312=over 4
5dd80d85 313
52272450
FC
314=item *
315
c1e74734 316XXX
52272450 317
52deee2e 318=back
5dd80d85 319
c1e74734 320=head1 Platform Support
52272450 321
c1e74734 322XXX Any changes to platform support should be listed in the sections below.
52272450 323
c1e74734
CBW
324[ Within the sections, list each platform as a =item entry with specific
325changes as paragraphs below it. ]
ad266194 326
c1e74734 327=head2 New Platforms
ad266194 328
c1e74734
CBW
329XXX List any platforms that this version of perl compiles on, that previous
330versions did not. These will either be enabled by new files in the F<hints/>
331directories, or new subdirectories and F<README> files at the top level of the
332source tree.
ad266194 333
c1e74734 334=over 4
838cf719 335
c1e74734 336=item XXX-some-platform
838cf719 337
c1e74734 338XXX
b00f6edb 339
c1e74734 340=back
b00f6edb 341
c1e74734 342=head2 Discontinued Platforms
7a3fd9ed 343
c1e74734 344XXX List any platforms that this version of perl no longer compiles on.
7a3fd9ed 345
c1e74734 346=over 4
1a50d74b 347
c1e74734 348=item XXX-some-platform
1a50d74b 349
c1e74734 350XXX
ea88c40c 351
c1e74734 352=back
ea88c40c 353
c1e74734 354=head2 Platform-Specific Notes
ea88c40c 355
c1e74734
CBW
356XXX List any changes for specific platforms. This could include configuration
357and compilation changes or changes in portability/compatibility. However,
358changes within modules for platforms should generally be listed in the
359L</Modules and Pragmata> section.
ea88c40c 360
c1e74734 361=over 4
ea88c40c 362
c1e74734 363=item XXX-some-platform
ea88c40c 364
c1e74734 365XXX
ea88c40c 366
c1e74734 367=back
ea88c40c 368
c1e74734 369=head1 Internal Changes
ea88c40c 370
c1e74734
CBW
371XXX Changes which affect the interface available to C<XS> code go here.
372Other significant internal changes for future core maintainers should
373be noted as well.
ea88c40c 374
c1e74734 375[ List each change as a =item entry ]
ea88c40c 376
c1e74734 377=over 4
ea88c40c
FC
378
379=item *
380
c1e74734 381XXX
ea88c40c 382
c1e74734 383=back
ea88c40c 384
c1e74734 385=head1 Selected Bug Fixes
ea88c40c 386
c1e74734
CBW
387XXX Important bug fixes in the core language are summarised here.
388Bug fixes in files in F<ext/> and F<lib/> are best summarised in
389L</Modules and Pragmata>.
ea88c40c 390
c1e74734 391[ List each fix as a =item entry ]
ea88c40c 392
c1e74734 393=over 4
ea88c40c
FC
394
395=item *
396
6025c6dd
RS
397C<~~> now correctly handles the precedence of Any~~Object, and is not tricked
398by an overloaded object on the left-hand side.
ea88c40c 399
249950d7
FC
400=item *
401
402C<stat _> no longer warns about unopened filehandles [perl #71002].
403
404=item *
405
406C<stat> on an unopened filehandle now warns consistently, instead of
407skipping the warning at times.
408
409=item *
410
411A change in an earlier 5.15 release caused warning hints to propagate into
412C<do $file>. This has been fixed [rt.cpan.org #72767].
413
414=item *
415
416Starting with 5.12.0, Perl used to get its internal bookkeeping muddled up
417after assigning C<${ qr// }> to a hash element and locking it with
418L<Hash::Util>. This could result in double frees, crashes or erratic
419behaviour.
420
ea88c40c
FC
421=back
422
c1e74734 423=head1 Known Problems
ea88c40c 424
c1e74734
CBW
425XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
426tests that had to be C<TODO>ed for the release would be noted here, unless
427they were specific to a particular platform (see below).
ea88c40c 428
c1e74734
CBW
429This is a list of some significant unfixed bugs, which are regressions
430from either 5.XXX.XXX or 5.XXX.XXX.
ea88c40c 431
c1e74734 432[ List each fix as a =item entry ]
ea88c40c 433
c1e74734 434=over 4
18af289e 435
c1e74734 436=item *
18af289e 437
c1e74734 438XXX
1ac442bc 439
c1e74734 440=back
c0154fe2 441
c1e74734 442=head1 Obituary
1ac442bc 443
c1e74734
CBW
444XXX If any significant core contributor has died, we've added a short obituary
445here.
84b2a83e 446
52deee2e 447=head1 Acknowledgements
8fe05716 448
c1e74734
CBW
449XXX Generate this with:
450
451 perl Porting/acknowledgements.pl v5.15.7..HEAD
29cf780c 452
44691e6f
AB
453=head1 Reporting Bugs
454
455If you find what you think is a bug, you might check the articles
52deee2e
DR
456recently posted to the comp.lang.perl.misc newsgroup and the perl
457bug database at http://rt.perl.org/perlbug/ . There may also be
44691e6f
AB
458information at http://www.perl.org/ , the Perl Home Page.
459
460If you believe you have an unreported bug, please run the L<perlbug>
52deee2e
DR
461program included with your release. Be sure to trim your bug down
462to a tiny but sufficient test case. Your bug report, along with the
463output of C<perl -V>, will be sent off to perlbug@perl.org to be
464analysed by the Perl porting team.
44691e6f
AB
465
466If the bug you are reporting has security implications, which make it
52deee2e
DR
467inappropriate to send to a publicly archived mailing list, then please send
468it to perl5-security-report@perl.org. This points to a closed subscription
469unarchived mailing list, which includes
470all the core committers, who will be able
471to help assess the impact of issues, figure out a resolution, and help
472co-ordinate the release of patches to mitigate or fix the problem across all
473platforms on which Perl is supported. Please only use this address for
474security issues in the Perl core, not for modules independently
475distributed on CPAN.
44691e6f
AB
476
477=head1 SEE ALSO
478
52deee2e
DR
479The F<Changes> file for an explanation of how to view exhaustive details
480on what changed.
44691e6f
AB
481
482The F<INSTALL> file for how to build Perl.
483
484The F<README> file for general stuff.
485
486The F<Artistic> and F<Copying> files for copyright information.
487
488=cut