This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Change the warning for $* to add ", and will become a syntax error".
[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
5a6a30f4 195XXX L<message|perldiag/"message">
2426c394 196
5a6a30f4 197=back
2426c394 198
5a6a30f4 199=head2 Changes to Existing Diagnostics
2426c394 200
5a6a30f4 201=over 4
2426c394
CBW
202
203=item *
204
53213d38 205L<$* is no longer supported, and will become a syntax error|perldiag/"$* is no longer supported, and will become a syntax error">
ff683671
NC
206
207The warning that use of C<$*> and C<$#> is no longer supported is now
208generated for every location that references them. Previously it would fail
209to be generated if another variable using the same typeglob was seen first
210(e.g. C<@*> before C<$*>), and would not be generated for the second and
211subsequent uses. (It's hard to fix the failure to generate warnings at all
212without also generating them every time, and warning every time is
213consistent with the warnings that C<$[> used to generate.)
2426c394 214
5a6a30f4 215=back
2426c394 216
5a6a30f4 217=head1 Utility Changes
2426c394 218
5a6a30f4
CBW
219XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
220Most of these are built within the directories F<utils> and F<x2p>.
2426c394 221
5a6a30f4
CBW
222[ List utility changes as a =head3 entry for each utility and =item
223entries for each change
224Use L<XXX> with program names to get proper documentation linking. ]
2426c394 225
5a6a30f4 226=head3 L<XXX>
2426c394 227
5a6a30f4 228=over 4
2426c394
CBW
229
230=item *
231
5a6a30f4 232XXX
2426c394 233
19718730
AC
234=back
235
5a6a30f4 236=head1 Configuration and Compilation
11e375e0 237
5a6a30f4
CBW
238XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
239go here. Any other changes to the Perl build process should be listed here.
240However, any platform-specific changes should be listed in the
241L</Platform Support> section, instead.
19718730 242
5a6a30f4 243[ List changes as a =item entry ].
19718730
AC
244
245=over 4
dd4b1c75
AC
246
247=item *
248
5a6a30f4 249XXX
cb077ed2 250
5d8c8c8a 251=back
5f877a7f 252
5a6a30f4 253=head1 Testing
e14ac59b 254
5a6a30f4
CBW
255XXX Any significant changes to the testing of a freshly built perl should be
256listed here. Changes which create B<new> files in F<t/> go here as do any
257large changes to the testing harness (e.g. when parallel testing was added).
258Changes to existing files in F<t/> aren't worth summarizing, although the bugs
259that they represent may be covered elsewhere.
1ea91bbe 260
5a6a30f4 261[ List each test improvement as a =item entry ]
19718730
AC
262
263=over 4
5e0a247b
KW
264
265=item *
266
5a6a30f4 267XXX
19718730
AC
268
269=back
270
5a6a30f4 271=head1 Platform Support
8b877d20 272
5a6a30f4 273XXX Any changes to platform support should be listed in the sections below.
19718730 274
5a6a30f4
CBW
275[ Within the sections, list each platform as a =item entry with specific
276changes as paragraphs below it. ]
19718730 277
5a6a30f4 278=head2 New Platforms
19718730 279
5a6a30f4
CBW
280XXX List any platforms that this version of perl compiles on, that previous
281versions did not. These will either be enabled by new files in the F<hints/>
282directories, or new subdirectories and F<README> files at the top level of the
283source tree.
19718730
AC
284
285=over 4
e078d89d 286
5a6a30f4 287=item XXX-some-platform
09a49503 288
5a6a30f4 289XXX
09a49503 290
6253ee75 291=back
e078d89d 292
5a6a30f4 293=head2 Discontinued Platforms
19718730 294
5a6a30f4 295XXX List any platforms that this version of perl no longer compiles on.
e078d89d 296
5a6a30f4 297=over 4
b7c7d786 298
5a6a30f4 299=item XXX-some-platform
d2d1e842 300
5a6a30f4 301XXX
d2d1e842 302
5a6a30f4 303=back
d2d1e842 304
5a6a30f4 305=head2 Platform-Specific Notes
d2d1e842 306
5a6a30f4
CBW
307XXX List any changes for specific platforms. This could include configuration
308and compilation changes or changes in portability/compatibility. However,
309changes within modules for platforms should generally be listed in the
310L</Modules and Pragmata> section.
d2d1e842 311
5a6a30f4 312=over 4
b9214e65 313
5a6a30f4 314=item XXX-some-platform
b9214e65 315
5a6a30f4 316XXX
f355e93d 317
5a6a30f4 318=back
f355e93d 319
5a6a30f4 320=head1 Internal Changes
19718730 321
5a6a30f4
CBW
322XXX Changes which affect the interface available to C<XS> code go here. Other
323significant internal changes for future core maintainers should be noted as
324well.
19718730 325
5a6a30f4 326[ List each change as a =item entry ]
19718730 327
19718730 328=over 4
e14ac59b 329
fdea6f98
FC
330=item *
331
9f351b45 332The new copy-on-write mechanism that was introduced in 5.17.7 has now been
e8aa73ce 333disabled by default, since it was felt that there were too many rough
9f351b45
DM
334edges for the 5.18 release. It is expected that it will be enabled by
335default for 5.20.
336
337This change also re-enables PL_sawampersand by default.
338
339It can be enabled in a perl build by running F<Configure> with
340B<-Accflags=-DPERL_NEW_COPY_ON_WRITE>, and we would encourage XS authors to
341try their code with such an enabled perl, and provide feedback.
342XXX need blurb, e.g. a reference to a new section in perlguts or perlxs
343explaining how XS authors should handle COW strings.
344
fdea6f98 345
6253ee75 346=back
7cf3104f 347
5a6a30f4 348=head1 Selected Bug Fixes
8a987e1a 349
5a6a30f4
CBW
350XXX Important bug fixes in the core language are summarized here. Bug fixes in
351files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
785fb813 352
5a6a30f4 353[ List each fix as a =item entry ]
f5778209 354
6253ee75 355=over 4
f5778209 356
216cf7fc
DR
357=item *
358
a7cf6621
RS
359Fix two crashes in the debugger when using Frame=2 or autotrace. These are
360[perl #116769] and [perl #116771].
12719193 361
6253ee75 362=back
216cf7fc 363
5a6a30f4 364=head1 Known Problems
216cf7fc 365
5a6a30f4
CBW
366XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
367tests that had to be C<TODO>ed for the release would be noted here. Unfixed
368platform specific bugs also go here.
d76c0f4b 369
5a6a30f4 370[ List each fix as a =item entry ]
d76c0f4b 371
5a6a30f4 372=over 4
b9214e65 373
250ef6a9
KW
374=item *
375
5a6a30f4 376XXX
250ef6a9 377
5a6a30f4 378=back
250ef6a9 379
5a6a30f4 380=head1 Obituary
250ef6a9 381
5a6a30f4
CBW
382XXX If any significant core contributor has died, we've added a short obituary
383here.
6c042f06 384
19718730 385=head1 Acknowledgements
f5b73711 386
5a6a30f4
CBW
387XXX Generate this with:
388
389 perl Porting/acknowledgements.pl v5.17.9..HEAD
f5b73711 390
44691e6f
AB
391=head1 Reporting Bugs
392
e08634c5
SH
393If you find what you think is a bug, you might check the articles recently
394posted to the comp.lang.perl.misc newsgroup and the perl bug database at
395http://rt.perl.org/perlbug/ . There may also be information at
396http://www.perl.org/ , the Perl Home Page.
44691e6f 397
e08634c5
SH
398If you believe you have an unreported bug, please run the L<perlbug> program
399included with your release. Be sure to trim your bug down to a tiny but
400sufficient test case. Your bug report, along with the output of C<perl -V>,
401will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
402
403If the bug you are reporting has security implications, which make it
e08634c5
SH
404inappropriate to send to a publicly archived mailing list, then please send it
405to perl5-security-report@perl.org. This points to a closed subscription
406unarchived mailing list, which includes all the core committers, who will be
407able to help assess the impact of issues, figure out a resolution, and help
f9001595 408co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
409platforms on which Perl is supported. Please only use this address for
410security issues in the Perl core, not for modules independently distributed on
411CPAN.
44691e6f
AB
412
413=head1 SEE ALSO
414
e08634c5
SH
415The F<Changes> file for an explanation of how to view exhaustive details on
416what changed.
44691e6f
AB
417
418The F<INSTALL> file for how to build Perl.
419
420The F<README> file for general stuff.
421
422The F<Artistic> and F<Copying> files for copyright information.
423
424=cut