5 [ this is a template for a new perldelta file. Any text flagged as XXX needs
6 to be processed before release. ]
8 perldelta - what is new for perl v5.19.8
12 This document describes differences between the 5.19.7 release and the 5.19.8
15 If you are upgrading from an earlier release such as 5.19.6, first read
16 L<perl5197delta>, which describes differences between 5.19.6 and 5.19.7.
20 XXX Any important notices here
22 =head1 Core Enhancements
24 XXX New core language features go here. Summarize user-visible core language
25 enhancements. Particularly prominent performance optimisations could go
26 here, but most should go in the L</Performance Enhancements> section.
28 =head2 New C<\p{Unicode}> regular expression pattern property
30 This is a synonym for C<\p{Any}> and matches the set of Unicode-defined
31 code points 0 - 0x10FFFF.
35 XXX Any security-related notices go here. In particular, any security
36 vulnerabilities closed should be noted here rather than in the
37 L</Selected Bug Fixes> section.
39 [ List each security issue as a =head2 entry ]
41 =head1 Incompatible Changes
43 =head2 C<do> can no longer be used to call subroutines
45 The C<do SUBROUTINE(LIST)> form has resulted in a deprecation warning
46 since Perl v5.0.0, and is now a syntax error.
48 =head2 C<\p{}>, C<\P{}> matching has changed for non-Unicode code
51 C<\p{}> and C<\P{}> are defined by Unicode only on Unicode-defined code
52 points (C<U+0000> through C<U+10FFFF>). Their behavior on matching
53 these legal Unicode code points is unchanged, but there are changes for
54 code points C<0x110000> and above. Previously, Perl treated the result
55 of matching C<\p{}> and C<\P{}> against these as C<undef>, which
56 translates into "false". For C<\P{}>, this was then complemented into
57 "true". A warning was supposed to be raised when this happened.
58 However, various optimizations could prevent the warning, and the
59 results were often counter-intuitive, with both a match and its seeming
60 complement being false. Now all non-Unicode code points are treated as
61 typical unassigned Unicode code points. This generally is more
62 Do-What-I-Mean. A warning is raised only if the results are arguably
63 different from a strict Unicode approach, and from what Perl used to do.
64 Code that needs to be strictly Unicode compliant can make this warning
65 fatal, and then Perl always raises the warning.
67 Details are in L<perlunicode/Beyond Unicode code points>.
69 =head2 C<\p{All}> has been expanded to match all possible code points
71 The Perl-defined regular expression pattern element C<\p{All}>, unused
72 on CPAN, used to match just the Unicode code points; now it matches all
73 possible code points; that is, it is equivalent to C<qr/./s>. Thus
74 C<\p{All}> is no longer synonymous with C<\p{Any}>, which continues to
75 match just the Unicode code points, as Unicode says it should.
79 XXX Any deprecated features, syntax, modules etc. should be listed here.
81 =head2 Module removals
83 XXX Remove this section if inapplicable.
85 The following modules will be removed from the core distribution in a
86 future release, and will at that time need to be installed from CPAN.
87 Distributions on CPAN which require these modules will need to list them as
90 The core versions of these modules will now issue C<"deprecated">-category
91 warnings to alert you to this fact. To silence these deprecation warnings,
92 install the modules in question from CPAN.
94 Note that these are (with rare exceptions) fine modules that you are encouraged
95 to continue to use. Their disinclusion from core primarily hinges on their
96 necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
97 not usually on concerns over their design.
101 XXX Note that deprecated modules should be listed here even if they are listed
102 as an updated module in the L</Modules and Pragmata> section.
106 [ List each other deprecation as a =head2 entry ]
108 =head1 Performance Enhancements
110 XXX Changes which enhance performance without changing behaviour go here.
111 There may well be none in a stable release.
113 [ List each enhancement as a =item entry ]
123 =head1 Modules and Pragmata
125 XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
126 go here. If Module::CoreList is updated, generate an initial draft of the
127 following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
128 for important changes should then be added by hand. In an ideal world,
129 dual-life modules would have a F<Changes> file that could be cribbed.
131 [ Within each section, list entries as a =item entry ]
133 =head2 New Modules and Pragmata
143 =head2 Updated Modules and Pragmata
149 L<Encode> has been upgraded from version 2.56 to 2.57.
151 UTF-8 is no longer used in the C source (which some compilers didn't like), and
152 some POD errors have been fixed in the documentation.
156 The libnet module collection has been upgraded from version 1.23 to 1.24.
158 The handling of CRLF characters in L<Net::FTP> has been fixed.
162 L<perl5db.pl> has been upgraded from version 1.42 to 1.43
164 Fix a crash in tab completion, where available. [perl #120827]
168 =head2 Removed Modules and Pragmata
180 XXX Changes to files in F<pod/> go here. Consider grouping entries by
181 file and be sure to link to the appropriate page, e.g. L<perlfunc>.
183 =head2 New Documentation
185 XXX Changes which create B<new> files in F<pod/> go here.
189 XXX Description of the purpose of the new file here
191 =head2 Changes to Existing Documentation
193 XXX Changes which significantly change existing files in F<pod/> go here.
194 However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
203 XXX Description of the change here
209 The following additions or changes have been made to diagnostic output,
210 including warnings and fatal error messages. For the complete list of
211 diagnostic messages, see L<perldiag>.
213 XXX New or changed warnings emitted by the core's C<C> code go here. Also
214 include any changes in L<perldiag> that reconcile it to the C<C> code.
216 =head2 New Diagnostics
218 XXX Newly added diagnostic messages go under here, separated into New Errors
227 XXX L<message|perldiag/"message">
237 XXX L<message|perldiag/"message">
241 L<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">.
242 This replaces the message "Code point 0x%X is not Unicode, all \p{}
243 matches fail; all \P{} matches succeed".
247 =head2 Changes to Existing Diagnostics
249 XXX Changes (i.e. rewording) of diagnostic messages go here
255 XXX Describe change here
259 =head1 Utility Changes
261 XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
262 Most of these are built within the directories F<utils> and F<x2p>.
264 [ List utility changes as a =head3 entry for each utility and =item
265 entries for each change
266 Use L<XXX> with program names to get proper documentation linking. ]
278 =head1 Configuration and Compilation
280 XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
281 go here. Any other changes to the Perl build process should be listed here.
282 However, any platform-specific changes should be listed in the
283 L</Platform Support> section, instead.
285 [ List changes as a =item entry ].
291 Distinct library basenames with C<d_libname_unique>.
293 When compiling perl with this option, the library files for XS modules are
294 named something "unique" -- for example, Hash/Util/Util.so becomes
295 Hash/Util/PL_Hash__Util.so. This behavior is similar to what currently
296 happens on VMS, and serves as groundwork for the Android port.
302 XXX Any significant changes to the testing of a freshly built perl should be
303 listed here. Changes which create B<new> files in F<t/> go here as do any
304 large changes to the testing harness (e.g. when parallel testing was added).
305 Changes to existing files in F<t/> aren't worth summarizing, although the bugs
306 that they represent may be covered elsewhere.
308 [ List each test improvement as a =item entry ]
318 =head1 Platform Support
320 XXX Any changes to platform support should be listed in the sections below.
322 [ Within the sections, list each platform as a =item entry with specific
323 changes as paragraphs below it. ]
329 Code related to supporting C<sfio> has been removed.
331 Perl 5.004 added support to use the native API of C<sfio>, AT&T's Safe/Fast
332 I/O library. This code still built with v5.8.0, albeit with many regression
333 tests failing, but was inadvertently broken before the v5.8.1 release,
334 meaning that it has not worked on any version of Perl released since then.
335 In over a decade we have received no bug reports about this, hence it is clear
336 that no-one is using this functionality on any version of Perl that is still
337 supported to any degree.
343 XXX List any platforms that this version of perl compiles on, that previous
344 versions did not. These will either be enabled by new files in the F<hints/>
345 directories, or new subdirectories and F<README> files at the top level of the
350 =item XXX-some-platform
356 =head2 Discontinued Platforms
358 XXX List any platforms that this version of perl no longer compiles on.
362 =item XXX-some-platform
368 =head2 Platform-Specific Notes
370 XXX List any changes for specific platforms. This could include configuration
371 and compilation changes or changes in portability/compatibility. However,
372 changes within modules for platforms should generally be listed in the
373 L</Modules and Pragmata> section.
377 =item XXX-some-platform
383 =head1 Internal Changes
385 XXX Changes which affect the interface available to C<XS> code go here. Other
386 significant internal changes for future core maintainers should be noted as
389 [ List each change as a =item entry ]
393 =item newATTRSUB is now a macro
395 The public API newATTRSUB was previously a macro to the private
396 function Perl_newATTRSUB. Function Perl_newATTRSUB has been removed. newATTRSUB
397 is now macro to a different internal function.
399 =item Changes in warnings raised by C<utf8n_to_uvchr()>
401 This bottom level function decodes the first character of a UTF-8 string
402 into a code point. It is accessible to C<XS> level code, but it's
403 discouraged from using it directly. There are higher level functions
404 that call this that should be used instead, such as
405 L<perlapi/utf8_to_uvchr_buf>. For completeness though, this documents
406 some changes to it. Now, tests for malformations are done before any
407 tests for other potential issues. One of those issues involves code
408 points so large that they have never appeared in any official standard
409 (the current standard has scaled back the highest acceptable code point
410 from earlier versions). It is possible (though not done in CPAN) to
411 warn and/or forbid these code points, while accepting smaller code
412 points that are still above the legal Unicode maximum. The warning
413 message for this now includes the code point if representable on the
414 machine. Previously it always displayed raw bytes, which is what it
415 still does for non-representable code points.
419 =head1 Selected Bug Fixes
421 XXX Important bug fixes in the core language are summarized here. Bug fixes in
422 files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
424 [ List each fix as a =item entry ]
434 =head1 Known Problems
436 XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
437 tests that had to be C<TODO>ed for the release would be noted here. Unfixed
438 platform specific bugs also go here.
440 [ List each fix as a =item entry ]
452 XXX If any significant core contributor has died, we've added a short obituary
455 =head1 Acknowledgements
457 XXX Generate this with:
459 perl Porting/acknowledgements.pl v5.19.7..HEAD
461 =head1 Reporting Bugs
463 If you find what you think is a bug, you might check the articles recently
464 posted to the comp.lang.perl.misc newsgroup and the perl bug database at
465 https://rt.perl.org/ . There may also be information at
466 http://www.perl.org/ , the Perl Home Page.
468 If you believe you have an unreported bug, please run the L<perlbug> program
469 included with your release. Be sure to trim your bug down to a tiny but
470 sufficient test case. Your bug report, along with the output of C<perl -V>,
471 will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
473 If the bug you are reporting has security implications, which make it
474 inappropriate to send to a publicly archived mailing list, then please send it
475 to perl5-security-report@perl.org. This points to a closed subscription
476 unarchived mailing list, which includes all the core committers, who will be
477 able to help assess the impact of issues, figure out a resolution, and help
478 co-ordinate the release of patches to mitigate or fix the problem across all
479 platforms on which Perl is supported. Please only use this address for
480 security issues in the Perl core, not for modules independently distributed on
485 The F<Changes> file for an explanation of how to view exhaustive details on
488 The F<INSTALL> file for how to build Perl.
490 The F<README> file for general stuff.
492 The F<Artistic> and F<Copying> files for copyright information.