This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
dont report a $@ exception with uninitialized $!'s message in IPC::Open3
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
fc4c3cec
RS
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.1
eabfc7bc 9
2cfe9b50 10=head1 DESCRIPTION
eabfc7bc 11
fc4c3cec 12This document describes differences between the 5.23.0 release and the 5.23.1
2cfe9b50 13release.
eabfc7bc 14
fc4c3cec
RS
15If you are upgrading from an earlier release such as 5.22.0, first read
16L<perl5230delta>, which describes differences between 5.22.0 and 5.23.0.
17
18=head1 Notice
19
20XXX Any important notices here
21
2cfe9b50 22=head1 Core Enhancements
eabfc7bc 23
fc4c3cec
RS
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.
ac71d2a0 27
fc4c3cec 28[ List each enhancement as a =head2 entry ]
ac71d2a0 29
deaaea8c
JH
30=head2 Integer shift (C<< << >> and C<< >> >>) now explicitly defined
31
32Negative shifts are reverse shifts: left shift becomes right shift,
33and right shift becomes left shift.
34
35Shifting by the number of bits in a native integer (or more) is zero,
36except when the "overshift" is right shifting a negative value under
37C<use integer>, in which case the result is -1 (arithmetic shift).
38
39Until now negative shifting and overshifting have been undefined
40because they have relied on whatever the C implementation happens
41to do. For example, for the "overshift" a common behavior C is
42"modulo shift":
43
44 1 >> 64 == 1 >> (64 % 64) == 1 >> 0 == 1 # Common C behavior.
45
46 # And the same for <<, while Perl now produces 0 for both.
47
48Now these behaviors are well-defined under Perl, regardless of what
49the underlying C implementation does. Note, however, that you cannot
50escape the native integer width. If you need more bits on the left shift,
51you could use the C<bigint> pragma.
52
7d380357
RS
53=head2 Postfix dereferencing is no longer experimental
54
55Using the C<postderef> and C<postderef_qq> features no longer emits a warning.
56Existing code that disables that warning category will continue to work. The
57C<5.24> feature bundle now includes those features.
58
fc4c3cec 59=head1 Security
2ad792cd 60
fc4c3cec
RS
61XXX Any security-related notices go here. In particular, any security
62vulnerabilities closed should be noted here rather than in the
63L</Selected Bug Fixes> section.
64
65[ List each security issue as a =head2 entry ]
2ad792cd 66
2cfe9b50 67=head1 Incompatible Changes
eabfc7bc 68
fc4c3cec 69XXX For a release on a stable branch, this section aspires to be:
33c28ab2 70
fc4c3cec
RS
71 There are no changes intentionally incompatible with 5.XXX.XXX
72 If any exist, they are bugs, and we request that you submit a
73 report. See L</Reporting Bugs> below.
eabfc7bc 74
fc4c3cec 75[ List each incompatible change as a =head2 entry ]
eabfc7bc 76
fc4c3cec 77=head1 Deprecations
eabfc7bc 78
fc4c3cec 79XXX Any deprecated features, syntax, modules etc. should be listed here.
eabfc7bc 80
fc4c3cec
RS
81=head2 Module removals
82
83XXX Remove this section if inapplicable.
84
85The following modules will be removed from the core distribution in a
86future release, and will at that time need to be installed from CPAN.
87Distributions on CPAN which require these modules will need to list them as
88prerequisites.
89
90The core versions of these modules will now issue C<"deprecated">-category
91warnings to alert you to this fact. To silence these deprecation warnings,
92install the modules in question from CPAN.
93
94Note that these are (with rare exceptions) fine modules that you are encouraged
95to continue to use. Their disinclusion from core primarily hinges on their
96necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
97not usually on concerns over their design.
98
99=over
100
101=item XXX
102
103XXX Note that deprecated modules should be listed here even if they are listed
104as an updated module in the L</Modules and Pragmata> section.
105
106=back
107
108[ List each other deprecation as a =head2 entry ]
109
110=head1 Performance Enhancements
111
112XXX Changes which enhance performance without changing behaviour go here.
113There may well be none in a stable release.
114
115[ List each enhancement as a =item entry ]
eabfc7bc 116
73d6481e 117=over 4
eabfc7bc 118
73d6481e 119=item *
eabfc7bc 120
fc4c3cec 121XXX
eabfc7bc 122
fc4c3cec 123=back
eabfc7bc 124
fc4c3cec 125=head1 Modules and Pragmata
eabfc7bc 126
fc4c3cec
RS
127XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
128go here. If Module::CoreList is updated, generate an initial draft of the
129following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
130for important changes should then be added by hand. In an ideal world,
131dual-life modules would have a F<Changes> file that could be cribbed.
eabfc7bc 132
fc4c3cec 133[ Within each section, list entries as a =item entry ]
eabfc7bc 134
fc4c3cec 135=head2 New Modules and Pragmata
eabfc7bc 136
fc4c3cec 137=over 4
eabfc7bc 138
73d6481e 139=item *
eabfc7bc 140
fc4c3cec 141XXX
eabfc7bc 142
fc4c3cec 143=back
eabfc7bc 144
fc4c3cec
RS
145=head2 Updated Modules and Pragmata
146
147=over 4
eabfc7bc
RS
148
149=item *
150
c85f23b2
DD
151L<IPC::Open3> has been upgraded from version 1.18 to 1.19.
152
153If a Perl exception was thrown from inside this module, the exception
154C<IPC::Open3> threw to the callers of C<open3> would have an irrelavent
155message derived from C<$!> which was in an undefined state, instead of the
156C<$@> message which triggers the failure path inside C<open3>.
eabfc7bc 157
fc4c3cec
RS
158=back
159
160=head2 Removed Modules and Pragmata
eabfc7bc 161
fc4c3cec 162=over 4
374c951f
SH
163
164=item *
165
fc4c3cec 166XXX
e586de20 167
fc4c3cec 168=back
e586de20 169
fc4c3cec 170=head1 Documentation
fd0a842f 171
fc4c3cec
RS
172XXX Changes to files in F<pod/> go here. Consider grouping entries by
173file and be sure to link to the appropriate page, e.g. L<perlfunc>.
fd0a842f 174
fc4c3cec 175=head2 New Documentation
99527ef1 176
fc4c3cec 177XXX Changes which create B<new> files in F<pod/> go here.
99527ef1 178
fc4c3cec 179=head3 L<XXX>
a4f8ff46 180
fc4c3cec 181XXX Description of the purpose of the new file here
a4f8ff46 182
fc4c3cec 183=head2 Changes to Existing Documentation
73d6481e 184
fc4c3cec
RS
185XXX Changes which significantly change existing files in F<pod/> go here.
186However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
187section.
188
189=head3 L<XXX>
73d6481e 190
fc4c3cec 191=over 4
eabfc7bc
RS
192
193=item *
194
fc4c3cec 195XXX Description of the change here
b7b593d8 196
fc4c3cec 197=back
b7b593d8 198
fc4c3cec 199=head1 Diagnostics
b7b593d8 200
fc4c3cec
RS
201The following additions or changes have been made to diagnostic output,
202including warnings and fatal error messages. For the complete list of
203diagnostic messages, see L<perldiag>.
b7b593d8 204
fc4c3cec
RS
205XXX New or changed warnings emitted by the core's C<C> code go here. Also
206include any changes in L<perldiag> that reconcile it to the C<C> code.
b7b593d8 207
fc4c3cec 208=head2 New Diagnostics
b7b593d8 209
fc4c3cec
RS
210XXX Newly added diagnostic messages go under here, separated into New Errors
211and New Warnings
b7b593d8 212
fc4c3cec
RS
213=head3 New Errors
214
215=over 4
eabfc7bc 216
ef5cf9f5
TC
217=item *
218
fc4c3cec 219XXX L<message|perldiag/"message">
72b8c7a2 220
fc4c3cec 221=back
72b8c7a2 222
fc4c3cec
RS
223=head3 New Warnings
224
225=over 4
bdb6acef
SH
226
227=item *
228
fc4c3cec 229XXX L<message|perldiag/"message">
ef5cf9f5 230
fc4c3cec 231=back
3d58dd24 232
fc4c3cec
RS
233=head2 Changes to Existing Diagnostics
234
235XXX Changes (i.e. rewording) of diagnostic messages go here
236
237=over 4
4b951711
TC
238
239=item *
240
fc4c3cec 241XXX Describe change here
eabfc7bc 242
fc4c3cec 243=back
eabfc7bc 244
fc4c3cec 245=head1 Utility Changes
eabfc7bc 246
fc4c3cec
RS
247XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
248Most of these are built within the directory F<utils>.
eabfc7bc 249
fc4c3cec
RS
250[ List utility changes as a =head2 entry for each utility and =item
251entries for each change
252Use L<XXX> with program names to get proper documentation linking. ]
eabfc7bc 253
fc4c3cec
RS
254=head2 L<XXX>
255
256=over 4
eabfc7bc
RS
257
258=item *
259
fc4c3cec 260XXX
eabfc7bc 261
fc4c3cec 262=back
eabfc7bc 263
fc4c3cec 264=head1 Configuration and Compilation
eabfc7bc 265
fc4c3cec
RS
266XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
267go here. Any other changes to the Perl build process should be listed here.
268However, any platform-specific changes should be listed in the
269L</Platform Support> section, instead.
eabfc7bc 270
fc4c3cec 271[ List changes as a =item entry ].
eabfc7bc 272
fc4c3cec 273=over 4
eabfc7bc
RS
274
275=item *
276
fc4c3cec 277XXX
eabfc7bc 278
fc4c3cec 279=back
eabfc7bc 280
fc4c3cec 281=head1 Testing
eabfc7bc 282
fc4c3cec
RS
283XXX Any significant changes to the testing of a freshly built perl should be
284listed here. Changes which create B<new> files in F<t/> go here as do any
285large changes to the testing harness (e.g. when parallel testing was added).
286Changes to existing files in F<t/> aren't worth summarizing, although the bugs
287that they represent may be covered elsewhere.
288
289[ List each test improvement as a =item entry ]
290
291=over 4
eabfc7bc 292
fc4c3cec 293=item *
eabfc7bc 294
fc4c3cec 295XXX
eabfc7bc 296
2cfe9b50 297=back
33ca8d3c 298
73d6481e 299=head1 Platform Support
eabfc7bc 300
fc4c3cec 301XXX Any changes to platform support should be listed in the sections below.
eabfc7bc 302
fc4c3cec
RS
303[ Within the sections, list each platform as a =item entry with specific
304changes as paragraphs below it. ]
eabfc7bc 305
fc4c3cec 306=head2 New Platforms
42fe7840 307
fc4c3cec
RS
308XXX List any platforms that this version of perl compiles on, that previous
309versions did not. These will either be enabled by new files in the F<hints/>
310directories, or new subdirectories and F<README> files at the top level of the
311source tree.
312
313=over 4
42fe7840 314
fc4c3cec
RS
315=item XXX-some-platform
316
317XXX
42fe7840
CB
318
319=back
320
fc4c3cec 321=head2 Discontinued Platforms
eabfc7bc 322
fc4c3cec 323XXX List any platforms that this version of perl no longer compiles on.
269713a1 324
fc4c3cec 325=over 4
269713a1 326
fc4c3cec 327=item XXX-some-platform
269713a1 328
fc4c3cec 329XXX
463e63a4 330
fc4c3cec 331=back
463e63a4 332
fc4c3cec 333=head2 Platform-Specific Notes
9c0328ac 334
fc4c3cec
RS
335XXX List any changes for specific platforms. This could include configuration
336and compilation changes or changes in portability/compatibility. However,
337changes within modules for platforms should generally be listed in the
338L</Modules and Pragmata> section.
9c0328ac 339
fc4c3cec
RS
340=over 4
341
7d380357 342=item VMS
fc4c3cec 343
7d380357
RS
344=over
345
346=item *
347
348The minimum supported version of VMS is now v7.3-2, released in 2003. As a
349side effect of this change, VAX is no longer supported as the terminal
350release of OpenVMS VAX was v7.3 in 2001.
351
352=back
eabfc7bc 353
2cfe9b50 354=back
eabfc7bc 355
fc4c3cec
RS
356=head1 Internal Changes
357
358XXX Changes which affect the interface available to C<XS> code go here. Other
359significant internal changes for future core maintainers should be noted as
360well.
361
362[ List each change as a =item entry ]
eabfc7bc 363
2cfe9b50 364=over 4
eabfc7bc
RS
365
366=item *
367
fc4c3cec 368XXX
eabfc7bc 369
fc4c3cec 370=back
302ef3d4 371
fc4c3cec 372=head1 Selected Bug Fixes
302ef3d4 373
fc4c3cec
RS
374XXX Important bug fixes in the core language are summarized here. Bug fixes in
375files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
eabfc7bc 376
fc4c3cec
RS
377[ List each fix as a =item entry ]
378
379=over 4
eabfc7bc 380
73d6481e 381=item *
eabfc7bc 382
7ed1d857
DD
383A leak in the XS typemap caused one scalar to be leaked each time a C<FILE *>
384or a C<PerlIO *> was C<OUTPUT:>ed or imported to Perl, since perl 5.000. These
385particular typemap entries are thought to be extremely rarely used by XS
386modules. [perl #124181]
eabfc7bc 387
fc4c3cec
RS
388=back
389
390=head1 Known Problems
391
392XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
393tests that had to be C<TODO>ed for the release would be noted here. Unfixed
394platform specific bugs also go here.
395
396[ List each fix as a =item entry ]
eabfc7bc 397
fc4c3cec
RS
398=over 4
399
400=item *
eabfc7bc 401
fc4c3cec 402XXX
eabfc7bc 403
73d6481e 404=back
eabfc7bc 405
fc4c3cec 406=head1 Errata From Previous Releases
eabfc7bc 407
fc4c3cec 408=over 4
eabfc7bc 409
fc4c3cec 410=item *
2a7a05b4 411
fc4c3cec
RS
412XXX Add anything here that we forgot to add, or were mistaken about, in
413the perldelta of a previous release.
30aa8e3f 414
fc4c3cec 415=back
30aa8e3f 416
fc4c3cec
RS
417=head1 Obituary
418
419XXX If any significant core contributor has died, we've added a short obituary
420here.
421
422=head1 Acknowledgements
2a7a05b4 423
fc4c3cec 424XXX Generate this with:
2cfe9b50 425
fc4c3cec 426 perl Porting/acknowledgements.pl v5.23.1..HEAD
f5b73711 427
44691e6f
AB
428=head1 Reporting Bugs
429
e08634c5
SH
430If you find what you think is a bug, you might check the articles recently
431posted to the comp.lang.perl.misc newsgroup and the perl bug database at
fc4c3cec
RS
432L<https://rt.perl.org/> . There may also be information at
433L<http://www.perl.org/> , the Perl Home Page.
44691e6f 434
e08634c5
SH
435If you believe you have an unreported bug, please run the L<perlbug> program
436included with your release. Be sure to trim your bug down to a tiny but
437sufficient test case. Your bug report, along with the output of C<perl -V>,
438will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
439
440If the bug you are reporting has security implications, which make it
e08634c5
SH
441inappropriate to send to a publicly archived mailing list, then please send it
442to perl5-security-report@perl.org. This points to a closed subscription
443unarchived mailing list, which includes all the core committers, who will be
444able to help assess the impact of issues, figure out a resolution, and help
f9001595 445co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
446platforms on which Perl is supported. Please only use this address for
447security issues in the Perl core, not for modules independently distributed on
448CPAN.
44691e6f
AB
449
450=head1 SEE ALSO
451
e08634c5
SH
452The F<Changes> file for an explanation of how to view exhaustive details on
453what changed.
44691e6f
AB
454
455The F<INSTALL> file for how to build Perl.
456
457The F<README> file for general stuff.
458
459The F<Artistic> and F<Copying> files for copyright information.
460
461=cut