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