This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Revert "Update Unicode-Collate to CPAN version 0.70 and enable XS version"
[perl5.git] / pod / perldelta.pod
CommitLineData
3a5c9134
CBW
1=encoding utf8
2
3=head1 NAME
4
9f7a72d0
Z
5[ this is a template for a new perldelta file. Any text flagged as
6XXX needs to be processed before release. ]
3a5c9134 7
9f7a72d0 8perldelta - what is new for perl v5.13.9
15e6cdd9 9
9f7a72d0 10=head1 DESCRIPTION
f6166f76 11
9f7a72d0
Z
12This document describes differences between the 5.13.8 release and
13the 5.13.9 release.
0d157ee2 14
9f7a72d0
Z
15If you are upgrading from an earlier release such as 5.13.7, first read
16L<perl5138delta>, which describes differences between 5.13.7 and
175.13.8.
0d157ee2 18
9f7a72d0 19=head1 Notice
0d157ee2 20
9f7a72d0 21XXX Any important notices here
0d157ee2 22
9f7a72d0 23=head1 Core Enhancements
0d157ee2 24
9f7a72d0
Z
25XXX New core language features go here. Summarise user-visible core language
26enhancements. Particularly prominent performance optimisations could go
27here, but most should go in the L</Performance Enhancements> section.
0d157ee2 28
086325d8
KW
29[ List each enhancement as a =head2 entry ]
30
cfaf538b
KW
31=head2 New regular expression modifier C</a>
32
33The C</a> regular expression modifier restricts C<\s> to match precisely
34the five characters C<[ \f\n\r\t]>, C<\d> to match precisely the 10
35characters C<[0-9]>, C<\w> to match precisely the 63 characters
36C<[A-Za-z0-9_]>, and the Posix (C<[[:posix:]]>) character classes to
37match only the appropriate ASCII characters. The complements, of
38course, match everything but; and C<\b> and C<\B> are correspondingly
39affected. Otherwise, C</a> behaves like the C</u> modifier, in that
40case-insensitive matching uses Unicode semantics; for example, "k" will
41match the Unicode C<\N{KELVIN SIGN}> under C</i> matching, and code
42points in the Latin1 range, above ASCII will have Unicode semantics when
43it comes to case-insensitive matching. Like its cousins (C</u>, C</l>,
44and C</d>), and in spite of the terminology, C</a> in 5.14 will not
45actually be able to be used as a suffix at the end of a regular
46expression (this restriction is planned to be lifted in 5.16). It must
47occur either as an infix modifier, such as C<(?a:...)> or (C<(?a)...>,
48or it can be turned on within the lexical scope of C<use re '/a'>.
49Turning on C</a> turns off the other "character set" modifiers.
50
086325d8
KW
51=head2 Any unsigned value can be encoded as a character
52
6d4f9cf2 53With this release, Perl is adopting a model that any unsigned value can
086325d8
KW
54be treated as a code point and encoded internally (as utf8) without
55warnings -- not just the code points that are legal in Unicode.
56However, unless utf8 warnings have been
6d4f9cf2
KW
57explicitly lexically turned off, outputting or performing a
58Unicode-defined operation (such as upper-casing) on such a code point
59will generate a warning. Attempting to input these using strict rules
60(such as with the C<:encoding('UTF-8')> layer) will continue to fail.
61Prior to this release the handling was very inconsistent, and incorrect
62in places. Also, the Unicode non-characters, some of which previously were
63erroneously considered illegal in places by Perl, contrary to the Unicode
64standard, are now always legal internally. But inputting or outputting
65them will work the same as for the non-legal Unicode code points, as the
66Unicode standard says they are illegal for "open interchange".
67
0d157ee2 68
9f7a72d0 69=head1 Security
0d157ee2 70
9f7a72d0
Z
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.
bd8e866d 74
9f7a72d0 75[ List each security issue as a =head2 entry ]
bd8e866d 76
3a5c9134
CBW
77=head1 Incompatible Changes
78
9f7a72d0 79XXX For a release on a stable branch, this section aspires to be:
3a5c9134 80
9f7a72d0
Z
81 There are no changes intentionally incompatible with 5.XXX.XXX. If any
82 exist, they are bugs and reports are welcome.
3a5c9134 83
9f7a72d0 84[ List each incompatible change as a =head2 entry ]
d66e82e8 85
3a5c9134
CBW
86=head1 Deprecations
87
9f7a72d0
Z
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.
5609d5f9 91
9f7a72d0 92[ List each deprecation as a =head2 entry ]
5609d5f9 93
9f7a72d0 94=head1 Performance Enhancements
5609d5f9 95
9f7a72d0
Z
96XXX Changes which enhance performance without changing behaviour go here. There
97may well be none in a stable release.
5609d5f9 98
9f7a72d0 99[ List each enhancement as a =item entry ]
3a5c9134
CBW
100
101=over 4
102
103=item *
104
9f7a72d0 105XXX
e1165778 106
9f7a72d0 107=back
121e1895 108
9f7a72d0 109=head1 Modules and Pragmata
2638c0ff 110
9f7a72d0
Z
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.
2638c0ff 118
9f7a72d0 119[ Within each section, list entries as a =item entry ]
17096837 120
9f7a72d0 121=head2 New Modules and Pragmata
2638c0ff 122
9f7a72d0 123=over 4
17096837 124
e1165778
Z
125=item *
126
e8a07a12
DG
127L<CPAN::Meta::YAML> 0.002 has been added as a dual-life module. It supports a
128subset of YAML sufficient for reading and writing META.yml and MYMETA.yml files
129included with CPAN distributions or generated by the module installation
130toolchain. It should not be used for any other general YAML parsing or
131generation task.
17096837 132
935c8d19
DG
133=item *
134
435aa301 135L<HTTP::Tiny> 0.009 has been added as a dual-life module. It is a very
a3ab329f
DG
136small, simple HTTP/1.1 client designed for simple GET requests and file
137mirroring. It has has been added to enable CPAN.pm and CPANPLUS to
138"bootstrap" HTTP access to CPAN using pure Perl without relying on external
139binaries like F<curl> or F<wget>.
140
141=item *
142
6cf6332a 143L<Module::Metadata> 1.000003 has been added as a dual-life module. It gathers
e8b333e6
DG
144package and POD information from Perl module files. It is a standalone module
145based on Module::Build::ModuleInfo for use by other module installation
146toolchain components. Module::Build::ModuleInfo has been deprecated in
147favor of this module instead.
148
149=item *
150
935c8d19
DG
151L<Perl::OSType> 1.002 has been added as a dual-life module. It maps Perl
152operating system names (e.g. 'dragonfly' or 'MSWin32') to more generic types
153with standardized names (e.g. "Unix" or "Windows"). It has been refactored
154out of Module::Build and ExtUtils::CBuilder and consolidates such mappings into
155a single location for easier maintenance.
156
9f7a72d0 157=back
e1165778 158
9f7a72d0 159=head2 Updated Modules and Pragmata
f295f417 160
9f7a72d0 161=over 4
17096837 162
f295f417
FC
163=item *
164
6447e912
CBW
165C<Archive::Extract> has been upgraded from version 0.46 to 0.48
166
167=item *
168
89ae55b4
CBW
169C<Archive::Tar> has been upgraded from version 1.74 to 1.76
170
171=item *
172
2a1594f6
CBW
173C<CGI> has been upgraded from version 3.50 to 3.51
174
175=item *
5ebf8416
CBW
176
177C<Compress::Raw::Bzip2> has been upgraded from version 2.031 to 2.033
178
179=item *
e2f1db54
CBW
180
181C<Compress::Raw::Zlib> has been upgraded from version 2.030 to 2.033
182
183=item *
2a1594f6 184
a52237f3
DG
185C<CPAN> has been upgraded from version 1.94_62 to 1.94_63
186
187=item *
188
f1aaabf8
CBW
189C<CPANPLUS> has been upgraded from version 0.9010 to 0.9011
190
191=item *
192
ae0f8eee
CBW
193C<CPANPLUS::Dist::Build> has been upgraded from version 0.50 to 0.52
194
195=item *
196
197C<DB_File> has been upgraded from version 1.820 to 1.821
deb99cce
CBW
198
199=item *
200
6d4f9cf2
KW
201C<Encode> has been upgraded from version 2.40 to 2.42.
202Now, all 66 Unicode non-characters are treated the same way U+FFFF has
203always been treated; if it was disallowed, all 66 are disallowed; if it
204warned, all 66 warn.
50afc8f8
CBW
205
206=item *
207
eee47ba6 208C<File::Fetch> has been upgraded from version 0.28 to 0.32
f37ee46a
CBW
209
210=item *
211
cd0c0e65
CBW
212C<IO::Compress> has been upgraded from version 2.030 to 2.033
213
214=item *
215
f37ee46a
CBW
216C<IPC::Cmd> has been upgraded from version 0.66 to 0.68
217
ac066c2a
CBW
218=item *
219
b5ce1198
CBW
220C<Log::Message> has been upgraded from version 0.02 to 0.04
221
222=item *
223
c0395286
CBW
224C<Log::Message::Simple> has been upgraded from version 0.06 to 0.08
225
226=item *
227
ae0f8eee 228C<Module::Load::Conditional> has been upgraded from version 0.38 to 0.40
4fc94532
CBW
229
230=item *
231
ae0f8eee 232C<Object::Accessor> has been upgraded from version 0.36 to 0.38
0019012a
CBW
233
234=item *
235
ae0f8eee 236C<Params::Check> has been upgraded from version 0.26 to 0.28
8cb3aa53
CBW
237
238=item *
239
9c88a88b
CBW
240C<Pod::LaTeX> has been upgraded from version 0.58 to 0.59
241
242=item *
243
6df88f97 244C<Term::UI> has been upgraded from version 0.20 to 0.24
8e1e0801
CBW
245
246=item *
247
f5d41534
CBW
248C<threads> has been upgraded from version 1.81_03 to 1.82
249
250=item *
251
252C<threads::shared> has been upgraded from version 1.35 to 1.36
253
254=item *
255
23046b7e 256C<Time::Local> has been upgraded from version 1.1901_01 to 1.2000.
17096837 257
788ba0f4
CBW
258=item *
259
260C<Unicode::Normalize> has been upgraded from version 1.07 to 1.10
261
9f7a72d0 262=back
e1165778 263
9f7a72d0 264=head2 Removed Modules and Pragmata
b373eab8 265
9f7a72d0 266=over 4
b373eab8
FC
267
268=item *
269
9f7a72d0 270XXX
b6ae81ab 271
9f7a72d0 272=back
ca88a729 273
9f7a72d0 274=head1 Documentation
17096837 275
9f7a72d0
Z
276XXX Changes to files in F<pod/> go here. Consider grouping entries by
277file and be sure to link to the appropriate page, e.g. L<perlfunc>.
b6ae81ab 278
9f7a72d0 279=head2 New Documentation
e1165778 280
9f7a72d0 281XXX Changes which create B<new> files in F<pod/> go here.
17096837 282
9f7a72d0 283=head3 L<XXX>
e1165778 284
9f7a72d0 285XXX Description of the purpose of the new file here
e1165778 286
9f7a72d0 287=head2 Changes to Existing Documentation
17096837 288
9f7a72d0
Z
289XXX Changes which significantly change existing files in F<pod/> go here.
290However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
291section.
e1165778 292
9f7a72d0 293=head3 L<XXX>
d4238815 294
9f7a72d0 295=over 4
17096837 296
d4238815
FC
297=item *
298
9f7a72d0 299XXX Description of the change here
e1165778 300
9f7a72d0 301=back
17096837 302
9f7a72d0 303=head1 Diagnostics
17096837 304
9f7a72d0
Z
305The following additions or changes have been made to diagnostic output,
306including warnings and fatal error messages. For the complete list of
307diagnostic messages, see L<perldiag>.
e1165778 308
9f7a72d0
Z
309XXX New or changed warnings emitted by the core's C<C> code go here. Also
310include any changes in L<perldiag> that reconcile it to the C<C> code.
68adb2b0 311
9f7a72d0 312[ Within each section, list entries as a =item entry ]
17096837 313
9f7a72d0 314=head2 New Diagnostics
3a5c9134 315
9f7a72d0 316XXX Newly added diagnostic messages go here
17096837 317
9f7a72d0 318=over 4
17096837 319
c2e0289e
FC
320=item *
321
9f7a72d0 322XXX
17096837 323
9f7a72d0 324=back
e6f1cc4d 325
9f7a72d0 326=head2 Changes to Existing Diagnostics
e1165778 327
9f7a72d0 328XXX Changes (i.e. rewording) of diagnostic messages go here
17096837 329
9f7a72d0 330=over 4
17096837 331
e1165778
Z
332=item *
333
9f7a72d0 334XXX
17096837 335
3a5c9134
CBW
336=back
337
9f7a72d0 338=head1 Utility Changes
e1165778 339
9f7a72d0
Z
340XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
341here. Most of these are built within the directories F<utils> and F<x2p>.
e1165778 342
9f7a72d0
Z
343[ List utility changes as a =head3 entry for each utility and =item
344entries for each change
345Use L<XXX> with program names to get proper documentation linking. ]
e1165778 346
9f7a72d0 347=head3 L<XXX>
e1165778 348
9f7a72d0 349=over 4
e1165778
Z
350
351=item *
352
9f7a72d0 353XXX
e1165778 354
9f7a72d0 355=back
e1165778 356
9f7a72d0 357=head1 Configuration and Compilation
e1165778 358
9f7a72d0
Z
359XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
360go here. Any other changes to the Perl build process should be listed here.
361However, any platform-specific changes should be listed in the
362L</Platform Support> section, instead.
e1165778 363
9f7a72d0 364[ List changes as a =item entry ].
e1165778 365
9f7a72d0 366=over 4
3a5c9134
CBW
367
368=item *
369
9f7a72d0 370XXX
3a5c9134
CBW
371
372=back
373
9f7a72d0 374=head1 Testing
3a5c9134 375
9f7a72d0
Z
376XXX Any significant changes to the testing of a freshly built perl should be
377listed here. Changes which create B<new> files in F<t/> go here as do any
378large changes to the testing harness (e.g. when parallel testing was added).
379Changes to existing files in F<t/> aren't worth summarising, although the bugs
380that they represent may be covered elsewhere.
3a5c9134 381
9f7a72d0 382[ List each test improvement as a =item entry ]
3a5c9134 383
3a5c9134
CBW
384=over 4
385
386=item *
387
9f7a72d0 388XXX
3a5c9134
CBW
389
390=back
391
9f7a72d0 392=head1 Platform Support
3a5c9134 393
9f7a72d0 394XXX Any changes to platform support should be listed in the sections below.
3a5c9134 395
9f7a72d0
Z
396[ Within the sections, list each platform as a =item entry with specific
397changes as paragraphs below it. ]
3a5c9134 398
9f7a72d0 399=head2 New Platforms
3a5c9134 400
9f7a72d0
Z
401XXX List any platforms that this version of perl compiles on, that previous
402versions did not. These will either be enabled by new files in the F<hints/>
403directories, or new subdirectories and F<README> files at the top level of the
404source tree.
3a5c9134 405
3a5c9134
CBW
406=over 4
407
9f7a72d0 408=item XXX-some-platform
3a5c9134 409
9f7a72d0 410XXX
51bed910 411
3a5c9134
CBW
412=back
413
9f7a72d0
Z
414=head2 Discontinued Platforms
415
416XXX List any platforms that this version of perl no longer compiles on.
3a5c9134 417
3a5c9134
CBW
418=over 4
419
9f7a72d0 420=item XXX-some-platform
3a5c9134 421
9f7a72d0 422XXX
3a5c9134
CBW
423
424=back
425
3a5c9134
CBW
426=head2 Platform-Specific Notes
427
9f7a72d0
Z
428XXX List any changes for specific platforms. This could include configuration
429and compilation changes or changes in portability/compatibility. However,
430changes within modules for platforms should generally be listed in the
431L</Modules and Pragmata> section.
3a5c9134 432
9f7a72d0 433=over 4
3a5c9134 434
9f7a72d0 435=item XXX-some-platform
fb3a2d89 436
9f7a72d0 437XXX
fb3a2d89 438
3a5c9134
CBW
439=back
440
441=head1 Internal Changes
442
9f7a72d0
Z
443XXX Changes which affect the interface available to C<XS> code go here.
444Other significant internal changes for future core maintainers should
445be noted as well.
3a5c9134 446
9f7a72d0 447[ List each test improvement as a =item entry ]
3a5c9134 448
9f7a72d0 449=over 4
3a5c9134 450
c61b6d0f
FC
451=item *
452
0a0e3cc5
NC
453The opcode bodies for C<chop> and C<chomp> and for C<schop> and C<schomp> have
454been merged. The implementation functions C<Perl_do_chop()> and
455C<Perl_do_chomp()>, never part of the public API, have been merged and moved to
456a static function in F<pp.c>. This shrinks the perl binary slightly, and should
457not affect any code outside the core (unless it is relying on the order of side
458effects when C<chomp> is passed a I<list> of values).
c61b6d0f 459
6d4f9cf2
KW
460=item *
461
462Some of the flags parameters to the uvuni_to_utf8_flags() and
463utf8n_to_uvuni() have changed. This is a result of Perl now allowing
464internal storage and manipulation of code points that are problematic
465in some situations. Hence, the default actions for these functions has
466been complemented to allow these code points. The new flags are
467documented in L<perlapi>. Code that requires the problematic code
468points to be rejected needs to change to use these flags. Some flag
469names are retained for backward source compatibility, though they do
470nothing, as they are now the default. However the flags
471C<UNICODE_ALLOW_FDD0>, C<UNICODE_ALLOW_FFFF>, C<UNICODE_ILLEGAL>, and
472C<UNICODE_IS_ILLEGAL> have been removed, as they stem from a
473fundamentally broken model of how the Unicode non-character code points
474should be handled, which is now described in
475L<perlunicode/Non-character code points>. See also L</Selected Bug Fixes>.
476
a62b1201
KW
477=item *
478
479Certain shared flags in the C<pmop.op_pmflags> and C<regexp.extflags>
480structures have been removed. These are: C<Rxf_Pmf_LOCALE>,
481C<Rxf_Pmf_UNICODE>, and C<PMf_LOCALE>. Instead there are encodes and
482three static in-line functions for accessing the information:
483C<get_regex_charset()>, C<set_regex_charset()>, and C<get_regex_charset_name()>,
484which are defined in the places where the orginal flags were.
485
3a5c9134
CBW
486=back
487
488=head1 Selected Bug Fixes
489
9f7a72d0
Z
490XXX Important bug fixes in the core language are summarised here.
491Bug fixes in files in F<ext/> and F<lib/> are best summarised in
492L</Modules and Pragmata>.
b373eab8 493
9f7a72d0 494[ List each fix as a =item entry ]
b373eab8 495
9f7a72d0 496=over 4
4c9d53d5 497
0c7420e7
FC
498=item *
499
6d4f9cf2
KW
500The handling of Unicode non-characters has changed.
501Previously they were mostly considered illegal, except that only one of
502the 66 of them was known about in places. The Unicode standard
503considers them legal, but forbids the "open interchange" of them.
504This is part of the change to allow the internal use of any code point
505(see L</Core Enhancements>). Together, these changes resolve
506L<# 38722|https://rt.perl.org/rt3/Ticket/Display.html?id=38722>,
507L<# 51918|http://rt.perl.org/rt3/Ticket/Display.html?id=51918>,
508L<# 51936|http://rt.perl.org/rt3/Ticket/Display.html?id=51936>,
509L<# 63446|http://rt.perl.org/rt3/Ticket/Display.html?id=63446>
0c7420e7 510
9f7a72d0 511=back
460c4bfb 512
9f7a72d0 513=head1 Known Problems
460c4bfb 514
9f7a72d0
Z
515XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
516tests that had to be C<TODO>ed for the release would be noted here, unless
517they were specific to a particular platform (see below).
26de4ac8 518
9f7a72d0
Z
519This is a list of some significant unfixed bugs, which are regressions
520from either 5.XXX.XXX or 5.XXX.XXX.
26de4ac8 521
9f7a72d0 522[ List each fix as a =item entry ]
ab7fb400 523
9f7a72d0 524=over 4
ab7fb400 525
836d5805
Z
526=item *
527
9f7a72d0 528XXX
836d5805 529
3a5c9134
CBW
530=back
531
9f7a72d0 532=head1 Obituary
3a5c9134 533
9f7a72d0
Z
534XXX If any significant core contributor has died, we've added a short obituary
535here.
b0c3724f 536
9f7a72d0 537=head1 Acknowledgements
b0c3724f 538
9f7a72d0 539XXX The list of people to thank goes here.
3a5c9134
CBW
540
541=head1 Reporting Bugs
542
543If you find what you think is a bug, you might check the articles
544recently posted to the comp.lang.perl.misc newsgroup and the perl
545bug database at http://rt.perl.org/perlbug/ . There may also be
546information at http://www.perl.org/ , the Perl Home Page.
547
548If you believe you have an unreported bug, please run the L<perlbug>
549program included with your release. Be sure to trim your bug down
550to a tiny but sufficient test case. Your bug report, along with the
551output of C<perl -V>, will be sent off to perlbug@perl.org to be
552analysed by the Perl porting team.
553
554If the bug you are reporting has security implications, which make it
555inappropriate to send to a publicly archived mailing list, then please send
556it to perl5-security-report@perl.org. This points to a closed subscription
557unarchived mailing list, which includes all the core committers, who be able
558to help assess the impact of issues, figure out a resolution, and help
559co-ordinate the release of patches to mitigate or fix the problem across all
560platforms on which Perl is supported. Please only use this address for
561security issues in the Perl core, not for modules independently
562distributed on CPAN.
563
564=head1 SEE ALSO
565
566The F<Changes> file for an explanation of how to view exhaustive details
567on what changed.
568
569The F<INSTALL> file for how to build Perl.
570
571The F<README> file for general stuff.
572
573The F<Artistic> and F<Copying> files for copyright information.
574
575=cut