This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Tick off the 5.21.10 release
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
a9c3e753 5perldelta - what is new for perl v5.21.10
c68523cb 6
238894db 7=head1 DESCRIPTION
c68523cb 8
a9c3e753 9This document describes differences between the 5.21.9 release and the 5.21.10
238894db 10release.
c68523cb 11
a9c3e753
S
12If you are upgrading from an earlier release such as 5.21.8, first read
13L<perl5219delta>, which describes differences between 5.21.8 and 5.21.9.
2ec11c70 14
b5d4d3b9 15=head1 Incompatible Changes
ef8784b7 16
6798c95d
KW
17=head2 C<(?[...])> operators now follow standard Perl precedence
18
1065e4db
SH
19This experimental feature allows set operations in regular expression patterns.
20Prior to this, the intersection operator had the same precedence as the other
21binary operators. Now it has higher precedence. This could lead to different
22outcomes than existing code expects (though the documentation has always noted
23that this change might happen, recommending fully parenthesizing the
24expressions). See L<perlrecharclass/Extended Bracketed Character Classes>.
6798c95d 25
a9c3e753 26=head1 Performance Enhancements
6c8457e9 27
cd7bac54
S
28=over 4
29
30=item *
31
1065e4db
SH
32The functions C<utf8::native_to_unicode()> and C<utf8::unicode_to_native()>
33(see L<utf8>) are now optimized out on ASCII platforms. There is now not even
34a minimal performance hit in writing code portable between ASCII and EBCDIC
35platforms.
cd7bac54
S
36
37=back
38
a9c3e753 39=head1 Modules and Pragmata
0939a951 40
a9c3e753 41=head2 Updated Modules and Pragmata
cd7bac54 42
a9c3e753 43=over 4
cd7bac54
S
44
45=item *
46
83a5d6b6
SH
47L<B> has been upgraded from version 1.56 to 1.57.
48
49=item *
50
b9c683b3
TC
51L<B::Deparse> has been upgraded from version 1.33 to 1.34.
52
338906ce
SH
53Deparse C<$#_> as that instead of as C<$#{_}>.
54L<[perl #123947]|https://rt.perl.org/Ticket/Display.html?id=123947>
b9c683b3
TC
55
56=item *
57
b05565aa
SH
58L<Carp> has been upgraded from version 1.35 to 1.36.
59
60=item *
61
d210e520 62L<CPAN> has been upgraded from version 2.05 to 2.10.
79116533
SH
63
64=over 4
65
66=item *
67
68Add support for C<Cwd::getdcwd()> and introduce workaround for a misbehaviour
69seen on Strawberry Perl 5.20.1.
70
71=item *
72
73Fix C<chdir()> after building dependencies bug.
74
75=item *
76
77Introduce experimental support for plugins/hooks.
78
79=item *
80
81Integrate the App::Cpan sources.
82
83=item *
84
85Do not check recursion on optional dependencies.
86
87=item *
88
89Sanity check META.yml to contain a hash.
90L<[cpan #95271]|https://rt.cpan.org/Ticket/Display.html?id=95271>
91
92=back
0939a951 93
c0ff9143
JH
94=item *
95
fea59588
SH
96L<CPAN::Meta> has been upgraded from version 2.143240 to 2.150001.
97
98=item *
99
83a5d6b6
SH
100L<Data::Dumper> has been upgraded from version 2.157 to 2.158.
101
102=item *
103
338906ce
SH
104L<DB> has been upgraded from version 1.07 to 1.08.
105
106=item *
107
b05565aa
SH
108L<Devel::PPPort> has been upgraded from version 3.28 to 3.31.
109
110=item *
111
83a5d6b6
SH
112L<DynaLoader> has been upgraded from version 1.31 to 1.32.
113
114=item *
115
e455391f
SH
116L<Encode> has been upgraded from version 2.70 to 2.72.
117
118=item *
119
83a5d6b6
SH
120L<encoding> has been upgraded from version 2.13 to 2.14.
121
122=item *
123
124L<Getopt::Long> has been upgraded from version 2.43 to 2.45.
125
126=item *
127
128L<locale> has been upgraded from version 1.05 to 1.06.
129
130=item *
131
132L<Locale::Codes> has been upgraded from version 3.33 to 3.34.
133
134=item *
135
338906ce 136L<Module::CoreList> has been upgraded from version 5.20150220 to 5.20150320.
83a5d6b6
SH
137
138=item *
139
b367c45d
SH
140L<parent> has been upgraded from version 0.228 to 0.232.
141
142No changes to installed files other than the version bump.
143
144=item *
145
338906ce
SH
146The PathTools modules have been upgraded from version 3.54 to 3.55.
147
148=item *
149
83a5d6b6
SH
150L<Pod::Functions> has been upgraded from version 1.08 to 1.09.
151
152=item *
153
154L<POSIX> has been upgraded from version 1.51 to 1.52.
155
156=item *
157
158L<re> has been upgraded from version 0.31 to 0.32.
159
160=item *
161
338906ce
SH
162L<sigtrap> has been upgraded from version 1.07 to 1.08.
163
164=item *
165
166L<Term::Complete> has been upgraded from version 1.402 to 1.403.
167
168=item *
169
9409f752
SH
170L<Test::Simple> has been reverted from version 1.301001_098 to 1.001014.
171
172=item *
173
03a97c81
SH
174L<Text::Balanced> has been upgraded from version 2.02 to 2.03.
175
176No changes to installed files other than the version bump.
177
178=item *
179
a790e348
SH
180L<Text::ParseWords> has been upgraded from version 3.29 to 3.30.
181
182=item *
183
15af3bc0 184L<threads> has been upgraded from version 1.96_001 to 2.01.
83a5d6b6
SH
185
186=item *
187
126be117
JH
188L<Unicode::Collate> has been upgraded from version 1.11 to 1.12.
189
190=item *
191
83a5d6b6
SH
192L<utf8> has been upgraded from version 1.14 to 1.15.
193
a9c3e753 194=back
0939a951 195
cd7bac54
S
196=head1 Documentation
197
a9c3e753 198=head2 Changes to Existing Documentation
d2fff9f6 199
83a5d6b6 200=head3 L<perldata>
e329daf3 201
cd7bac54 202=over 4
e329daf3 203
cd7bac54 204=item *
e329daf3 205
83a5d6b6
SH
206Documentation has been added regarding the special floating point values C<Inf>
207and C<NaN>.
208
209=back
210
211=head3 L<perlexperiment>
212
213=over 4
214
215=item *
216
217Removed note about C<\s> matching C<VT> now that it is no longer experimental.
218
219=item *
220
221Added note that C<use re 'strict'> has been introduced experimentally.
222
223=back
224
225=head3 L<perlpolicy>
226
227=over 4
228
229=item *
230
231The documentation of what to expect to see in future maintenance releases has
232been updated. Essentially the same types of changes will be included as before
233but with fewer changes that don't affect the installation or execution of perl.
ba31029d 234
cd7bac54
S
235=back
236
a9c3e753 237=head1 Diagnostics
cd7bac54 238
a9c3e753
S
239The following additions or changes have been made to diagnostic output,
240including warnings and fatal error messages. For the complete list of
241diagnostic messages, see L<perldiag>.
cd7bac54 242
a9c3e753 243=head2 New Diagnostics
541e1e0d 244
a9c3e753 245=head3 New Errors
cd7bac54
S
246
247=over 4
248
249=item *
250
83a5d6b6
SH
251L<Invalid quantifier in {,} in regex; marked by <-- HERE in mE<sol>%sE<sol>|perldiag/"Invalid quantifier in {,} in regex; marked by <-- HERE in m/%s/">
252
253(F) The pattern looks like a {min,max} quantifier, but the min or max could not
254be parsed as a valid number - either it has leading zeroes, or it represents
255too big a number to cope with. The S<<-- HERE> shows where in the regular
256expression the problem was discovered. See L<perlre>.
cd7bac54
S
257
258=back
541e1e0d 259
a9c3e753 260=head1 Testing
cd7bac54 261
b5d4d3b9 262=over 4
83b69bfd
DD
263
264=item *
265
83a5d6b6 266Tests for performance issues have been added in the file F<t/perf/taint.t>.
13adb056 267
b5d4d3b9 268=back
391823f2 269
a9c3e753 270=head1 Platform Support
6c8457e9 271
a9c3e753 272=head2 New Platforms
8818afe8 273
2ff1ebfe 274=over 4
fdcaecb7 275
ce1e892e
KW
276=item z/OS running EBCDIC Code Page 1047
277
1065e4db
SH
278Core perl now works on this EBCDIC platform. Early perls also worked, but,
279even though support wasn't officially withdrawn, recent perls would not compile
280and run well. Perl 5.20 would work, but had many bugs which have now been
281fixed. Many CPAN modules that ship with Perl still fail tests, including
282Pod::Simple. However the version of Pod::Simple currently on CPAN should work;
283it was fixed too late to include in Perl 5.22. Work is under way to fix many
284of the still-broken CPAN modules, which likely will be installed on CPAN when
285completed, so that you may not have to wait until Perl 5.24 to get a working
286version.
2af7c6b6 287
4dc623f0 288=back
2af7c6b6 289
2ff1ebfe 290=head2 Platform-Specific Notes
8c847e66 291
2ff1ebfe 292=over 4
d345f487 293
338906ce 294=item HP-UX
d345f487 295
338906ce 296The archname now distinguishes use64bitint from use64bitall.
cd7bac54 297
4dc623f0 298=back
353075a0 299
a9c3e753 300=head1 Internal Changes
9f122eef 301
b5d4d3b9 302=over 4
2ec11c70
DM
303
304=item *
305
1065e4db
SH
306Macros have been created to allow XS code to better manipulate the POSIX locale
307category C<LC_NUMERIC>. See L<perlapi/Locale-related functions and macros>.
2683609f 308
338906ce
SH
309=item *
310
311The previous C<atoi> et al replacement function, C<grok_atou>, has now been
312superseded by C<grok_atoUV>. See L<perlclib> for details.
313
4dc623f0 314=back
c7f058f0 315
4dc623f0 316=head1 Selected Bug Fixes
0ef4323a 317
a9c3e753 318=over 4
2bf83140 319
041a5927
FC
320=item *
321
1065e4db
SH
322Repeated global pattern matches in scalar context on large tainted strings were
323exponentially slow depending on the current match position in the string.
338906ce 324L<[perl #123202]|https://rt.perl.org/Ticket/Display.html?id=123202>
041a5927 325
69e954a5
FC
326=item *
327
1065e4db
SH
328Various crashes due to the parser getting confused by syntax errors have been
329fixed.
338906ce
SH
330L<[perl #123801]|https://rt.perl.org/Ticket/Display.html?id=123801>
331L<[perl #123802]|https://rt.perl.org/Ticket/Display.html?id=123802>
332L<[perl #123955]|https://rt.perl.org/Ticket/Display.html?id=123955>
333L<[perl #123995]|https://rt.perl.org/Ticket/Display.html?id=123995>
69e954a5 334
20b5e916
FC
335=item *
336
337C<split> in the scope of lexical $_ has been fixed not to fail assertions.
338906ce 338L<[perl #123763]|https://rt.perl.org/Ticket/Display.html?id=123763>
20b5e916 339
d76c14eb
FC
340=item *
341
342C<my $x : attr> syntax inside various list operators no longer fails
338906ce
SH
343assertions.
344L<[perl #123817]|https://rt.perl.org/Ticket/Display.html?id=123817>
d76c14eb 345
d547bad0
FC
346=item *
347
348An @ sign in quotes followed by a non-ASCII digit (which is not a valid
1065e4db
SH
349identifier) would cause the parser to crash, instead of simply trying the @ as
350literal. This has been fixed.
338906ce 351L<[perl #123963]|https://rt.perl.org/Ticket/Display.html?id=123963>
d547bad0 352
8a95d307
FC
353=item *
354
1065e4db 355C<*bar::=*foo::=*glob_with_hash> has been crashing since Perl 5.14, but no
338906ce
SH
356longer does.
357L<[perl #123847]|https://rt.perl.org/Ticket/Display.html?id=123847>
8a95d307 358
2f304be9
FC
359=item *
360
1065e4db
SH
361C<foreach> in scalar context was not pushing an item on to the stack, resulting
362in bugs. (C<print 4, scalar do { foreach(@x){} } + 1> would print 5.) It has
363been fixed to return C<undef>.
338906ce
SH
364L<[perl #124004]|https://rt.perl.org/Ticket/Display.html?id=124004>
365
366=item *
367
368A memory leak introduced in Perl 5.21.6 has been fixed.
369L<[perl #123922]|https://rt.perl.org/Ticket/Display.html?id=123922>
370
371=item *
372
373A regression in the behaviour of the C<readline> built-in function, caused by
374the introduction of the C<< <<>> >> operator, has been fixed.
375L<[perl #123990]|https://rt.perl.org/Ticket/Display.html?id=123990>
376
377=item *
378
379Several cases of data used to store environment variable contents in core C
b21b6964 380code being potentially overwritten before being used have been fixed.
338906ce 381L<[perl #123748]|https://rt.perl.org/Ticket/Display.html?id=123748>
2f304be9 382
a9c3e753 383=back
ea13b07e 384
a9c3e753 385=head1 Known Problems
b65adbec 386
a9c3e753 387=over 4
b94c7836
FC
388
389=item *
390
1065e4db
SH
391A goal is for Perl to be able to be recompiled to work reasonably well on any
392Unicode version. In Perl 5.22, though, the earliest such version is Unicode
3935.1 (current is 7.0).
439f6100 394
ce1e892e
KW
395=item *
396
397EBCDIC platforms
398
399=over 4
400
401=item *
402
403Encode and encoding are mostly broken.
404
405=item *
406
1065e4db 407Many cpan modules that are shipped with core show failing tests.
ce1e892e
KW
408
409=item *
410
411C<pack>/C<unpack> with C<"U0"> format may not work properly.
412
413=back
414
a9c3e753 415=back
e3e8f263 416
a9c3e753 417=head1 Acknowledgements
541e1e0d 418
0d42058e
SH
419Perl 5.21.10 represents approximately 4 weeks of development since Perl 5.21.9
420and contains approximately 170,000 lines of changes across 860 files from 27
421authors.
422
423Excluding auto-generated files, documentation and release tools, there were
424approximately 170,000 lines of changes to 610 .pm, .t, .c and .h files.
425
426Perl continues to flourish into its third decade thanks to a vibrant community
427of users and developers. The following people are known to have contributed
428the improvements that became Perl 5.21.10:
429
430Chris 'BinGOs' Williams, David Golden, David Mitchell, David Wheeler, Father
431Chrysostomos, H.Merijn Brand, Hugo van der Sanden, James E Keenan, Jarkko
432Hietaniemi, Jasmine Ngan, Jerry D. Hedden, John Goodyear, Karen Etheridge, Karl
433Williamson, Lukas Mai, Matthew Horsfall, Nicholas Clark, Petr Písař, Rafael
434Garcia-Suarez, Reini Urban, Ricardo Signes, Sawyer X, Steffen Müller, Steve
435Hay, Sullivan Beck, Tony Cook, Vincent Pit.
436
437The list above is almost certainly incomplete as it is automatically generated
438from version control history. In particular, it does not include the names of
439the (very much appreciated) contributors who reported issues to the Perl bug
440tracker.
441
442Many of the changes included in this version originated in the CPAN modules
443included in Perl's core. We're grateful to the entire CPAN community for
444helping Perl to flourish.
445
446For a more complete list of all of Perl's historical contributors, please see
447the F<AUTHORS> file in the Perl source distribution.
f5b73711 448
44691e6f
AB
449=head1 Reporting Bugs
450
e08634c5
SH
451If you find what you think is a bug, you might check the articles recently
452posted to the comp.lang.perl.misc newsgroup and the perl bug database at
1065e4db
SH
453https://rt.perl.org/ . There may also be information at http://www.perl.org/ ,
454the Perl Home Page.
44691e6f 455
e08634c5
SH
456If you believe you have an unreported bug, please run the L<perlbug> program
457included with your release. Be sure to trim your bug down to a tiny but
458sufficient test case. Your bug report, along with the output of C<perl -V>,
459will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
460
461If the bug you are reporting has security implications, which make it
e08634c5
SH
462inappropriate to send to a publicly archived mailing list, then please send it
463to perl5-security-report@perl.org. This points to a closed subscription
464unarchived mailing list, which includes all the core committers, who will be
465able to help assess the impact of issues, figure out a resolution, and help
f9001595 466co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
467platforms on which Perl is supported. Please only use this address for
468security issues in the Perl core, not for modules independently distributed on
469CPAN.
44691e6f
AB
470
471=head1 SEE ALSO
472
e08634c5
SH
473The F<Changes> file for an explanation of how to view exhaustive details on
474what changed.
44691e6f
AB
475
476The F<INSTALL> file for how to build Perl.
477
478The F<README> file for general stuff.
479
480The F<Artistic> and F<Copying> files for copyright information.
481
482=cut