This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Filter-Util-Call to CPAN version 1.57
[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
fbdbf2a7
YO
42=head2 Default Hash Function Change
43
44Perl 5.27.0 retires various older hash functions which are not viewed as
45sufficiently secure for use in Perl. We now support four general purpose
46hash functions, Siphash (2-4 and 1-3 variants), and Zaphod32, and StadtX
47hash. In addition we support SBOX32 (a form of tabular hashing) for hashing
48short strings, in conjunction with any of the other hash functions provided.
49
50By default Perl is configured to support SBOX hashing of strings up to 24
51characters, in conjunction with StadtX hashing on 64 bit builds, and
52Zaphod32 hashing for 32 bit builds.
53
54You may control these settings with the following options to Configure:
55
56 -DPERL_HASH_FUNC_SIPHASH
57 -DPERL_HASH_FUNC_SIPHASH13
58 -DPERL_HASH_FUNC_STADTX
59 -DPERL_HASH_FUNC_ZAPHOD32
60
61To disable SBOX hashing you can use
62
63 -DPERL_HASH_USE_SBOX32_ALSO=0
64
65And to set the maximum length to use SBOX32 hashing on with:
66
67 -DSBOX32_MAX_LEN=16
68
69The maximum length allowed is 256. There probably isn't much point
70in setting it higher than the default.
1b510166
S
71
72=head1 Incompatible Changes
73
74XXX For a release on a stable branch, this section aspires to be:
75
76 There are no changes intentionally incompatible with 5.XXX.XXX
77 If any exist, they are bugs, and we request that you submit a
78 report. See L</Reporting Bugs> below.
79
80[ List each incompatible change as a =head2 entry ]
81
c7321345
DIM
82=head2 Comma-less variable lists in formats are no longer allowed
83
84Omitting the commas between variables passed to formats is no longer
1cf41740 85allowed. This has been deprecated since Perl 5.000.
c7321345 86
85cd139f
DIM
87=head2 The C<:locked> and C<:unique> attributes have been removed
88
1cf41740 89These have been no-ops and deprecated since Perl 5.12 and 5.10,
85cd139f
DIM
90respectively.
91
be332ba0
KW
92=head2 C<\N{}> with nothing between the braces is now illegal.
93
94This has been deprecated since Perl 5.24.
95
489c16bf
DIM
96=head2 Opening the same symbol as both a file and directory handle is no longer allowed
97
98Using open() and opendir() to associate both a filehandle and a dirhandle
99to the same symbol (glob or scalar) has been deprecated since Perl 5.10.
100
c6e25b09
DIM
101=head2 Use of bare C<< << >> to mean C<< <<"" >> is no longer allowed
102
103Use of a bare terminator has been deprecated since Perl 5.000.
104
520b6fb6
DIM
105=head2 Setting $/ to a reference to a non-positive integer no longer allowed
106
107This used to work like setting it to C<undef>, but has been deprecated
108since Perl 5.20.
109
02729eab
A
110=head2 Unicode code points with values exceeding C<IV_MAX> are now fatal.
111
112This was deprecated since Perl 5.24.
113
d0d6d4ce
A
114=head2 C<B::OP::terse> no longer exists.
115
116Use C<B::Concise::b_terse> instead.
117
64278e8c
A
118=head2 Use of inherited AUTOLOAD for non-methods is no longer allowed.
119
120This was deprecated in Perl 5.004.
121
5d09ee1c
A
122=head2 Use of strings with code points over 0xFF is not allowed for
123bitwise string operators
124
125Code points over 0xFF do not make sense for bitwise operators.
126
fd503f5c
DIM
127=head2 Setting C<${^ENCODING}> to a defined value is now illegal
128
129This has been deprecated since Perl 5.22 and a no-op since Perl 5.26.
130
c8787424
TC
131=head2 Backslash no longer escapes colon in PATH for the -S switch
132
133Previously the C<-S> switch incorrectly treated backslash ("\") as an
134escape for colon when traversing the C<PATH> environment variable.
135[perl #129183]
136
1b510166
S
137=head1 Deprecations
138
139XXX Any deprecated features, syntax, modules etc. should be listed here.
140
315f3fc1
KW
141=head2 Use of L<C<vec>|perlfunc/vec EXPR,OFFSET,BITS> on strings with code
142points above 0xFF is deprecated.
143
144Use of these is nonsensical, as C<vec> is a bit-oriented operation,
145which operates on the underlying UTF-8 representation these strings must
146be in, and will likely give unexpected results.
147
53fdf12a
KW
148=head2 Some uses of unescaped C<"{"> are no longer fatal
149
150Perl 5.26.0 fatalized some uses of an unescaped left brace, but an
151exception was made at the last minute, specifically crafted to be a
152minimal change to allow GNU Autoconf to work. This code is heavily
153depended upon, and continues to use the deprecated usage. Its use of an
154unescaped left brace is one where we have no intention of repurposing
155C<"{"> to be something other than itself.
156
157That exception is now generalized to include various other such cases
158where the C<"{"> will not be repurposed. This is to get real experience
159with this more complicated change now, in case we need to issue a dot
160release if we find other things like Autoconf that are important to work
161around.
162
163Note that these uses continue to raise a deprecation message.
164
1b510166
S
165=head2 Module removals
166
167XXX Remove this section if inapplicable.
168
169The following modules will be removed from the core distribution in a
170future release, and will at that time need to be installed from CPAN.
171Distributions on CPAN which require these modules will need to list them as
172prerequisites.
173
174The core versions of these modules will now issue C<"deprecated">-category
175warnings to alert you to this fact. To silence these deprecation warnings,
176install the modules in question from CPAN.
177
178Note that these are (with rare exceptions) fine modules that you are encouraged
179to continue to use. Their disinclusion from core primarily hinges on their
180necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
181not usually on concerns over their design.
182
183=over
184
185=item XXX
186
187XXX Note that deprecated modules should be listed here even if they are listed
188as an updated module in the L</Modules and Pragmata> section.
189
190=back
191
192[ List each other deprecation as a =head2 entry ]
193
194=head1 Performance Enhancements
195
196XXX Changes which enhance performance without changing behaviour go here.
197There may well be none in a stable release.
198
199[ List each enhancement as a =item entry ]
200
201=over 4
202
203=item *
204
b3452811
YO
205File::Glob has been modified to remove unnecessary backtracking and
206recursion, thanks to Russ Cox. See L<https://research.swtch.com/glob>
207for more details.
1b510166
S
208
209=back
16beba24 210
b5cbfe35 211=head1 Modules and Pragmata
2c8edc25 212
1b510166
S
213XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
214go here. If Module::CoreList is updated, generate an initial draft of the
215following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
216for important changes should then be added by hand. In an ideal world,
217dual-life modules would have a F<Changes> file that could be cribbed.
218
219[ Within each section, list entries as a =item entry ]
220
221=head2 New Modules and Pragmata
222
223=over 4
224
225=item *
226
227XXX
228
229=back
230
a049258c
S
231=head2 Updated Modules and Pragmata
232
233=over 4
fbe3f407 234
759020c9 235=item *
7ca0bfc4 236
1b510166
S
237L<XXX> has been upgraded from version A.xx to B.yy.
238
239=back
240
241=head2 Removed Modules and Pragmata
242
243=over 4
244
245=item *
246
247XXX
248
249=back
250
251=head1 Documentation
252
253XXX Changes to files in F<pod/> go here. Consider grouping entries by
254file and be sure to link to the appropriate page, e.g. L<perlfunc>.
255
256=head2 New Documentation
257
258XXX Changes which create B<new> files in F<pod/> go here.
259
260=head3 L<XXX>
261
262XXX Description of the purpose of the new file here
263
264=head2 Changes to Existing Documentation
265
f717dc4d
KW
266We have attempted to update the documentation to reflect the changes
267listed in this document. If you find any we have missed, send email
268to L<perlbug@perl.org|mailto:perlbug@perl.org>.
269
1b510166
S
270XXX Changes which significantly change existing files in F<pod/> go here.
271However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
272section.
273
274=head3 L<XXX>
275
276=over 4
a049258c 277
2c8edc25 278=item *
d5c7a4fc 279
1b510166 280XXX Description of the change here
a049258c 281
b5cbfe35 282=back
3abe9611 283
1b510166
S
284=head1 Diagnostics
285
286The following additions or changes have been made to diagnostic output,
287including warnings and fatal error messages. For the complete list of
288diagnostic messages, see L<perldiag>.
289
290XXX New or changed warnings emitted by the core's C<C> code go here. Also
291include any changes in L<perldiag> that reconcile it to the C<C> code.
292
293=head2 New Diagnostics
294
295XXX Newly added diagnostic messages go under here, separated into New Errors
296and New Warnings
297
298=head3 New Errors
299
300=over 4
301
302=item *
303
304XXX L<message|perldiag/"message">
305
306=back
307
308=head3 New Warnings
309
310=over 4
311
312=item *
313
314XXX L<message|perldiag/"message">
315
316=back
317
318=head2 Changes to Existing Diagnostics
319
320XXX Changes (i.e. rewording) of diagnostic messages go here
321
322=over 4
323
324=item *
325
326XXX Describe change here
327
328=back
0cc8c746 329
1b510166 330=head1 Utility Changes
0cc8c746 331
1b510166
S
332XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
333Most of these are built within the directory F<utils>.
0cc8c746 334
1b510166
S
335[ List utility changes as a =head2 entry for each utility and =item
336entries for each change
337Use L<XXX> with program names to get proper documentation linking. ]
0cc8c746 338
1b510166 339=head2 L<XXX>
0cc8c746 340
1b510166
S
341=over 4
342
343=item *
344
345XXX
346
347=back
348
349=head1 Configuration and Compilation
350
351XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
352go here. Any other changes to the Perl build process should be listed here.
353However, any platform-specific changes should be listed in the
354L</Platform Support> section, instead.
355
356[ List changes as a =item entry ].
357
358=over 4
359
360=item *
361
362XXX
363
364=back
365
366=head1 Testing
367
f717dc4d
KW
368Tests were added and changed to reflect the other additions and
369changes in this release. Furthermore, these significant changes were
370made:
1b510166
S
371
372=over 4
373
374=item *
375
f717dc4d
KW
376Testing of the XS-APItest directory is now done in parallel, where
377applicable.
1b510166 378
10b7d799
TC
379=item *
380
381Perl now includes a default F<.travis.yml> file for Travis CI testing
382on github mirrors. [perl #123981]
383
1b510166
S
384=back
385
386=head1 Platform Support
387
388XXX Any changes to platform support should be listed in the sections below.
389
390[ Within the sections, list each platform as a =item entry with specific
391changes as paragraphs below it. ]
392
393=head2 New Platforms
394
395XXX List any platforms that this version of perl compiles on, that previous
396versions did not. These will either be enabled by new files in the F<hints/>
397directories, or new subdirectories and F<README> files at the top level of the
398source tree.
399
400=over 4
401
402=item XXX-some-platform
403
404XXX
405
406=back
407
408=head2 Discontinued Platforms
409
410XXX List any platforms that this version of perl no longer compiles on.
411
412=over 4
413
414=item XXX-some-platform
415
416XXX
417
418=back
419
420=head2 Platform-Specific Notes
421
422XXX List any changes for specific platforms. This could include configuration
423and compilation changes or changes in portability/compatibility. However,
424changes within modules for platforms should generally be listed in the
425L</Modules and Pragmata> section.
426
427=over 4
428
429=item XXX-some-platform
430
431XXX
432
433=back
434
435=head1 Internal Changes
436
437XXX Changes which affect the interface available to C<XS> code go here. Other
438significant internal changes for future core maintainers should be noted as
439well.
440
441[ List each change as a =item entry ]
442
443=over 4
444
445=item *
446
7e30e49f 447The C<PL_statbuf> interpreter variable has been removed.
1b510166 448
f566c7cf
KW
449=item *
450
451The deprecated function C<to_utf8_case()>, accessible from XS code, has
452been removed.
453
0cbf5865
KW
454=item *
455
456A new function
457L<C<is_utf8_invariant_string_loc()>|perlapi/is_utf8_invariant_string_loc>
458has been added that is like
459L<C<is_utf8_invariant_string()>|perlapi/is_utf8_invariant_string>
460but takes an extra pointer parameter into which is stored the location
461of the first variant character, if any are found.
462
1b510166
S
463=back
464
465=head1 Selected Bug Fixes
466
467XXX Important bug fixes in the core language are summarized here. Bug fixes in
468files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
469
470[ List each fix as a =item entry ]
471
472=over 4
473
474=item *
475
8ee6927b
TC
476Fetching the name of a glob that was previously UTF-8 but wasn't any
477longer would return that name flagged as UTF-8. [perl #131263]
1b510166
S
478
479=back
480
481=head1 Known Problems
482
483XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
484tests that had to be C<TODO>ed for the release would be noted here. Unfixed
485platform specific bugs also go here.
486
487[ List each fix as a =item entry ]
488
489=over 4
490
491=item *
492
493XXX
494
495=back
496
497=head1 Errata From Previous Releases
498
499=over 4
500
501=item *
502
503XXX Add anything here that we forgot to add, or were mistaken about, in
504the perldelta of a previous release.
505
506=back
507
508=head1 Obituary
509
510XXX If any significant core contributor has died, we've added a short obituary
511here.
512
513=head1 Acknowledgements
0cc8c746 514
1b510166 515XXX Generate this with:
2e0dcc12 516
1b510166 517 perl Porting/acknowledgements.pl v5.25.5..HEAD
f5b73711 518
44691e6f
AB
519=head1 Reporting Bugs
520
b5cbfe35
S
521If you find what you think is a bug, you might check the perl bug database
522at L<https://rt.perl.org/> . There may also be information at
523L<http://www.perl.org/> , the Perl Home Page.
44691e6f 524
e08634c5
SH
525If you believe you have an unreported bug, please run the L<perlbug> program
526included with your release. Be sure to trim your bug down to a tiny but
527sufficient test case. Your bug report, along with the output of C<perl -V>,
b5cbfe35 528will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 529
87c118b9
DM
530If the bug you are reporting has security implications which make it
531inappropriate to send to a publicly archived mailing list, then see
c0ea3294
SH
532L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
533for details of how to report the issue.
44691e6f 534
390ae6f9
S
535=head1 Give Thanks
536
537If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
538you can do so by running the C<perlthanks> program:
539
540 perlthanks
541
542This will send an email to the Perl 5 Porters list with your show of thanks.
543
44691e6f
AB
544=head1 SEE ALSO
545
e08634c5
SH
546The F<Changes> file for an explanation of how to view exhaustive details on
547what changed.
44691e6f
AB
548
549The F<INSTALL> file for how to build Perl.
550
551The F<README> file for general stuff.
552
553The F<Artistic> and F<Copying> files for copyright information.
554
555=cut