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