This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
sv_inc/dec_nomg(): croak on GVs etc
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
b6af474d
SH
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.23.5
eabfc7bc 9
2cfe9b50 10=head1 DESCRIPTION
eabfc7bc 11
b6af474d 12This document describes differences between the 5.23.4 release and the 5.23.5
2cfe9b50 13release.
eabfc7bc 14
b6af474d
SH
15If you are upgrading from an earlier release such as 5.23.3, first read
16L<perl5234delta>, which describes differences between 5.23.3 and 5.23.4.
a43707ab 17
b6af474d 18=head1 Notice
5ea25977 19
b6af474d 20XXX Any important notices here
f83db990 21
b6af474d 22=head1 Core Enhancements
f83db990 23
b6af474d
SH
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.
f83db990 27
b6af474d 28[ List each enhancement as a =head2 entry ]
5ea25977 29
b6af474d 30=head1 Security
80e86009 31
b6af474d
SH
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.
80e86009 35
b6af474d 36[ List each security issue as a =head2 entry ]
f83db990 37
b6af474d 38=head1 Incompatible Changes
f83db990 39
b6af474d 40XXX For a release on a stable branch, this section aspires to be:
f83db990 41
b6af474d
SH
42 There are no changes intentionally incompatible with 5.XXX.XXX
43 If any exist, they are bugs, and we request that you submit a
44 report. See L</Reporting Bugs> below.
f83db990 45
b6af474d 46[ List each incompatible change as a =head2 entry ]
f83db990 47
b6af474d 48=head1 Deprecations
f83db990 49
b6af474d 50XXX Any deprecated features, syntax, modules etc. should be listed here.
f83db990 51
b6af474d 52=head2 Module removals
f83db990 53
b6af474d 54XXX Remove this section if inapplicable.
f83db990 55
b6af474d
SH
56The following modules will be removed from the core distribution in a
57future release, and will at that time need to be installed from CPAN.
58Distributions on CPAN which require these modules will need to list them as
59prerequisites.
f83db990 60
b6af474d
SH
61The core versions of these modules will now issue C<"deprecated">-category
62warnings to alert you to this fact. To silence these deprecation warnings,
63install the modules in question from CPAN.
f83db990 64
b6af474d
SH
65Note that these are (with rare exceptions) fine modules that you are encouraged
66to continue to use. Their disinclusion from core primarily hinges on their
67necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
68not usually on concerns over their design.
f83db990 69
b6af474d 70=over
f83db990 71
b6af474d 72=item XXX
f83db990 73
b6af474d
SH
74XXX Note that deprecated modules should be listed here even if they are listed
75as an updated module in the L</Modules and Pragmata> section.
f83db990 76
b6af474d 77=back
f83db990 78
b6af474d 79[ List each other deprecation as a =head2 entry ]
f83db990 80
b6af474d 81=head1 Performance Enhancements
f83db990 82
b6af474d
SH
83XXX Changes which enhance performance without changing behaviour go here.
84There may well be none in a stable release.
f83db990 85
b6af474d 86[ List each enhancement as a =item entry ]
f83db990 87
b6af474d 88=over 4
f83db990
SH
89
90=item *
91
b6af474d 92XXX
f83db990 93
b6af474d 94=back
f83db990 95
b6af474d 96=head1 Modules and Pragmata
f83db990 97
b6af474d
SH
98XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
99go here. If Module::CoreList is updated, generate an initial draft of the
100following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
101for important changes should then be added by hand. In an ideal world,
102dual-life modules would have a F<Changes> file that could be cribbed.
f83db990 103
b6af474d 104[ Within each section, list entries as a =item entry ]
f83db990 105
b6af474d 106=head2 New Modules and Pragmata
f83db990 107
b6af474d 108=over 4
f83db990
SH
109
110=item *
111
b6af474d 112XXX
f83db990 113
b6af474d 114=back
f83db990 115
b6af474d 116=head2 Updated Modules and Pragmata
f83db990 117
b6af474d 118=over 4
f83db990
SH
119
120=item *
121
b6af474d 122L<XXX> has been upgraded from version A.xx to B.yy.
f83db990 123
b6af474d 124=back
f83db990 125
b6af474d 126=head2 Removed Modules and Pragmata
f83db990 127
b6af474d 128=over 4
f83db990
SH
129
130=item *
131
b6af474d 132XXX
f83db990 133
b6af474d 134=back
f83db990 135
b6af474d 136=head1 Documentation
f83db990 137
b6af474d
SH
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>.
f83db990 140
b6af474d 141=head2 New Documentation
f83db990 142
b6af474d 143XXX Changes which create B<new> files in F<pod/> go here.
5ea25977 144
b6af474d 145=head3 L<XXX>
5ea25977 146
b6af474d 147XXX Description of the purpose of the new file here
0dd5b0dc 148
b26bd9b0 149=head2 Changes to Existing Documentation
cf73ceda 150
b6af474d
SH
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.
154
155=head3 L<XXX>
f83db990
SH
156
157=over 4
158
159=item *
160
b6af474d 161XXX Description of the change here
f83db990
SH
162
163=back
164
b6af474d 165=head1 Diagnostics
f83db990 166
b6af474d
SH
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>.
f83db990 170
b6af474d
SH
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.
f83db990 173
b6af474d 174=head2 New Diagnostics
f83db990 175
b6af474d
SH
176XXX Newly added diagnostic messages go under here, separated into New Errors
177and New Warnings
f83db990 178
b6af474d 179=head3 New Errors
b26bd9b0
PM
180
181=over 4
eabfc7bc 182
0dafb1ce 183=item *
eabfc7bc 184
b6af474d 185XXX L<message|perldiag/"message">
f83db990
SH
186
187=back
188
b6af474d 189=head3 New Warnings
f83db990
SH
190
191=over 4
192
193=item *
194
b6af474d 195XXX L<message|perldiag/"message">
5ea25977 196
b26bd9b0 197=back
5ea25977 198
b6af474d 199=head2 Changes to Existing Diagnostics
a43707ab 200
b6af474d 201XXX Changes (i.e. rewording) of diagnostic messages go here
0dafb1ce 202
b26bd9b0 203=over 4
5ea25977
MH
204
205=item *
206
b6af474d 207XXX Describe change here
d39e0fc0 208
b6af474d 209=back
dc013420 210
b6af474d 211=head1 Utility Changes
4003ea29 212
b6af474d
SH
213XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
214Most of these are built within the directory F<utils>.
4003ea29 215
b6af474d
SH
216[ List utility changes as a =head2 entry for each utility and =item
217entries for each change
218Use L<XXX> with program names to get proper documentation linking. ]
dc013420 219
b6af474d 220=head2 L<XXX>
0dafb1ce 221
0dafb1ce 222=over 4
a43707ab 223
0dafb1ce
PM
224=item *
225
b6af474d 226XXX
f282dc56 227
b26bd9b0 228=back
f282dc56 229
33c85a9f 230=head1 Configuration and Compilation
b26bd9b0 231
b6af474d
SH
232XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
233go here. Any other changes to the Perl build process should be listed here.
234However, any platform-specific changes should be listed in the
235L</Platform Support> section, instead.
cf73ceda 236
b6af474d 237[ List changes as a =item entry ].
cf73ceda 238
b6af474d 239=over 4
cf73ceda 240
f282dc56
MH
241=item *
242
c2f55187
RS
243C<Configure> now acts as if the C<-O> option is always passed, allowing command
244line options to override saved configuration. This should eliminate confusion
245when command line options are ignored for no obvious reason. C<-O> is now
246permitted, but ignored.
cf73ceda
MH
247
248=back
249
b6af474d 250=head1 Testing
0b8e4842 251
b6af474d
SH
252XXX Any significant changes to the testing of a freshly built perl should be
253listed here. Changes which create B<new> files in F<t/> go here as do any
254large changes to the testing harness (e.g. when parallel testing was added).
255Changes to existing files in F<t/> aren't worth summarizing, although the bugs
256that they represent may be covered elsewhere.
4b951711 257
b6af474d 258[ List each test improvement as a =item entry ]
f83db990 259
b6af474d 260=over 4
f83db990
SH
261
262=item *
263
b6af474d 264XXX
f83db990
SH
265
266=back
267
b6af474d 268=head1 Platform Support
f83db990 269
b6af474d 270XXX Any changes to platform support should be listed in the sections below.
f83db990 271
b6af474d
SH
272[ Within the sections, list each platform as a =item entry with specific
273changes as paragraphs below it. ]
f83db990 274
b6af474d 275=head2 New Platforms
f83db990 276
b6af474d
SH
277XXX List any platforms that this version of perl compiles on, that previous
278versions did not. These will either be enabled by new files in the F<hints/>
279directories, or new subdirectories and F<README> files at the top level of the
280source tree.
f83db990 281
b6af474d 282=over 4
f83db990 283
b6af474d 284=item XXX-some-platform
f83db990 285
b6af474d 286XXX
f83db990
SH
287
288=back
cf73ceda 289
b6af474d 290=head2 Discontinued Platforms
0517ed38 291
b6af474d 292XXX List any platforms that this version of perl no longer compiles on.
0517ed38 293
b6af474d 294=over 4
0517ed38 295
b6af474d 296=item XXX-some-platform
6937817d 297
b6af474d 298XXX
6937817d 299
b6af474d 300=back
0517ed38 301
b6af474d 302=head2 Platform-Specific Notes
8ca2a5d6 303
b6af474d
SH
304XXX List any changes for specific platforms. This could include configuration
305and compilation changes or changes in portability/compatibility. However,
306changes within modules for platforms should generally be listed in the
307L</Modules and Pragmata> section.
8ca2a5d6 308
b6af474d 309=over 4
8ca2a5d6 310
b6af474d 311=item XXX-some-platform
8ca2a5d6 312
b6af474d 313XXX
0517ed38 314
b26bd9b0 315=back
f4240379 316
b26bd9b0 317=head1 Internal Changes
f4240379 318
b6af474d
SH
319XXX Changes which affect the interface available to C<XS> code go here. Other
320significant internal changes for future core maintainers should be noted as
321well.
d89ea360 322
b6af474d 323[ List each change as a =item entry ]
d89ea360 324
b6af474d 325=over 4
d89ea360 326
0efe3111
DM
327=item *
328
b6af474d 329XXX
0efe3111 330
d89ea360
DD
331=back
332
b26bd9b0 333=head1 Selected Bug Fixes
eabfc7bc 334
b6af474d
SH
335XXX Important bug fixes in the core language are summarized here. Bug fixes in
336files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
eabfc7bc 337
b6af474d 338[ List each fix as a =item entry ]
cf73ceda 339
b6af474d 340=over 4
8ca3d7d7
KW
341
342=item *
343
7195e5da
KW
344C<\b{sb}> works much better. In Perl v5.22.0, this new construct didn't
345seem to give the expected results, yet passed all the tests in the
346extensive suite furnished by Unicode. It turns out that it was because
347these were short input strings, and the failures had to do with longer
348inputs. This was fixed in Perl 5.23.4, but the improvement was not
349noticed until after that was released, so is included here now.
0efe3111 350
a82f4918
KW
351=item *
352
353Certain syntax errors in
354L<perlrecharclass/Extended Bracketed Character Classes> caused panics
355instead of the proper error message. This has now been fixed. [perl
356#126481]
357
b6af474d 358=back
0efe3111 359
b6af474d 360=head1 Known Problems
f83db990 361
b6af474d
SH
362XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
363tests that had to be C<TODO>ed for the release would be noted here. Unfixed
364platform specific bugs also go here.
f83db990 365
b6af474d 366[ List each fix as a =item entry ]
f83db990 367
b6af474d 368=over 4
f83db990 369
133117f5
KW
370=item *
371
b6af474d 372XXX
133117f5 373
b26bd9b0 374=back
9a7bb2f7 375
b26bd9b0 376=head1 Errata From Previous Releases
5ea25977 377
b26bd9b0 378=over 4
5a74572e 379
b26bd9b0 380=item *
5a74572e 381
b6af474d
SH
382XXX Add anything here that we forgot to add, or were mistaken about, in
383the perldelta of a previous release.
5a74572e 384
b26bd9b0 385=back
5a74572e 386
b6af474d 387=head1 Obituary
04924b39 388
b6af474d
SH
389XXX If any significant core contributor has died, we've added a short obituary
390here.
04924b39 391
b6af474d 392=head1 Acknowledgements
04924b39 393
b6af474d 394XXX Generate this with:
04924b39 395
b6af474d 396 perl Porting/acknowledgements.pl v5.23.4..HEAD
f5b73711 397
44691e6f
AB
398=head1 Reporting Bugs
399
e08634c5
SH
400If you find what you think is a bug, you might check the articles recently
401posted to the comp.lang.perl.misc newsgroup and the perl bug database at
fc4c3cec
RS
402L<https://rt.perl.org/> . There may also be information at
403L<http://www.perl.org/> , the Perl Home Page.
44691e6f 404
e08634c5
SH
405If you believe you have an unreported bug, please run the L<perlbug> program
406included with your release. Be sure to trim your bug down to a tiny but
407sufficient test case. Your bug report, along with the output of C<perl -V>,
408will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
409
410If the bug you are reporting has security implications, which make it
e08634c5
SH
411inappropriate to send to a publicly archived mailing list, then please send it
412to perl5-security-report@perl.org. This points to a closed subscription
413unarchived mailing list, which includes all the core committers, who will be
414able to help assess the impact of issues, figure out a resolution, and help
f9001595 415co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
416platforms on which Perl is supported. Please only use this address for
417security issues in the Perl core, not for modules independently distributed on
418CPAN.
44691e6f
AB
419
420=head1 SEE ALSO
421
e08634c5
SH
422The F<Changes> file for an explanation of how to view exhaustive details on
423what changed.
44691e6f
AB
424
425The F<INSTALL> file for how to build Perl.
426
427The F<README> file for general stuff.
428
429The F<Artistic> and F<Copying> files for copyright information.
430
431=cut