This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for c3970b8037
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
03057ffb
A
5[ this is a template for a new perldelta file. Any text flagged as XXX needs
6to be processed before release. ]
7
8perldelta - what is new for perl v5.19.8
e128ab2c 9
4eabcf70 10=head1 DESCRIPTION
6db9054f 11
03057ffb 12This document describes differences between the 5.19.7 release and the 5.19.8
e08634c5 13release.
6db9054f 14
03057ffb
A
15If you are upgrading from an earlier release such as 5.19.6, first read
16L<perl5197delta>, which describes differences between 5.19.6 and 5.19.7.
12ea29d9 17
03057ffb 18=head1 Notice
b0e181c7 19
03057ffb 20XXX Any important notices here
b0e181c7 21
03057ffb 22=head1 Core Enhancements
22730142 23
03057ffb
A
24XXX New core language features go here. Summarize user-visible core language
25enhancements. Particularly prominent performance optimisations could go
26here, but most should go in the L</Performance Enhancements> section.
22730142 27
f5a7f193
KW
28=head2 New C<\p{Unicode}> regular expression pattern property
29
30This is a synonym for C<\p{Any}> and matches the set of Unicode-defined
31code points 0 - 0x10FFFF.
22730142 32
03057ffb 33=head1 Security
22730142 34
03057ffb
A
35XXX Any security-related notices go here. In particular, any security
36vulnerabilities closed should be noted here rather than in the
37L</Selected Bug Fixes> section.
6ffbec2c 38
03057ffb 39[ List each security issue as a =head2 entry ]
3f0a0d6e 40
03057ffb 41=head1 Incompatible Changes
f90332ac 42
8c74b414
DIM
43=head2 C<do> can no longer be used to call subroutines
44
45The C<do SUBROUTINE(LIST)> form has resulted in a deprecation warning
46since Perl v5.0.0, and is now a syntax error.
47
2d88a86a
KW
48=head2 C<\p{}>, C<\P{}> matching has changed for non-Unicode code
49points.
50
51C<\p{}> and C<\P{}> are defined by Unicode only on Unicode-defined code
52points (C<U+0000> through C<U+10FFFF>). Their behavior on matching
53these legal Unicode code points is unchanged, but there are changes for
54code points C<0x110000> and above. Previously, Perl treated the result
55of matching C<\p{}> and C<\P{}> against these as C<undef>, which
56translates into "false". For C<\P{}>, this was then complemented into
57"true". A warning was supposed to be raised when this happened.
58However, various optimizations could prevent the warning, and the
59results were often counter-intuitive, with both a match and its seeming
60complement being false. Now all non-Unicode code points are treated as
61typical unassigned Unicode code points. This generally is more
62Do-What-I-Mean. A warning is raised only if the results are arguably
63different from a strict Unicode approach, and from what Perl used to do.
64Code that needs to be strictly Unicode compliant can make this warning
65fatal, and then Perl always raises the warning.
66
67Details are in L<perlunicode/Beyond Unicode code points>.
68
69=head2 C<\p{All}> has been expanded to match all possible code points
70
71The Perl-defined regular expression pattern element C<\p{All}>, unused
72on CPAN, used to match just the Unicode code points; now it matches all
73possible code points; that is, it is equivalent to C<qr/./s>. Thus
74C<\p{All}> is no longer synonymous with C<\p{Any}>, which continues to
75match just the Unicode code points, as Unicode says it should.
76
03057ffb 77=head1 Deprecations
b32cf70e 78
03057ffb 79XXX Any deprecated features, syntax, modules etc. should be listed here.
63393c20 80
03057ffb 81=head2 Module removals
63393c20 82
03057ffb 83XXX Remove this section if inapplicable.
63393c20 84
03057ffb
A
85The following modules will be removed from the core distribution in a
86future release, and will at that time need to be installed from CPAN.
87Distributions on CPAN which require these modules will need to list them as
88prerequisites.
d5d60e0a 89
03057ffb
A
90The core versions of these modules will now issue C<"deprecated">-category
91warnings to alert you to this fact. To silence these deprecation warnings,
92install the modules in question from CPAN.
b32cf70e 93
03057ffb
A
94Note that these are (with rare exceptions) fine modules that you are encouraged
95to continue to use. Their disinclusion from core primarily hinges on their
96necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
97not usually on concerns over their design.
1c5add82 98
03057ffb 99=over
4c8323ec 100
03057ffb
A
101XXX Note that deprecated modules should be listed here even if they are listed
102as an updated module in the L</Modules and Pragmata> section.
1be87df6 103
03057ffb 104=back
1be87df6 105
03057ffb 106[ List each other deprecation as a =head2 entry ]
1be87df6 107
03057ffb 108=head1 Performance Enhancements
1be87df6 109
03057ffb
A
110XXX Changes which enhance performance without changing behaviour go here.
111There may well be none in a stable release.
86fbe58c 112
03057ffb 113[ List each enhancement as a =item entry ]
86fbe58c 114
03057ffb 115=over 4
22730142 116
86fbe58c
TC
117=item *
118
03057ffb 119XXX
1be87df6 120
03057ffb 121=back
1be87df6 122
03057ffb 123=head1 Modules and Pragmata
1be87df6 124
03057ffb
A
125XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
126go here. If Module::CoreList is updated, generate an initial draft of the
127following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
128for important changes should then be added by hand. In an ideal world,
129dual-life modules would have a F<Changes> file that could be cribbed.
4c8323ec 130
03057ffb 131[ Within each section, list entries as a =item entry ]
4c8323ec 132
03057ffb 133=head2 New Modules and Pragmata
6b0ff4b4 134
03057ffb 135=over 4
1be87df6
A
136
137=item *
138
03057ffb 139XXX
1be87df6 140
03057ffb 141=back
1be87df6 142
03057ffb 143=head2 Updated Modules and Pragmata
1be87df6 144
03057ffb 145=over 4
1be87df6
A
146
147=item *
148
3cd3edd2
SH
149L<Encode> has been upgraded from version 2.56 to 2.57.
150
151UTF-8 is no longer used in the C source (which some compilers didn't like), and
152some POD errors have been fixed in the documentation.
1be87df6 153
0d0bc230
SH
154=item *
155
156The libnet module collection has been upgraded from version 1.23 to 1.24.
157
158The handling of CRLF characters in L<Net::FTP> has been fixed.
159
fa846618
TC
160=item *
161
162L<perl5db.pl> has been upgraded from version 1.42 to 1.43
163
164Fix a crash in tab completion, where available. [perl #120827]
165
03057ffb 166=back
1be87df6 167
03057ffb 168=head2 Removed Modules and Pragmata
1be87df6 169
03057ffb 170=over 4
1be87df6
A
171
172=item *
173
03057ffb 174XXX
1be87df6 175
03057ffb 176=back
1be87df6 177
03057ffb 178=head1 Documentation
6b0ff4b4 179
03057ffb
A
180XXX Changes to files in F<pod/> go here. Consider grouping entries by
181file and be sure to link to the appropriate page, e.g. L<perlfunc>.
6b0ff4b4 182
03057ffb 183=head2 New Documentation
1be87df6 184
03057ffb 185XXX Changes which create B<new> files in F<pod/> go here.
1be87df6 186
03057ffb 187=head3 L<XXX>
1be87df6 188
03057ffb 189XXX Description of the purpose of the new file here
1be87df6 190
03057ffb 191=head2 Changes to Existing Documentation
1be87df6 192
03057ffb
A
193XXX Changes which significantly change existing files in F<pod/> go here.
194However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
195section.
1be87df6 196
03057ffb 197=head3 L<XXX>
1be87df6 198
03057ffb 199=over 4
1be87df6
A
200
201=item *
202
03057ffb 203XXX Description of the change here
1be87df6 204
e6898945 205=back
b32cf70e 206
e6898945 207=head1 Diagnostics
b32cf70e 208
e6898945
CBW
209The following additions or changes have been made to diagnostic output,
210including warnings and fatal error messages. For the complete list of
211diagnostic messages, see L<perldiag>.
b32cf70e 212
03057ffb
A
213XXX New or changed warnings emitted by the core's C<C> code go here. Also
214include any changes in L<perldiag> that reconcile it to the C<C> code.
215
e6898945 216=head2 New Diagnostics
f63abf92 217
03057ffb
A
218XXX Newly added diagnostic messages go under here, separated into New Errors
219and New Warnings
220
221=head3 New Errors
b32cf70e 222
e6898945 223=over 4
b32cf70e
CBW
224
225=item *
226
03057ffb
A
227XXX L<message|perldiag/"message">
228
229=back
230
231=head3 New Warnings
232
233=over 4
234
235=item *
4fa6dd16 236
03057ffb 237XXX L<message|perldiag/"message">
22f9c36a 238
2d88a86a
KW
239=item *
240
241L<Matched non-Unicode code point 0x%X against Unicode property; may not be portable|perldiag/"Matched non-Unicode code point 0x%X against Unicode property; may not be portable">.
242This replaces the message "Code point 0x%X is not Unicode, all \p{}
243matches fail; all \P{} matches succeed".
244
e6898945 245=back
22f9c36a 246
e6898945 247=head2 Changes to Existing Diagnostics
e61cab1a 248
03057ffb
A
249XXX Changes (i.e. rewording) of diagnostic messages go here
250
e6898945 251=over 4
b32cf70e
CBW
252
253=item *
254
03057ffb 255XXX Describe change here
b32cf70e 256
e6898945 257=back
b32cf70e 258
e6898945 259=head1 Utility Changes
b32cf70e 260
03057ffb
A
261XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
262Most of these are built within the directories F<utils> and F<x2p>.
263
264[ List utility changes as a =head3 entry for each utility and =item
265entries for each change
266Use L<XXX> with program names to get proper documentation linking. ]
267
268=head3 L<XXX>
be08498a 269
28ee95bc 270=over 4
52102bb4
SH
271
272=item *
273
03057ffb 274XXX
befb5359 275
28ee95bc 276=back
befb5359 277
03057ffb
A
278=head1 Configuration and Compilation
279
280XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
281go here. Any other changes to the Perl build process should be listed here.
282However, any platform-specific changes should be listed in the
283L</Platform Support> section, instead.
284
285[ List changes as a =item entry ].
f90332ac 286
28ee95bc 287=over 4
411e93ce
SH
288
289=item *
290
7f02832c
BF
291Distinct library basenames with C<d_libname_unique>.
292
293When compiling perl with this option, the library files for XS modules are
294named something "unique" -- for example, Hash/Util/Util.so becomes
295Hash/Util/PL_Hash__Util.so. This behavior is similar to what currently
296happens on VMS, and serves as groundwork for the Android port.
c7a31d00 297
e6898945 298=back
f90332ac 299
03057ffb 300=head1 Testing
8adfd064 301
03057ffb
A
302XXX Any significant changes to the testing of a freshly built perl should be
303listed here. Changes which create B<new> files in F<t/> go here as do any
304large changes to the testing harness (e.g. when parallel testing was added).
305Changes to existing files in F<t/> aren't worth summarizing, although the bugs
306that they represent may be covered elsewhere.
307
308[ List each test improvement as a =item entry ]
40d779aa 309
e6898945 310=over 4
40d779aa 311
03057ffb 312=item *
f4a01e9c 313
03057ffb 314XXX
eaed284b 315
ba03bc34 316=back
0335212c 317
03057ffb
A
318=head1 Platform Support
319
320XXX Any changes to platform support should be listed in the sections below.
321
322[ Within the sections, list each platform as a =item entry with specific
323changes as paragraphs below it. ]
324
61d9d362
NC
325=over 4
326
327=item *
328
329Code related to supporting C<sfio> has been removed.
330
331Perl 5.004 added support to use the native API of C<sfio>, AT&T's Safe/Fast
332I/O library. This code still built with v5.8.0, albeit with many regression
333tests failing, but was inadvertently broken before the v5.8.1 release,
334meaning that it has not worked on any version of Perl released since then.
335In over a decade we have received no bug reports about this, hence it is clear
336that no-one is using this functionality on any version of Perl that is still
337supported to any degree.
338
339=back
340
03057ffb
A
341=head2 New Platforms
342
343XXX List any platforms that this version of perl compiles on, that previous
344versions did not. These will either be enabled by new files in the F<hints/>
345directories, or new subdirectories and F<README> files at the top level of the
346source tree.
0335212c 347
28ee95bc 348=over 4
04380912 349
03057ffb 350=item XXX-some-platform
04380912 351
03057ffb 352XXX
1859dc90 353
e6898945 354=back
812998f1 355
03057ffb
A
356=head2 Discontinued Platforms
357
358XXX List any platforms that this version of perl no longer compiles on.
34e8ce87 359
e6898945 360=over 4
4c99f16d 361
03057ffb 362=item XXX-some-platform
508c1ff6 363
03057ffb 364XXX
7492c6c5 365
03057ffb 366=back
37decf78 367
03057ffb 368=head2 Platform-Specific Notes
37decf78 369
03057ffb
A
370XXX List any changes for specific platforms. This could include configuration
371and compilation changes or changes in portability/compatibility. However,
372changes within modules for platforms should generally be listed in the
373L</Modules and Pragmata> section.
4a9a8c6d 374
03057ffb 375=over 4
4a9a8c6d 376
03057ffb 377=item XXX-some-platform
346295c2 378
03057ffb 379XXX
346295c2 380
03057ffb 381=back
346295c2 382
03057ffb 383=head1 Internal Changes
346295c2 384
03057ffb
A
385XXX Changes which affect the interface available to C<XS> code go here. Other
386significant internal changes for future core maintainers should be noted as
387well.
388
389[ List each change as a =item entry ]
8b41bb22 390
03057ffb 391=over 4
8b41bb22 392
e8f91c91
DD
393=item newATTRSUB is now a macro
394
395The public API newATTRSUB was previously a macro to the private
396function Perl_newATTRSUB. Function Perl_newATTRSUB has been removed. newATTRSUB
397is now macro to a different internal function.
398
ea5ced44
KW
399=item Changes in warnings raised by C<utf8n_to_uvchr()>
400
401This bottom level function decodes the first character of a UTF-8 string
402into a code point. It is accessible to C<XS> level code, but it's
403discouraged from using it directly. There are higher level functions
404that call this that should be used instead, such as
405L<perlapi/utf8_to_uvchr_buf>. For completeness though, this documents
406some changes to it. Now, tests for malformations are done before any
407tests for other potential issues. One of those issues involves code
408points so large that they have never appeared in any official standard
409(the current standard has scaled back the highest acceptable code point
410from earlier versions). It is possible (though not done in CPAN) to
411warn and/or forbid these code points, while accepting smaller code
412points that are still above the legal Unicode maximum. The warning
413message for this now includes the code point if representable on the
414machine. Previously it always displayed raw bytes, which is what it
415still does for non-representable code points.
2412ad36 416
03057ffb
A
417=back
418
419=head1 Selected Bug Fixes
e0f78657 420
03057ffb
A
421XXX Important bug fixes in the core language are summarized here. Bug fixes in
422files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
e0f78657 423
03057ffb 424[ List each fix as a =item entry ]
acfee349 425
03057ffb 426=over 4
acfee349 427
df5ac742 428=item *
254a1e67 429
03057ffb 430XXX
e6898945 431
03057ffb 432=back
e6898945 433
03057ffb 434=head1 Known Problems
254a1e67 435
03057ffb
A
436XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
437tests that had to be C<TODO>ed for the release would be noted here. Unfixed
438platform specific bugs also go here.
254a1e67 439
03057ffb 440[ List each fix as a =item entry ]
7492c6c5 441
03057ffb 442=over 4
cfbe45f9 443
03057ffb 444=item *
b32cf70e 445
03057ffb 446XXX
b180fb10 447
03057ffb
A
448=back
449
450=head1 Obituary
b180fb10 451
03057ffb
A
452XXX If any significant core contributor has died, we've added a short obituary
453here.
b180fb10 454
03057ffb 455=head1 Acknowledgements
b180fb10 456
03057ffb 457XXX Generate this with:
b180fb10 458
03057ffb 459 perl Porting/acknowledgements.pl v5.19.7..HEAD
f5b73711 460
44691e6f
AB
461=head1 Reporting Bugs
462
e08634c5
SH
463If you find what you think is a bug, you might check the articles recently
464posted to the comp.lang.perl.misc newsgroup and the perl bug database at
e6898945 465https://rt.perl.org/ . There may also be information at
e08634c5 466http://www.perl.org/ , the Perl Home Page.
44691e6f 467
e08634c5
SH
468If you believe you have an unreported bug, please run the L<perlbug> program
469included with your release. Be sure to trim your bug down to a tiny but
470sufficient test case. Your bug report, along with the output of C<perl -V>,
471will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
472
473If the bug you are reporting has security implications, which make it
e08634c5
SH
474inappropriate to send to a publicly archived mailing list, then please send it
475to perl5-security-report@perl.org. This points to a closed subscription
476unarchived mailing list, which includes all the core committers, who will be
477able to help assess the impact of issues, figure out a resolution, and help
f9001595 478co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
479platforms on which Perl is supported. Please only use this address for
480security issues in the Perl core, not for modules independently distributed on
481CPAN.
44691e6f
AB
482
483=head1 SEE ALSO
484
e08634c5
SH
485The F<Changes> file for an explanation of how to view exhaustive details on
486what changed.
44691e6f
AB
487
488The F<INSTALL> file for how to build Perl.
489
490The F<README> file for general stuff.
491
492The F<Artistic> and F<Copying> files for copyright information.
493
494=cut