This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
In S_ithread_create, reduce the amount of conditionally compiled C code.
[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
6cf6332a 112L<Module::Metadata> 1.000003 has been added as a dual-life module. It gathers
e8b333e6
DG
113package and POD information from Perl module files. It is a standalone module
114based on Module::Build::ModuleInfo for use by other module installation
115toolchain components. Module::Build::ModuleInfo has been deprecated in
116favor of this module instead.
117
118=item *
119
935c8d19
DG
120L<Perl::OSType> 1.002 has been added as a dual-life module. It maps Perl
121operating system names (e.g. 'dragonfly' or 'MSWin32') to more generic types
122with standardized names (e.g. "Unix" or "Windows"). It has been refactored
123out of Module::Build and ExtUtils::CBuilder and consolidates such mappings into
124a single location for easier maintenance.
125
9f7a72d0 126=back
e1165778 127
9f7a72d0 128=head2 Updated Modules and Pragmata
f295f417 129
9f7a72d0 130=over 4
17096837 131
f295f417
FC
132=item *
133
6447e912
CBW
134C<Archive::Extract> has been upgraded from version 0.46 to 0.48
135
136=item *
137
89ae55b4
CBW
138C<Archive::Tar> has been upgraded from version 1.74 to 1.76
139
140=item *
141
2a1594f6
CBW
142C<CGI> has been upgraded from version 3.50 to 3.51
143
144=item *
145
f1aaabf8
CBW
146C<CPANPLUS> has been upgraded from version 0.9010 to 0.9011
147
148=item *
149
deb99cce
CBW
150C<CPANPLUS::Dist::Build> has been upgraded from 0.50 to 0.52
151
152=item *
153
6d4f9cf2
KW
154C<Encode> has been upgraded from version 2.40 to 2.42.
155Now, all 66 Unicode non-characters are treated the same way U+FFFF has
156always been treated; if it was disallowed, all 66 are disallowed; if it
157warned, all 66 warn.
50afc8f8
CBW
158
159=item *
160
ac066c2a 161C<File::Fetch> has been upgraded from version 0.28 to 0.30
f37ee46a
CBW
162
163=item *
164
165C<IPC::Cmd> has been upgraded from version 0.66 to 0.68
166
ac066c2a
CBW
167=item *
168
b5ce1198
CBW
169C<Log::Message> has been upgraded from version 0.02 to 0.04
170
171=item *
172
4fc94532
CBW
173C<Module::Load::Conditional> has been upgraded from 0.38 to 0.40
174
175=item *
176
0019012a
CBW
177C<Object::Accessor> has been upgraded from 0.36 to 0.38
178
179=item *
180
8cb3aa53
CBW
181C<Params::Check> has been upgraded from 0.26 to 0.28
182
183=item *
184
8e1e0801
CBW
185C<Term::UI> has been upgraded from 0.20 to 0.22
186
187=item *
188
f5d41534
CBW
189C<threads> has been upgraded from version 1.81_03 to 1.82
190
191=item *
192
193C<threads::shared> has been upgraded from version 1.35 to 1.36
194
195=item *
196
23046b7e 197C<Time::Local> has been upgraded from version 1.1901_01 to 1.2000.
17096837 198
9f7a72d0 199=back
e1165778 200
9f7a72d0 201=head2 Removed Modules and Pragmata
b373eab8 202
9f7a72d0 203=over 4
b373eab8
FC
204
205=item *
206
9f7a72d0 207XXX
b6ae81ab 208
9f7a72d0 209=back
ca88a729 210
9f7a72d0 211=head1 Documentation
17096837 212
9f7a72d0
Z
213XXX Changes to files in F<pod/> go here. Consider grouping entries by
214file and be sure to link to the appropriate page, e.g. L<perlfunc>.
b6ae81ab 215
9f7a72d0 216=head2 New Documentation
e1165778 217
9f7a72d0 218XXX Changes which create B<new> files in F<pod/> go here.
17096837 219
9f7a72d0 220=head3 L<XXX>
e1165778 221
9f7a72d0 222XXX Description of the purpose of the new file here
e1165778 223
9f7a72d0 224=head2 Changes to Existing Documentation
17096837 225
9f7a72d0
Z
226XXX Changes which significantly change existing files in F<pod/> go here.
227However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
228section.
e1165778 229
9f7a72d0 230=head3 L<XXX>
d4238815 231
9f7a72d0 232=over 4
17096837 233
d4238815
FC
234=item *
235
9f7a72d0 236XXX Description of the change here
e1165778 237
9f7a72d0 238=back
17096837 239
9f7a72d0 240=head1 Diagnostics
17096837 241
9f7a72d0
Z
242The following additions or changes have been made to diagnostic output,
243including warnings and fatal error messages. For the complete list of
244diagnostic messages, see L<perldiag>.
e1165778 245
9f7a72d0
Z
246XXX New or changed warnings emitted by the core's C<C> code go here. Also
247include any changes in L<perldiag> that reconcile it to the C<C> code.
68adb2b0 248
9f7a72d0 249[ Within each section, list entries as a =item entry ]
17096837 250
9f7a72d0 251=head2 New Diagnostics
3a5c9134 252
9f7a72d0 253XXX Newly added diagnostic messages go here
17096837 254
9f7a72d0 255=over 4
17096837 256
c2e0289e
FC
257=item *
258
9f7a72d0 259XXX
17096837 260
9f7a72d0 261=back
e6f1cc4d 262
9f7a72d0 263=head2 Changes to Existing Diagnostics
e1165778 264
9f7a72d0 265XXX Changes (i.e. rewording) of diagnostic messages go here
17096837 266
9f7a72d0 267=over 4
17096837 268
e1165778
Z
269=item *
270
9f7a72d0 271XXX
17096837 272
3a5c9134
CBW
273=back
274
9f7a72d0 275=head1 Utility Changes
e1165778 276
9f7a72d0
Z
277XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
278here. Most of these are built within the directories F<utils> and F<x2p>.
e1165778 279
9f7a72d0
Z
280[ List utility changes as a =head3 entry for each utility and =item
281entries for each change
282Use L<XXX> with program names to get proper documentation linking. ]
e1165778 283
9f7a72d0 284=head3 L<XXX>
e1165778 285
9f7a72d0 286=over 4
e1165778
Z
287
288=item *
289
9f7a72d0 290XXX
e1165778 291
9f7a72d0 292=back
e1165778 293
9f7a72d0 294=head1 Configuration and Compilation
e1165778 295
9f7a72d0
Z
296XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
297go here. Any other changes to the Perl build process should be listed here.
298However, any platform-specific changes should be listed in the
299L</Platform Support> section, instead.
e1165778 300
9f7a72d0 301[ List changes as a =item entry ].
e1165778 302
9f7a72d0 303=over 4
3a5c9134
CBW
304
305=item *
306
9f7a72d0 307XXX
3a5c9134
CBW
308
309=back
310
9f7a72d0 311=head1 Testing
3a5c9134 312
9f7a72d0
Z
313XXX Any significant changes to the testing of a freshly built perl should be
314listed here. Changes which create B<new> files in F<t/> go here as do any
315large changes to the testing harness (e.g. when parallel testing was added).
316Changes to existing files in F<t/> aren't worth summarising, although the bugs
317that they represent may be covered elsewhere.
3a5c9134 318
9f7a72d0 319[ List each test improvement as a =item entry ]
3a5c9134 320
3a5c9134
CBW
321=over 4
322
323=item *
324
9f7a72d0 325XXX
3a5c9134
CBW
326
327=back
328
9f7a72d0 329=head1 Platform Support
3a5c9134 330
9f7a72d0 331XXX Any changes to platform support should be listed in the sections below.
3a5c9134 332
9f7a72d0
Z
333[ Within the sections, list each platform as a =item entry with specific
334changes as paragraphs below it. ]
3a5c9134 335
9f7a72d0 336=head2 New Platforms
3a5c9134 337
9f7a72d0
Z
338XXX List any platforms that this version of perl compiles on, that previous
339versions did not. These will either be enabled by new files in the F<hints/>
340directories, or new subdirectories and F<README> files at the top level of the
341source tree.
3a5c9134 342
3a5c9134
CBW
343=over 4
344
9f7a72d0 345=item XXX-some-platform
3a5c9134 346
9f7a72d0 347XXX
51bed910 348
3a5c9134
CBW
349=back
350
9f7a72d0
Z
351=head2 Discontinued Platforms
352
353XXX List any platforms that this version of perl no longer compiles on.
3a5c9134 354
3a5c9134
CBW
355=over 4
356
9f7a72d0 357=item XXX-some-platform
3a5c9134 358
9f7a72d0 359XXX
3a5c9134
CBW
360
361=back
362
3a5c9134
CBW
363=head2 Platform-Specific Notes
364
9f7a72d0
Z
365XXX List any changes for specific platforms. This could include configuration
366and compilation changes or changes in portability/compatibility. However,
367changes within modules for platforms should generally be listed in the
368L</Modules and Pragmata> section.
3a5c9134 369
9f7a72d0 370=over 4
3a5c9134 371
9f7a72d0 372=item XXX-some-platform
fb3a2d89 373
9f7a72d0 374XXX
fb3a2d89 375
3a5c9134
CBW
376=back
377
378=head1 Internal Changes
379
9f7a72d0
Z
380XXX Changes which affect the interface available to C<XS> code go here.
381Other significant internal changes for future core maintainers should
382be noted as well.
3a5c9134 383
9f7a72d0 384[ List each test improvement as a =item entry ]
3a5c9134 385
9f7a72d0 386=over 4
3a5c9134 387
c61b6d0f
FC
388=item *
389
0a0e3cc5
NC
390The opcode bodies for C<chop> and C<chomp> and for C<schop> and C<schomp> have
391been merged. The implementation functions C<Perl_do_chop()> and
392C<Perl_do_chomp()>, never part of the public API, have been merged and moved to
393a static function in F<pp.c>. This shrinks the perl binary slightly, and should
394not affect any code outside the core (unless it is relying on the order of side
395effects when C<chomp> is passed a I<list> of values).
c61b6d0f 396
6d4f9cf2
KW
397=item *
398
399Some of the flags parameters to the uvuni_to_utf8_flags() and
400utf8n_to_uvuni() have changed. This is a result of Perl now allowing
401internal storage and manipulation of code points that are problematic
402in some situations. Hence, the default actions for these functions has
403been complemented to allow these code points. The new flags are
404documented in L<perlapi>. Code that requires the problematic code
405points to be rejected needs to change to use these flags. Some flag
406names are retained for backward source compatibility, though they do
407nothing, as they are now the default. However the flags
408C<UNICODE_ALLOW_FDD0>, C<UNICODE_ALLOW_FFFF>, C<UNICODE_ILLEGAL>, and
409C<UNICODE_IS_ILLEGAL> have been removed, as they stem from a
410fundamentally broken model of how the Unicode non-character code points
411should be handled, which is now described in
412L<perlunicode/Non-character code points>. See also L</Selected Bug Fixes>.
413
3a5c9134
CBW
414=back
415
416=head1 Selected Bug Fixes
417
9f7a72d0
Z
418XXX Important bug fixes in the core language are summarised here.
419Bug fixes in files in F<ext/> and F<lib/> are best summarised in
420L</Modules and Pragmata>.
b373eab8 421
9f7a72d0 422[ List each fix as a =item entry ]
b373eab8 423
9f7a72d0 424=over 4
4c9d53d5 425
0c7420e7
FC
426=item *
427
6d4f9cf2
KW
428The handling of Unicode non-characters has changed.
429Previously they were mostly considered illegal, except that only one of
430the 66 of them was known about in places. The Unicode standard
431considers them legal, but forbids the "open interchange" of them.
432This is part of the change to allow the internal use of any code point
433(see L</Core Enhancements>). Together, these changes resolve
434L<# 38722|https://rt.perl.org/rt3/Ticket/Display.html?id=38722>,
435L<# 51918|http://rt.perl.org/rt3/Ticket/Display.html?id=51918>,
436L<# 51936|http://rt.perl.org/rt3/Ticket/Display.html?id=51936>,
437L<# 63446|http://rt.perl.org/rt3/Ticket/Display.html?id=63446>
0c7420e7 438
9f7a72d0 439=back
460c4bfb 440
9f7a72d0 441=head1 Known Problems
460c4bfb 442
9f7a72d0
Z
443XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
444tests that had to be C<TODO>ed for the release would be noted here, unless
445they were specific to a particular platform (see below).
26de4ac8 446
9f7a72d0
Z
447This is a list of some significant unfixed bugs, which are regressions
448from either 5.XXX.XXX or 5.XXX.XXX.
26de4ac8 449
9f7a72d0 450[ List each fix as a =item entry ]
ab7fb400 451
9f7a72d0 452=over 4
ab7fb400 453
836d5805
Z
454=item *
455
9f7a72d0 456XXX
836d5805 457
3a5c9134
CBW
458=back
459
9f7a72d0 460=head1 Obituary
3a5c9134 461
9f7a72d0
Z
462XXX If any significant core contributor has died, we've added a short obituary
463here.
b0c3724f 464
9f7a72d0 465=head1 Acknowledgements
b0c3724f 466
9f7a72d0 467XXX The list of people to thank goes here.
3a5c9134
CBW
468
469=head1 Reporting Bugs
470
471If you find what you think is a bug, you might check the articles
472recently posted to the comp.lang.perl.misc newsgroup and the perl
473bug database at http://rt.perl.org/perlbug/ . There may also be
474information at http://www.perl.org/ , the Perl Home Page.
475
476If you believe you have an unreported bug, please run the L<perlbug>
477program included with your release. Be sure to trim your bug down
478to a tiny but sufficient test case. Your bug report, along with the
479output of C<perl -V>, will be sent off to perlbug@perl.org to be
480analysed by the Perl porting team.
481
482If the bug you are reporting has security implications, which make it
483inappropriate to send to a publicly archived mailing list, then please send
484it to perl5-security-report@perl.org. This points to a closed subscription
485unarchived mailing list, which includes all the core committers, who be able
486to help assess the impact of issues, figure out a resolution, and help
487co-ordinate the release of patches to mitigate or fix the problem across all
488platforms on which Perl is supported. Please only use this address for
489security issues in the Perl core, not for modules independently
490distributed on CPAN.
491
492=head1 SEE ALSO
493
494The F<Changes> file for an explanation of how to view exhaustive details
495on what changed.
496
497The F<INSTALL> file for how to build Perl.
498
499The F<README> file for general stuff.
500
501The F<Artistic> and F<Copying> files for copyright information.
502
503=cut