This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update corelist for 5.17.10
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
5a6a30f4 5perldelta - what is new for perl v5.17.10
e128ab2c 6
4eabcf70 7=head1 DESCRIPTION
6db9054f 8
5a6a30f4 9This document describes differences between the 5.17.9 release and the 5.17.10
e08634c5 10release.
6db9054f 11
5a6a30f4
CBW
12If you are upgrading from an earlier release such as 5.17.8, first read
13L<perl5179delta>, which describes differences between 5.17.8 and 5.17.9.
3f01b192 14
5a6a30f4 15=head1 Notice
3f01b192 16
5a6a30f4 17=head1 Core Enhancements
3f01b192 18
5a6a30f4 19=head1 Security
3f01b192 20
82d98f72 21=head2 Hash iteration randomized per hash variable
3f01b192 22
82d98f72
MM
23Every hash has its own iteration order, which
24should make it much more difficult to determine what the current hash
25seed is.
3f01b192 26
5a6a30f4 27=head1 Incompatible Changes
3f01b192 28
32833930
BF
29=head2 Explicit rules for variable names and identifiers
30
31Due to an oversight, length-one variable names in 5.16 were completely
32unrestricted, and opened the door to several kinds of insanity. As of
335.18, these now follow the rules of other identifiers, in addition
34to accepting characters that match the \p{POSIX_Punct} property.
35
07f72646
BF
36There are no longer any differences in the parsing of identifiers specified
37as $... or ${...}; previously, they were dealt with in different parts of
38the core, and so had slightly different behavior. For instance,
39C<${foo:bar}> was a legal variable name. Since they are now both parsed
40by the same code, that is no longer the case.
3f01b192 41
5a6a30f4 42[ List each incompatible change as a =head2 entry ]
3f01b192 43
5a6a30f4 44=head1 Deprecations
3f01b192 45
d7a08570
SM
46=head2 PL_sv_objcount
47
48This interpreter-global variable used to track the total number of
49Perl objects in the interpreter. It is no longer maintained and will
50be removed altogether in Perl 5.20.
51
5a6a30f4 52=head1 Performance Enhancements
3f01b192 53
5a6a30f4 54=head1 Modules and Pragmata
3f01b192 55
19718730 56=head2 New Modules and Pragmata
751611d4 57
6253ee75 58=over 4
751611d4
FC
59
60=item *
61
82d98f72 62L<Config::Perl::V> 0.17 has been added to the Perl core.
751611d4 63
19718730 64=back
86148eee 65
19718730
AC
66=head2 Updated Modules and Pragmata
67
68=over 4
7a7a10c7 69
e14ac59b 70=item *
7a7a10c7 71
82d98f72
MM
72L<Archive::Extract> has been upgraded from version 0.62 to 0.68.
73
74NOTE: L<Archive::Extract> is deprecated and may be removed from a future version of Perl.
75
76=item *
77
78L<Attribute::Handlers> has been upgraded from version 0.93 to 0.94.
79
80=item *
81
82L<B::Lint> has been upgraded from version 1.14 to 1.17.
83
84NOTE: L<B::Lint> is deprecated and may be removed from a future version of Perl.
85
86=item *
87
a2656c4a
DM
88L<Benchmark> has been upgraded from version 1.14 to 1.15.
89
90This reverts (for now) a change in 1.14 whereby the "too few iterations"
91message became a warning on STDERR instead of being output on STDOUT. It's
92now on STDOUT again.
2426c394 93
14731ad1
DG
94=item *
95
82d98f72 96L<bignum> has been upgraded from version 0.31 to 0.32.
14731ad1 97
82d98f72 98=item *
14731ad1 99
82d98f72 100L<CPAN> has been upgraded from version 1.99_51 to 2.00.
2426c394 101
82d98f72 102=item *
2426c394 103
82d98f72
MM
104L<CPANPLUS> has been upgraded from version 0.9133 to 0.9135.
105
106NOTE: L<CPANPLUS> is deprecated and may be removed from a future version of Perl.
2426c394
CBW
107
108=item *
109
82d98f72 110L<CPANPLUS::Dist::Build> has been upgraded from version 0.68 to 0.70.
2426c394 111
82d98f72 112NOTE: L<CPANPLUS::Dist::Build> is deprecated and may be removed from a future version of Perl.
2426c394 113
82d98f72 114=item *
2426c394 115
82d98f72 116L<Data::Dumper> has been upgraded from version 2.141 to 2.142.
2426c394 117
82d98f72 118=item *
2426c394 119
82d98f72 120L<DBM_Filter> has been upgraded from version 0.04 to 0.05.
2426c394 121
82d98f72 122=item *
2426c394 123
82d98f72 124L<Digest::SHA> has been upgraded from version 5.81 to 5.82.
2426c394 125
82d98f72 126=item *
2426c394 127
82d98f72 128L<Encode> has been upgraded from version 2.47 to 2.48.
2426c394 129
82d98f72 130=item *
2426c394 131
82d98f72 132L<ExtUtils::Manifest> has been upgraded from version 1.62 to 1.63.
2426c394
CBW
133
134=item *
135
82d98f72 136L<File::CheckTree> has been upgraded from version 4.41 to 4.42.
2426c394 137
82d98f72 138=item *
e58c5aaf 139
82d98f72 140L<File::DosGlob> has been upgraded from version 1.09 to 1.10.
7a7a10c7 141
82d98f72 142=item *
2426c394 143
82d98f72 144L<File::Temp> has been upgraded from version 0.22 to 0.22_90.
2426c394 145
82d98f72 146=item *
2426c394 147
82d98f72 148L<Filter::Simple> has been upgraded from version 0.88 to 0.89.
2426c394 149
82d98f72 150=item *
2426c394 151
82d98f72 152L<IO> has been upgraded from version 1.26 to 1.27.
2426c394
CBW
153
154=item *
155
82d98f72 156L<Log::Message> has been upgraded from version 0.04 to 0.06.
2426c394 157
82d98f72 158NOTE: L<Log::Message> is deprecated and may be removed from a future version of Perl.
2426c394 159
82d98f72 160=item *
2426c394 161
82d98f72
MM
162L<Log::Message::Simple> has been upgraded from version 0.08 to 0.10.
163
164NOTE: L<Log::Message::Simple> is deprecated and may be removed from a future version of Perl.
2426c394
CBW
165
166=item *
167
82d98f72 168L<Math::BigInt> has been upgraded from version 1.998 to 1.999.
982110e0 169
82d98f72 170=item *
2426c394 171
fd3b4111 172L<Module::CoreList> has been upgraded from version 2.80 to 2.85.
2426c394 173
82d98f72 174=item *
2426c394 175
82d98f72 176L<Module::Load> has been upgraded from version 0.22 to 0.24.
2426c394
CBW
177
178=item *
179
82d98f72 180L<Module::Pluggable> has been upgraded from version 4.5 to 4.6.
ff683671 181
82d98f72 182NOTE: L<Module::Pluggable> is deprecated and may be removed from a future version of Perl.
2426c394 183
82d98f72 184=item *
2426c394 185
82d98f72 186L<Net::Ping> has been upgraded from version 2.39 to 2.41.
2426c394 187
82d98f72 188This fixes some test failures on Windows.
2426c394 189
82d98f72 190=item *
2426c394 191
82d98f72 192L<Object::Accessor> has been upgraded from version 0.44 to 0.46.
2426c394 193
82d98f72 194NOTE: L<Object::Accessor> is deprecated and may be removed from a future version of Perl.
2426c394
CBW
195
196=item *
197
82d98f72 198L<overload> has been upgraded from version 1.20 to 1.21.
2426c394 199
82d98f72
MM
200=item *
201
202L<Perl::OSType> has been upgraded from version 1.002 to 1.003.
203
204This fixes a bug detecting the VOS operating system.
19718730 205
82d98f72 206=item *
11e375e0 207
82d98f72 208L<PerlIO::scalar> has been upgraded from version 0.15 to 0.16.
19718730 209
82d98f72 210=item *
19718730 211
82d98f72 212L<Pod::Checker> has been upgraded from version 1.51 to 1.60.
dd4b1c75
AC
213
214=item *
215
82d98f72 216L<Pod::Html> has been upgraded from version 1.17 to 1.18.
cb077ed2 217
82d98f72 218=item *
5f877a7f 219
82d98f72 220L<Pod::Parser> has been upgraded from version 1.51 to 1.60.
e14ac59b 221
82d98f72 222=item *
1ea91bbe 223
82d98f72 224L<Pod::Perldoc> has been upgraded from version 3.17 to 3.19.
19718730 225
82d98f72
MM
226=item *
227
228L<Pod::Usage> has been upgraded from version 1.51 to 1.61.
5e0a247b
KW
229
230=item *
231
82d98f72 232L<SelfLoader> has been upgraded from version 1.20 to 1.21.
19718730 233
82d98f72 234=item *
19718730 235
82d98f72 236L<Term::UI> has been upgraded from version 0.32 to 0.34.
8b877d20 237
82d98f72 238NOTE: L<Term::UI> is deprecated and may be removed from a future version of Perl.
19718730 239
82d98f72 240=item *
19718730 241
82d98f72 242L<Test::Harness> has been upgraded from version 3.25_01 to 3.26.
19718730 243
82d98f72 244=item *
19718730 245
82d98f72 246L<Text::Soundex> has been upgraded from version 3.03_01 to 3.04.
e078d89d 247
82d98f72
MM
248=item *
249
250L<Thread::Queue> has been upgraded from version 3.01 to 3.02.
09a49503 251
82d98f72
MM
252=item *
253
254L<Unicode::UCD> has been upgraded from version 0.47 to 0.50.
255
256=item *
257
258L<warnings> has been upgraded from version 1.16 to 1.17.
259
260=item *
261
262L<Win32> has been upgraded from version 0.45 to 0.46.
263
264=item *
265
266L<Win32API::File> has been upgraded from version 0.1200 to 0.1201.
09a49503 267
6253ee75 268=back
e078d89d 269
82d98f72 270=head1 Documentation
19718730 271
82d98f72
MM
272=head2 Changes to Existing Documentation
273
274=head3 L<perlrebackslash/\N>
e078d89d 275
5a6a30f4 276=over 4
b7c7d786 277
82d98f72 278=item *
d2d1e842 279
82d98f72 280This feature is no longer experimental.
d2d1e842 281
5a6a30f4 282=back
d2d1e842 283
82d98f72
MM
284=head1 Diagnostics
285
286The following additions or changes have been made to diagnostic output,
287including warnings and fatal error messages. For the complete list of
288diagnostic messages, see L<perldiag>.
d2d1e842 289
82d98f72
MM
290=head2 New Diagnostics
291
292=head3 New Warnings
d2d1e842 293
5a6a30f4 294=over 4
b9214e65 295
82d98f72 296=item *
b9214e65 297
82d98f72
MM
298L%c* is deprecated, and will become a syntax error|perldiag/"%c* is deprecated, and will become a syntax error">
299
300Use of C<@*>, C<&*>, C<**> or C<%*> is now deprecated, and will generate a
301compile time warning, enabled by default. In future such code will fail to
302compile with a syntax error. Removing these variables, along with C<$*>,
303will permit future syntax additions.
f355e93d 304
5a6a30f4 305=back
f355e93d 306
82d98f72
MM
307=head2 Changes to Existing Diagnostics
308
309=over 4
310
311=item *
312
313L<$* is no longer supported, and will become a syntax error|perldiag/"$* is no longer supported, and will become a syntax error">
314
315The warning that use of C<$*> and C<$#> is no longer supported is now
316generated for every location that references them. Previously it would fail
317to be generated if another variable using the same typeglob was seen first
318(e.g. C<@*> before C<$*>), and would not be generated for the second and
319subsequent uses. (It's hard to fix the failure to generate warnings at all
320without also generating them every time, and warning every time is
321consistent with the warnings that C<$[> used to generate.)
19718730 322
82d98f72 323=back
19718730 324
82d98f72 325=head1 Internal Changes
19718730 326
19718730 327=over 4
e14ac59b 328
fdea6f98
FC
329=item *
330
9f351b45 331The new copy-on-write mechanism that was introduced in 5.17.7 has now been
e8aa73ce 332disabled by default, since it was felt that there were too many rough
9f351b45
DM
333edges for the 5.18 release. It is expected that it will be enabled by
334default for 5.20.
335
336This change also re-enables PL_sawampersand by default.
337
338It can be enabled in a perl build by running F<Configure> with
339B<-Accflags=-DPERL_NEW_COPY_ON_WRITE>, and we would encourage XS authors to
340try their code with such an enabled perl, and provide feedback.
341XXX need blurb, e.g. a reference to a new section in perlguts or perlxs
342explaining how XS authors should handle COW strings.
343
6253ee75 344=back
7cf3104f 345
5a6a30f4 346=head1 Selected Bug Fixes
8a987e1a 347
6253ee75 348=over 4
f5778209 349
216cf7fc
DR
350=item *
351
a7cf6621
RS
352Fix two crashes in the debugger when using Frame=2 or autotrace. These are
353[perl #116769] and [perl #116771].
12719193 354
6253ee75 355=back
216cf7fc 356
19718730 357=head1 Acknowledgements
f5b73711 358
82d98f72
MM
359Perl 5.17.10 represents approximately 4 weeks of development since Perl 5.17.9
360and contains approximately 77,000 lines of changes across 440 files from 42
361authors.
362
363Perl continues to flourish into its third decade thanks to a vibrant community
364of users and developers. The following people are known to have contributed the
365improvements that became Perl 5.17.10:
366
367Aaron Crane, Aaron Trevena, Andrew Tam, Andy Dougherty, Anton Nikishaev, Brad
368Gilbert, Brian Fraser, Charlie Gonzalez, Chris 'BinGOs' Williams, Craig A.
369Berry, Daniel Dragan, David Golden, David Mitchell, Dominic Hargreaves, Florian
370Ragwitz, George Greer, H.Merijn Brand, James E Keenan, Jasmine Ahuja, John
371Goodyear, John Peacock, Karl Williamson, Kent Fredric, Lukas Mai, Max
372Maischein, Nicholas Clark, Patrik Hägglund, Paul Green, Peter Martini, Rafael
373Garcia-Suarez, Renee Baecker, Ricardo Signes, Ruslan Zakirov, Salvador
374Fandiño, Scott Lanning, Shirakata Kentaro, Steffen Müller, Steve Hay, Steve
375Peters, Sullivan Beck, Tony Cook, Yves Orton.
376
377The list above is almost certainly incomplete as it is automatically generated
378from version control history. In particular, it does not include the names of
379the (very much appreciated) contributors who reported issues to the Perl bug
380tracker.
381
382Many of the changes included in this version originated in the CPAN modules
383included in Perl's core. We're grateful to the entire CPAN community for
384helping Perl to flourish.
385
386For a more complete list of all of Perl's historical contributors, please see
387the F<AUTHORS> file in the Perl source distribution.
f5b73711 388
44691e6f
AB
389=head1 Reporting Bugs
390
e08634c5
SH
391If you find what you think is a bug, you might check the articles recently
392posted to the comp.lang.perl.misc newsgroup and the perl bug database at
393http://rt.perl.org/perlbug/ . There may also be information at
394http://www.perl.org/ , the Perl Home Page.
44691e6f 395
e08634c5
SH
396If you believe you have an unreported bug, please run the L<perlbug> program
397included with your release. Be sure to trim your bug down to a tiny but
398sufficient test case. Your bug report, along with the output of C<perl -V>,
399will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
400
401If the bug you are reporting has security implications, which make it
e08634c5
SH
402inappropriate to send to a publicly archived mailing list, then please send it
403to perl5-security-report@perl.org. This points to a closed subscription
404unarchived mailing list, which includes all the core committers, who will be
405able to help assess the impact of issues, figure out a resolution, and help
f9001595 406co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
407platforms on which Perl is supported. Please only use this address for
408security issues in the Perl core, not for modules independently distributed on
409CPAN.
44691e6f
AB
410
411=head1 SEE ALSO
412
e08634c5
SH
413The F<Changes> file for an explanation of how to view exhaustive details on
414what changed.
44691e6f
AB
415
416The F<INSTALL> file for how to build Perl.
417
418The F<README> file for general stuff.
419
420The F<Artistic> and F<Copying> files for copyright information.
421
422=cut