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