This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Make key/push $scalar experimental
[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
564aa3ec
TC
162L<IO::Socket::UNIX> has been upgraded from version 1.25 to 1.26.
163
164Removed a warning about an ancient behaviour change and filled out the
165SYNOPSIS. [perl #120981]
166
167=item *
168
fa846618
TC
169L<perl5db.pl> has been upgraded from version 1.42 to 1.43
170
171Fix a crash in tab completion, where available. [perl #120827]
172
03057ffb 173=back
1be87df6 174
03057ffb 175=head2 Removed Modules and Pragmata
1be87df6 176
03057ffb 177=over 4
1be87df6
A
178
179=item *
180
03057ffb 181XXX
1be87df6 182
03057ffb 183=back
1be87df6 184
03057ffb 185=head1 Documentation
6b0ff4b4 186
03057ffb
A
187XXX Changes to files in F<pod/> go here. Consider grouping entries by
188file and be sure to link to the appropriate page, e.g. L<perlfunc>.
6b0ff4b4 189
03057ffb 190=head2 New Documentation
1be87df6 191
03057ffb 192XXX Changes which create B<new> files in F<pod/> go here.
1be87df6 193
03057ffb 194=head3 L<XXX>
1be87df6 195
03057ffb 196XXX Description of the purpose of the new file here
1be87df6 197
03057ffb 198=head2 Changes to Existing Documentation
1be87df6 199
03057ffb
A
200XXX Changes which significantly change existing files in F<pod/> go here.
201However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
202section.
1be87df6 203
03057ffb 204=head3 L<XXX>
1be87df6 205
03057ffb 206=over 4
1be87df6
A
207
208=item *
209
03057ffb 210XXX Description of the change here
1be87df6 211
e6898945 212=back
b32cf70e 213
e6898945 214=head1 Diagnostics
b32cf70e 215
e6898945
CBW
216The following additions or changes have been made to diagnostic output,
217including warnings and fatal error messages. For the complete list of
218diagnostic messages, see L<perldiag>.
b32cf70e 219
03057ffb
A
220XXX New or changed warnings emitted by the core's C<C> code go here. Also
221include any changes in L<perldiag> that reconcile it to the C<C> code.
222
e6898945 223=head2 New Diagnostics
f63abf92 224
03057ffb
A
225XXX Newly added diagnostic messages go under here, separated into New Errors
226and New Warnings
227
228=head3 New Errors
b32cf70e 229
e6898945 230=over 4
b32cf70e
CBW
231
232=item *
233
03057ffb
A
234XXX L<message|perldiag/"message">
235
236=back
237
238=head3 New Warnings
239
240=over 4
241
242=item *
4fa6dd16 243
03057ffb 244XXX L<message|perldiag/"message">
22f9c36a 245
2d88a86a
KW
246=item *
247
248L<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">.
249This replaces the message "Code point 0x%X is not Unicode, all \p{}
250matches fail; all \P{} matches succeed".
251
e6898945 252=back
22f9c36a 253
e6898945 254=head2 Changes to Existing Diagnostics
e61cab1a 255
03057ffb
A
256XXX Changes (i.e. rewording) of diagnostic messages go here
257
e6898945 258=over 4
b32cf70e
CBW
259
260=item *
261
03057ffb 262XXX Describe change here
b32cf70e 263
e6898945 264=back
b32cf70e 265
e6898945 266=head1 Utility Changes
b32cf70e 267
03057ffb
A
268XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
269Most of these are built within the directories F<utils> and F<x2p>.
270
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. ]
274
275=head3 L<XXX>
be08498a 276
28ee95bc 277=over 4
52102bb4
SH
278
279=item *
280
03057ffb 281XXX
befb5359 282
28ee95bc 283=back
befb5359 284
03057ffb
A
285=head1 Configuration and Compilation
286
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.
291
292[ List changes as a =item entry ].
f90332ac 293
28ee95bc 294=over 4
411e93ce
SH
295
296=item *
297
7f02832c
BF
298Distinct library basenames with C<d_libname_unique>.
299
300When compiling perl with this option, the library files for XS modules are
301named something "unique" -- for example, Hash/Util/Util.so becomes
302Hash/Util/PL_Hash__Util.so. This behavior is similar to what currently
303happens on VMS, and serves as groundwork for the Android port.
c7a31d00 304
39d6ec9c
BF
305=item *
306
307C<sysroot> option to indicate the logical root directory under gcc and clang.
308
309When building with this option set, both Configure and the compilers search
310for all headers and libraries under this new sysroot, instead of /.
311
312This is a huge time saver if cross-compiling, but can also help
313on native builds if your toolchain's files have non-standard locations.
314
e6898945 315=back
f90332ac 316
03057ffb 317=head1 Testing
8adfd064 318
03057ffb
A
319XXX Any significant changes to the testing of a freshly built perl should be
320listed here. Changes which create B<new> files in F<t/> go here as do any
321large changes to the testing harness (e.g. when parallel testing was added).
322Changes to existing files in F<t/> aren't worth summarizing, although the bugs
323that they represent may be covered elsewhere.
324
325[ List each test improvement as a =item entry ]
40d779aa 326
e6898945 327=over 4
40d779aa 328
03057ffb 329=item *
f4a01e9c 330
03057ffb 331XXX
eaed284b 332
ba03bc34 333=back
0335212c 334
03057ffb
A
335=head1 Platform Support
336
337XXX Any changes to platform support should be listed in the sections below.
338
339[ Within the sections, list each platform as a =item entry with specific
340changes as paragraphs below it. ]
341
61d9d362
NC
342=over 4
343
344=item *
345
346Code related to supporting C<sfio> has been removed.
347
348Perl 5.004 added support to use the native API of C<sfio>, AT&T's Safe/Fast
349I/O library. This code still built with v5.8.0, albeit with many regression
350tests failing, but was inadvertently broken before the v5.8.1 release,
351meaning that it has not worked on any version of Perl released since then.
352In over a decade we have received no bug reports about this, hence it is clear
353that no-one is using this functionality on any version of Perl that is still
354supported to any degree.
355
356=back
357
03057ffb
A
358=head2 New Platforms
359
360XXX List any platforms that this version of perl compiles on, that previous
361versions did not. These will either be enabled by new files in the F<hints/>
362directories, or new subdirectories and F<README> files at the top level of the
363source tree.
0335212c 364
28ee95bc 365=over 4
04380912 366
03057ffb 367=item XXX-some-platform
04380912 368
03057ffb 369XXX
1859dc90 370
e6898945 371=back
812998f1 372
03057ffb
A
373=head2 Discontinued Platforms
374
375XXX List any platforms that this version of perl no longer compiles on.
34e8ce87 376
e6898945 377=over 4
4c99f16d 378
03057ffb 379=item XXX-some-platform
508c1ff6 380
03057ffb 381XXX
7492c6c5 382
03057ffb 383=back
37decf78 384
03057ffb 385=head2 Platform-Specific Notes
37decf78 386
03057ffb
A
387XXX List any changes for specific platforms. This could include configuration
388and compilation changes or changes in portability/compatibility. However,
389changes within modules for platforms should generally be listed in the
390L</Modules and Pragmata> section.
4a9a8c6d 391
03057ffb 392=over 4
4a9a8c6d 393
03057ffb 394=item XXX-some-platform
346295c2 395
03057ffb 396XXX
346295c2 397
03057ffb 398=back
346295c2 399
03057ffb 400=head1 Internal Changes
346295c2 401
03057ffb
A
402XXX Changes which affect the interface available to C<XS> code go here. Other
403significant internal changes for future core maintainers should be noted as
404well.
405
406[ List each change as a =item entry ]
8b41bb22 407
03057ffb 408=over 4
8b41bb22 409
e8f91c91
DD
410=item newATTRSUB is now a macro
411
412The public API newATTRSUB was previously a macro to the private
413function Perl_newATTRSUB. Function Perl_newATTRSUB has been removed. newATTRSUB
414is now macro to a different internal function.
415
ea5ced44
KW
416=item Changes in warnings raised by C<utf8n_to_uvchr()>
417
418This bottom level function decodes the first character of a UTF-8 string
419into a code point. It is accessible to C<XS> level code, but it's
420discouraged from using it directly. There are higher level functions
421that call this that should be used instead, such as
422L<perlapi/utf8_to_uvchr_buf>. For completeness though, this documents
423some changes to it. Now, tests for malformations are done before any
424tests for other potential issues. One of those issues involves code
425points so large that they have never appeared in any official standard
426(the current standard has scaled back the highest acceptable code point
427from earlier versions). It is possible (though not done in CPAN) to
428warn and/or forbid these code points, while accepting smaller code
429points that are still above the legal Unicode maximum. The warning
430message for this now includes the code point if representable on the
431machine. Previously it always displayed raw bytes, which is what it
432still does for non-representable code points.
2412ad36 433
03057ffb
A
434=back
435
436=head1 Selected Bug Fixes
e0f78657 437
03057ffb
A
438XXX Important bug fixes in the core language are summarized here. Bug fixes in
439files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
e0f78657 440
03057ffb 441[ List each fix as a =item entry ]
acfee349 442
03057ffb 443=over 4
acfee349 444
df5ac742 445=item *
254a1e67 446
03057ffb 447XXX
e6898945 448
03057ffb 449=back
e6898945 450
03057ffb 451=head1 Known Problems
254a1e67 452
03057ffb
A
453XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
454tests that had to be C<TODO>ed for the release would be noted here. Unfixed
455platform specific bugs also go here.
254a1e67 456
03057ffb 457[ List each fix as a =item entry ]
7492c6c5 458
03057ffb 459=over 4
cfbe45f9 460
03057ffb 461=item *
b32cf70e 462
03057ffb 463XXX
b180fb10 464
03057ffb
A
465=back
466
467=head1 Obituary
b180fb10 468
03057ffb
A
469XXX If any significant core contributor has died, we've added a short obituary
470here.
b180fb10 471
03057ffb 472=head1 Acknowledgements
b180fb10 473
03057ffb 474XXX Generate this with:
b180fb10 475
03057ffb 476 perl Porting/acknowledgements.pl v5.19.7..HEAD
f5b73711 477
44691e6f
AB
478=head1 Reporting Bugs
479
e08634c5
SH
480If you find what you think is a bug, you might check the articles recently
481posted to the comp.lang.perl.misc newsgroup and the perl bug database at
e6898945 482https://rt.perl.org/ . There may also be information at
e08634c5 483http://www.perl.org/ , the Perl Home Page.
44691e6f 484
e08634c5
SH
485If you believe you have an unreported bug, please run the L<perlbug> program
486included with your release. Be sure to trim your bug down to a tiny but
487sufficient test case. Your bug report, along with the output of C<perl -V>,
488will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
489
490If the bug you are reporting has security implications, which make it
e08634c5
SH
491inappropriate to send to a publicly archived mailing list, then please send it
492to perl5-security-report@perl.org. This points to a closed subscription
493unarchived mailing list, which includes all the core committers, who will be
494able to help assess the impact of issues, figure out a resolution, and help
f9001595 495co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
496platforms on which Perl is supported. Please only use this address for
497security issues in the Perl core, not for modules independently distributed on
498CPAN.
44691e6f
AB
499
500=head1 SEE ALSO
501
e08634c5
SH
502The F<Changes> file for an explanation of how to view exhaustive details on
503what changed.
44691e6f
AB
504
505The F<INSTALL> file for how to build Perl.
506
507The F<README> file for general stuff.
508
509The F<Artistic> and F<Copying> files for copyright information.
510
511=cut