Commit | Line | Data |
---|---|---|
44691e6f AB |
1 | =encoding utf8 |
2 | ||
19e72bbf FC |
3 | =for comment |
4 | This has been completed up to 59c72abb9, except for: | |
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 | |
63ac71b9 | 45 | =head1 Security |
0afed34d | 46 | |
3432e5a1 SL |
47 | XXX Any security-related notices go here. In particular, any security |
48 | vulnerabilities closed should be noted here rather than in the | |
49 | L</Selected Bug Fixes> section. | |
46661105 | 50 | |
3432e5a1 | 51 | [ List each security issue as a =head2 entry ] |
46661105 | 52 | |
5438d4b8 | 53 | =head1 Incompatible Changes |
7818c927 | 54 | |
3432e5a1 | 55 | XXX For a release on a stable branch, this section aspires to be: |
e1dccc0d | 56 | |
3432e5a1 SL |
57 | There are no changes intentionally incompatible with 5.XXX.XXX |
58 | If any exist, they are bugs and reports are welcome. | |
7b2b001e | 59 | |
3432e5a1 | 60 | [ List each incompatible change as a =head2 entry ] |
bdb9ba77 | 61 | |
3432e5a1 | 62 | =head1 Deprecations |
7ec04da5 | 63 | |
3432e5a1 SL |
64 | XXX Any deprecated features, syntax, modules etc. should be listed here. |
65 | In particular, deprecated modules should be listed here even if they are | |
66 | listed as an updated module in the L</Modules and Pragmata> section. | |
7ec04da5 | 67 | |
3432e5a1 | 68 | [ List each deprecation as a =head2 entry ] |
d6cf2367 | 69 | |
3432e5a1 | 70 | =head1 Performance Enhancements |
d6cf2367 | 71 | |
3432e5a1 SL |
72 | XXX Changes which enhance performance without changing behaviour go here. There |
73 | may well be none in a stable release. | |
5d4ff231 | 74 | |
3432e5a1 | 75 | [ List each enhancement as a =item entry ] |
e46d9735 | 76 | |
63ac71b9 | 77 | =over 4 |
e46d9735 CBW |
78 | |
79 | =item * | |
80 | ||
3432e5a1 | 81 | XXX |
828d6195 | 82 | |
3432e5a1 | 83 | =back |
83307084 | 84 | |
3432e5a1 | 85 | =head1 Modules and Pragmata |
83307084 | 86 | |
3432e5a1 SL |
87 | XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/> |
88 | go here. If Module::CoreList is updated, generate an initial draft of the | |
89 | following sections using F<Porting/corelist-perldelta.pl>, which prints stub | |
90 | entries to STDOUT. Results can be pasted in place of the '=head2' entries | |
91 | below. A paragraph summary for important changes should then be added by hand. | |
92 | In an ideal world, dual-life modules would have a F<Changes> file that could be | |
93 | cribbed. | |
83307084 | 94 | |
3432e5a1 | 95 | [ Within each section, list entries as a =item entry ] |
83307084 | 96 | |
3432e5a1 | 97 | =head2 New Modules and Pragmata |
d93f0209 | 98 | |
3432e5a1 | 99 | =over 4 |
d93f0209 | 100 | |
60527824 FR |
101 | =item * |
102 | ||
3432e5a1 | 103 | XXX |
d6cf2367 | 104 | |
3432e5a1 | 105 | =back |
d39de893 | 106 | |
3432e5a1 | 107 | =head2 Updated Modules and Pragmata |
d39de893 | 108 | |
3432e5a1 | 109 | =over 4 |
39afdc5a CBW |
110 | |
111 | =item * | |
112 | ||
2480ae1c | 113 | L<perlfaq> has been upgraded from version 5.0150034 to version 5.0150035. |
666c7ca6 | 114 | |
7b8e5ef0 GG |
115 | =item * |
116 | ||
a2fa999d CBW |
117 | L<Digest> has been upgraded from version 1.16 to version 1.17. |
118 | ||
119 | =item * | |
120 | ||
19e72bbf FC |
121 | L<DynaLoader> has been upgraded from version 1.13 to 1.14. |
122 | ||
123 | It stopped exporting its symbols with the ExtUtils::ParseXS changes in | |
124 | 5.15.2. Now it exports them once more. | |
125 | ||
126 | =item * | |
127 | ||
7b8e5ef0 GG |
128 | L<ExtUtils::MakeMaker> has been upgraded from version 6.59 to version 6.61_01. |
129 | ||
bd65daab CBW |
130 | =item * |
131 | ||
02e7ec6d | 132 | L<ExtUtils::ParseXS> has been upgraded from version 3.04_04 to version 3.05. |
bd65daab | 133 | |
3f2cb5bf S |
134 | =item * |
135 | ||
02e7ec6d CBW |
136 | L<Module::Load> has been upgraded from version 0.20 to version 0.22. |
137 | ||
138 | Resolve possible security problem [http://goo.gl/YzHRU] where a '::' prefixed | |
139 | module can 'jump' out of @INC | |
140 | ||
141 | =item * | |
142 | ||
143 | L<Unicode::Collate> has been upgraded from version 0.78 to version 0.79. | |
3f2cb5bf | 144 | |
3432e5a1 | 145 | =back |
666c7ca6 | 146 | |
3432e5a1 | 147 | =head2 Removed Modules and Pragmata |
d6cf2367 | 148 | |
3432e5a1 | 149 | =over 4 |
d6cf2367 FC |
150 | |
151 | =item * | |
152 | ||
3432e5a1 | 153 | XXX |
a9feb6cb | 154 | |
3432e5a1 | 155 | =back |
a9feb6cb | 156 | |
3432e5a1 | 157 | =head1 Documentation |
8fe353ef | 158 | |
3432e5a1 SL |
159 | XXX Changes to files in F<pod/> go here. Consider grouping entries by |
160 | file and be sure to link to the appropriate page, e.g. L<perlfunc>. | |
8fe353ef | 161 | |
3432e5a1 | 162 | =head2 New Documentation |
8fe353ef | 163 | |
3432e5a1 | 164 | XXX Changes which create B<new> files in F<pod/> go here. |
60527824 | 165 | |
3432e5a1 | 166 | =head3 L<XXX> |
7ac26854 | 167 | |
3432e5a1 | 168 | XXX Description of the purpose of the new file here |
7ac26854 | 169 | |
3432e5a1 | 170 | =head2 Changes to Existing Documentation |
7ac26854 | 171 | |
3432e5a1 SL |
172 | XXX Changes which significantly change existing files in F<pod/> go here. |
173 | However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics> | |
174 | section. | |
518487b2 | 175 | |
19e72bbf | 176 | =head3 L<perlfunc>, L<open> |
daef35db | 177 | |
3432e5a1 | 178 | =over 4 |
83307084 SL |
179 | |
180 | =item * | |
181 | ||
19e72bbf FC |
182 | As an accident of history, C<open $fh, "<:", ...> applies the default |
183 | layers for the platform (C<:raw> on Unix, C<:crlf> on Windows), ignoring | |
184 | whatever is declared by L<open.pm|open>. This seems such a useful feature | |
185 | it has been documented in L<perlfunc|perlfunc/open> and L<open>. | |
b420b12a | 186 | |
3432e5a1 | 187 | =back |
b420b12a | 188 | |
3432e5a1 | 189 | =head1 Diagnostics |
83307084 | 190 | |
3432e5a1 SL |
191 | The following additions or changes have been made to diagnostic output, |
192 | including warnings and fatal error messages. For the complete list of | |
193 | diagnostic messages, see L<perldiag>. | |
83307084 | 194 | |
3432e5a1 SL |
195 | XXX New or changed warnings emitted by the core's C<C> code go here. Also |
196 | include any changes in L<perldiag> that reconcile it to the C<C> code. | |
83307084 | 197 | |
3432e5a1 SL |
198 | [ Within each section, list entries as a =item entry that links to perldiag, |
199 | e.g. | |
83307084 | 200 | |
3432e5a1 | 201 | =item * |
d6cf2367 | 202 | |
3432e5a1 SL |
203 | L<Invalid version object|perldiag/"Invalid version object"> |
204 | ] | |
d6cf2367 | 205 | |
3432e5a1 | 206 | =head2 New Diagnostics |
d6cf2367 | 207 | |
3432e5a1 | 208 | XXX Newly added diagnostic messages go here |
daef35db | 209 | |
3432e5a1 | 210 | =head3 New Errors |
259925f6 | 211 | |
3432e5a1 | 212 | =over 4 |
9840cdee CBW |
213 | |
214 | =item * | |
215 | ||
3432e5a1 | 216 | XXX L<message|perldiag/"message"> |
54e02335 | 217 | |
63ac71b9 | 218 | =back |
310913d4 | 219 | |
3432e5a1 | 220 | =head3 New Warnings |
dc80b0c6 | 221 | |
63ac71b9 | 222 | =over 4 |
83b32788 CBW |
223 | |
224 | =item * | |
225 | ||
3432e5a1 | 226 | XXX L<message|perldiag/"message"> |
4eb81ef2 | 227 | |
63ac71b9 | 228 | =back |
4eb81ef2 | 229 | |
3432e5a1 SL |
230 | =head2 Changes to Existing Diagnostics |
231 | ||
232 | XXX Changes (i.e. rewording) of diagnostic messages go here | |
d6cf2367 FC |
233 | |
234 | =over 4 | |
235 | ||
236 | =item * | |
237 | ||
c634fdd3 KW |
238 | The message, |
239 | "Code point 0x%X is not Unicode, no properties match it; all inverse | |
240 | prop erties do" has been changed to "Code point 0x%X is not Unicode, all | |
241 | \p{} matches fail; all \P{} matches succeed" | |
242 | ||
d6cf2367 FC |
243 | |
244 | =back | |
245 | ||
3432e5a1 | 246 | =head1 Utility Changes |
d6cf2367 | 247 | |
3432e5a1 SL |
248 | XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go |
249 | here. Most of these are built within the directories F<utils> and F<x2p>. | |
b89e9b0d | 250 | |
3432e5a1 SL |
251 | [ List utility changes as a =head3 entry for each utility and =item |
252 | entries for each change | |
253 | Use L<XXX> with program names to get proper documentation linking. ] | |
0cb4637e | 254 | |
3432e5a1 | 255 | =head3 L<XXX> |
4abaf918 | 256 | |
5438d4b8 | 257 | =over 4 |
4abaf918 Z |
258 | |
259 | =item * | |
260 | ||
3432e5a1 | 261 | XXX |
8b00e523 | 262 | |
e8e35311 FC |
263 | =back |
264 | ||
63ac71b9 | 265 | =head1 Configuration and Compilation |
b908e258 | 266 | |
3432e5a1 SL |
267 | XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools |
268 | go here. Any other changes to the Perl build process should be listed here. | |
269 | However, any platform-specific changes should be listed in the | |
270 | L</Platform Support> section, instead. | |
b908e258 | 271 | |
3432e5a1 | 272 | [ List changes as a =item entry ]. |
bbc28bfc | 273 | |
34dc2ec0 | 274 | =over 4 |
42a91c97 | 275 | |
6693394d | 276 | =item * |
42a91c97 | 277 | |
3432e5a1 | 278 | XXX |
d2006265 | 279 | |
3432e5a1 | 280 | =back |
9cfd094e | 281 | |
3432e5a1 | 282 | =head1 Testing |
9cfd094e | 283 | |
3432e5a1 SL |
284 | XXX Any significant changes to the testing of a freshly built perl should be |
285 | listed here. Changes which create B<new> files in F<t/> go here as do any | |
286 | large changes to the testing harness (e.g. when parallel testing was added). | |
287 | Changes to existing files in F<t/> aren't worth summarising, although the bugs | |
288 | that they represent may be covered elsewhere. | |
9cfd094e | 289 | |
3432e5a1 | 290 | [ List each test improvement as a =item entry ] |
7c4c6e7c | 291 | |
3432e5a1 | 292 | =over 4 |
95f7e41f | 293 | |
83307084 | 294 | =item * |
95f7e41f | 295 | |
6692294e NC |
296 | F<t/porting/checkcfgvar.t> now tests that all config.sh-style files are |
297 | complete. These are used by the various non-*nix to generate their | |
298 | F<config.h>, and an incomplete input file will generate invalid output. | |
df5b44bd | 299 | |
63ac71b9 | 300 | =back |
310913d4 | 301 | |
83307084 | 302 | =head1 Platform Support |
df5b44bd | 303 | |
3432e5a1 | 304 | XXX Any changes to platform support should be listed in the sections below. |
7818c927 | 305 | |
3432e5a1 SL |
306 | [ Within the sections, list each platform as a =item entry with specific |
307 | changes as paragraphs below it. ] | |
83307084 | 308 | |
3432e5a1 | 309 | =head2 New Platforms |
7818c927 | 310 | |
3432e5a1 SL |
311 | XXX List any platforms that this version of perl compiles on, that previous |
312 | versions did not. These will either be enabled by new files in the F<hints/> | |
313 | directories, or new subdirectories and F<README> files at the top level of the | |
314 | source tree. | |
3fdd840f | 315 | |
63ac71b9 | 316 | =over 4 |
7ffa7e75 | 317 | |
3432e5a1 | 318 | =item XXX-some-platform |
862b2c43 | 319 | |
3432e5a1 | 320 | XXX |
d6cf2367 | 321 | |
63ac71b9 | 322 | =back |
c973bd4f | 323 | |
3432e5a1 | 324 | =head2 Discontinued Platforms |
fdd313f4 | 325 | |
3432e5a1 | 326 | XXX List any platforms that this version of perl no longer compiles on. |
c39e29ea | 327 | |
3432e5a1 | 328 | =over 4 |
c39e29ea | 329 | |
3432e5a1 | 330 | =item XXX-some-platform |
c39e29ea | 331 | |
3432e5a1 | 332 | XXX |
d6cf2367 | 333 | |
3432e5a1 | 334 | =back |
d6cf2367 | 335 | |
3432e5a1 | 336 | =head2 Platform-Specific Notes |
d6cf2367 | 337 | |
3432e5a1 SL |
338 | XXX List any changes for specific platforms. This could include configuration |
339 | and compilation changes or changes in portability/compatibility. However, | |
340 | changes within modules for platforms should generally be listed in the | |
341 | L</Modules and Pragmata> section. | |
d6cf2367 | 342 | |
3432e5a1 | 343 | =over 4 |
d6cf2367 | 344 | |
3432e5a1 | 345 | =item XXX-some-platform |
d6cf2367 | 346 | |
3432e5a1 | 347 | XXX |
d6cf2367 | 348 | |
3432e5a1 | 349 | =back |
d6cf2367 | 350 | |
3432e5a1 | 351 | =head1 Internal Changes |
d6cf2367 | 352 | |
3432e5a1 SL |
353 | XXX Changes which affect the interface available to C<XS> code go here. |
354 | Other significant internal changes for future core maintainers should | |
355 | be noted as well. | |
d6cf2367 | 356 | |
3432e5a1 | 357 | [ List each change as a =item entry ] |
5d4ff231 | 358 | |
3432e5a1 | 359 | =over 4 |
5d4ff231 | 360 | |
a3342be3 FC |
361 | =item * |
362 | ||
3432e5a1 | 363 | XXX |
60092ce4 | 364 | |
3432e5a1 | 365 | =back |
60092ce4 | 366 | |
3432e5a1 | 367 | =head1 Selected Bug Fixes |
309aab3a | 368 | |
3432e5a1 SL |
369 | XXX Important bug fixes in the core language are summarised here. |
370 | Bug fixes in files in F<ext/> and F<lib/> are best summarised in | |
371 | L</Modules and Pragmata>. | |
309aab3a | 372 | |
3432e5a1 | 373 | [ List each fix as a =item entry ] |
1f26655e | 374 | |
3432e5a1 | 375 | =over 4 |
1f26655e | 376 | |
433644ee FC |
377 | =item * |
378 | ||
19e72bbf FC |
379 | In Perl 5.14.0, C<$tainted ~~ @array> stopped working properly. Sometimes |
380 | it would erroneously fail (when C<$tainted> contained a string that occurs | |
381 | in the array I<after> the first element) or erroneously succeed (when | |
382 | C<undef> occurred after the first element) [perl #93590]. | |
383 | ||
384 | =item * | |
385 | ||
386 | Perl 5.15.0 introduced a minor regression, in that an object referenced by | |
387 | a deleted hash element would be able to access the freed element from its | |
388 | DESTROY method, causing panic errors [perl #99660]. | |
389 | ||
390 | =item * | |
391 | ||
392 | Functions in the CORE package can now be called as methods. That used to | |
393 | work only when they had been called or referenced already. So | |
394 | C<< "foo"->CORE::ucfirst >> returns Foo. | |
395 | ||
396 | =item * | |
397 | ||
398 | C<use> and C<require> are no longer affected by the I/O layers active in | |
399 | the caller's scope (enabled by L<open.pm|open>) [perl #96008]. | |
400 | ||
401 | =item * | |
402 | ||
403 | Errors that occur when methods cannot be found during overloading now | |
404 | mention the correct package name, as they did in 5.8.x, instead of | |
405 | erroneously mentioning the "overload" package, as they have since 5.10.0. | |
406 | ||
407 | =item * | |
408 | ||
409 | Undefining C<%overload::> no longer causes a crash. | |
433644ee | 410 | |
63ac71b9 | 411 | =back |
bbc28bfc | 412 | |
7d3f03b7 SL |
413 | =head1 Known Problems |
414 | ||
3432e5a1 SL |
415 | XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any |
416 | tests that had to be C<TODO>ed for the release would be noted here, unless | |
417 | they were specific to a particular platform (see below). | |
7d3f03b7 | 418 | |
3432e5a1 SL |
419 | This is a list of some significant unfixed bugs, which are regressions |
420 | from either 5.XXX.XXX or 5.XXX.XXX. | |
421 | ||
422 | [ List each fix as a =item entry ] | |
7d3f03b7 | 423 | |
3432e5a1 | 424 | =over 4 |
7d3f03b7 SL |
425 | |
426 | =item * | |
427 | ||
19e72bbf FC |
428 | XXX A couple of modules were broken by stdbool.h changes, or was that in |
429 | 5.15.3? | |
7d3f03b7 | 430 | |
3432e5a1 | 431 | =back |
7d3f03b7 | 432 | |
3432e5a1 | 433 | =head1 Obituary |
7d3f03b7 | 434 | |
3432e5a1 SL |
435 | XXX If any significant core contributor has died, we've added a short obituary |
436 | here. | |
7d3f03b7 | 437 | |
44691e6f AB |
438 | =head1 Acknowledgements |
439 | ||
3432e5a1 SL |
440 | XXX Generate this with: |
441 | ||
442 | perl Porting/acknowledgements.pl v5.15.3..HEAD | |
29cf780c | 443 | |
44691e6f AB |
444 | =head1 Reporting Bugs |
445 | ||
446 | If you find what you think is a bug, you might check the articles | |
34dc2ec0 | 447 | recently posted to the comp.lang.perl.misc newsgroup and the perl |
44691e6f AB |
448 | bug database at http://rt.perl.org/perlbug/ . There may also be |
449 | information at http://www.perl.org/ , the Perl Home Page. | |
450 | ||
451 | If you believe you have an unreported bug, please run the L<perlbug> | |
452 | program included with your release. Be sure to trim your bug down | |
453 | to a tiny but sufficient test case. Your bug report, along with the | |
454 | output of C<perl -V>, will be sent off to perlbug@perl.org to be | |
455 | analysed by the Perl porting team. | |
456 | ||
457 | If the bug you are reporting has security implications, which make it | |
458 | inappropriate to send to a publicly archived mailing list, then please send | |
34dc2ec0 | 459 | it to perl5-security-report@perl.org. This points to a closed subscription |
b4707b2a FC |
460 | unarchived mailing list, which includes |
461 | all the core committers, who will be able | |
44691e6f AB |
462 | to help assess the impact of issues, figure out a resolution, and help |
463 | co-ordinate the release of patches to mitigate or fix the problem across all | |
34dc2ec0 DM |
464 | platforms on which Perl is supported. Please only use this address for |
465 | security issues in the Perl core, not for modules independently | |
44691e6f AB |
466 | distributed on CPAN. |
467 | ||
468 | =head1 SEE ALSO | |
469 | ||
470 | The F<Changes> file for an explanation of how to view exhaustive details | |
471 | on what changed. | |
472 | ||
473 | The F<INSTALL> file for how to build Perl. | |
474 | ||
475 | The F<README> file for general stuff. | |
476 | ||
477 | The F<Artistic> and F<Copying> files for copyright information. | |
478 | ||
479 | =cut |