This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Re-order intrpvar.h to minimise holes in the interpreter struct.
[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
5a6a30f4 118=back
2426c394 119
5a6a30f4 120=head2 Removed Modules and Pragmata
2426c394 121
5a6a30f4 122=over 4
2426c394
CBW
123
124=item *
125
5a6a30f4 126XXX
2426c394 127
5a6a30f4 128=back
2426c394 129
5a6a30f4 130=head1 Documentation
2426c394 131
5a6a30f4
CBW
132XXX Changes to files in F<pod/> go here. Consider grouping entries by
133file and be sure to link to the appropriate page, e.g. L<perlfunc>.
2426c394 134
5a6a30f4 135=head2 New Documentation
2426c394 136
5a6a30f4 137XXX Changes which create B<new> files in F<pod/> go here.
2426c394 138
5a6a30f4 139=head3 L<XXX>
2426c394 140
5a6a30f4 141XXX Description of the purpose of the new file here
2426c394 142
5a6a30f4 143=head2 Changes to Existing Documentation
2426c394 144
5a6a30f4
CBW
145XXX Changes which significantly change existing files in F<pod/> go here.
146However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
147section.
2426c394 148
2171640d 149=head3 L<perlrebackslash/\N>
2426c394 150
5a6a30f4 151=over 4
2426c394
CBW
152
153=item *
154
2171640d 155This feature is no longer experimental.
2426c394 156
5a6a30f4 157=back
e58c5aaf 158
5a6a30f4 159=head1 Diagnostics
7a7a10c7 160
5a6a30f4
CBW
161The following additions or changes have been made to diagnostic output,
162including warnings and fatal error messages. For the complete list of
163diagnostic messages, see L<perldiag>.
2426c394 164
5a6a30f4
CBW
165XXX New or changed warnings emitted by the core's C<C> code go here. Also
166include any changes in L<perldiag> that reconcile it to the C<C> code.
2426c394 167
5a6a30f4 168=head2 New Diagnostics
2426c394 169
5a6a30f4
CBW
170XXX Newly added diagnostic messages go under here, separated into New Errors
171and New Warnings
2426c394 172
5a6a30f4 173=head3 New Errors
2426c394 174
5a6a30f4 175=over 4
2426c394
CBW
176
177=item *
178
5a6a30f4 179XXX L<message|perldiag/"message">
2426c394 180
5a6a30f4 181=back
2426c394 182
5a6a30f4 183=head3 New Warnings
2426c394 184
5a6a30f4 185=over 4
2426c394
CBW
186
187=item *
188
5a6a30f4 189XXX L<message|perldiag/"message">
2426c394 190
5a6a30f4 191=back
2426c394 192
5a6a30f4 193=head2 Changes to Existing Diagnostics
2426c394 194
5a6a30f4 195XXX Changes (i.e. rewording) of diagnostic messages go here
2426c394 196
5a6a30f4 197=over 4
2426c394
CBW
198
199=item *
200
5a6a30f4 201XXX Describe change here
2426c394 202
5a6a30f4 203=back
2426c394 204
5a6a30f4 205=head1 Utility Changes
2426c394 206
5a6a30f4
CBW
207XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
208Most of these are built within the directories F<utils> and F<x2p>.
2426c394 209
5a6a30f4
CBW
210[ List utility changes as a =head3 entry for each utility and =item
211entries for each change
212Use L<XXX> with program names to get proper documentation linking. ]
2426c394 213
5a6a30f4 214=head3 L<XXX>
2426c394 215
5a6a30f4 216=over 4
2426c394
CBW
217
218=item *
219
5a6a30f4 220XXX
2426c394 221
19718730
AC
222=back
223
5a6a30f4 224=head1 Configuration and Compilation
11e375e0 225
5a6a30f4
CBW
226XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
227go here. Any other changes to the Perl build process should be listed here.
228However, any platform-specific changes should be listed in the
229L</Platform Support> section, instead.
19718730 230
5a6a30f4 231[ List changes as a =item entry ].
19718730
AC
232
233=over 4
dd4b1c75
AC
234
235=item *
236
5a6a30f4 237XXX
cb077ed2 238
5d8c8c8a 239=back
5f877a7f 240
5a6a30f4 241=head1 Testing
e14ac59b 242
5a6a30f4
CBW
243XXX Any significant changes to the testing of a freshly built perl should be
244listed here. Changes which create B<new> files in F<t/> go here as do any
245large changes to the testing harness (e.g. when parallel testing was added).
246Changes to existing files in F<t/> aren't worth summarizing, although the bugs
247that they represent may be covered elsewhere.
1ea91bbe 248
5a6a30f4 249[ List each test improvement as a =item entry ]
19718730
AC
250
251=over 4
5e0a247b
KW
252
253=item *
254
5a6a30f4 255XXX
19718730
AC
256
257=back
258
5a6a30f4 259=head1 Platform Support
8b877d20 260
5a6a30f4 261XXX Any changes to platform support should be listed in the sections below.
19718730 262
5a6a30f4
CBW
263[ Within the sections, list each platform as a =item entry with specific
264changes as paragraphs below it. ]
19718730 265
5a6a30f4 266=head2 New Platforms
19718730 267
5a6a30f4
CBW
268XXX List any platforms that this version of perl compiles on, that previous
269versions did not. These will either be enabled by new files in the F<hints/>
270directories, or new subdirectories and F<README> files at the top level of the
271source tree.
19718730
AC
272
273=over 4
e078d89d 274
5a6a30f4 275=item XXX-some-platform
09a49503 276
5a6a30f4 277XXX
09a49503 278
6253ee75 279=back
e078d89d 280
5a6a30f4 281=head2 Discontinued Platforms
19718730 282
5a6a30f4 283XXX List any platforms that this version of perl no longer compiles on.
e078d89d 284
5a6a30f4 285=over 4
b7c7d786 286
5a6a30f4 287=item XXX-some-platform
d2d1e842 288
5a6a30f4 289XXX
d2d1e842 290
5a6a30f4 291=back
d2d1e842 292
5a6a30f4 293=head2 Platform-Specific Notes
d2d1e842 294
5a6a30f4
CBW
295XXX List any changes for specific platforms. This could include configuration
296and compilation changes or changes in portability/compatibility. However,
297changes within modules for platforms should generally be listed in the
298L</Modules and Pragmata> section.
d2d1e842 299
5a6a30f4 300=over 4
b9214e65 301
5a6a30f4 302=item XXX-some-platform
b9214e65 303
5a6a30f4 304XXX
f355e93d 305
5a6a30f4 306=back
f355e93d 307
5a6a30f4 308=head1 Internal Changes
19718730 309
5a6a30f4
CBW
310XXX Changes which affect the interface available to C<XS> code go here. Other
311significant internal changes for future core maintainers should be noted as
312well.
19718730 313
5a6a30f4 314[ List each change as a =item entry ]
19718730 315
19718730 316=over 4
e14ac59b 317
fdea6f98
FC
318=item *
319
9f351b45 320The new copy-on-write mechanism that was introduced in 5.17.7 has now been
e8aa73ce 321disabled by default, since it was felt that there were too many rough
9f351b45
DM
322edges for the 5.18 release. It is expected that it will be enabled by
323default for 5.20.
324
325This change also re-enables PL_sawampersand by default.
326
327It can be enabled in a perl build by running F<Configure> with
328B<-Accflags=-DPERL_NEW_COPY_ON_WRITE>, and we would encourage XS authors to
329try their code with such an enabled perl, and provide feedback.
330XXX need blurb, e.g. a reference to a new section in perlguts or perlxs
331explaining how XS authors should handle COW strings.
332
fdea6f98 333
6253ee75 334=back
7cf3104f 335
5a6a30f4 336=head1 Selected Bug Fixes
8a987e1a 337
5a6a30f4
CBW
338XXX Important bug fixes in the core language are summarized here. Bug fixes in
339files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
785fb813 340
5a6a30f4 341[ List each fix as a =item entry ]
f5778209 342
6253ee75 343=over 4
f5778209 344
216cf7fc
DR
345=item *
346
a7cf6621
RS
347Fix two crashes in the debugger when using Frame=2 or autotrace. These are
348[perl #116769] and [perl #116771].
12719193 349
6253ee75 350=back
216cf7fc 351
5a6a30f4 352=head1 Known Problems
216cf7fc 353
5a6a30f4
CBW
354XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
355tests that had to be C<TODO>ed for the release would be noted here. Unfixed
356platform specific bugs also go here.
d76c0f4b 357
5a6a30f4 358[ List each fix as a =item entry ]
d76c0f4b 359
5a6a30f4 360=over 4
b9214e65 361
250ef6a9
KW
362=item *
363
5a6a30f4 364XXX
250ef6a9 365
5a6a30f4 366=back
250ef6a9 367
5a6a30f4 368=head1 Obituary
250ef6a9 369
5a6a30f4
CBW
370XXX If any significant core contributor has died, we've added a short obituary
371here.
6c042f06 372
19718730 373=head1 Acknowledgements
f5b73711 374
5a6a30f4
CBW
375XXX Generate this with:
376
377 perl Porting/acknowledgements.pl v5.17.9..HEAD
f5b73711 378
44691e6f
AB
379=head1 Reporting Bugs
380
e08634c5
SH
381If you find what you think is a bug, you might check the articles recently
382posted to the comp.lang.perl.misc newsgroup and the perl bug database at
383http://rt.perl.org/perlbug/ . There may also be information at
384http://www.perl.org/ , the Perl Home Page.
44691e6f 385
e08634c5
SH
386If you believe you have an unreported bug, please run the L<perlbug> program
387included with your release. Be sure to trim your bug down to a tiny but
388sufficient test case. Your bug report, along with the output of C<perl -V>,
389will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
390
391If the bug you are reporting has security implications, which make it
e08634c5
SH
392inappropriate to send to a publicly archived mailing list, then please send it
393to perl5-security-report@perl.org. This points to a closed subscription
394unarchived mailing list, which includes all the core committers, who will be
395able to help assess the impact of issues, figure out a resolution, and help
f9001595 396co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
397platforms on which Perl is supported. Please only use this address for
398security issues in the Perl core, not for modules independently distributed on
399CPAN.
44691e6f
AB
400
401=head1 SEE ALSO
402
e08634c5
SH
403The F<Changes> file for an explanation of how to view exhaustive details on
404what changed.
44691e6f
AB
405
406The F<INSTALL> file for how to build Perl.
407
408The F<README> file for general stuff.
409
410The F<Artistic> and F<Copying> files for copyright information.
411
412=cut