This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Bump version number in INSTALL
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
5a6a30f4
CBW
5[ this is a template for a new perldelta file. Any text flagged as XXX needs
6to be processed before release. ]
7
8perldelta - what is new for perl v5.17.10
e128ab2c 9
4eabcf70 10=head1 DESCRIPTION
6db9054f 11
5a6a30f4 12This document describes differences between the 5.17.9 release and the 5.17.10
e08634c5 13release.
6db9054f 14
5a6a30f4
CBW
15If you are upgrading from an earlier release such as 5.17.8, first read
16L<perl5179delta>, which describes differences between 5.17.8 and 5.17.9.
3f01b192 17
5a6a30f4 18=head1 Notice
3f01b192 19
5a6a30f4 20XXX Any important notices here
3f01b192 21
5a6a30f4 22=head1 Core Enhancements
3f01b192 23
5a6a30f4
CBW
24XXX New core language features go here. Summarize user-visible core language
25enhancements. Particularly prominent performance optimisations could go
26here, but most should go in the L</Performance Enhancements> section.
3f01b192 27
5a6a30f4 28[ List each enhancement as a =head2 entry ]
3f01b192 29
5a6a30f4 30=head1 Security
3f01b192 31
5a6a30f4
CBW
32XXX Any security-related notices go here. In particular, any security
33vulnerabilities closed should be noted here rather than in the
34L</Selected Bug Fixes> section.
3f01b192 35
5a6a30f4 36[ List each security issue as a =head2 entry ]
3f01b192 37
5a6a30f4 38=head1 Incompatible Changes
3f01b192 39
32833930
BF
40=head2 Explicit rules for variable names and identifiers
41
42Due to an oversight, length-one variable names in 5.16 were completely
43unrestricted, and opened the door to several kinds of insanity. As of
445.18, these now follow the rules of other identifiers, in addition
45to accepting characters that match the \p{POSIX_Punct} property.
46
07f72646
BF
47There are no longer any differences in the parsing of identifiers specified
48as $... or ${...}; previously, they were dealt with in different parts of
49the core, and so had slightly different behavior. For instance,
50C<${foo:bar}> was a legal variable name. Since they are now both parsed
51by the same code, that is no longer the case.
3f01b192 52
5a6a30f4 53[ List each incompatible change as a =head2 entry ]
3f01b192 54
5a6a30f4 55=head1 Deprecations
3f01b192 56
5a6a30f4
CBW
57XXX Any deprecated features, syntax, modules etc. should be listed here. In
58particular, deprecated modules should be listed here even if they are listed as
59an updated module in the L</Modules and Pragmata> section.
3f01b192 60
5a6a30f4 61[ List each deprecation as a =head2 entry ]
3f01b192 62
d7a08570
SM
63=head2 PL_sv_objcount
64
65This interpreter-global variable used to track the total number of
66Perl objects in the interpreter. It is no longer maintained and will
67be removed altogether in Perl 5.20.
68
5a6a30f4 69=head1 Performance Enhancements
3f01b192 70
5a6a30f4
CBW
71XXX Changes which enhance performance without changing behaviour go here.
72There may well be none in a stable release.
3f01b192 73
5a6a30f4 74[ List each enhancement as a =item entry ]
3f01b192 75
5a6a30f4 76=over 4
3f01b192 77
5a6a30f4 78=item *
3f01b192 79
5a6a30f4 80XXX
3f01b192
CBW
81
82=back
83
5a6a30f4 84=head1 Modules and Pragmata
3f01b192 85
5a6a30f4
CBW
86XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
87go here. If Module::CoreList is updated, generate an initial draft of the
88following sections using F<Porting/corelist-perldelta.pl>, which prints stub
89entries to STDOUT. Results can be pasted in place of the '=head2' entries
90below. A paragraph summary for important changes should then be added by hand.
91In an ideal world, dual-life modules would have a F<Changes> file that could be
92cribbed.
ff56e4f1 93
5a6a30f4 94[ Within each section, list entries as a =item entry ]
19718730 95
19718730 96=head2 New Modules and Pragmata
751611d4 97
6253ee75 98=over 4
751611d4
FC
99
100=item *
101
5a6a30f4 102XXX
751611d4 103
19718730 104=back
86148eee 105
19718730
AC
106=head2 Updated Modules and Pragmata
107
108=over 4
7a7a10c7 109
e14ac59b 110=item *
7a7a10c7 111
a2656c4a
DM
112L<Benchmark> has been upgraded from version 1.14 to 1.15.
113
114This reverts (for now) a change in 1.14 whereby the "too few iterations"
115message became a warning on STDERR instead of being output on STDOUT. It's
116now on STDOUT again.
2426c394 117
14731ad1
DG
118=item *
119
120L<Perl::OSType> has been upgraded from version 1.002 to 1.003.
121
122This fixes a bug detecting the VOS operating system.
123
5a6a30f4 124=back
2426c394 125
5a6a30f4 126=head2 Removed Modules and Pragmata
2426c394 127
5a6a30f4 128=over 4
2426c394
CBW
129
130=item *
131
5a6a30f4 132XXX
2426c394 133
5a6a30f4 134=back
2426c394 135
5a6a30f4 136=head1 Documentation
2426c394 137
5a6a30f4
CBW
138XXX Changes to files in F<pod/> go here. Consider grouping entries by
139file and be sure to link to the appropriate page, e.g. L<perlfunc>.
2426c394 140
5a6a30f4 141=head2 New Documentation
2426c394 142
5a6a30f4 143XXX Changes which create B<new> files in F<pod/> go here.
2426c394 144
5a6a30f4 145=head3 L<XXX>
2426c394 146
5a6a30f4 147XXX Description of the purpose of the new file here
2426c394 148
5a6a30f4 149=head2 Changes to Existing Documentation
2426c394 150
5a6a30f4
CBW
151XXX Changes which significantly change existing files in F<pod/> go here.
152However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
153section.
2426c394 154
2171640d 155=head3 L<perlrebackslash/\N>
2426c394 156
5a6a30f4 157=over 4
2426c394
CBW
158
159=item *
160
2171640d 161This feature is no longer experimental.
2426c394 162
5a6a30f4 163=back
e58c5aaf 164
5a6a30f4 165=head1 Diagnostics
7a7a10c7 166
5a6a30f4
CBW
167The following additions or changes have been made to diagnostic output,
168including warnings and fatal error messages. For the complete list of
169diagnostic messages, see L<perldiag>.
2426c394 170
5a6a30f4
CBW
171XXX New or changed warnings emitted by the core's C<C> code go here. Also
172include any changes in L<perldiag> that reconcile it to the C<C> code.
2426c394 173
5a6a30f4 174=head2 New Diagnostics
2426c394 175
5a6a30f4
CBW
176XXX Newly added diagnostic messages go under here, separated into New Errors
177and New Warnings
2426c394 178
5a6a30f4 179=head3 New Errors
2426c394 180
5a6a30f4 181=over 4
2426c394
CBW
182
183=item *
184
5a6a30f4 185XXX L<message|perldiag/"message">
2426c394 186
5a6a30f4 187=back
2426c394 188
5a6a30f4 189=head3 New Warnings
2426c394 190
5a6a30f4 191=over 4
2426c394
CBW
192
193=item *
194
982110e0
NC
195L%c* is deprecated, and will become a syntax error|perldiag/"%c* is deprecated, and will become a syntax error">
196
197Use of C<@*>, C<&*>, C<**> or C<%*> is now deprecated, and will generate a
198compile time warning, enabled by default. In future such code will fail to
199compile with a syntax error. Removing these variables, along with C<$*>,
200will permit future syntax additions.
2426c394 201
5a6a30f4 202=back
2426c394 203
5a6a30f4 204=head2 Changes to Existing Diagnostics
2426c394 205
5a6a30f4 206=over 4
2426c394
CBW
207
208=item *
209
53213d38 210L<$* is no longer supported, and will become a syntax error|perldiag/"$* is no longer supported, and will become a syntax error">
ff683671
NC
211
212The warning that use of C<$*> and C<$#> is no longer supported is now
213generated for every location that references them. Previously it would fail
214to be generated if another variable using the same typeglob was seen first
215(e.g. C<@*> before C<$*>), and would not be generated for the second and
216subsequent uses. (It's hard to fix the failure to generate warnings at all
217without also generating them every time, and warning every time is
218consistent with the warnings that C<$[> used to generate.)
2426c394 219
5a6a30f4 220=back
2426c394 221
5a6a30f4 222=head1 Utility Changes
2426c394 223
5a6a30f4
CBW
224XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
225Most of these are built within the directories F<utils> and F<x2p>.
2426c394 226
5a6a30f4
CBW
227[ List utility changes as a =head3 entry for each utility and =item
228entries for each change
229Use L<XXX> with program names to get proper documentation linking. ]
2426c394 230
5a6a30f4 231=head3 L<XXX>
2426c394 232
5a6a30f4 233=over 4
2426c394
CBW
234
235=item *
236
5a6a30f4 237XXX
2426c394 238
19718730
AC
239=back
240
5a6a30f4 241=head1 Configuration and Compilation
11e375e0 242
5a6a30f4
CBW
243XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
244go here. Any other changes to the Perl build process should be listed here.
245However, any platform-specific changes should be listed in the
246L</Platform Support> section, instead.
19718730 247
5a6a30f4 248[ List changes as a =item entry ].
19718730
AC
249
250=over 4
dd4b1c75
AC
251
252=item *
253
5a6a30f4 254XXX
cb077ed2 255
5d8c8c8a 256=back
5f877a7f 257
5a6a30f4 258=head1 Testing
e14ac59b 259
5a6a30f4
CBW
260XXX Any significant changes to the testing of a freshly built perl should be
261listed here. Changes which create B<new> files in F<t/> go here as do any
262large changes to the testing harness (e.g. when parallel testing was added).
263Changes to existing files in F<t/> aren't worth summarizing, although the bugs
264that they represent may be covered elsewhere.
1ea91bbe 265
5a6a30f4 266[ List each test improvement as a =item entry ]
19718730
AC
267
268=over 4
5e0a247b
KW
269
270=item *
271
5a6a30f4 272XXX
19718730
AC
273
274=back
275
5a6a30f4 276=head1 Platform Support
8b877d20 277
5a6a30f4 278XXX Any changes to platform support should be listed in the sections below.
19718730 279
5a6a30f4
CBW
280[ Within the sections, list each platform as a =item entry with specific
281changes as paragraphs below it. ]
19718730 282
5a6a30f4 283=head2 New Platforms
19718730 284
5a6a30f4
CBW
285XXX List any platforms that this version of perl compiles on, that previous
286versions did not. These will either be enabled by new files in the F<hints/>
287directories, or new subdirectories and F<README> files at the top level of the
288source tree.
19718730
AC
289
290=over 4
e078d89d 291
5a6a30f4 292=item XXX-some-platform
09a49503 293
5a6a30f4 294XXX
09a49503 295
6253ee75 296=back
e078d89d 297
5a6a30f4 298=head2 Discontinued Platforms
19718730 299
5a6a30f4 300XXX List any platforms that this version of perl no longer compiles on.
e078d89d 301
5a6a30f4 302=over 4
b7c7d786 303
5a6a30f4 304=item XXX-some-platform
d2d1e842 305
5a6a30f4 306XXX
d2d1e842 307
5a6a30f4 308=back
d2d1e842 309
5a6a30f4 310=head2 Platform-Specific Notes
d2d1e842 311
5a6a30f4
CBW
312XXX List any changes for specific platforms. This could include configuration
313and compilation changes or changes in portability/compatibility. However,
314changes within modules for platforms should generally be listed in the
315L</Modules and Pragmata> section.
d2d1e842 316
5a6a30f4 317=over 4
b9214e65 318
5a6a30f4 319=item XXX-some-platform
b9214e65 320
5a6a30f4 321XXX
f355e93d 322
5a6a30f4 323=back
f355e93d 324
5a6a30f4 325=head1 Internal Changes
19718730 326
5a6a30f4
CBW
327XXX Changes which affect the interface available to C<XS> code go here. Other
328significant internal changes for future core maintainers should be noted as
329well.
19718730 330
5a6a30f4 331[ List each change as a =item entry ]
19718730 332
19718730 333=over 4
e14ac59b 334
fdea6f98
FC
335=item *
336
9f351b45 337The new copy-on-write mechanism that was introduced in 5.17.7 has now been
e8aa73ce 338disabled by default, since it was felt that there were too many rough
9f351b45
DM
339edges for the 5.18 release. It is expected that it will be enabled by
340default for 5.20.
341
342This change also re-enables PL_sawampersand by default.
343
344It can be enabled in a perl build by running F<Configure> with
345B<-Accflags=-DPERL_NEW_COPY_ON_WRITE>, and we would encourage XS authors to
346try their code with such an enabled perl, and provide feedback.
347XXX need blurb, e.g. a reference to a new section in perlguts or perlxs
348explaining how XS authors should handle COW strings.
349
fdea6f98 350
6253ee75 351=back
7cf3104f 352
5a6a30f4 353=head1 Selected Bug Fixes
8a987e1a 354
5a6a30f4
CBW
355XXX Important bug fixes in the core language are summarized here. Bug fixes in
356files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
785fb813 357
5a6a30f4 358[ List each fix as a =item entry ]
f5778209 359
6253ee75 360=over 4
f5778209 361
216cf7fc
DR
362=item *
363
a7cf6621
RS
364Fix two crashes in the debugger when using Frame=2 or autotrace. These are
365[perl #116769] and [perl #116771].
12719193 366
6253ee75 367=back
216cf7fc 368
5a6a30f4 369=head1 Known Problems
216cf7fc 370
5a6a30f4
CBW
371XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
372tests that had to be C<TODO>ed for the release would be noted here. Unfixed
373platform specific bugs also go here.
d76c0f4b 374
5a6a30f4 375[ List each fix as a =item entry ]
d76c0f4b 376
5a6a30f4 377=over 4
b9214e65 378
250ef6a9
KW
379=item *
380
5a6a30f4 381XXX
250ef6a9 382
5a6a30f4 383=back
250ef6a9 384
5a6a30f4 385=head1 Obituary
250ef6a9 386
5a6a30f4
CBW
387XXX If any significant core contributor has died, we've added a short obituary
388here.
6c042f06 389
19718730 390=head1 Acknowledgements
f5b73711 391
5a6a30f4
CBW
392XXX Generate this with:
393
394 perl Porting/acknowledgements.pl v5.17.9..HEAD
f5b73711 395
44691e6f
AB
396=head1 Reporting Bugs
397
e08634c5
SH
398If you find what you think is a bug, you might check the articles recently
399posted to the comp.lang.perl.misc newsgroup and the perl bug database at
400http://rt.perl.org/perlbug/ . There may also be information at
401http://www.perl.org/ , the Perl Home Page.
44691e6f 402
e08634c5
SH
403If you believe you have an unreported bug, please run the L<perlbug> program
404included with your release. Be sure to trim your bug down to a tiny but
405sufficient test case. Your bug report, along with the output of C<perl -V>,
406will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
407
408If the bug you are reporting has security implications, which make it
e08634c5
SH
409inappropriate to send to a publicly archived mailing list, then please send it
410to perl5-security-report@perl.org. This points to a closed subscription
411unarchived mailing list, which includes all the core committers, who will be
412able to help assess the impact of issues, figure out a resolution, and help
f9001595 413co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
414platforms on which Perl is supported. Please only use this address for
415security issues in the Perl core, not for modules independently distributed on
416CPAN.
44691e6f
AB
417
418=head1 SEE ALSO
419
e08634c5
SH
420The F<Changes> file for an explanation of how to view exhaustive details on
421what changed.
44691e6f
AB
422
423The F<INSTALL> file for how to build Perl.
424
425The F<README> file for general stuff.
426
427The F<Artistic> and F<Copying> files for copyright information.
428
429=cut