Commit | Line | Data |
---|---|---|
44691e6f AB |
1 | =encoding utf8 |
2 | ||
3 | =head1 NAME | |
4 | ||
e6a2e5ca SH |
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.6 | |
89853d76 | 9 | |
b5cbfe35 | 10 | =head1 DESCRIPTION |
89853d76 | 11 | |
e6a2e5ca | 12 | This document describes differences between the 5.27.5 release and the 5.27.6 |
b5cbfe35 | 13 | release. |
89853d76 | 14 | |
e6a2e5ca SH |
15 | If you are upgrading from an earlier release such as 5.27.4, first read |
16 | L<perl5275delta>, which describes differences between 5.27.4 and 5.27.5. | |
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 | ||
f99042c8 Z |
30 | =head2 Initialisation of aggregate state variables |
31 | ||
32 | A persistent lexical array or hash variable can now be initialized, | |
33 | by an expression such as C<state @a = qw(x y z)>. Initialization of a | |
34 | list of persistent lexical variables is still not possible. | |
35 | ||
2e8ea15a Z |
36 | =head2 Full-size inode numbers |
37 | ||
38 | On platforms where inode numbers are of a type larger than perl's native | |
39 | integer numerical types, L<stat|perlfunc/stat> will preserve the full | |
40 | content of large inode numbers by returning them in the form of strings of | |
41 | decimal digits. Exact comparison of inode numbers can thus be achieved by | |
42 | comparing with C<eq> rather than C<==>. Comparison with C<==>, and other | |
43 | numerical operations (which are usually meaningless on inode numbers), | |
44 | work as well as they did before, which is to say they fall back to | |
45 | floating point, and ultimately operate on a fairly useless rounded inode | |
46 | number if the real inode number is too big for the floating point format. | |
47 | ||
e6a2e5ca SH |
48 | =head1 Security |
49 | ||
50 | XXX Any security-related notices go here. In particular, any security | |
51 | vulnerabilities closed should be noted here rather than in the | |
52 | L</Selected Bug Fixes> section. | |
53 | ||
54 | [ List each security issue as a =head2 entry ] | |
55 | ||
56 | =head1 Incompatible Changes | |
57 | ||
58 | XXX For a release on a stable branch, this section aspires to be: | |
59 | ||
60 | There are no changes intentionally incompatible with 5.XXX.XXX | |
61 | If any exist, they are bugs, and we request that you submit a | |
62 | report. See L</Reporting Bugs> below. | |
63 | ||
64 | [ List each incompatible change as a =head2 entry ] | |
65 | ||
29d69c3c Z |
66 | =head2 Yada-yada is now strictly a statement |
67 | ||
68 | By the time of its initial stable release in Perl 5.12, the C<...> | |
69 | (yada-yada) operator was explicitly intended to serve as a statement, | |
70 | not an expression. However, the original implementation was confused | |
71 | on this point, leading to inconsistent parsing. The operator was | |
72 | accidentally accepted in a few situations where it did not serve as a | |
73 | complete statement, such as | |
74 | ||
75 | ... . "foo"; | |
76 | ... if $a < $b; | |
77 | ||
78 | The parsing has now been made consistent, permitting yada-yada only as | |
79 | a statement. Affected code can use C<do{...}> to put a yada-yada into | |
80 | an arbitrary expression context. | |
81 | ||
7d65f652 FC |
82 | =head2 Subroutines no longer need typeglobs |
83 | ||
84 | Perl 5.22.0 introduced an optimization allowing subroutines to be stored in | |
85 | packages as simple sub refs, not requiring a full typeglob (thus | |
86 | potentially saving large amounts of memeory). However, the optimization | |
87 | was flawed: it only applied to the main package. | |
88 | ||
89 | This optimization has now been extended to all packages. This may break | |
90 | compatibility with introspection code that looks inside stashes and expects | |
91 | everything in them to be a typeglob. | |
92 | ||
93 | When this optimization happens, the typeglob still notionally exists, so | |
94 | accessing it will cause the stash entry to be upgraded to a typeglob. The | |
95 | optimization does not apply to XSUBs or exported subroutines, and calling a | |
96 | method will undo it, since method calls cache things in typeglobs. | |
97 | ||
98 | [perl #129916] [perl #132252] | |
99 | ||
e6a2e5ca SH |
100 | =head1 Deprecations |
101 | ||
102 | XXX Any deprecated features, syntax, modules etc. should be listed here. | |
103 | ||
104 | =head2 Module removals | |
105 | ||
106 | XXX Remove this section if inapplicable. | |
107 | ||
108 | The following modules will be removed from the core distribution in a | |
109 | future release, and will at that time need to be installed from CPAN. | |
110 | Distributions on CPAN which require these modules will need to list them as | |
111 | prerequisites. | |
112 | ||
113 | The core versions of these modules will now issue C<"deprecated">-category | |
114 | warnings to alert you to this fact. To silence these deprecation warnings, | |
115 | install the modules in question from CPAN. | |
116 | ||
117 | Note that these are (with rare exceptions) fine modules that you are encouraged | |
118 | to continue to use. Their disinclusion from core primarily hinges on their | |
119 | necessity to bootstrapping a fully functional, CPAN-capable Perl installation, | |
120 | not usually on concerns over their design. | |
121 | ||
122 | =over | |
123 | ||
124 | =item XXX | |
125 | ||
126 | XXX Note that deprecated modules should be listed here even if they are listed | |
127 | as an updated module in the L</Modules and Pragmata> section. | |
128 | ||
129 | =back | |
130 | ||
131 | [ List each other deprecation as a =head2 entry ] | |
a8ba758d | 132 | |
cf663f87 AC |
133 | =head1 Performance Enhancements |
134 | ||
e6a2e5ca SH |
135 | XXX Changes which enhance performance without changing behaviour go here. |
136 | There may well be none in a stable release. | |
137 | ||
138 | [ List each enhancement as an =item entry ] | |
139 | ||
1b510166 S |
140 | =over 4 |
141 | ||
142 | =item * | |
143 | ||
8ed1839e DM |
144 | Many string concatenation expressions are now considerably faster, due |
145 | to the introduction internally of a C<multiconcat> opcode which combines | |
146 | multiple concatenations, and optionally a C<=> or C<.=>, into a single | |
147 | action. For example, apart from retrieving C<$s>, C<$a> and C<$b>, this | |
148 | whole expression is now handled as a single op: | |
149 | ||
150 | $s .= "a=$a b=$b\n" | |
151 | ||
152 | As a special case, if the LHS of an assign is a lexical variable or | |
153 | C<my $s>, the op itself handles retrieving the lexical variable, which | |
154 | is faster. | |
155 | ||
156 | In general, the more the expression includes a mix of constant strings and | |
157 | variable expressions, the longer the expression, and the more it mixes | |
158 | together non-utf8 and utf8 strings, the more marked the performance | |
159 | improvement. For example on a C<x86_64> system, this code has been | |
160 | benchmarked running four times faster: | |
161 | ||
162 | my $s; | |
163 | my $a = "ab\x{100}cde"; | |
164 | my $b = "fghij"; | |
165 | my $c = "\x{101}klmn"; | |
166 | ||
167 | for my $i (1..10_000_000) { | |
168 | $s = "\x{100}wxyz"; | |
169 | $s .= "foo=$a bar=$b baz=$c"; | |
170 | } | |
171 | ||
172 | In addition, C<sprintf> expressions which have a constant format | |
173 | containing only C<%s> and C<%%> format elements, and which have a fixed | |
174 | number of arguments, are now also optimised into a C<multiconcat> op. | |
d912eab8 | 175 | |
7d65f652 FC |
176 | =item * |
177 | ||
178 | Subroutines in packages no longer need to be stored in typeglobs, saving | |
179 | large amounts of memory. See L</Subroutines no longer need typeglobs> | |
180 | under L</Incompatible Changes>, above. | |
181 | ||
c83a3d01 | 182 | =back |
d912eab8 | 183 | |
c83a3d01 | 184 | =head1 Modules and Pragmata |
af94b3ac | 185 | |
e6a2e5ca SH |
186 | XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/> |
187 | go here. If Module::CoreList is updated, generate an initial draft of the | |
188 | following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary | |
189 | for important changes should then be added by hand. In an ideal world, | |
190 | dual-life modules would have a F<Changes> file that could be cribbed. | |
191 | ||
192 | The list of new and updated modules is modified automatically as part of | |
193 | preparing a Perl release, so the only reason to manually add entries here is if | |
194 | you're summarising the important changes in the module update. (Also, if the | |
195 | manually-added details don't match the automatically-generated ones, the | |
196 | release manager will have to investigate the situation carefully.) | |
197 | ||
198 | [ Within each section, list entries as an =item entry ] | |
199 | ||
9b78f210 TR |
200 | =head2 Removal of use vars |
201 | ||
202 | =over 4 | |
203 | ||
204 | The usage of "use vars" has been discouraged since the introduction of our in | |
205 | Perl 5.6.0. Where possible the usage of this pragma has now been removed from | |
206 | the Perl source code. | |
207 | ||
208 | =back | |
209 | ||
e6a2e5ca | 210 | =head2 New Modules and Pragmata |
a8ba758d JSA |
211 | |
212 | =over 4 | |
ba2fe89f AC |
213 | |
214 | =item * | |
215 | ||
e6a2e5ca | 216 | XXX |
64b9a139 | 217 | |
e6a2e5ca | 218 | =back |
64b9a139 | 219 | |
e6a2e5ca SH |
220 | =head2 Updated Modules and Pragmata |
221 | ||
222 | =over 4 | |
64b9a139 SH |
223 | |
224 | =item * | |
225 | ||
b5af74de FC |
226 | L<Carp> has been upgraded from version 1.43 to 1.44. |
227 | ||
228 | If a package on the call stack contains a constant named C<ISA>, Carp no | |
229 | longer throws a "Not a GLOB reference" error. | |
64b9a139 | 230 | |
d7408e7a JK |
231 | =item * |
232 | ||
233 | L<File::Copy> has been upgraded from version 2.32 to 2.33. It will now use | |
234 | Time::HiRes utime where available (RT #132401). | |
235 | ||
ad3f654c JK |
236 | =item * |
237 | ||
238 | To address a security vulnerability in older versions of the 'zlib' library | |
239 | (which is bundled with Compress-Raw-Zlib), L<Compress::Raw::Zlib> has been | |
240 | upgraded to CPAN version 2.075. | |
241 | ||
e6a2e5ca | 242 | =back |
64b9a139 | 243 | |
e6a2e5ca SH |
244 | =head2 Removed Modules and Pragmata |
245 | ||
246 | =over 4 | |
64b9a139 SH |
247 | |
248 | =item * | |
249 | ||
e6a2e5ca | 250 | XXX |
64b9a139 | 251 | |
e6a2e5ca | 252 | =back |
64b9a139 | 253 | |
e6a2e5ca | 254 | =head1 Documentation |
64b9a139 | 255 | |
e6a2e5ca SH |
256 | XXX Changes to files in F<pod/> go here. Consider grouping entries by |
257 | file and be sure to link to the appropriate page, e.g. L<perlfunc>. | |
64b9a139 | 258 | |
e6a2e5ca | 259 | =head2 New Documentation |
64b9a139 | 260 | |
e6a2e5ca | 261 | XXX Changes which create B<new> files in F<pod/> go here. |
64b9a139 | 262 | |
e6a2e5ca | 263 | =head3 L<XXX> |
64b9a139 | 264 | |
e6a2e5ca | 265 | XXX Description of the purpose of the new file here |
64b9a139 | 266 | |
e6a2e5ca | 267 | =head2 Changes to Existing Documentation |
64b9a139 | 268 | |
e6a2e5ca SH |
269 | We have attempted to update the documentation to reflect the changes |
270 | listed in this document. If you find any we have missed, send email | |
271 | to L<perlbug@perl.org|mailto:perlbug@perl.org>. | |
64b9a139 | 272 | |
e6a2e5ca SH |
273 | XXX Changes which significantly change existing files in F<pod/> go here. |
274 | However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics> | |
275 | section. | |
64b9a139 | 276 | |
e6a2e5ca SH |
277 | Additionally, the following selected changes have been made: |
278 | ||
754dd754 KW |
279 | =head3 L<perldiag/Variable length lookbehind not implemented in regex m/%s/> |
280 | ||
281 | This now gives more ideas as to workarounds to the issue that was | |
282 | introduced in Perl 5.18 (but not documented explicitly in its perldelta) | |
283 | for the fact that some Unicode C</i> rules cause a few sequences such as | |
284 | ||
285 | (?<!st) | |
286 | ||
287 | to be considered variable length, and hence disallowed. | |
64b9a139 | 288 | |
e6a2e5ca | 289 | =over 4 |
64b9a139 SH |
290 | |
291 | =item * | |
292 | ||
2b8b74b0 Z |
293 | The section on reference counting in L<perlguts> has been heavily revised, |
294 | to describe references in the way a programmer needs to think about them | |
295 | rather than in terms of the physical data structures. | |
296 | ||
297 | =item * | |
298 | ||
77fae439 Z |
299 | The section "Truth and Falsehood" in L<perlsyn> has been removed from |
300 | that document, where it didn't belong, and merged into the existing | |
301 | paragraph on the same topic in L<perldata>. | |
302 | ||
303 | =item * | |
304 | ||
e6a2e5ca | 305 | XXX Description of the change here |
64b9a139 | 306 | |
e6a2e5ca | 307 | =back |
64b9a139 | 308 | |
e6a2e5ca | 309 | =head1 Diagnostics |
64b9a139 | 310 | |
e6a2e5ca SH |
311 | The following additions or changes have been made to diagnostic output, |
312 | including warnings and fatal error messages. For the complete list of | |
313 | diagnostic messages, see L<perldiag>. | |
64b9a139 | 314 | |
e6a2e5ca SH |
315 | XXX New or changed warnings emitted by the core's C<C> code go here. Also |
316 | include any changes in L<perldiag> that reconcile it to the C<C> code. | |
64b9a139 | 317 | |
e6a2e5ca | 318 | =head2 New Diagnostics |
64b9a139 | 319 | |
e6a2e5ca SH |
320 | XXX Newly added diagnostic messages go under here, separated into New Errors |
321 | and New Warnings | |
64b9a139 | 322 | |
e6a2e5ca | 323 | =head3 New Errors |
64b9a139 | 324 | |
e6a2e5ca | 325 | =over 4 |
64b9a139 SH |
326 | |
327 | =item * | |
328 | ||
e6a2e5ca | 329 | XXX L<message|perldiag/"message"> |
64b9a139 | 330 | |
e6a2e5ca SH |
331 | =back |
332 | ||
333 | =head3 New Warnings | |
64b9a139 | 334 | |
e6a2e5ca | 335 | =over 4 |
64b9a139 SH |
336 | |
337 | =item * | |
338 | ||
e6a2e5ca | 339 | XXX L<message|perldiag/"message"> |
64b9a139 | 340 | |
e6a2e5ca SH |
341 | =back |
342 | ||
343 | =head2 Changes to Existing Diagnostics | |
64b9a139 | 344 | |
e6a2e5ca SH |
345 | XXX Changes (i.e. rewording) of diagnostic messages go here |
346 | ||
347 | =over 4 | |
64b9a139 SH |
348 | |
349 | =item * | |
350 | ||
f99042c8 Z |
351 | The diagnostic C<Initialization of state variables in list context |
352 | currently forbidden> has changed to C<Initialization of state variables | |
353 | in list currently forbidden>, because list-context initialization of | |
354 | single aggregate state variables is now permitted. | |
355 | ||
356 | =item * | |
357 | ||
e6a2e5ca SH |
358 | XXX Describe change here |
359 | ||
360 | =back | |
361 | ||
362 | =head1 Utility Changes | |
363 | ||
364 | XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here. | |
365 | Most of these are built within the directory F<utils>. | |
366 | ||
367 | [ List utility changes as a =head2 entry for each utility and =item | |
368 | entries for each change | |
369 | Use L<XXX> with program names to get proper documentation linking. ] | |
370 | ||
371 | =head2 L<XXX> | |
372 | ||
373 | =over 4 | |
64b9a139 SH |
374 | |
375 | =item * | |
376 | ||
e6a2e5ca SH |
377 | XXX |
378 | ||
379 | =back | |
380 | ||
381 | =head1 Configuration and Compilation | |
382 | ||
383 | XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools | |
384 | go here. Any other changes to the Perl build process should be listed here. | |
385 | However, any platform-specific changes should be listed in the | |
386 | L</Platform Support> section, instead. | |
387 | ||
388 | [ List changes as an =item entry ]. | |
389 | ||
390 | =over 4 | |
64b9a139 | 391 | |
5952a840 AC |
392 | =item C89 requirement |
393 | ||
394 | Perl has been documented as requiring a C89 compiler to build since October | |
515c1ce3 | 395 | 1998. A variety of simplifications have now been made to Perl's internals to |
5952a840 AC |
396 | rely on the features specified by the C89 standard. We believe that this |
397 | internal change hasn't altered the set of platforms that Perl builds on, but | |
398 | please report a bug if Perl now has new problems building on your platform. | |
399 | ||
dea26044 | 400 | =item New probes |
64b9a139 | 401 | |
dea26044 MB |
402 | =over 2 |
403 | ||
404 | =item HAS_BUILTIN_ADD_OVERFLOW | |
405 | ||
406 | =item HAS_BUILTIN_MUL_OVERFLOW | |
407 | ||
408 | =item HAS_BUILTIN_SUB_OVERFLOW | |
409 | ||
410 | =item HAS_THREAD_SAFE_NL_LANGINFO_L | |
411 | ||
412 | =item HAS_LOCALECONV_L | |
413 | ||
414 | =item HAS_MBRLEN | |
415 | ||
416 | =item HAS_MBRTOWC | |
417 | ||
418 | =item HAS_MEMRCHR | |
419 | ||
420 | =item HAS_NANOSLEEP | |
421 | ||
422 | =item HAS_STRNLEN | |
423 | ||
424 | =item HAS_STRTOLD_L | |
425 | ||
426 | =item I_WCHAR | |
427 | ||
428 | =back | |
e6a2e5ca SH |
429 | |
430 | =back | |
431 | ||
432 | =head1 Testing | |
433 | ||
434 | XXX Any significant changes to the testing of a freshly built perl should be | |
435 | listed here. Changes which create B<new> files in F<t/> go here as do any | |
436 | large changes to the testing harness (e.g. when parallel testing was added). | |
437 | Changes to existing files in F<t/> aren't worth summarizing, although the bugs | |
438 | that they represent may be covered elsewhere. | |
439 | ||
440 | XXX If there were no significant test changes, say this: | |
441 | ||
442 | Tests were added and changed to reflect the other additions and changes | |
443 | in this release. | |
444 | ||
445 | XXX If instead there were significant changes, say this: | |
446 | ||
447 | Tests were added and changed to reflect the other additions and | |
448 | changes in this release. Furthermore, these significant changes were | |
449 | made: | |
450 | ||
451 | [ List each test improvement as an =item entry ] | |
452 | ||
453 | =over 4 | |
64b9a139 SH |
454 | |
455 | =item * | |
456 | ||
e6a2e5ca | 457 | XXX |
cf663f87 | 458 | |
a8ba758d JSA |
459 | =back |
460 | ||
a8ba758d | 461 | =head1 Platform Support |
cf663f87 | 462 | |
e6a2e5ca SH |
463 | XXX Any changes to platform support should be listed in the sections below. |
464 | ||
465 | [ Within the sections, list each platform as an =item entry with specific | |
466 | changes as paragraphs below it. ] | |
467 | ||
468 | =head2 New Platforms | |
469 | ||
470 | XXX List any platforms that this version of perl compiles on, that previous | |
471 | versions did not. These will either be enabled by new files in the F<hints/> | |
472 | directories, or new subdirectories and F<README> files at the top level of the | |
473 | source tree. | |
474 | ||
475 | =over 4 | |
476 | ||
477 | =item XXX-some-platform | |
478 | ||
479 | XXX | |
480 | ||
481 | =back | |
482 | ||
483 | =head2 Discontinued Platforms | |
484 | ||
485 | XXX List any platforms that this version of perl no longer compiles on. | |
486 | ||
487 | =over 4 | |
488 | ||
489 | =item XXX-some-platform | |
490 | ||
491 | XXX | |
492 | ||
493 | =back | |
494 | ||
a8ba758d JSA |
495 | =head2 Platform-Specific Notes |
496 | ||
e6a2e5ca SH |
497 | XXX List any changes for specific platforms. This could include configuration |
498 | and compilation changes or changes in portability/compatibility. However, | |
499 | changes within modules for platforms should generally be listed in the | |
500 | L</Modules and Pragmata> section. | |
501 | ||
a8ba758d | 502 | =over 4 |
9ef07b78 | 503 | |
e6a2e5ca | 504 | =item XXX-some-platform |
a8ba758d | 505 | |
e6a2e5ca | 506 | XXX |
a8ba758d JSA |
507 | |
508 | =back | |
509 | ||
e6a2e5ca SH |
510 | =head1 Internal Changes |
511 | ||
512 | XXX Changes which affect the interface available to C<XS> code go here. Other | |
513 | significant internal changes for future core maintainers should be noted as | |
514 | well. | |
515 | ||
516 | [ List each change as an =item entry ] | |
a8ba758d | 517 | |
a8ba758d | 518 | =over 4 |
cf663f87 | 519 | |
21741043 | 520 | =item * |
c83a3d01 | 521 | |
8ed1839e DM |
522 | A new optimisation phase has been added to the compiler, |
523 | C<optimize_optree()>, which does a top-down scan of a complete optree | |
524 | just before the peephole optimiser is run. This phase is not currently | |
525 | hookable. | |
526 | ||
527 | =item * | |
528 | ||
529 | An C<OP_MULTICONCAT> op has been added. At C<optimize_optree()> time, a | |
530 | chain of C<OP_CONCAT> and C<OP_CONST> ops, together optionally with an | |
531 | C<OP_STRINGIFY> and/or C<OP_SASSIGN>, are combined into a single | |
532 | C<OP_MULTICONCAT> op. The op is of type C<UNOP_AUX>, and the aux array | |
533 | contains the argument count, plus a pointer to a constant string and a set | |
534 | of segment lengths. For example with | |
535 | ||
536 | my $x = "foo=$foo, bar=$bar\n"; | |
537 | ||
538 | the constant string would be C<"foo=, bar=\n"> and the segment lengths | |
539 | would be (4,6,1). If the string contains characters such as C<\x80>, whose | |
540 | representation changes under utf8, two sets of strings plus lengths are | |
541 | precomputed and stored. | |
a8ba758d | 542 | |
ee5287f6 LM |
543 | =item * |
544 | ||
545 | Direct access to L<C<PL_keyword_plugin>|perlapi/PL_keyword_plugin> is not | |
546 | safe in the presence of multithreading. A new | |
547 | L<C<wrap_keyword_plugin>|perlapi/wrap_keyword_plugin> function has been | |
548 | added to allow XS modules to safely define custom keywords even when | |
549 | loaded from a thread, analoguous to L<C<PL_check>|perlapi/PL_check> / | |
550 | L<C<wrap_op_checker>|perlapi/wrap_op_checker>. | |
551 | ||
e6a2e5ca SH |
552 | =back |
553 | ||
554 | =head1 Selected Bug Fixes | |
555 | ||
556 | XXX Important bug fixes in the core language are summarized here. Bug fixes in | |
557 | files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>. | |
834e1dc6 | 558 | |
e6a2e5ca SH |
559 | [ List each fix as an =item entry ] |
560 | ||
561 | =over 4 | |
77baf8eb SH |
562 | |
563 | =item * | |
564 | ||
a155eb05 TC |
565 | C<stat()>, C<lstat()>, and file test operators now fail if given a |
566 | filename containing a nul character, in the same way that C<open()> | |
567 | already fails. | |
568 | ||
569 | =item * | |
570 | ||
5bad3c4f DIM |
571 | The in-place reverse optimisation now correctly strengthens weak |
572 | references using the L<C<sv_rvunweaken()>|perlapi/sv_rvunweaken> | |
573 | API function. | |
e6a2e5ca | 574 | |
4faa3060 TC |
575 | =item * |
576 | ||
577 | Fixed a read before buffer when parsing a range starting with C<\N{}> | |
578 | at the beginning of the character set for the transliteration | |
579 | operator. [perl #132245] | |
580 | ||
581 | =item * | |
582 | ||
583 | Fixed a leaked SV when parsing an empty C<\N{}> at compile-time. | |
584 | [perl #132245] | |
585 | ||
d1ac83c4 DD |
586 | =item * |
587 | ||
588 | Calling C<do $path> on a directory or block device now yields a meaningful | |
589 | error code in C<$!>. [perl #125774] | |
590 | ||
e6a2e5ca SH |
591 | =back |
592 | ||
593 | =head1 Known Problems | |
594 | ||
595 | XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any | |
596 | tests that had to be C<TODO>ed for the release would be noted here. Unfixed | |
597 | platform specific bugs also go here. | |
598 | ||
599 | [ List each fix as an =item entry ] | |
600 | ||
601 | =over 4 | |
77baf8eb SH |
602 | |
603 | =item * | |
604 | ||
e6a2e5ca | 605 | XXX |
834e1dc6 | 606 | |
a8ba758d JSA |
607 | =back |
608 | ||
e6a2e5ca SH |
609 | =head1 Errata From Previous Releases |
610 | ||
611 | =over 4 | |
8abafd33 | 612 | |
e6a2e5ca SH |
613 | =item * |
614 | ||
615 | XXX Add anything here that we forgot to add, or were mistaken about, in | |
616 | the perldelta of a previous release. | |
8abafd33 | 617 | |
e6a2e5ca | 618 | =back |
b2e49ab9 | 619 | |
e6a2e5ca | 620 | =head1 Obituary |
b2e49ab9 | 621 | |
e6a2e5ca SH |
622 | XXX If any significant core contributor has died, we've added a short obituary |
623 | here. | |
b2e49ab9 | 624 | |
e6a2e5ca | 625 | =head1 Acknowledgements |
b2e49ab9 | 626 | |
e6a2e5ca | 627 | XXX Generate this with: |
b2e49ab9 | 628 | |
cab780cc | 629 | perl Porting/acknowledgements.pl v5.27.5..HEAD |
f5b73711 | 630 | |
44691e6f AB |
631 | =head1 Reporting Bugs |
632 | ||
b5cbfe35 S |
633 | If you find what you think is a bug, you might check the perl bug database |
634 | at L<https://rt.perl.org/> . There may also be information at | |
635 | L<http://www.perl.org/> , the Perl Home Page. | |
44691e6f | 636 | |
e08634c5 SH |
637 | If you believe you have an unreported bug, please run the L<perlbug> program |
638 | included with your release. Be sure to trim your bug down to a tiny but | |
639 | sufficient test case. Your bug report, along with the output of C<perl -V>, | |
b5cbfe35 | 640 | will be sent off to perlbug@perl.org to be analysed by the Perl porting team. |
44691e6f | 641 | |
87c118b9 DM |
642 | If the bug you are reporting has security implications which make it |
643 | inappropriate to send to a publicly archived mailing list, then see | |
c0ea3294 SH |
644 | L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> |
645 | for details of how to report the issue. | |
44691e6f | 646 | |
390ae6f9 S |
647 | =head1 Give Thanks |
648 | ||
649 | If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, | |
650 | you can do so by running the C<perlthanks> program: | |
651 | ||
652 | perlthanks | |
653 | ||
654 | This will send an email to the Perl 5 Porters list with your show of thanks. | |
655 | ||
44691e6f AB |
656 | =head1 SEE ALSO |
657 | ||
e08634c5 SH |
658 | The F<Changes> file for an explanation of how to view exhaustive details on |
659 | what changed. | |
44691e6f AB |
660 | |
661 | The F<INSTALL> file for how to build Perl. | |
662 | ||
663 | The F<README> file for general stuff. | |
664 | ||
665 | The F<Artistic> and F<Copying> files for copyright information. | |
666 | ||
667 | =cut |