This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for undef *^H non-ambiguity
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
f9001595
RS
5[ this is a template for a new perldelta file. Any text flagged as
6XXX needs to be processed before release. ]
2630d42b 7
f9001595 8perldelta - what is new for perl v5.17.0
27f00e3d 9
f9001595 10=head1 DESCRIPTION
2630d42b 11
f9001595
RS
12This document describes differences between the 5.16.0 release and
13the 5.17.0 release.
7620cb10 14
f9001595
RS
15If you are upgrading from an earlier release such as 5.16.0, first read
16L<perl5160delta>, which describes differences between 5.15.0 and
175.16.0.
d7c042c9 18
f9001595 19=head1 Notice
d7c042c9 20
f9001595 21XXX Any important notices here
d7c042c9 22
f9001595 23=head1 Core Enhancements
985213f2 24
f9001595
RS
25XXX New core language features go here. Summarise user-visible core language
26enhancements. Particularly prominent performance optimisations could go
27here, but most should go in the L</Performance Enhancements> section.
977c1d31 28
f9001595 29[ List each enhancement as a =head2 entry ]
977c1d31 30
f9001595 31=head1 Security
985213f2 32
f9001595
RS
33XXX Any security-related notices go here. In particular, any security
34vulnerabilities closed should be noted here rather than in the
35L</Selected Bug Fixes> section.
985213f2 36
f9001595 37[ List each security issue as a =head2 entry ]
2e2b2571 38
f9001595 39=head1 Incompatible Changes
2e2b2571 40
f9001595 41XXX For a release on a stable branch, this section aspires to be:
b240fc0f 42
f9001595
RS
43 There are no changes intentionally incompatible with 5.XXX.XXX
44 If any exist, they are bugs, and we request that you submit a
45 report. See L</Reporting Bugs> below.
27f00e3d 46
f9001595 47[ List each incompatible change as a =head2 entry ]
27f00e3d 48
f9001595 49=head1 Deprecations
cadced9f 50
f9001595
RS
51XXX Any deprecated features, syntax, modules etc. should be listed here.
52In particular, deprecated modules should be listed here even if they are
53listed as an updated module in the L</Modules and Pragmata> section.
cadced9f 54
f9001595 55[ List each deprecation as a =head2 entry ]
05c8f9ed 56
f9001595 57=head1 Performance Enhancements
05c8f9ed 58
f9001595
RS
59XXX Changes which enhance performance without changing behaviour go here. There
60may well be none in a stable release.
632c5d30 61
f9001595 62[ List each enhancement as a =item entry ]
632c5d30 63
f9001595 64=over 4
05c8f9ed
RS
65
66=item *
67
f9001595 68XXX
95ce428c 69
2630d42b 70=back
95ce428c 71
f9001595 72=head1 Modules and Pragmata
c11980ad 73
f9001595
RS
74XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
75go here. If Module::CoreList is updated, generate an initial draft of the
76following sections using F<Porting/corelist-perldelta.pl>, which prints stub
77entries to STDOUT. Results can be pasted in place of the '=head2' entries
78below. A paragraph summary for important changes should then be added by hand.
79In an ideal world, dual-life modules would have a F<Changes> file that could be
80cribbed.
c88a046d 81
f9001595 82[ Within each section, list entries as a =item entry ]
6c69e197 83
f9001595 84=head2 New Modules and Pragmata
c88a046d 85
f9001595 86=over 4
c88a046d
A
87
88=item *
89
f9001595 90XXX
c88a046d 91
2630d42b 92=back
c88a046d 93
f9001595 94=head2 Updated Modules and Pragmata
05c8f9ed 95
f9001595 96=over 4
75ff5956 97
2630d42b 98=item *
c11980ad 99
83fb037c
FC
100L<Hash::Util> has been upgraded from version 0.11 to version 0.12.
101
102C<hash_unlocked> and C<hashref_unlocked> now returns true if the hash is
103unlocked, instead of always returning false [perl #112126].
104
105C<hash_unlocked>, C<hashref_unlocked>, C<lock_hash_recurse> and
106C<unlock_hash_recurse> are now exportable [perl #112126].
107
108Two new functions, C<hash_locked> and C<hashref_locked>, have been added.
109Oddly enough, these two functions were already exported, even though they
110did not exist [perl #112126].
111
112=item *
113
18d0dfa8
FC
114L<Storable> has been upgraded from version 2.34 to version 2.35.
115
116Modifying C<$_[0]> within C<STORABLE_freeze> no longer results in crashes
117[perl #112358].
843331c7 118
2630d42b 119=back
c11980ad 120
f9001595 121=head2 Removed Modules and Pragmata
ecd144ea 122
f9001595 123=over 4
05c8f9ed
RS
124
125=item *
126
f9001595 127XXX
9dea6244 128
204b72a4 129=back
9dea6244 130
f9001595 131=head1 Documentation
2a7afa74 132
f9001595
RS
133XXX Changes to files in F<pod/> go here. Consider grouping entries by
134file and be sure to link to the appropriate page, e.g. L<perlfunc>.
e9e4ee62 135
f9001595 136=head2 New Documentation
937a45d0 137
f9001595 138XXX Changes which create B<new> files in F<pod/> go here.
ef337e16 139
f9001595 140=head3 L<XXX>
ef337e16 141
f9001595 142XXX Description of the purpose of the new file here
679b54e7 143
f9001595 144=head2 Changes to Existing Documentation
39de7394 145
f9001595
RS
146XXX Changes which significantly change existing files in F<pod/> go here.
147However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
148section.
2630d42b 149
f9001595 150=head3 L<XXX>
2630d42b 151
f9001595 152=over 4
52272450 153
84ecb73f
S
154=item *
155
f9001595 156XXX Description of the change here
84ecb73f 157
52deee2e 158=back
5dd80d85 159
f9001595 160=head1 Diagnostics
52272450 161
f9001595
RS
162The following additions or changes have been made to diagnostic output,
163including warnings and fatal error messages. For the complete list of
164diagnostic messages, see L<perldiag>.
249950d7 165
f9001595
RS
166XXX New or changed warnings emitted by the core's C<C> code go here. Also
167include any changes in L<perldiag> that reconcile it to the C<C> code.
05c8f9ed 168
f9001595
RS
169[ Within each section, list entries as a =item entry that links to perldiag,
170 e.g.
a1d95121 171
f9001595 172 =item *
977c1d31 173
f9001595
RS
174 L<Invalid version object|perldiag/"Invalid version object">
175]
977c1d31 176
f9001595 177=head2 New Diagnostics
05c8f9ed 178
f9001595 179XXX Newly added diagnostic messages go here
05c8f9ed 180
f9001595 181=head3 New Errors
977c1d31 182
f9001595 183=over 4
39ea6a4b 184
05c8f9ed
RS
185=item *
186
f9001595 187XXX L<message|perldiag/"message">
39ea6a4b 188
977c1d31 189=back
ea317ccb 190
f9001595 191=head3 New Warnings
05c8f9ed 192
f9001595 193=over 4
05c8f9ed
RS
194
195=item *
d5dc7001 196
f9001595 197XXX L<message|perldiag/"message">
d5dc7001 198
2630d42b 199=back
d5dc7001 200
f9001595 201=head2 Changes to Existing Diagnostics
05c8f9ed 202
f9001595 203XXX Changes (i.e. rewording) of diagnostic messages go here
05c8f9ed 204
f9001595 205=over 4
05c8f9ed
RS
206
207=item *
208
f9001595 209XXX Describe change here
05c8f9ed 210
f9001595 211=back
05c8f9ed 212
f9001595 213=head1 Utility Changes
05c8f9ed 214
f9001595
RS
215XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
216here. Most of these are built within the directories F<utils> and F<x2p>.
05c8f9ed 217
f9001595
RS
218[ List utility changes as a =head3 entry for each utility and =item
219entries for each change
220Use L<XXX> with program names to get proper documentation linking. ]
05c8f9ed 221
f9001595 222=head3 L<XXX>
05c8f9ed 223
f9001595 224=over 4
05c8f9ed
RS
225
226=item *
227
f9001595 228XXX
05c8f9ed 229
f9001595 230=back
05c8f9ed 231
f9001595 232=head1 Configuration and Compilation
05c8f9ed 233
f9001595
RS
234XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
235go here. Any other changes to the Perl build process should be listed here.
236However, any platform-specific changes should be listed in the
237L</Platform Support> section, instead.
05c8f9ed 238
f9001595 239[ List changes as a =item entry ].
05c8f9ed 240
f9001595 241=over 4
05c8f9ed
RS
242
243=item *
244
f9001595 245XXX
05c8f9ed 246
f9001595 247=back
05c8f9ed 248
f9001595 249=head1 Testing
05c8f9ed 250
f9001595
RS
251XXX Any significant changes to the testing of a freshly built perl should be
252listed here. Changes which create B<new> files in F<t/> go here as do any
253large changes to the testing harness (e.g. when parallel testing was added).
254Changes to existing files in F<t/> aren't worth summarising, although the bugs
255that they represent may be covered elsewhere.
05c8f9ed 256
f9001595 257[ List each test improvement as a =item entry ]
05c8f9ed 258
f9001595 259=over 4
05c8f9ed
RS
260
261=item *
262
f9001595 263XXX
05c8f9ed 264
f9001595 265=back
05c8f9ed 266
f9001595 267=head1 Platform Support
05c8f9ed 268
f9001595 269XXX Any changes to platform support should be listed in the sections below.
05c8f9ed 270
f9001595
RS
271[ Within the sections, list each platform as a =item entry with specific
272changes as paragraphs below it. ]
05c8f9ed 273
f9001595 274=head2 New Platforms
05c8f9ed 275
f9001595
RS
276XXX List any platforms that this version of perl compiles on, that previous
277versions did not. These will either be enabled by new files in the F<hints/>
278directories, or new subdirectories and F<README> files at the top level of the
279source tree.
05c8f9ed 280
f9001595 281=over 4
05c8f9ed 282
f9001595 283=item XXX-some-platform
05c8f9ed 284
f9001595 285XXX
05c8f9ed 286
f9001595 287=back
05c8f9ed 288
f9001595 289=head2 Discontinued Platforms
05c8f9ed 290
f9001595 291XXX List any platforms that this version of perl no longer compiles on.
05c8f9ed 292
f9001595 293=over 4
05c8f9ed 294
f9001595 295=item XXX-some-platform
05c8f9ed 296
f9001595 297XXX
05c8f9ed 298
f9001595 299=back
05c8f9ed 300
f9001595 301=head2 Platform-Specific Notes
05c8f9ed 302
f9001595
RS
303XXX List any changes for specific platforms. This could include configuration
304and compilation changes or changes in portability/compatibility. However,
305changes within modules for platforms should generally be listed in the
306L</Modules and Pragmata> section.
05c8f9ed 307
f9001595 308=over 4
05c8f9ed 309
f9001595 310=item XXX-some-platform
05c8f9ed 311
f9001595 312XXX
05c8f9ed 313
f9001595 314=back
05c8f9ed 315
f9001595 316=head1 Internal Changes
05c8f9ed 317
f9001595
RS
318XXX Changes which affect the interface available to C<XS> code go here.
319Other significant internal changes for future core maintainers should
320be noted as well.
05c8f9ed 321
f9001595 322[ List each change as a =item entry ]
05c8f9ed 323
f9001595 324=over 4
05c8f9ed
RS
325
326=item *
327
f9001595 328XXX
05c8f9ed 329
f9001595 330=back
05c8f9ed 331
f9001595 332=head1 Selected Bug Fixes
05c8f9ed 333
f9001595
RS
334XXX Important bug fixes in the core language are summarised here.
335Bug fixes in files in F<ext/> and F<lib/> are best summarised in
336L</Modules and Pragmata>.
e2e06450 337
f9001595 338[ List each fix as a =item entry ]
e2e06450 339
f9001595 340=over 4
05c8f9ed
RS
341
342=item *
343
cba2262a
FC
344C<goto ''> now looks for an empty label, producing the "goto must have
345label" error message, instead of exiting the program [perl #111794].
e2e06450 346
b9b99128
FC
347=item *
348
349C<goto "\0"> now dies with "Can't find label" instead of "goto must have
350label".
351
47fb883d
FC
352=item *
353
354The C function C<hv_store> used to result in crashes when used on C<%^H>
355[perl #111000].
356
5f0f4bc0
FC
357=item *
358
359A call checker attached to a closure prototype via C<cv_set_call_checker>
360is now copied to closures cloned from it. So C<cv_set_call_checker> now
361works inside an attribute handler for a closure.
362
ba0d99ee
FC
363=item *
364
365Writing to C<$^N> used to have no effect. Now it croaks with "Modification
366of a read-only value" by default, but that can be overridden by a custom
367regular expression engine, as with C<$1> [perl #112184].
368
72035cb1
FC
369=item *
370
371C<undef> on a control character glob (C<undef *^H>) no longer emits an
372erroneous warning about ambiguity [perl #112456].
373
2630d42b 374=back
e2e06450 375
2630d42b 376=head1 Known Problems
e2e06450 377
f9001595
RS
378XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
379tests that had to be C<TODO>ed for the release would be noted here, unless
380they were specific to a particular platform (see below).
fcc3aaa8 381
f9001595
RS
382This is a list of some significant unfixed bugs, which are regressions
383from either 5.XXX.XXX or 5.XXX.XXX.
05c8f9ed 384
f9001595 385[ List each fix as a =item entry ]
05c8f9ed 386
f9001595 387=over 4
05c8f9ed
RS
388
389=item *
390
f9001595 391XXX
c0154fe2 392
05c8f9ed 393=back
d5dc7001 394
f9001595
RS
395=head1 Obituary
396
397XXX If any significant core contributor has died, we've added a short obituary
398here.
d5dc7001 399
2630d42b 400=head1 Acknowledgements
d5dc7001 401
f9001595
RS
402XXX Generate this with:
403
404 perl Porting/acknowledgements.pl v5.16.0..HEAD
29cf780c 405
44691e6f
AB
406=head1 Reporting Bugs
407
408If you find what you think is a bug, you might check the articles
52deee2e 409recently posted to the comp.lang.perl.misc newsgroup and the perl
f9001595
RS
410bug database at http://rt.perl.org/perlbug/ . There may also be
411information at http://www.perl.org/ , the Perl Home Page.
44691e6f
AB
412
413If you believe you have an unreported bug, please run the L<perlbug>
52deee2e
DR
414program included with your release. Be sure to trim your bug down
415to a tiny but sufficient test case. Your bug report, along with the
416output of C<perl -V>, will be sent off to perlbug@perl.org to be
417analysed by the Perl porting team.
44691e6f
AB
418
419If the bug you are reporting has security implications, which make it
f9001595
RS
420inappropriate to send to a publicly archived mailing list, then please send
421it to perl5-security-report@perl.org. This points to a closed subscription
422unarchived mailing list, which includes
423all the core committers, who will be able
424to help assess the impact of issues, figure out a resolution, and help
425co-ordinate the release of patches to mitigate or fix the problem across all
426platforms on which Perl is supported. Please only use this address for
427security issues in the Perl core, not for modules independently
428distributed on CPAN.
44691e6f
AB
429
430=head1 SEE ALSO
431
52deee2e
DR
432The F<Changes> file for an explanation of how to view exhaustive details
433on what changed.
44691e6f
AB
434
435The F<INSTALL> file for how to build Perl.
436
437The F<README> file for general stuff.
438
439The F<Artistic> and F<Copying> files for copyright information.
440
441=cut