This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Remove B::OP:terse
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
b5cbfe35
S
5[ this is a template for a new perldelta file. Any text flagged as XXX needs
6to be processed before release. ]
eabfc7bc 7
1b510166 8perldelta - what is new for perl v5.27.1
89853d76 9
b5cbfe35 10=head1 DESCRIPTION
89853d76 11
1b510166 12This document describes differences between the 5.27.0 release and the 5.27.1
b5cbfe35 13release.
89853d76 14
1b510166
S
15If you are upgrading from an earlier release such as 5.26.0, first read
16L<perl5270delta>, which describes differences between 5.26.0 and 5.27.0.
17
18=head1 Notice
19
20XXX Any important notices here
21
22=head1 Core Enhancements
23
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.
27
28[ List each enhancement as a =head2 entry ]
29
1e426ec5
DIM
30=head2 L<C<delete>|perlfunc/delete EXPR> on key/value slices
31
32L<C<delete>|perlfunc/delete EXPR> can now be used on key/value slices,
33returning the keys along with the deleted values.
34L<[perl #131328]|https://rt.perl.org/Ticket/Display.html?id=131328>
35
1b510166
S
36=head1 Security
37
38XXX Any security-related notices go here. In particular, any security
39vulnerabilities closed should be noted here rather than in the
40L</Selected Bug Fixes> section.
41
42[ List each security issue as a =head2 entry ]
43
44=head1 Incompatible Changes
45
46XXX For a release on a stable branch, this section aspires to be:
47
48 There are no changes intentionally incompatible with 5.XXX.XXX
49 If any exist, they are bugs, and we request that you submit a
50 report. See L</Reporting Bugs> below.
51
52[ List each incompatible change as a =head2 entry ]
53
c7321345
DIM
54=head2 Comma-less variable lists in formats are no longer allowed
55
56Omitting the commas between variables passed to formats is no longer
1cf41740 57allowed. This has been deprecated since Perl 5.000.
c7321345 58
85cd139f
DIM
59=head2 The C<:locked> and C<:unique> attributes have been removed
60
1cf41740 61These have been no-ops and deprecated since Perl 5.12 and 5.10,
85cd139f
DIM
62respectively.
63
be332ba0
KW
64=head2 C<\N{}> with nothing between the braces is now illegal.
65
66This has been deprecated since Perl 5.24.
67
489c16bf
DIM
68=head2 Opening the same symbol as both a file and directory handle is no longer allowed
69
70Using open() and opendir() to associate both a filehandle and a dirhandle
71to the same symbol (glob or scalar) has been deprecated since Perl 5.10.
72
c6e25b09
DIM
73=head2 Use of bare C<< << >> to mean C<< <<"" >> is no longer allowed
74
75Use of a bare terminator has been deprecated since Perl 5.000.
76
520b6fb6
DIM
77=head2 Setting $/ to a reference to a non-positive integer no longer allowed
78
79This used to work like setting it to C<undef>, but has been deprecated
80since Perl 5.20.
81
02729eab
A
82=head2 Unicode code points with values exceeding C<IV_MAX> are now fatal.
83
84This was deprecated since Perl 5.24.
85
d0d6d4ce
A
86=head2 C<B::OP::terse> no longer exists.
87
88Use C<B::Concise::b_terse> instead.
89
1b510166
S
90=head1 Deprecations
91
92XXX Any deprecated features, syntax, modules etc. should be listed here.
93
315f3fc1
KW
94=head2 Use of L<C<vec>|perlfunc/vec EXPR,OFFSET,BITS> on strings with code
95points above 0xFF is deprecated.
96
97Use of these is nonsensical, as C<vec> is a bit-oriented operation,
98which operates on the underlying UTF-8 representation these strings must
99be in, and will likely give unexpected results.
100
53fdf12a
KW
101=head2 Some uses of unescaped C<"{"> are no longer fatal
102
103Perl 5.26.0 fatalized some uses of an unescaped left brace, but an
104exception was made at the last minute, specifically crafted to be a
105minimal change to allow GNU Autoconf to work. This code is heavily
106depended upon, and continues to use the deprecated usage. Its use of an
107unescaped left brace is one where we have no intention of repurposing
108C<"{"> to be something other than itself.
109
110That exception is now generalized to include various other such cases
111where the C<"{"> will not be repurposed. This is to get real experience
112with this more complicated change now, in case we need to issue a dot
113release if we find other things like Autoconf that are important to work
114around.
115
116Note that these uses continue to raise a deprecation message.
117
1b510166
S
118=head2 Module removals
119
120XXX Remove this section if inapplicable.
121
122The following modules will be removed from the core distribution in a
123future release, and will at that time need to be installed from CPAN.
124Distributions on CPAN which require these modules will need to list them as
125prerequisites.
126
127The core versions of these modules will now issue C<"deprecated">-category
128warnings to alert you to this fact. To silence these deprecation warnings,
129install the modules in question from CPAN.
130
131Note that these are (with rare exceptions) fine modules that you are encouraged
132to continue to use. Their disinclusion from core primarily hinges on their
133necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
134not usually on concerns over their design.
135
136=over
137
138=item XXX
139
140XXX Note that deprecated modules should be listed here even if they are listed
141as an updated module in the L</Modules and Pragmata> section.
142
143=back
144
145[ List each other deprecation as a =head2 entry ]
146
147=head1 Performance Enhancements
148
149XXX Changes which enhance performance without changing behaviour go here.
150There may well be none in a stable release.
151
152[ List each enhancement as a =item entry ]
153
154=over 4
155
156=item *
157
158XXX
159
160=back
16beba24 161
b5cbfe35 162=head1 Modules and Pragmata
2c8edc25 163
1b510166
S
164XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
165go here. If Module::CoreList is updated, generate an initial draft of the
166following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
167for important changes should then be added by hand. In an ideal world,
168dual-life modules would have a F<Changes> file that could be cribbed.
169
170[ Within each section, list entries as a =item entry ]
171
172=head2 New Modules and Pragmata
173
174=over 4
175
176=item *
177
178XXX
179
180=back
181
a049258c
S
182=head2 Updated Modules and Pragmata
183
184=over 4
fbe3f407 185
759020c9 186=item *
7ca0bfc4 187
1b510166
S
188L<XXX> has been upgraded from version A.xx to B.yy.
189
190=back
191
192=head2 Removed Modules and Pragmata
193
194=over 4
195
196=item *
197
198XXX
199
200=back
201
202=head1 Documentation
203
204XXX Changes to files in F<pod/> go here. Consider grouping entries by
205file and be sure to link to the appropriate page, e.g. L<perlfunc>.
206
207=head2 New Documentation
208
209XXX Changes which create B<new> files in F<pod/> go here.
210
211=head3 L<XXX>
212
213XXX Description of the purpose of the new file here
214
215=head2 Changes to Existing Documentation
216
217XXX Changes which significantly change existing files in F<pod/> go here.
218However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
219section.
220
221=head3 L<XXX>
222
223=over 4
a049258c 224
2c8edc25 225=item *
d5c7a4fc 226
1b510166 227XXX Description of the change here
a049258c 228
b5cbfe35 229=back
3abe9611 230
1b510166
S
231=head1 Diagnostics
232
233The following additions or changes have been made to diagnostic output,
234including warnings and fatal error messages. For the complete list of
235diagnostic messages, see L<perldiag>.
236
237XXX New or changed warnings emitted by the core's C<C> code go here. Also
238include any changes in L<perldiag> that reconcile it to the C<C> code.
239
240=head2 New Diagnostics
241
242XXX Newly added diagnostic messages go under here, separated into New Errors
243and New Warnings
244
245=head3 New Errors
246
247=over 4
248
249=item *
250
251XXX L<message|perldiag/"message">
252
253=back
254
255=head3 New Warnings
256
257=over 4
258
259=item *
260
261XXX L<message|perldiag/"message">
262
263=back
264
265=head2 Changes to Existing Diagnostics
266
267XXX Changes (i.e. rewording) of diagnostic messages go here
268
269=over 4
270
271=item *
272
273XXX Describe change here
274
275=back
0cc8c746 276
1b510166 277=head1 Utility Changes
0cc8c746 278
1b510166
S
279XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
280Most of these are built within the directory F<utils>.
0cc8c746 281
1b510166
S
282[ List utility changes as a =head2 entry for each utility and =item
283entries for each change
284Use L<XXX> with program names to get proper documentation linking. ]
0cc8c746 285
1b510166 286=head2 L<XXX>
0cc8c746 287
1b510166
S
288=over 4
289
290=item *
291
292XXX
293
294=back
295
296=head1 Configuration and Compilation
297
298XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
299go here. Any other changes to the Perl build process should be listed here.
300However, any platform-specific changes should be listed in the
301L</Platform Support> section, instead.
302
303[ List changes as a =item entry ].
304
305=over 4
306
307=item *
308
309XXX
310
311=back
312
313=head1 Testing
314
315XXX Any significant changes to the testing of a freshly built perl should be
316listed here. Changes which create B<new> files in F<t/> go here as do any
317large changes to the testing harness (e.g. when parallel testing was added).
318Changes to existing files in F<t/> aren't worth summarizing, although the bugs
319that they represent may be covered elsewhere.
320
321[ List each test improvement as a =item entry ]
322
323=over 4
324
325=item *
326
327XXX
328
329=back
330
331=head1 Platform Support
332
333XXX Any changes to platform support should be listed in the sections below.
334
335[ Within the sections, list each platform as a =item entry with specific
336changes as paragraphs below it. ]
337
338=head2 New Platforms
339
340XXX List any platforms that this version of perl compiles on, that previous
341versions did not. These will either be enabled by new files in the F<hints/>
342directories, or new subdirectories and F<README> files at the top level of the
343source tree.
344
345=over 4
346
347=item XXX-some-platform
348
349XXX
350
351=back
352
353=head2 Discontinued Platforms
354
355XXX List any platforms that this version of perl no longer compiles on.
356
357=over 4
358
359=item XXX-some-platform
360
361XXX
362
363=back
364
365=head2 Platform-Specific Notes
366
367XXX List any changes for specific platforms. This could include configuration
368and compilation changes or changes in portability/compatibility. However,
369changes within modules for platforms should generally be listed in the
370L</Modules and Pragmata> section.
371
372=over 4
373
374=item XXX-some-platform
375
376XXX
377
378=back
379
380=head1 Internal Changes
381
382XXX Changes which affect the interface available to C<XS> code go here. Other
383significant internal changes for future core maintainers should be noted as
384well.
385
386[ List each change as a =item entry ]
387
388=over 4
389
390=item *
391
7e30e49f 392The C<PL_statbuf> interpreter variable has been removed.
1b510166 393
f566c7cf
KW
394=item *
395
396The deprecated function C<to_utf8_case()>, accessible from XS code, has
397been removed.
398
1b510166
S
399=back
400
401=head1 Selected Bug Fixes
402
403XXX Important bug fixes in the core language are summarized here. Bug fixes in
404files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
405
406[ List each fix as a =item entry ]
407
408=over 4
409
410=item *
411
412XXX
413
414=back
415
416=head1 Known Problems
417
418XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
419tests that had to be C<TODO>ed for the release would be noted here. Unfixed
420platform specific bugs also go here.
421
422[ List each fix as a =item entry ]
423
424=over 4
425
426=item *
427
428XXX
429
430=back
431
432=head1 Errata From Previous Releases
433
434=over 4
435
436=item *
437
438XXX Add anything here that we forgot to add, or were mistaken about, in
439the perldelta of a previous release.
440
441=back
442
443=head1 Obituary
444
445XXX If any significant core contributor has died, we've added a short obituary
446here.
447
448=head1 Acknowledgements
0cc8c746 449
1b510166 450XXX Generate this with:
2e0dcc12 451
1b510166 452 perl Porting/acknowledgements.pl v5.25.5..HEAD
f5b73711 453
44691e6f
AB
454=head1 Reporting Bugs
455
b5cbfe35
S
456If you find what you think is a bug, you might check the perl bug database
457at L<https://rt.perl.org/> . There may also be information at
458L<http://www.perl.org/> , the Perl Home Page.
44691e6f 459
e08634c5
SH
460If you believe you have an unreported bug, please run the L<perlbug> program
461included with your release. Be sure to trim your bug down to a tiny but
462sufficient test case. Your bug report, along with the output of C<perl -V>,
b5cbfe35 463will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 464
87c118b9
DM
465If the bug you are reporting has security implications which make it
466inappropriate to send to a publicly archived mailing list, then see
c0ea3294
SH
467L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
468for details of how to report the issue.
44691e6f 469
390ae6f9
S
470=head1 Give Thanks
471
472If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
473you can do so by running the C<perlthanks> program:
474
475 perlthanks
476
477This will send an email to the Perl 5 Porters list with your show of thanks.
478
44691e6f
AB
479=head1 SEE ALSO
480
e08634c5
SH
481The F<Changes> file for an explanation of how to view exhaustive details on
482what changed.
44691e6f
AB
483
484The F<INSTALL> file for how to build Perl.
485
486The F<README> file for general stuff.
487
488The F<Artistic> and F<Copying> files for copyright information.
489
490=cut