Commit | Line | Data |
---|---|---|
44691e6f AB |
1 | =encoding utf8 |
2 | ||
3 | =head1 NAME | |
4 | ||
3ce6a296 S |
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.25.9 | |
eabfc7bc | 9 | |
2cfe9b50 | 10 | =head1 DESCRIPTION |
eabfc7bc | 11 | |
3ce6a296 | 12 | This document describes differences between the 5.25.8 release and the 5.25.9 |
4b8803f0 | 13 | release. |
f3ed8cbf | 14 | |
3ce6a296 S |
15 | If you are upgrading from an earlier release such as 5.25.7, first read |
16 | L<perl5258delta>, which describes differences between 5.25.7 and 5.25.8. | |
17 | ||
18 | =head1 Notice | |
19 | ||
20 | XXX Any important notices here | |
8bbdbfcb | 21 | |
733dba2b | 22 | =head1 Core Enhancements |
ce6646d7 | 23 | |
3ce6a296 S |
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 | ||
77c8f263 KW |
28 | =head2 New regular expression modifier C</xx> |
29 | ||
30 | Specifying two C<x> characters to modify a regular expression pattern | |
31 | does everything that a single one does, but additionally TAB and SPACE | |
32 | characters within a bracketed character class are generally ignored and | |
33 | can be added to improve readability, like | |
34 | S<C</[ ^ A-Z d-f p-x ]/xx>>. Details are at | |
35 | L<perlre/E<sol>x and E<sol>xx>. | |
3ce6a296 S |
36 | |
37 | =head1 Security | |
38 | ||
39 | XXX Any security-related notices go here. In particular, any security | |
40 | vulnerabilities closed should be noted here rather than in the | |
41 | L</Selected Bug Fixes> section. | |
42 | ||
43 | [ List each security issue as a =head2 entry ] | |
44 | ||
45 | =head1 Incompatible Changes | |
46 | ||
47 | XXX For a release on a stable branch, this section aspires to be: | |
48 | ||
49 | There are no changes intentionally incompatible with 5.XXX.XXX | |
50 | If any exist, they are bugs, and we request that you submit a | |
51 | report. See L</Reporting Bugs> below. | |
52 | ||
53 | [ List each incompatible change as a =head2 entry ] | |
54 | ||
55 | =head1 Deprecations | |
56 | ||
94749a5e KW |
57 | =head2 String delimiters that aren't stand-alone graphemes are now |
58 | deprecated | |
59 | ||
60 | In order for Perl to eventually allow string delimiters to be Unicode | |
61 | grapheme clusters (which look like a single character, but may be | |
62 | a sequence of several ones), we have to stop allowing a single char | |
63 | delimiter that isn't a grapheme by itself. These are unlikely to exist | |
64 | in actual code, as they would typically display as attached to the | |
65 | character in front of them. | |
3ce6a296 S |
66 | |
67 | =head2 Module removals | |
68 | ||
69 | XXX Remove this section if inapplicable. | |
70 | ||
71 | The following modules will be removed from the core distribution in a | |
72 | future release, and will at that time need to be installed from CPAN. | |
73 | Distributions on CPAN which require these modules will need to list them as | |
74 | prerequisites. | |
75 | ||
76 | The core versions of these modules will now issue C<"deprecated">-category | |
77 | warnings to alert you to this fact. To silence these deprecation warnings, | |
78 | install the modules in question from CPAN. | |
79 | ||
80 | Note that these are (with rare exceptions) fine modules that you are encouraged | |
81 | to continue to use. Their disinclusion from core primarily hinges on their | |
82 | necessity to bootstrapping a fully functional, CPAN-capable Perl installation, | |
83 | not usually on concerns over their design. | |
eaed4a85 | 84 | |
3ce6a296 | 85 | =over |
eaed4a85 | 86 | |
3ce6a296 S |
87 | =item XXX |
88 | ||
89 | XXX Note that deprecated modules should be listed here even if they are listed | |
90 | as an updated module in the L</Modules and Pragmata> section. | |
91 | ||
92 | =back | |
93 | ||
94 | [ List each other deprecation as a =head2 entry ] | |
eaed4a85 | 95 | |
733dba2b | 96 | =head1 Performance Enhancements |
226eba01 | 97 | |
3ce6a296 S |
98 | XXX Changes which enhance performance without changing behaviour go here. |
99 | There may well be none in a stable release. | |
8bbdbfcb | 100 | |
3ce6a296 | 101 | [ List each enhancement as a =item entry ] |
8bbdbfcb | 102 | |
3ce6a296 | 103 | =over 4 |
8bbdbfcb | 104 | |
3ce6a296 | 105 | =item * |
dd3d2a3f | 106 | |
4587a8b8 DM |
107 | A hash in boolean context is now sometimes faster, e.g. |
108 | ||
109 | if (!%h) { ... } | |
110 | ||
111 | This was already special-cased, but some cases were missed, and even the | |
112 | ones which weren't have been improved. | |
dd3d2a3f | 113 | |
8bbdbfcb CG |
114 | =back |
115 | ||
733dba2b | 116 | =head1 Modules and Pragmata |
8bbdbfcb | 117 | |
3ce6a296 S |
118 | XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/> |
119 | go here. If Module::CoreList is updated, generate an initial draft of the | |
120 | following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary | |
121 | for important changes should then be added by hand. In an ideal world, | |
122 | dual-life modules would have a F<Changes> file that could be cribbed. | |
123 | ||
124 | [ Within each section, list entries as a =item entry ] | |
125 | ||
126 | =head2 New Modules and Pragmata | |
8bbdbfcb CG |
127 | |
128 | =over 4 | |
129 | ||
130 | =item * | |
131 | ||
3ce6a296 | 132 | XXX |
8bbdbfcb | 133 | |
3ce6a296 S |
134 | =back |
135 | ||
136 | =head2 Updated Modules and Pragmata | |
ff10d69b | 137 | |
3ce6a296 | 138 | =over 4 |
ff10d69b | 139 | |
76ea8b6a JK |
140 | =item * |
141 | ||
3ce6a296 | 142 | L<XXX> has been upgraded from version A.xx to B.yy. |
8bbdbfcb | 143 | |
d4151a23 S |
144 | =item * |
145 | ||
a4368cc3 KW |
146 | L<re> has been upgraded from version 0.33 to 0.34; |
147 | ||
148 | This adds support for the new L<C</xx>|perlre/E<sol>x and E<sol>xx> | |
149 | regular expression pattern modifier, and a change to the L<S<C<use re | |
150 | 'strict'>>|re/'strict' mode> experimental feature. When S<C<re | |
151 | 'strict'>> is enabled, a warning now will be generated for all | |
152 | unescaped uses of the two characters C<}> and C<]> in regular | |
153 | expression patterns (outside bracketed character classes) that are taken | |
154 | literally. This brings them more in line with the C<)> character which | |
155 | is always a metacharacter unless escaped. Being a metacharacter only | |
156 | sometimes, depending on action at a distance, can lead to silently | |
157 | having the pattern mean something quite different than was intended, | |
158 | which the S<C<re 'strict'>> mode is intended to minimize. | |
159 | ||
160 | =item * | |
161 | ||
ec34c8a4 JK |
162 | L<B::Xref> has been upgraded from version 1.05 to 1.06. |
163 | ||
164 | =item * | |
165 | ||
e34fc33f JK |
166 | L<Compress::Raw::Bzip2> has been upgraded from version 2.069 to 2.070. |
167 | ||
168 | =item * | |
169 | ||
19f0376b JK |
170 | L<Compress::Raw::Zlib> has been upgraded from version 2.069 to 2.070. |
171 | ||
172 | =item * | |
173 | ||
1146f1f7 | 174 | L<DB_File> has been upgraded from version 1.838 to 1.840. |
ec34c8a4 JK |
175 | |
176 | =item * | |
177 | ||
1146f1f7 | 178 | L<Devel::SelfStubber> has been upgraded from version 1.05 to 1.06. |
ec34c8a4 JK |
179 | |
180 | =item * | |
181 | ||
1146f1f7 | 182 | L<diagnostics> has been upgraded from version 1.35 to 1.36. |
ec34c8a4 JK |
183 | |
184 | =item * | |
185 | ||
186 | L<DynaLoader> has been upgraded from version 1.40 to 1.41. | |
187 | ||
188 | =item * | |
189 | ||
190 | L<Errno> has been upgraded from version 1.27 to 1.28. | |
191 | ||
192 | =item * | |
193 | ||
194 | L<ExtUtils::Embed> has been upgraded from version 1.33 to 1.34. | |
195 | ||
196 | =item * | |
197 | ||
198 | L<I18N::LangTags> has been upgraded from version 0.41 to 0.42. | |
199 | ||
200 | =item * | |
201 | ||
202 | L<lib> has been upgraded from version 0.63 to 0.64. | |
203 | ||
204 | =item * | |
205 | ||
59aeb939 | 206 | L<Module::CoreList> has been upgraded from version 5.20161220 to 5.20170120. |
d4151a23 | 207 | |
ec34c8a4 JK |
208 | =item * |
209 | ||
4ee2b8db | 210 | L<OS2::Process> has been upgraded from version 1.11 to 1.12. |
ec34c8a4 JK |
211 | |
212 | =item * | |
213 | ||
214 | L<perl5db.pl> has been upgraded from version 1.50 to 1.51. | |
215 | ||
216 | =item * | |
217 | ||
74ef8fd9 | 218 | L<Storable> has been upgraded from version 2.59 to 2.61. |
ec34c8a4 JK |
219 | |
220 | =item * | |
221 | ||
222 | L<Symbol> has been upgraded from version 1.07 to 1.08. | |
223 | ||
224 | =item * | |
225 | ||
226 | L<Term::ReadLine> has been upgraded from version 1.15 to 1.16. | |
227 | ||
228 | =item * | |
229 | ||
230 | L<Test> has been upgraded from version 1.29 to 1.30. | |
231 | ||
232 | =item * | |
233 | ||
58e76350 JH |
234 | L<threads::shared> has been upgraded from version 1.52 to 1.53. |
235 | ||
236 | =item * | |
237 | ||
ec34c8a4 JK |
238 | L<Unicode::UCD> has been upgraded from version 0.67 to 0.68. |
239 | ||
240 | =item * | |
241 | ||
1146f1f7 JK |
242 | L<VMS::DCLsym> has been upgraded from version 1.07 to 1.08. |
243 | ||
244 | =item * | |
245 | ||
ec34c8a4 JK |
246 | L<XSLoader> has been upgraded from version 0.24 to 0.26. |
247 | ||
3ce6a296 | 248 | =back |
8bbdbfcb | 249 | |
3ce6a296 S |
250 | =head2 Removed Modules and Pragmata |
251 | ||
252 | =over 4 | |
8bbdbfcb CG |
253 | |
254 | =item * | |
255 | ||
3ce6a296 | 256 | XXX |
8bbdbfcb | 257 | |
3ce6a296 | 258 | =back |
8bbdbfcb | 259 | |
3ce6a296 | 260 | =head1 Documentation |
8bbdbfcb | 261 | |
3ce6a296 S |
262 | XXX Changes to files in F<pod/> go here. Consider grouping entries by |
263 | file and be sure to link to the appropriate page, e.g. L<perlfunc>. | |
8bbdbfcb | 264 | |
3ce6a296 | 265 | =head2 New Documentation |
8bbdbfcb | 266 | |
3ce6a296 | 267 | XXX Changes which create B<new> files in F<pod/> go here. |
8bbdbfcb | 268 | |
3ce6a296 | 269 | =head3 L<XXX> |
8bbdbfcb | 270 | |
3ce6a296 | 271 | XXX Description of the purpose of the new file here |
8bbdbfcb | 272 | |
3ce6a296 | 273 | =head2 Changes to Existing Documentation |
8bbdbfcb | 274 | |
3ce6a296 S |
275 | XXX Changes which significantly change existing files in F<pod/> go here. |
276 | However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics> | |
277 | section. | |
278 | ||
279 | =head3 L<XXX> | |
8bbdbfcb | 280 | |
3ce6a296 | 281 | =over 4 |
8bbdbfcb | 282 | |
107db227 | 283 | =item * |
8bbdbfcb | 284 | |
3ce6a296 | 285 | XXX Description of the change here |
8bbdbfcb | 286 | |
3ce6a296 | 287 | =back |
8bbdbfcb | 288 | |
3ce6a296 | 289 | =head1 Diagnostics |
8bbdbfcb | 290 | |
3ce6a296 S |
291 | The following additions or changes have been made to diagnostic output, |
292 | including warnings and fatal error messages. For the complete list of | |
293 | diagnostic messages, see L<perldiag>. | |
294 | ||
295 | XXX New or changed warnings emitted by the core's C<C> code go here. Also | |
296 | include any changes in L<perldiag> that reconcile it to the C<C> code. | |
8c3f6b0b | 297 | |
3ce6a296 S |
298 | =head2 New Diagnostics |
299 | ||
300 | XXX Newly added diagnostic messages go under here, separated into New Errors | |
301 | and New Warnings | |
302 | ||
303 | =head3 New Errors | |
304 | ||
305 | =over 4 | |
a09f502b | 306 | |
107db227 | 307 | =item * |
2c4879e2 | 308 | |
3ce6a296 S |
309 | XXX L<message|perldiag/"message"> |
310 | ||
311 | =back | |
312 | ||
313 | =head3 New Warnings | |
314 | ||
315 | =over 4 | |
8bbdbfcb CG |
316 | |
317 | =item * | |
318 | ||
3ce6a296 S |
319 | XXX L<message|perldiag/"message"> |
320 | ||
321 | =back | |
322 | ||
323 | =head2 Changes to Existing Diagnostics | |
324 | ||
57b3a6b6 | 325 | As of Perl 5.25.9, all new deprecations will come with a version in |
7ca0bfc4 A |
326 | which the feature will disappear. And with a few exceptions, most |
327 | existing deprecations will state when they'll disappear. As such, most | |
328 | deprecation messages have changed. | |
3ce6a296 S |
329 | |
330 | =over 4 | |
bd5630ab | 331 | |
107db227 | 332 | =item * |
2c4879e2 | 333 | |
7ca0bfc4 A |
334 | Attribute "locked" is deprecated, and will disappear in Perl 5.28 |
335 | ||
336 | =item * | |
337 | ||
338 | Attribute "unique" is deprecated, and will disappear in Perl 5.28 | |
339 | ||
340 | =item * | |
341 | ||
342 | "\c%c" is more clearly written simply as "%s". This will be a fatal error | |
343 | in Perl 5.28 | |
344 | ||
345 | =item * | |
346 | ||
347 | Constants from lexical variables potentially modified elsewhere are | |
348 | deprecated. This will not be allowed in Perl 5.32 | |
349 | ||
350 | =item * | |
351 | ||
352 | Deprecated use of my() in false conditional. This will be a fatal error | |
353 | in Perl 5.30 | |
354 | ||
355 | =item * | |
356 | ||
357 | dump() better written as CORE::dump(). dump() will no longer be available | |
358 | in Perl 5.30 | |
359 | ||
360 | =item * | |
361 | ||
362 | ${^ENCODING} is no longer supported. Its use will be fatal in Perl 5.28 | |
363 | ||
364 | =item * | |
365 | ||
366 | File::Glob::glob() will disappear in perl 5.30. Use File::Glob::bsd_glob() | |
367 | instead. | |
368 | ||
369 | =item * | |
370 | ||
371 | %s() is deprecated on :utf8 handles. This will be a fatal error in Perl 5.30 | |
372 | ||
373 | =item * | |
374 | ||
375 | $* is no longer supported. Its use will be fatal in Perl 5.30 | |
376 | ||
377 | =item * | |
378 | ||
379 | $* is no longer supported. Its use will be fatal in Perl 5.30 | |
380 | ||
381 | =item * | |
382 | ||
383 | Opening dirhandle %s also as a file. This will be a fatal error in Perl 5.28 | |
384 | ||
385 | =item * | |
386 | ||
387 | Opening filehandle %s also as a directory. This will be a fatal | |
388 | error in Perl 5.28 | |
389 | ||
390 | =item * | |
391 | ||
392 | Setting $/ to a reference to %s as a form of slurp is deprecated, | |
393 | treating as undef. This will be fatal in Perl 5.28 | |
394 | ||
395 | =item * | |
396 | ||
397 | Unescaped left brace in regex is deprecated here (and will be fatal | |
398 | in Perl 5.30), passed through in regex; marked by S<<-- HERE> in m/%s/ | |
399 | ||
400 | =item * | |
401 | ||
402 | Unknown charname '' is deprecated. Its use will be fatal in Perl 5.28 | |
403 | ||
404 | =item * | |
405 | ||
406 | Use of bare << to mean <<"" is deprecated. Its use will be fatal in Perl 5.28 | |
407 | ||
408 | =item * | |
409 | ||
410 | Use of code point 0x%s is deprecated; the permissible max is 0x%s. | |
411 | This will be fatal in Perl 5.28 | |
412 | ||
413 | =item * | |
414 | ||
415 | Use of comma-less variable list is deprecated. Its use will be fatal | |
416 | in Perl 5.28 | |
417 | ||
418 | =item * | |
419 | ||
420 | Use of inherited AUTOLOAD for non-method %s() is deprecated. This | |
421 | will be fatal in Perl 5.28 | |
422 | ||
423 | =item * | |
424 | ||
425 | Use of strings with code points over 0xFF as arguments to %s operator | |
426 | is deprecated. This will be a fatal error in Perl 5.28 | |
3ce6a296 S |
427 | |
428 | =back | |
429 | ||
430 | =head1 Utility Changes | |
431 | ||
432 | XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here. | |
433 | Most of these are built within the directory F<utils>. | |
434 | ||
435 | [ List utility changes as a =head2 entry for each utility and =item | |
436 | entries for each change | |
437 | Use L<XXX> with program names to get proper documentation linking. ] | |
438 | ||
439 | =head2 L<XXX> | |
440 | ||
441 | =over 4 | |
a09f502b | 442 | |
107db227 | 443 | =item * |
8bbdbfcb | 444 | |
3ce6a296 S |
445 | XXX |
446 | ||
447 | =back | |
448 | ||
449 | =head1 Configuration and Compilation | |
450 | ||
451 | XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools | |
452 | go here. Any other changes to the Perl build process should be listed here. | |
453 | However, any platform-specific changes should be listed in the | |
454 | L</Platform Support> section, instead. | |
455 | ||
456 | [ List changes as a =item entry ]. | |
457 | ||
458 | =over 4 | |
8bbdbfcb | 459 | |
107db227 | 460 | =item * |
8bbdbfcb | 461 | |
1e671560 TC |
462 | The C<dtrace> build process has further changes: |
463 | ||
464 | =over | |
465 | ||
466 | =item * | |
467 | ||
468 | If the C<-xnolibs> is available, use that so a F<dtrace> perl can be | |
469 | built within a FreeBSD jail. | |
470 | ||
471 | =item * | |
472 | ||
473 | On systems that build a dtrace object file (FreeBSD, Solaris and | |
474 | SystemTap's dtrace emulation), copy the input objects to a separate | |
475 | directory and process them there, and use those objects in the link, | |
476 | since C<dtrace -G> also modifies these objects. | |
477 | ||
478 | =item * | |
479 | ||
480 | Add libelf to the build on FreeBSD 10.x, since dtrace adds references | |
481 | to libelf symbols. | |
482 | ||
483 | =item * | |
484 | ||
485 | Generate a dummy dtrace_main.o if C<dtrace -G> fails to build it. A | |
486 | default build on Solaris generates probes from the unused inline | |
487 | functions, while they don't on FreeBSD, which causes C<dtrace -G> to | |
488 | fail. | |
489 | ||
490 | =back | |
491 | ||
492 | [perl #130108] | |
3ce6a296 | 493 | |
8f7edc68 TC |
494 | =item * |
495 | ||
496 | You can now disable perl's use of the PERL_HASH_SEED and | |
497 | PERL_PERTURB_KEYS environment variables by configureing perl with | |
498 | C<-Accflags=NO_PERL_HASH_ENV>. | |
499 | ||
500 | =item * | |
501 | ||
502 | You can now disable perl's use of the PERL_HASH_SEED_DEBUG environment | |
503 | variable by configuring perl with | |
504 | C<-Accflags=-DNO_PERL_HASH_SEED_DEBUG>. | |
505 | ||
3ce6a296 S |
506 | =back |
507 | ||
508 | =head1 Testing | |
509 | ||
510 | XXX Any significant changes to the testing of a freshly built perl should be | |
511 | listed here. Changes which create B<new> files in F<t/> go here as do any | |
512 | large changes to the testing harness (e.g. when parallel testing was added). | |
513 | Changes to existing files in F<t/> aren't worth summarizing, although the bugs | |
514 | that they represent may be covered elsewhere. | |
515 | ||
516 | [ List each test improvement as a =item entry ] | |
517 | ||
518 | =over 4 | |
8bbdbfcb CG |
519 | |
520 | =item * | |
521 | ||
3ce6a296 | 522 | XXX |
07cfdfcc | 523 | |
262514fd | 524 | =back |
2c4879e2 | 525 | |
3ce6a296 S |
526 | =head1 Platform Support |
527 | ||
528 | XXX Any changes to platform support should be listed in the sections below. | |
529 | ||
530 | [ Within the sections, list each platform as a =item entry with specific | |
531 | changes as paragraphs below it. ] | |
532 | ||
533 | =head2 New Platforms | |
534 | ||
535 | XXX List any platforms that this version of perl compiles on, that previous | |
536 | versions did not. These will either be enabled by new files in the F<hints/> | |
537 | directories, or new subdirectories and F<README> files at the top level of the | |
538 | source tree. | |
539 | ||
540 | =over 4 | |
541 | ||
542 | =item XXX-some-platform | |
543 | ||
544 | XXX | |
545 | ||
546 | =back | |
547 | ||
548 | =head2 Discontinued Platforms | |
549 | ||
550 | XXX List any platforms that this version of perl no longer compiles on. | |
551 | ||
552 | =over 4 | |
553 | ||
554 | =item XXX-some-platform | |
555 | ||
556 | XXX | |
557 | ||
558 | =back | |
559 | ||
560 | =head2 Platform-Specific Notes | |
561 | ||
562 | XXX List any changes for specific platforms. This could include configuration | |
563 | and compilation changes or changes in portability/compatibility. However, | |
564 | changes within modules for platforms should generally be listed in the | |
565 | L</Modules and Pragmata> section. | |
566 | ||
567 | =over 4 | |
568 | ||
569 | =item XXX-some-platform | |
570 | ||
571 | XXX | |
572 | ||
573 | =back | |
574 | ||
575 | =head1 Internal Changes | |
576 | ||
577 | XXX Changes which affect the interface available to C<XS> code go here. Other | |
578 | significant internal changes for future core maintainers should be noted as | |
579 | well. | |
580 | ||
581 | [ List each change as a =item entry ] | |
a09f502b | 582 | |
733dba2b | 583 | =over 4 |
a09f502b | 584 | |
a07f6112 | 585 | =item * |
a09f502b | 586 | |
a239b1e2 KW |
587 | New versions of macros like C<isALPHA_utf8> and C<toLOWER_utf8> have |
588 | been added, each with the | |
da8c1a98 KW |
589 | suffix C<_safe>, like C<isSPACE_utf8_safe>. These take an extra |
590 | parameter, giving an upper limit of how far into the string it is safe | |
591 | to read. Using the old versions could cause attempts to read beyond the | |
607313a1 KW |
592 | end of the input buffer if the UTF-8 is not well-formed, and ther use |
593 | now raises a deprecation warning. Details are at | |
da8c1a98 KW |
594 | L<perlapi/Character classification>. |
595 | ||
596 | =item * | |
597 | ||
86ae6e94 KW |
598 | Calling macros like C<isALPHA_utf8> on malformed UTF-8 have issued a |
599 | deprecation warning since Perl v5.18. They now die. | |
fa8ab374 | 600 | Similarly, macros like C<toLOWER_utf8> on malformed UTF-8 now die. |
3ce6a296 | 601 | |
d1f8d421 KW |
602 | =item * |
603 | ||
604 | Calling the functions C<utf8n_to_uvchr> and its derivatives, while | |
5a48568d KW |
605 | passing a string length of 0 is now asserted against in DEBUGGING |
606 | builds, and otherwise returns the Unicode REPLACEMENT CHARACTER. If | |
607 | you have nothing to decode, you shouldn't call the decode function. | |
d1f8d421 | 608 | |
94953955 KW |
609 | =item * |
610 | ||
611 | The functions C<utf8n_to_uvchr> and its derivatives now return the | |
612 | Unicode REPLACEMENT CHARACTER if called with UTF-8 that has the overlong | |
613 | malformation, and that malformation is allowed by the input parameters. | |
614 | This malformation is where the UTF-8 looks valid syntactically, but | |
615 | there is a shorter sequence that yields the same code point. This has | |
616 | been forbidden since Unicode version 3.1. | |
617 | ||
d60baaa7 KW |
618 | =item * |
619 | ||
620 | The functions C<utf8n_to_uvchr> and its derivatives now accept an input | |
621 | flag to allow the overflow malformation. This malformation is when the | |
622 | UTF-8 may be syntactically valid, but the code point it represents is | |
623 | not capable of being represented in the word length on the platform. | |
624 | What "allowed" means in this case is that the function doesn't return an | |
625 | error, and advances the parse pointer to beyond the UTF-8 in question, | |
626 | but it returns the Unicode REPLACEMENT CHARACTER as the value of the | |
627 | code point (since the real value is not representable). | |
628 | ||
3ce6a296 S |
629 | =back |
630 | ||
631 | =head1 Selected Bug Fixes | |
632 | ||
633 | XXX Important bug fixes in the core language are summarized here. Bug fixes in | |
634 | files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>. | |
635 | ||
636 | [ List each fix as a =item entry ] | |
637 | ||
638 | =over 4 | |
a09f502b | 639 | |
36cabe94 YO |
640 | =item * |
641 | ||
6cdc5cd8 KW |
642 | Under C<use utf8>, the entire Perl program is now checked that the UTF-8 |
643 | is wellformed. This resolves [perl #126310]. | |
3ce6a296 | 644 | |
d6c970c7 AC |
645 | =item * |
646 | ||
647 | The range operator C<..> on strings now handles its arguments correctly when in | |
648 | the scope of the L<< C<unicode_strings>|feature/"The 'unicode_strings' feature" >> | |
649 | feature. The previous behaviour was sufficiently unexpected that we believe no | |
650 | correct program could have made use of it. | |
651 | ||
14ebef5f TC |
652 | =item * |
653 | ||
654 | The S<split> operator did not ensure enough space was allocated for | |
655 | its return value in scalar context. It could then write a single | |
656 | pointer immediately beyond the end of the memory block allocated for | |
657 | the stack. [perl #130262] | |
658 | ||
8ecef801 TC |
659 | =item * |
660 | ||
661 | Using a large code point with the C<W> pack template character with | |
662 | the current output position aligned at just the right point could | |
663 | cause a write a single zero byte immediately beyond the end of an | |
664 | allocated buffer. [perl #129149] | |
665 | ||
3ce6a296 S |
666 | =back |
667 | ||
668 | =head1 Known Problems | |
669 | ||
670 | XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any | |
671 | tests that had to be C<TODO>ed for the release would be noted here. Unfixed | |
672 | platform specific bugs also go here. | |
36cabe94 | 673 | |
3ce6a296 S |
674 | [ List each fix as a =item entry ] |
675 | ||
676 | =over 4 | |
677 | ||
678 | =item * | |
679 | ||
680 | XXX | |
36cabe94 | 681 | |
a07f6112 | 682 | =back |
7d897bd0 | 683 | |
3ce6a296 S |
684 | =head1 Errata From Previous Releases |
685 | ||
686 | =over 4 | |
8bbdbfcb | 687 | |
3ce6a296 S |
688 | =item * |
689 | ||
690 | XXX Add anything here that we forgot to add, or were mistaken about, in | |
691 | the perldelta of a previous release. | |
8bbdbfcb | 692 | |
3ce6a296 | 693 | =back |
262514fd | 694 | |
3ce6a296 | 695 | =head1 Obituary |
a6a32e96 | 696 | |
3ce6a296 S |
697 | XXX If any significant core contributor has died, we've added a short obituary |
698 | here. | |
262514fd | 699 | |
3ce6a296 | 700 | =head1 Acknowledgements |
226eba01 | 701 | |
3ce6a296 | 702 | XXX Generate this with: |
24528e8e | 703 | |
3ce6a296 | 704 | perl Porting/acknowledgements.pl v5.25.5..HEAD |
f5b73711 | 705 | |
44691e6f AB |
706 | =head1 Reporting Bugs |
707 | ||
c0ea3294 SH |
708 | If you find what you think is a bug, you might check the perl bug database |
709 | at L<https://rt.perl.org/> . There may also be information at | |
4b8803f0 | 710 | L<http://www.perl.org/> , the Perl Home Page. |
44691e6f | 711 | |
e08634c5 SH |
712 | If you believe you have an unreported bug, please run the L<perlbug> program |
713 | included with your release. Be sure to trim your bug down to a tiny but | |
714 | sufficient test case. Your bug report, along with the output of C<perl -V>, | |
715 | will be sent off to perlbug@perl.org to be analysed by the Perl porting team. | |
44691e6f | 716 | |
87c118b9 DM |
717 | If the bug you are reporting has security implications which make it |
718 | inappropriate to send to a publicly archived mailing list, then see | |
c0ea3294 SH |
719 | L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> |
720 | for details of how to report the issue. | |
44691e6f AB |
721 | |
722 | =head1 SEE ALSO | |
723 | ||
e08634c5 SH |
724 | The F<Changes> file for an explanation of how to view exhaustive details on |
725 | what changed. | |
44691e6f AB |
726 | |
727 | The F<INSTALL> file for how to build Perl. | |
728 | ||
729 | The F<README> file for general stuff. | |
730 | ||
731 | The F<Artistic> and F<Copying> files for copyright information. | |
732 | ||
733 | =cut |