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