Commit | Line | Data |
---|---|---|
44691e6f AB |
1 | =encoding utf8 |
2 | ||
19e72bbf | 3 | =for comment |
6d110ad0 | 4 | This has been completed up to c60dbbc38, except for: |
19e72bbf FC |
5 | d9018cbe5b480ba29cc6151aba8f5102a7e009c4 (Eric Brine) |
6 | -- while I (use git blame to find out who) see how this change within | |
7 | lex_read_unichar is correct, I cannot tell at a glance what visible | |
8 | effects this bug has at the Perl level or through the lexer API. | |
9 | a04eb69c733e84250299f12df200f10b76b0a45c (David Golden) | |
10 | 7a799f6bb3cac2e1bf9bede83579324cffa59c16 (David Golden) | |
11 | be48bbe8d671b6841c3ec7cb734b98071afe3cd9 (Chip) | |
12 | ||
44691e6f AB |
13 | =head1 NAME |
14 | ||
3432e5a1 SL |
15 | [ this is a template for a new perldelta file. Any text flagged as |
16 | XXX needs to be processed before release. ] | |
17 | ||
18 | perldelta - what is new for perl v5.15.4 | |
760696b8 | 19 | |
5438d4b8 | 20 | =head1 DESCRIPTION |
5cd408a2 | 21 | |
3432e5a1 SL |
22 | This document describes differences between the 5.15.3 release and |
23 | the 5.15.4 release. | |
5cd408a2 | 24 | |
3432e5a1 SL |
25 | If you are upgrading from an earlier release such as 5.15.3, first read |
26 | L<perl5153delta>, which describes differences between 5.15.3 and | |
27 | 5.15.4. | |
062678b2 | 28 | |
63ac71b9 | 29 | =head1 Notice |
4185c919 | 30 | |
3432e5a1 | 31 | XXX Any important notices here |
0afed34d | 32 | |
63ac71b9 | 33 | =head1 Core Enhancements |
0afed34d | 34 | |
3f728e2e | 35 | =head2 $^X converted to an absolute path on FreeBSD, OS X and Solaris |
d2006265 | 36 | |
3f728e2e NC |
37 | C<$^X> is now converted to an absolute path on OS X, FreeBSD (without |
38 | needing F</proc> mounted) and Solaris 10 and 11. This augments the | |
39 | previous approach of using F</proc> on Linux, FreeBSD and NetBSD | |
40 | (in all cases, where mounted). | |
41 | ||
42 | This makes relocatable perl installations more useful on these platforms. | |
43 | (See "Relocatable @INC" in F<INSTALL>) | |
d6cf2367 | 44 | |
6d110ad0 FC |
45 | =head2 Unicode Symbol Names |
46 | ||
47 | Perl now has proper support for Unicode in symbol names. It used to be | |
48 | that C<*{$foo}> would ignore the internal UTF8 flag and use the bytes of | |
49 | the underlying representation to look up the symbol. That meant that | |
50 | C<*{"\x{100}"}> and C<*{"\xc4\x80"}> would return the same thing. All | |
51 | these parts of Perl have been fixed to account for Unicode: | |
52 | ||
53 | =over | |
54 | ||
55 | =item * | |
56 | ||
57 | Method names (including those passed to C<use overload>) | |
58 | ||
59 | =item * | |
60 | ||
61 | Typeglob names (including names of variables, subroutines and filehandles) | |
62 | ||
63 | =item * | |
64 | ||
65 | Package names | |
66 | ||
67 | =item * | |
68 | ||
b2ef4871 | 69 | Constant subroutine names (not null-clean yet) |
6d110ad0 FC |
70 | |
71 | =item * | |
72 | ||
73 | C<goto> | |
74 | ||
75 | =item * | |
76 | ||
77 | Symbolic dereferencing | |
78 | ||
79 | =item * | |
80 | ||
81 | Second argument to C<bless()> and C<tie()> | |
82 | ||
83 | =item * | |
84 | ||
85 | Return value of C<ref()> | |
86 | ||
87 | =item * | |
88 | ||
89 | Package names returned by C<caller()> | |
90 | ||
91 | =item * | |
92 | ||
93 | Subroutine prototypes | |
94 | ||
95 | =item * | |
96 | ||
97 | Attributes | |
98 | ||
99 | =item * | |
100 | ||
101 | Various warnings and error messages that mention variable names or values, | |
102 | methods, etc. | |
103 | ||
104 | =back | |
105 | ||
106 | In addition, a parsing bug has been fixed that prevented C<*{é}> from | |
107 | implicitly quoting the name, but instead interpreted it as C<*{+é}>, which | |
108 | would cause a strict violation. | |
109 | ||
110 | C<*{"*a::b"}> automatically strips off the * if it is followed by an ASCII | |
111 | letter. That has been extended to all Unicode identifier characters. | |
112 | ||
113 | C<$é> is now subject to "Used only once" warnings. It used to be exempt, | |
114 | as it was treated as a punctuation variable. | |
115 | ||
b2ef4871 | 116 | =head2 Support for Embedded Nulls |
6d110ad0 | 117 | |
b2ef4871 | 118 | Some parts of Perl did not work correctly with nulls (C<chr 0>) embedded in |
6d110ad0 FC |
119 | strings. That meant that, for instance, C<< $m = "a\0b"; foo->$m >> would |
120 | call the "a" method, instead of the actual method name contained in $m. | |
b2ef4871 | 121 | These parts of perl have been fixed to support nulls: |
6d110ad0 FC |
122 | |
123 | =over | |
124 | ||
125 | =item * | |
126 | ||
127 | Method names | |
128 | ||
129 | =item * | |
130 | ||
131 | Typeglob names (including filehandle names) | |
132 | ||
133 | =item * | |
134 | ||
135 | Package names | |
136 | ||
137 | =item * | |
138 | ||
139 | Autoloading | |
140 | ||
141 | =item * | |
142 | ||
143 | Return value of C<ref()> | |
144 | ||
145 | =item * | |
146 | ||
147 | Package names returned by C<caller()> | |
148 | ||
149 | =item * | |
150 | ||
151 | Filehandle warnings | |
152 | ||
153 | =item * | |
154 | ||
155 | Typeglob elements (C<*foo{"THING\0stuff"}>) | |
156 | ||
157 | =item * | |
158 | ||
159 | Signal names | |
160 | ||
161 | =item * | |
162 | ||
163 | Various warnings and error messages that mention variable names or values, | |
164 | methods, etc. | |
165 | ||
166 | =back | |
167 | ||
168 | One side effect of these changes is that blessing into "\0" no longer | |
169 | causes C<ref()> to return false. | |
170 | ||
63ac71b9 | 171 | =head1 Security |
0afed34d | 172 | |
3432e5a1 SL |
173 | XXX Any security-related notices go here. In particular, any security |
174 | vulnerabilities closed should be noted here rather than in the | |
175 | L</Selected Bug Fixes> section. | |
46661105 | 176 | |
3432e5a1 | 177 | [ List each security issue as a =head2 entry ] |
46661105 | 178 | |
5438d4b8 | 179 | =head1 Incompatible Changes |
7818c927 | 180 | |
3432e5a1 | 181 | XXX For a release on a stable branch, this section aspires to be: |
e1dccc0d | 182 | |
3432e5a1 SL |
183 | There are no changes intentionally incompatible with 5.XXX.XXX |
184 | If any exist, they are bugs and reports are welcome. | |
7b2b001e | 185 | |
3432e5a1 | 186 | [ List each incompatible change as a =head2 entry ] |
bdb9ba77 | 187 | |
3432e5a1 | 188 | =head1 Deprecations |
7ec04da5 | 189 | |
3432e5a1 SL |
190 | XXX Any deprecated features, syntax, modules etc. should be listed here. |
191 | In particular, deprecated modules should be listed here even if they are | |
192 | listed as an updated module in the L</Modules and Pragmata> section. | |
7ec04da5 | 193 | |
3432e5a1 | 194 | [ List each deprecation as a =head2 entry ] |
d6cf2367 | 195 | |
3432e5a1 | 196 | =head1 Performance Enhancements |
d6cf2367 | 197 | |
3432e5a1 SL |
198 | XXX Changes which enhance performance without changing behaviour go here. There |
199 | may well be none in a stable release. | |
5d4ff231 | 200 | |
3432e5a1 | 201 | [ List each enhancement as a =item entry ] |
e46d9735 | 202 | |
63ac71b9 | 203 | =over 4 |
e46d9735 CBW |
204 | |
205 | =item * | |
206 | ||
3432e5a1 | 207 | XXX |
828d6195 | 208 | |
3432e5a1 | 209 | =back |
83307084 | 210 | |
3432e5a1 | 211 | =head1 Modules and Pragmata |
83307084 | 212 | |
3432e5a1 SL |
213 | XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/> |
214 | go here. If Module::CoreList is updated, generate an initial draft of the | |
215 | following sections using F<Porting/corelist-perldelta.pl>, which prints stub | |
216 | entries to STDOUT. Results can be pasted in place of the '=head2' entries | |
217 | below. A paragraph summary for important changes should then be added by hand. | |
218 | In an ideal world, dual-life modules would have a F<Changes> file that could be | |
219 | cribbed. | |
83307084 | 220 | |
3432e5a1 | 221 | [ Within each section, list entries as a =item entry ] |
83307084 | 222 | |
3432e5a1 | 223 | =head2 New Modules and Pragmata |
d93f0209 | 224 | |
3432e5a1 | 225 | =over 4 |
d93f0209 | 226 | |
60527824 FR |
227 | =item * |
228 | ||
3432e5a1 | 229 | XXX |
d6cf2367 | 230 | |
3432e5a1 | 231 | =back |
d39de893 | 232 | |
3432e5a1 | 233 | =head2 Updated Modules and Pragmata |
d39de893 | 234 | |
3432e5a1 | 235 | =over 4 |
39afdc5a CBW |
236 | |
237 | =item * | |
238 | ||
1e915955 | 239 | L<Archive::Tar> has been upgraded from version 1.78 to version 1.80. |
666c7ca6 | 240 | |
7b8e5ef0 GG |
241 | =item * |
242 | ||
a2fa999d CBW |
243 | L<Digest> has been upgraded from version 1.16 to version 1.17. |
244 | ||
245 | =item * | |
246 | ||
19e72bbf FC |
247 | L<DynaLoader> has been upgraded from version 1.13 to 1.14. |
248 | ||
249 | It stopped exporting its symbols with the ExtUtils::ParseXS changes in | |
1e915955 | 250 | 5.15.2. Now it exports them once more. |
19e72bbf FC |
251 | |
252 | =item * | |
253 | ||
7b8e5ef0 GG |
254 | L<ExtUtils::MakeMaker> has been upgraded from version 6.59 to version 6.61_01. |
255 | ||
bd65daab CBW |
256 | =item * |
257 | ||
02e7ec6d | 258 | L<ExtUtils::ParseXS> has been upgraded from version 3.04_04 to version 3.05. |
bd65daab | 259 | |
3f2cb5bf S |
260 | =item * |
261 | ||
02e7ec6d CBW |
262 | L<Module::Load> has been upgraded from version 0.20 to version 0.22. |
263 | ||
264 | Resolve possible security problem [http://goo.gl/YzHRU] where a '::' prefixed | |
265 | module can 'jump' out of @INC | |
266 | ||
267 | =item * | |
268 | ||
1e915955 CBW |
269 | L<perlfaq> has been upgraded from version 5.0150034 to version 5.0150035. |
270 | ||
271 | =item * | |
272 | ||
b2ef759e CBW |
273 | L<Unicode::Collate> has been upgraded from version 0.78 to version 0.80. |
274 | ||
275 | Locales updated to CLDR 2.0: ar, be, bg, ha, hr, kk, lt. | |
276 | Newly supported locales: as, fi__phonebook, gu, hi, kn, kok and ln. | |
3f2cb5bf | 277 | |
3432e5a1 | 278 | =back |
666c7ca6 | 279 | |
3432e5a1 | 280 | =head2 Removed Modules and Pragmata |
d6cf2367 | 281 | |
3432e5a1 | 282 | =over 4 |
d6cf2367 FC |
283 | |
284 | =item * | |
285 | ||
3432e5a1 | 286 | XXX |
a9feb6cb | 287 | |
3432e5a1 | 288 | =back |
a9feb6cb | 289 | |
3432e5a1 | 290 | =head1 Documentation |
8fe353ef | 291 | |
3432e5a1 SL |
292 | XXX Changes to files in F<pod/> go here. Consider grouping entries by |
293 | file and be sure to link to the appropriate page, e.g. L<perlfunc>. | |
8fe353ef | 294 | |
3432e5a1 | 295 | =head2 New Documentation |
8fe353ef | 296 | |
3432e5a1 | 297 | XXX Changes which create B<new> files in F<pod/> go here. |
60527824 | 298 | |
3432e5a1 | 299 | =head3 L<XXX> |
7ac26854 | 300 | |
3432e5a1 | 301 | XXX Description of the purpose of the new file here |
7ac26854 | 302 | |
3432e5a1 | 303 | =head2 Changes to Existing Documentation |
7ac26854 | 304 | |
3432e5a1 SL |
305 | XXX Changes which significantly change existing files in F<pod/> go here. |
306 | However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics> | |
307 | section. | |
518487b2 | 308 | |
19e72bbf | 309 | =head3 L<perlfunc>, L<open> |
daef35db | 310 | |
3432e5a1 | 311 | =over 4 |
83307084 SL |
312 | |
313 | =item * | |
314 | ||
19e72bbf FC |
315 | As an accident of history, C<open $fh, "<:", ...> applies the default |
316 | layers for the platform (C<:raw> on Unix, C<:crlf> on Windows), ignoring | |
317 | whatever is declared by L<open.pm|open>. This seems such a useful feature | |
318 | it has been documented in L<perlfunc|perlfunc/open> and L<open>. | |
b420b12a | 319 | |
3432e5a1 | 320 | =back |
b420b12a | 321 | |
3432e5a1 | 322 | =head1 Diagnostics |
83307084 | 323 | |
3432e5a1 SL |
324 | The following additions or changes have been made to diagnostic output, |
325 | including warnings and fatal error messages. For the complete list of | |
326 | diagnostic messages, see L<perldiag>. | |
83307084 | 327 | |
3432e5a1 SL |
328 | XXX New or changed warnings emitted by the core's C<C> code go here. Also |
329 | include any changes in L<perldiag> that reconcile it to the C<C> code. | |
83307084 | 330 | |
3432e5a1 SL |
331 | [ Within each section, list entries as a =item entry that links to perldiag, |
332 | e.g. | |
83307084 | 333 | |
3432e5a1 | 334 | =item * |
d6cf2367 | 335 | |
3432e5a1 SL |
336 | L<Invalid version object|perldiag/"Invalid version object"> |
337 | ] | |
d6cf2367 | 338 | |
3432e5a1 | 339 | =head2 New Diagnostics |
d6cf2367 | 340 | |
3432e5a1 | 341 | XXX Newly added diagnostic messages go here |
daef35db | 342 | |
3432e5a1 | 343 | =head3 New Errors |
259925f6 | 344 | |
3432e5a1 | 345 | =over 4 |
9840cdee CBW |
346 | |
347 | =item * | |
348 | ||
3432e5a1 | 349 | XXX L<message|perldiag/"message"> |
54e02335 | 350 | |
63ac71b9 | 351 | =back |
310913d4 | 352 | |
3432e5a1 | 353 | =head3 New Warnings |
dc80b0c6 | 354 | |
63ac71b9 | 355 | =over 4 |
83b32788 CBW |
356 | |
357 | =item * | |
358 | ||
3432e5a1 | 359 | XXX L<message|perldiag/"message"> |
4eb81ef2 | 360 | |
63ac71b9 | 361 | =back |
4eb81ef2 | 362 | |
3432e5a1 SL |
363 | =head2 Changes to Existing Diagnostics |
364 | ||
365 | XXX Changes (i.e. rewording) of diagnostic messages go here | |
d6cf2367 FC |
366 | |
367 | =over 4 | |
368 | ||
369 | =item * | |
370 | ||
c634fdd3 KW |
371 | The message, |
372 | "Code point 0x%X is not Unicode, no properties match it; all inverse | |
373 | prop erties do" has been changed to "Code point 0x%X is not Unicode, all | |
374 | \p{} matches fail; all \P{} matches succeed" | |
375 | ||
d6cf2367 FC |
376 | |
377 | =back | |
378 | ||
3432e5a1 | 379 | =head1 Utility Changes |
d6cf2367 | 380 | |
3432e5a1 SL |
381 | XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go |
382 | here. Most of these are built within the directories F<utils> and F<x2p>. | |
b89e9b0d | 383 | |
3432e5a1 SL |
384 | [ List utility changes as a =head3 entry for each utility and =item |
385 | entries for each change | |
386 | Use L<XXX> with program names to get proper documentation linking. ] | |
0cb4637e | 387 | |
3432e5a1 | 388 | =head3 L<XXX> |
4abaf918 | 389 | |
5438d4b8 | 390 | =over 4 |
4abaf918 Z |
391 | |
392 | =item * | |
393 | ||
3432e5a1 | 394 | XXX |
8b00e523 | 395 | |
e8e35311 FC |
396 | =back |
397 | ||
63ac71b9 | 398 | =head1 Configuration and Compilation |
b908e258 | 399 | |
3432e5a1 SL |
400 | XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools |
401 | go here. Any other changes to the Perl build process should be listed here. | |
402 | However, any platform-specific changes should be listed in the | |
403 | L</Platform Support> section, instead. | |
b908e258 | 404 | |
3432e5a1 | 405 | [ List changes as a =item entry ]. |
bbc28bfc | 406 | |
34dc2ec0 | 407 | =over 4 |
42a91c97 | 408 | |
6693394d | 409 | =item * |
42a91c97 | 410 | |
3432e5a1 | 411 | XXX |
d2006265 | 412 | |
3432e5a1 | 413 | =back |
9cfd094e | 414 | |
3432e5a1 | 415 | =head1 Testing |
9cfd094e | 416 | |
3432e5a1 SL |
417 | XXX Any significant changes to the testing of a freshly built perl should be |
418 | listed here. Changes which create B<new> files in F<t/> go here as do any | |
419 | large changes to the testing harness (e.g. when parallel testing was added). | |
420 | Changes to existing files in F<t/> aren't worth summarising, although the bugs | |
421 | that they represent may be covered elsewhere. | |
9cfd094e | 422 | |
3432e5a1 | 423 | [ List each test improvement as a =item entry ] |
7c4c6e7c | 424 | |
3432e5a1 | 425 | =over 4 |
95f7e41f | 426 | |
83307084 | 427 | =item * |
95f7e41f | 428 | |
6692294e NC |
429 | F<t/porting/checkcfgvar.t> now tests that all config.sh-style files are |
430 | complete. These are used by the various non-*nix to generate their | |
431 | F<config.h>, and an incomplete input file will generate invalid output. | |
df5b44bd | 432 | |
63ac71b9 | 433 | =back |
310913d4 | 434 | |
83307084 | 435 | =head1 Platform Support |
df5b44bd | 436 | |
3432e5a1 | 437 | XXX Any changes to platform support should be listed in the sections below. |
7818c927 | 438 | |
3432e5a1 SL |
439 | [ Within the sections, list each platform as a =item entry with specific |
440 | changes as paragraphs below it. ] | |
83307084 | 441 | |
3432e5a1 | 442 | =head2 New Platforms |
7818c927 | 443 | |
3432e5a1 SL |
444 | XXX List any platforms that this version of perl compiles on, that previous |
445 | versions did not. These will either be enabled by new files in the F<hints/> | |
446 | directories, or new subdirectories and F<README> files at the top level of the | |
447 | source tree. | |
3fdd840f | 448 | |
63ac71b9 | 449 | =over 4 |
7ffa7e75 | 450 | |
3432e5a1 | 451 | =item XXX-some-platform |
862b2c43 | 452 | |
3432e5a1 | 453 | XXX |
d6cf2367 | 454 | |
63ac71b9 | 455 | =back |
c973bd4f | 456 | |
3432e5a1 | 457 | =head2 Discontinued Platforms |
fdd313f4 | 458 | |
3432e5a1 | 459 | XXX List any platforms that this version of perl no longer compiles on. |
c39e29ea | 460 | |
3432e5a1 | 461 | =over 4 |
c39e29ea | 462 | |
3432e5a1 | 463 | =item XXX-some-platform |
c39e29ea | 464 | |
3432e5a1 | 465 | XXX |
d6cf2367 | 466 | |
3432e5a1 | 467 | =back |
d6cf2367 | 468 | |
3432e5a1 | 469 | =head2 Platform-Specific Notes |
d6cf2367 | 470 | |
3432e5a1 SL |
471 | XXX List any changes for specific platforms. This could include configuration |
472 | and compilation changes or changes in portability/compatibility. However, | |
473 | changes within modules for platforms should generally be listed in the | |
474 | L</Modules and Pragmata> section. | |
d6cf2367 | 475 | |
3432e5a1 | 476 | =over 4 |
d6cf2367 | 477 | |
3432e5a1 | 478 | =item XXX-some-platform |
d6cf2367 | 479 | |
3432e5a1 | 480 | XXX |
d6cf2367 | 481 | |
3432e5a1 | 482 | =back |
d6cf2367 | 483 | |
3432e5a1 | 484 | =head1 Internal Changes |
d6cf2367 | 485 | |
3432e5a1 SL |
486 | XXX Changes which affect the interface available to C<XS> code go here. |
487 | Other significant internal changes for future core maintainers should | |
488 | be noted as well. | |
d6cf2367 | 489 | |
3432e5a1 | 490 | [ List each change as a =item entry ] |
5d4ff231 | 491 | |
3432e5a1 | 492 | =over 4 |
5d4ff231 | 493 | |
a3342be3 FC |
494 | =item * |
495 | ||
6d110ad0 FC |
496 | These new functions have been added as part of the work on Unicode symbols: |
497 | ||
498 | HvNAMELEN | |
499 | HvNAMEUTF8 | |
500 | HvENAMELEN | |
501 | HvENAMEUTF8 | |
502 | gv_init_pv | |
503 | gv_init_pvn | |
504 | gv_init_pvsv | |
505 | gv_fetchmeth_pv | |
506 | gv_fetchmeth_pvn | |
507 | gv_fetchmeth_sv | |
508 | gv_fetchmeth_pv_autoload | |
509 | gv_fetchmeth_pvn_autoload | |
510 | gv_fetchmeth_sv_autoload | |
511 | gv_fetchmethod_pv_flags | |
512 | gv_fetchmethod_pvn_flags | |
513 | gv_fetchmethod_sv_flags | |
514 | gv_autoload_pv | |
515 | gv_autoload_pvn | |
516 | gv_autoload_sv | |
517 | newGVgen_flags | |
518 | sv_derived_from_pv | |
519 | sv_derived_from_pvn | |
520 | sv_derived_from_sv | |
521 | sv_does_pv | |
522 | sv_does_pvn | |
523 | sv_does_sv | |
524 | whichsig_pv | |
525 | whichsig_pvn | |
526 | whichsig_sv | |
527 | ||
528 | The gv_fetchmethod_*_flags functions, like gv_fetchmethod_flags, are | |
529 | experimental and may change in a future release. | |
530 | ||
531 | =item * | |
532 | ||
533 | The following functions were added. These are I<not> part of the API: | |
534 | ||
535 | GvNAMEUTF8 | |
536 | GvENAMELEN | |
537 | GvENAME_HEK | |
538 | CopSTASH_flags | |
539 | CopSTASH_flags_set | |
540 | PmopSTASH_flags | |
541 | PmopSTASH_flags_set | |
542 | sv_sethek | |
543 | ||
544 | =item * | |
545 | ||
546 | C<sv_catpvn_flags> takes a couple of new internal-only flags, | |
547 | C<SV_CATBYTES> and C<SV_CATUTF8>, which tell it whether the char array to | |
548 | be concatenated is UTF8. This allows for more efficient concatenation than | |
549 | creating temporary SVs to pass to C<sv_catsv>. | |
60092ce4 | 550 | |
3432e5a1 | 551 | =back |
60092ce4 | 552 | |
3432e5a1 | 553 | =head1 Selected Bug Fixes |
309aab3a | 554 | |
3432e5a1 SL |
555 | XXX Important bug fixes in the core language are summarised here. |
556 | Bug fixes in files in F<ext/> and F<lib/> are best summarised in | |
557 | L</Modules and Pragmata>. | |
309aab3a | 558 | |
3432e5a1 | 559 | [ List each fix as a =item entry ] |
1f26655e | 560 | |
3432e5a1 | 561 | =over 4 |
1f26655e | 562 | |
433644ee FC |
563 | =item * |
564 | ||
19e72bbf FC |
565 | In Perl 5.14.0, C<$tainted ~~ @array> stopped working properly. Sometimes |
566 | it would erroneously fail (when C<$tainted> contained a string that occurs | |
567 | in the array I<after> the first element) or erroneously succeed (when | |
568 | C<undef> occurred after the first element) [perl #93590]. | |
569 | ||
570 | =item * | |
571 | ||
572 | Perl 5.15.0 introduced a minor regression, in that an object referenced by | |
573 | a deleted hash element would be able to access the freed element from its | |
574 | DESTROY method, causing panic errors [perl #99660]. | |
575 | ||
576 | =item * | |
577 | ||
578 | Functions in the CORE package can now be called as methods. That used to | |
579 | work only when they had been called or referenced already. So | |
580 | C<< "foo"->CORE::ucfirst >> returns Foo. | |
581 | ||
582 | =item * | |
583 | ||
584 | C<use> and C<require> are no longer affected by the I/O layers active in | |
585 | the caller's scope (enabled by L<open.pm|open>) [perl #96008]. | |
586 | ||
587 | =item * | |
588 | ||
589 | Errors that occur when methods cannot be found during overloading now | |
590 | mention the correct package name, as they did in 5.8.x, instead of | |
591 | erroneously mentioning the "overload" package, as they have since 5.10.0. | |
592 | ||
593 | =item * | |
594 | ||
595 | Undefining C<%overload::> no longer causes a crash. | |
433644ee | 596 | |
6d110ad0 FC |
597 | =item * |
598 | ||
599 | C<our $::é; $é> (which is invalid) no longer produces the "Compilation | |
600 | error at lib/utf8_heavy.pl..." error message, which it started emitting in | |
601 | 5.10.0 [perl #99984]. | |
602 | ||
b377a702 KW |
603 | =item * |
604 | ||
605 | A minor regression, introduced Perl 5.15.0, has been fixed in which some | |
606 | regular expression Unicode property matches (C<\p{...}>) matched | |
607 | non-Unicode code points. | |
608 | ||
7c1b9f38 KW |
609 | =item * |
610 | ||
611 | In case-insensitive regular expression pattern matching, no longer on | |
612 | UTF-8 encoded strings does the scan for the start of match only look at | |
613 | the first possible position. This caused matches such as | |
614 | C<"f\x{FB00}" =~ /ff/i> to fail. | |
615 | ||
63ac71b9 | 616 | =back |
bbc28bfc | 617 | |
7d3f03b7 SL |
618 | =head1 Known Problems |
619 | ||
3432e5a1 SL |
620 | XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any |
621 | tests that had to be C<TODO>ed for the release would be noted here, unless | |
622 | they were specific to a particular platform (see below). | |
7d3f03b7 | 623 | |
3432e5a1 SL |
624 | This is a list of some significant unfixed bugs, which are regressions |
625 | from either 5.XXX.XXX or 5.XXX.XXX. | |
626 | ||
627 | [ List each fix as a =item entry ] | |
7d3f03b7 | 628 | |
3432e5a1 | 629 | =over 4 |
7d3f03b7 SL |
630 | |
631 | =item * | |
632 | ||
19e72bbf FC |
633 | XXX A couple of modules were broken by stdbool.h changes, or was that in |
634 | 5.15.3? | |
7d3f03b7 | 635 | |
3432e5a1 | 636 | =back |
7d3f03b7 | 637 | |
3432e5a1 | 638 | =head1 Obituary |
7d3f03b7 | 639 | |
3432e5a1 SL |
640 | XXX If any significant core contributor has died, we've added a short obituary |
641 | here. | |
7d3f03b7 | 642 | |
44691e6f AB |
643 | =head1 Acknowledgements |
644 | ||
3432e5a1 SL |
645 | XXX Generate this with: |
646 | ||
647 | perl Porting/acknowledgements.pl v5.15.3..HEAD | |
29cf780c | 648 | |
44691e6f AB |
649 | =head1 Reporting Bugs |
650 | ||
651 | If you find what you think is a bug, you might check the articles | |
34dc2ec0 | 652 | recently posted to the comp.lang.perl.misc newsgroup and the perl |
44691e6f AB |
653 | bug database at http://rt.perl.org/perlbug/ . There may also be |
654 | information at http://www.perl.org/ , the Perl Home Page. | |
655 | ||
656 | If you believe you have an unreported bug, please run the L<perlbug> | |
657 | program included with your release. Be sure to trim your bug down | |
658 | to a tiny but sufficient test case. Your bug report, along with the | |
659 | output of C<perl -V>, will be sent off to perlbug@perl.org to be | |
660 | analysed by the Perl porting team. | |
661 | ||
662 | If the bug you are reporting has security implications, which make it | |
663 | inappropriate to send to a publicly archived mailing list, then please send | |
34dc2ec0 | 664 | it to perl5-security-report@perl.org. This points to a closed subscription |
b4707b2a FC |
665 | unarchived mailing list, which includes |
666 | all the core committers, who will be able | |
44691e6f AB |
667 | to help assess the impact of issues, figure out a resolution, and help |
668 | co-ordinate the release of patches to mitigate or fix the problem across all | |
34dc2ec0 DM |
669 | platforms on which Perl is supported. Please only use this address for |
670 | security issues in the Perl core, not for modules independently | |
44691e6f AB |
671 | distributed on CPAN. |
672 | ||
673 | =head1 SEE ALSO | |
674 | ||
675 | The F<Changes> file for an explanation of how to view exhaustive details | |
676 | on what changed. | |
677 | ||
678 | The F<INSTALL> file for how to build Perl. | |
679 | ||
680 | The F<README> file for general stuff. | |
681 | ||
682 | The F<Artistic> and F<Copying> files for copyright information. | |
683 | ||
684 | =cut |