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