This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for study code removal
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
61174fb5
Z
5[ this is a template for a new perldelta file. Any text flagged as
6XXX needs to be processed before release. ]
7
8perldelta - what is new for perl v5.17.1
27f00e3d 9
f9001595 10=head1 DESCRIPTION
2630d42b 11
61174fb5
Z
12This document describes differences between the 5.17.0 release and
13the 5.17.1 release.
7620cb10 14
f9001595 15If you are upgrading from an earlier release such as 5.16.0, first read
61174fb5
Z
16L<perl5170delta>, which describes differences between 5.16.0 and
175.17.0.
d7c042c9 18
61174fb5 19=head1 Notice
2e2b2571 20
61174fb5 21XXX Any important notices here
417a992d 22
61174fb5 23=head1 Core Enhancements
417a992d 24
61174fb5
Z
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.
417a992d 28
61174fb5 29[ List each enhancement as a =head2 entry ]
075b9d7d 30
028c8719
FC
31=head2 More CORE:: subs
32
33Several more built-in functions have been added as subroutines to the
34CORE:: namespace, namely, those non-overridable keywords that can be
35implemented without custom parsers: C<defined>, C<delete>, C<exists>,
36C<glob>, C<pos>, C<protoytpe>, C<scalar>, C<split>, C<study>, C<undef>,
37
38As some of these have prototypes, C<prototype('CORE::...')> has been
39changed not to make a distinction between overridable and non-overridable
40keywords. This is to make C<prototype('CORE::pos')> consistent with
41C<prototype(&CORE::pos)>.
42
61174fb5 43=head1 Security
075b9d7d 44
61174fb5
Z
45XXX Any security-related notices go here. In particular, any security
46vulnerabilities closed should be noted here rather than in the
47L</Selected Bug Fixes> section.
cadced9f 48
61174fb5 49[ List each security issue as a =head2 entry ]
30608892 50
61174fb5 51=head1 Incompatible Changes
30608892 52
61174fb5 53XXX For a release on a stable branch, this section aspires to be:
05c8f9ed 54
61174fb5
Z
55 There are no changes intentionally incompatible with 5.XXX.XXX
56 If any exist, they are bugs, and we request that you submit a
57 report. See L</Reporting Bugs> below.
05c8f9ed 58
fe3193b5
KW
59=head2 C<\N{BELL}> now refers to U+1F514 instead of U+0007
60
61Unicode 6.0 reused the name "BELL" for a different code point than it
62traditionally had meant. Since Perl v5.14, use of this name still
63referred to U+0007, but would raise a deprecated warning. Now, "BELL"
64refers to U+1F514, and the name for U+0007 is "ALERT". All the
65functions in L<charnames> have been correspondingly updated.
05c8f9ed 66
61174fb5 67=head1 Deprecations
ef7131e9 68
61174fb5
Z
69XXX Any deprecated features, syntax, modules etc. should be listed here.
70In particular, deprecated modules should be listed here even if they are
71listed as an updated module in the L</Modules and Pragmata> section.
ef7131e9 72
61174fb5 73[ List each deprecation as a =head2 entry ]
ef7131e9 74
61174fb5 75=head1 Performance Enhancements
95ce428c 76
61174fb5
Z
77XXX Changes which enhance performance without changing behaviour go here. There
78may well be none in a stable release.
c11980ad 79
61174fb5 80[ List each enhancement as a =item entry ]
05c8f9ed 81
f9001595 82=over 4
75ff5956 83
2630d42b 84=item *
c11980ad 85
61174fb5 86XXX
53de3ff0 87
61174fb5 88=back
ef7131e9 89
61174fb5 90=head1 Modules and Pragmata
ef7131e9 91
61174fb5
Z
92XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
93go here. If Module::CoreList is updated, generate an initial draft of the
94following sections using F<Porting/corelist-perldelta.pl>, which prints stub
95entries to STDOUT. Results can be pasted in place of the '=head2' entries
96below. A paragraph summary for important changes should then be added by hand.
97In an ideal world, dual-life modules would have a F<Changes> file that could be
98cribbed.
ef7131e9 99
61174fb5 100[ Within each section, list entries as a =item entry ]
435b0bdb 101
61174fb5 102=head2 New Modules and Pragmata
435b0bdb 103
61174fb5 104=over 4
be8dfbf7 105
435b0bdb
FC
106=item *
107
61174fb5 108XXX
83fb037c 109
61174fb5 110=back
83fb037c 111
61174fb5 112=head2 Updated Modules and Pragmata
83fb037c 113
61174fb5 114=over 4
83fb037c
FC
115
116=item *
117
c01b3876
SH
118L<ExtUtils::CBuilder> has been upgraded from version 0.280206 to 0.280208.
119
120Manifest files are now correctly embedded for those versions of VC++ which
121make use of them.
122
123=item *
124
4d219cc2
FC
125L<ExtUtils::CBuilder> has been upgraded from version 0.280206 to 0.280208.
126
127It no longer fails when trying to embed manifests on Windows
128[perl #111782, #111798].
129
130=item *
131
ff3f295c
NC
132L<File::DosGlob> has been upgraded from version 1.07 to 1.08.
133
134There are no visible changes, only minor internal refactorings.
135
136=item *
137
c506fc7e
FC
138L<File::Spec::Unix> has been upgraded from version 3.39_02 to 3.39_03.
139
140C<abs2rel> could produce incorrect results when given two relative paths or
141the root directory twice [perl #111510].
142
143=item *
144
d9661073 145L<IO> has been upgraded from version 1.25_06 to 1.25_07.
1c633914 146
d9661073 147C<sync()> can now be called on read-only file handles [perl #64772].
f558db2f 148
66aa79e2
KW
149=item *
150
99565752
NC
151L<Pod::Html> has been upgraded from version 1.15_02 to 1.16.
152
153The option C<--libpods> has been re-instated. It is deprecated, and its use
154does nothing other than issue a warning that it is no longer supported.
155
156=item *
157
d9661073
FC
158L<Unicode::UCD> has been upgraded from version 0.43 to 0.44.
159
66aa79e2
KW
160This adds a function L<all_casefolds()|Unicode::UCD/all_casefolds()>
161that returns all the casefolds.
162
61174fb5 163=back
f558db2f 164
61174fb5 165=head2 Removed Modules and Pragmata
e3329bf0 166
61174fb5 167=over 4
e3329bf0
FC
168
169=item *
170
61174fb5 171XXX
80b8b050 172
61174fb5 173=back
80b8b050 174
61174fb5 175=head1 Documentation
80b8b050 176
61174fb5
Z
177XXX Changes to files in F<pod/> go here. Consider grouping entries by
178file and be sure to link to the appropriate page, e.g. L<perlfunc>.
18d0dfa8 179
61174fb5 180=head2 New Documentation
843331c7 181
61174fb5 182XXX Changes which create B<new> files in F<pod/> go here.
53de3ff0 183
61174fb5 184=head3 L<XXX>
30608892 185
61174fb5 186XXX Description of the purpose of the new file here
30608892 187
61174fb5 188=head2 Changes to Existing Documentation
30608892 189
61174fb5
Z
190XXX Changes which significantly change existing files in F<pod/> go here.
191However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
192section.
c11980ad 193
61174fb5 194=head3 L<XXX>
ecd144ea 195
f9001595 196=over 4
05c8f9ed
RS
197
198=item *
199
61174fb5 200XXX Description of the change here
9dea6244 201
204b72a4 202=back
9dea6244 203
61174fb5 204=head1 Diagnostics
ef7131e9 205
61174fb5
Z
206The following additions or changes have been made to diagnostic output,
207including warnings and fatal error messages. For the complete list of
208diagnostic messages, see L<perldiag>.
ef7131e9 209
61174fb5
Z
210XXX New or changed warnings emitted by the core's C<C> code go here. Also
211include any changes in L<perldiag> that reconcile it to the C<C> code.
ef7131e9 212
61174fb5
Z
213[ Within each section, list entries as a =item entry that links to perldiag,
214 e.g.
ef7131e9 215
61174fb5 216 =item *
ef7131e9 217
61174fb5
Z
218 L<Invalid version object|perldiag/"Invalid version object">
219]
80b8b050 220
61174fb5 221=head2 New Diagnostics
80b8b050 222
61174fb5 223XXX Newly added diagnostic messages go here
80b8b050 224
61174fb5 225=head3 New Errors
80b8b050
Z
226
227=over 4
228
229=item *
230
61174fb5 231XXX L<message|perldiag/"message">
80b8b050 232
52deee2e 233=back
5dd80d85 234
f9001595 235=head3 New Warnings
05c8f9ed 236
f9001595 237=over 4
05c8f9ed
RS
238
239=item *
d5dc7001 240
61174fb5 241XXX L<message|perldiag/"message">
30608892 242
f9001595 243=back
05c8f9ed 244
61174fb5
Z
245=head2 Changes to Existing Diagnostics
246
247XXX Changes (i.e. rewording) of diagnostic messages go here
05c8f9ed 248
f9001595 249=over 4
05c8f9ed
RS
250
251=item *
252
61174fb5 253XXX Describe change here
ef7131e9 254
f9001595 255=back
05c8f9ed 256
61174fb5 257=head1 Utility Changes
05c8f9ed 258
61174fb5
Z
259XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
260here. Most of these are built within the directories F<utils> and F<x2p>.
05c8f9ed 261
61174fb5
Z
262[ List utility changes as a =head3 entry for each utility and =item
263entries for each change
264Use L<XXX> with program names to get proper documentation linking. ]
05c8f9ed 265
61174fb5 266=head3 L<XXX>
30608892 267
61174fb5 268=over 4
30608892 269
61174fb5 270=item *
30608892 271
61174fb5 272XXX
30608892 273
61174fb5 274=back
30608892 275
61174fb5 276=head1 Configuration and Compilation
30608892 277
61174fb5
Z
278XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
279go here. Any other changes to the Perl build process should be listed here.
280However, any platform-specific changes should be listed in the
281L</Platform Support> section, instead.
05c8f9ed 282
61174fb5 283[ List changes as a =item entry ].
05c8f9ed 284
f9001595 285=over 4
05c8f9ed
RS
286
287=item *
288
61174fb5 289XXX
53de3ff0 290
61174fb5 291=back
a3367fba 292
61174fb5 293=head1 Testing
a3367fba 294
61174fb5
Z
295XXX Any significant changes to the testing of a freshly built perl should be
296listed here. Changes which create B<new> files in F<t/> go here as do any
297large changes to the testing harness (e.g. when parallel testing was added).
298Changes to existing files in F<t/> aren't worth summarising, although the bugs
299that they represent may be covered elsewhere.
a3367fba 300
61174fb5 301[ List each test improvement as a =item entry ]
a3367fba 302
61174fb5 303=over 4
05c8f9ed 304
30608892
Z
305=item *
306
61174fb5 307XXX
30608892 308
f9001595 309=back
05c8f9ed 310
61174fb5 311=head1 Platform Support
05c8f9ed 312
61174fb5 313XXX Any changes to platform support should be listed in the sections below.
05c8f9ed 314
61174fb5
Z
315[ Within the sections, list each platform as a =item entry with specific
316changes as paragraphs below it. ]
05c8f9ed 317
61174fb5 318=head2 New Platforms
e2e06450 319
61174fb5
Z
320XXX List any platforms that this version of perl compiles on, that previous
321versions did not. These will either be enabled by new files in the F<hints/>
322directories, or new subdirectories and F<README> files at the top level of the
323source tree.
b9b99128 324
61174fb5 325=over 4
b9b99128 326
61174fb5 327=item XXX-some-platform
47fb883d 328
61174fb5 329XXX
47fb883d 330
61174fb5 331=back
5f0f4bc0 332
61174fb5 333=head2 Discontinued Platforms
5f0f4bc0 334
61174fb5 335XXX List any platforms that this version of perl no longer compiles on.
ba0d99ee 336
61174fb5 337=over 4
ba0d99ee 338
61174fb5 339=item XXX-some-platform
72035cb1 340
61174fb5 341XXX
72035cb1 342
61174fb5 343=back
ceb0881c 344
61174fb5 345=head2 Platform-Specific Notes
ceb0881c 346
61174fb5
Z
347XXX List any changes for specific platforms. This could include configuration
348and compilation changes or changes in portability/compatibility. However,
349changes within modules for platforms should generally be listed in the
350L</Modules and Pragmata> section.
89cbc6b8 351
61174fb5 352=over 4
89cbc6b8 353
4aa4c0a5 354=item Win32
c6b15a5a 355
4aa4c0a5
TC
356C<link> on Win32 now attempts to set C<$!> to more appropriate values
357based on the Win32 API error code. [perl #112272]
c6b15a5a 358
61174fb5 359=back
8e125188 360
61174fb5 361=head1 Internal Changes
8e125188 362
61174fb5
Z
363XXX Changes which affect the interface available to C<XS> code go here.
364Other significant internal changes for future core maintainers should
365be noted as well.
8e125188 366
61174fb5 367[ List each change as a =item entry ]
c4643160 368
61174fb5 369=over 4
c4643160 370
422287bf
FC
371=item *
372
b7e9bef4
FC
373The C<study> function was made a no-op in 5.16. It was simply disabled via
374a C<return> statement; the code was left in place. Now the code supporting
375what C<study> used to do has been removed.
53de3ff0 376
61174fb5 377=back
422287bf 378
61174fb5 379=head1 Selected Bug Fixes
2de6ba8d 380
61174fb5
Z
381XXX Important bug fixes in the core language are summarised here.
382Bug fixes in files in F<ext/> and F<lib/> are best summarised in
383L</Modules and Pragmata>.
2de6ba8d 384
61174fb5 385[ List each fix as a =item entry ]
52c4b146 386
61174fb5 387=over 4
52c4b146 388
9aa9a888
KW
389=item *
390
7ade940c
KW
391Perl now works as well as can be expected on all releases of Unicode so
392far. In v5.16, it worked on Unicodes 6.0 and 6.1, but there were
393various bugs for earlier releases; the older the release the more
394problems.
9aa9a888 395
701da2e9
FC
396=item *
397
398C<vec> no longer produces "uninitialized" warnings in lvalue context
399[perl #9423].
400
d67d4c0e
FC
401=item *
402
d9661073 403An optimisation involving fixed strings in regular expressions could cause
d67d4c0e
FC
404a severe performance penalty in edge cases. This has been fixed
405[perl #76546].
406
b9dc63e8
FC
407=item *
408
409The "Can't find an opnumber" message that C<prototype> produces when passed
410a string like "CORE::nonexistent_keyword" is now passes UTF8 and embedded
411nulls through unchanged [perl #97478].
412
b6d5888c
FC
413=item *
414
415Under threaded perls, a run-time code block in a regular expression could
416corrupt the package name stored in the op tree, resulting in bad reads
417in C<caller>, and possibly crashes [perl #113060].
418
61174fb5 419=back
53de3ff0 420
61174fb5 421=head1 Known Problems
53de3ff0 422
61174fb5
Z
423XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
424tests that had to be C<TODO>ed for the release would be noted here, unless
425they were specific to a particular platform (see below).
53de3ff0 426
61174fb5
Z
427This is a list of some significant unfixed bugs, which are regressions
428from either 5.XXX.XXX or 5.XXX.XXX.
53de3ff0 429
61174fb5 430[ List each fix as a =item entry ]
80b8b050 431
61174fb5 432=over 4
80b8b050 433
eb3d0a58
LT
434=item *
435
61174fb5 436XXX
eb3d0a58 437
2630d42b 438=back
e2e06450 439
61174fb5 440=head1 Obituary
c0154fe2 441
61174fb5
Z
442XXX If any significant core contributor has died, we've added a short obituary
443here.
d5dc7001 444
61174fb5 445=head1 Acknowledgements
d5dc7001 446
61174fb5 447XXX Generate this with:
f9001595 448
61174fb5 449 perl Porting/acknowledgements.pl v5.17.0..HEAD
29cf780c 450
44691e6f
AB
451=head1 Reporting Bugs
452
453If you find what you think is a bug, you might check the articles
52deee2e 454recently posted to the comp.lang.perl.misc newsgroup and the perl
f9001595
RS
455bug database at http://rt.perl.org/perlbug/ . There may also be
456information at http://www.perl.org/ , the Perl Home Page.
44691e6f
AB
457
458If you believe you have an unreported bug, please run the L<perlbug>
52deee2e
DR
459program included with your release. Be sure to trim your bug down
460to a tiny but sufficient test case. Your bug report, along with the
461output of C<perl -V>, will be sent off to perlbug@perl.org to be
462analysed by the Perl porting team.
44691e6f
AB
463
464If the bug you are reporting has security implications, which make it
f9001595
RS
465inappropriate to send to a publicly archived mailing list, then please send
466it to perl5-security-report@perl.org. This points to a closed subscription
467unarchived mailing list, which includes
468all the core committers, who will be able
469to help assess the impact of issues, figure out a resolution, and help
470co-ordinate the release of patches to mitigate or fix the problem across all
471platforms on which Perl is supported. Please only use this address for
472security issues in the Perl core, not for modules independently
473distributed on CPAN.
44691e6f
AB
474
475=head1 SEE ALSO
476
52deee2e
DR
477The F<Changes> file for an explanation of how to view exhaustive details
478on what changed.
44691e6f
AB
479
480The F<INSTALL> file for how to build Perl.
481
482The F<README> file for general stuff.
483
484The F<Artistic> and F<Copying> files for copyright information.
485
486=cut