Commit | Line | Data |
---|---|---|
3a5c9134 CBW |
1 | =encoding utf8 |
2 | ||
3 | =head1 NAME | |
4 | ||
9f7a72d0 Z |
5 | [ this is a template for a new perldelta file. Any text flagged as |
6 | XXX needs to be processed before release. ] | |
3a5c9134 | 7 | |
9f7a72d0 | 8 | perldelta - what is new for perl v5.13.9 |
15e6cdd9 | 9 | |
9f7a72d0 | 10 | =head1 DESCRIPTION |
f6166f76 | 11 | |
9f7a72d0 Z |
12 | This document describes differences between the 5.13.8 release and |
13 | the 5.13.9 release. | |
0d157ee2 | 14 | |
9f7a72d0 Z |
15 | If you are upgrading from an earlier release such as 5.13.7, first read |
16 | L<perl5138delta>, which describes differences between 5.13.7 and | |
17 | 5.13.8. | |
0d157ee2 | 18 | |
9f7a72d0 | 19 | =head1 Notice |
0d157ee2 | 20 | |
9f7a72d0 | 21 | XXX Any important notices here |
0d157ee2 | 22 | |
9f7a72d0 | 23 | =head1 Core Enhancements |
0d157ee2 | 24 | |
9f7a72d0 Z |
25 | XXX New core language features go here. Summarise user-visible core language |
26 | enhancements. Particularly prominent performance optimisations could go | |
27 | here, but most should go in the L</Performance Enhancements> section. | |
0d157ee2 | 28 | |
6d4f9cf2 KW |
29 | With this release, Perl is adopting a model that any unsigned value can |
30 | be encoded internally as utf8 without warnings -- not just the ones that | |
31 | are legal in Unicode. | |
32 | However, unless UTF8 warnings have been | |
33 | explicitly lexically turned off, outputting or performing a | |
34 | Unicode-defined operation (such as upper-casing) on such a code point | |
35 | will generate a warning. Attempting to input these using strict rules | |
36 | (such as with the C<:encoding('UTF-8')> layer) will continue to fail. | |
37 | Prior to this release the handling was very inconsistent, and incorrect | |
38 | in places. Also, the Unicode non-characters, some of which previously were | |
39 | erroneously considered illegal in places by Perl, contrary to the Unicode | |
40 | standard, are now always legal internally. But inputting or outputting | |
41 | them will work the same as for the non-legal Unicode code points, as the | |
42 | Unicode standard says they are illegal for "open interchange". | |
43 | ||
9f7a72d0 | 44 | [ List each enhancement as a =head2 entry ] |
0d157ee2 | 45 | |
9f7a72d0 | 46 | =head1 Security |
0d157ee2 | 47 | |
9f7a72d0 Z |
48 | XXX Any security-related notices go here. In particular, any security |
49 | vulnerabilities closed should be noted here rather than in the | |
50 | L</Selected Bug Fixes> section. | |
bd8e866d | 51 | |
9f7a72d0 | 52 | [ List each security issue as a =head2 entry ] |
bd8e866d | 53 | |
3a5c9134 CBW |
54 | =head1 Incompatible Changes |
55 | ||
9f7a72d0 | 56 | XXX For a release on a stable branch, this section aspires to be: |
3a5c9134 | 57 | |
9f7a72d0 Z |
58 | There are no changes intentionally incompatible with 5.XXX.XXX. If any |
59 | exist, they are bugs and reports are welcome. | |
3a5c9134 | 60 | |
9f7a72d0 | 61 | [ List each incompatible change as a =head2 entry ] |
d66e82e8 | 62 | |
3a5c9134 CBW |
63 | =head1 Deprecations |
64 | ||
9f7a72d0 Z |
65 | XXX Any deprecated features, syntax, modules etc. should be listed here. |
66 | In particular, deprecated modules should be listed here even if they are | |
67 | listed as an updated module in the L</Modules and Pragmata> section. | |
5609d5f9 | 68 | |
9f7a72d0 | 69 | [ List each deprecation as a =head2 entry ] |
5609d5f9 | 70 | |
9f7a72d0 | 71 | =head1 Performance Enhancements |
5609d5f9 | 72 | |
9f7a72d0 Z |
73 | XXX Changes which enhance performance without changing behaviour go here. There |
74 | may well be none in a stable release. | |
5609d5f9 | 75 | |
9f7a72d0 | 76 | [ List each enhancement as a =item entry ] |
3a5c9134 CBW |
77 | |
78 | =over 4 | |
79 | ||
80 | =item * | |
81 | ||
9f7a72d0 | 82 | XXX |
e1165778 | 83 | |
9f7a72d0 | 84 | =back |
121e1895 | 85 | |
9f7a72d0 | 86 | =head1 Modules and Pragmata |
2638c0ff | 87 | |
9f7a72d0 Z |
88 | XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/> |
89 | go here. If Module::CoreList is updated, generate an initial draft of the | |
90 | following sections using F<Porting/corelist-perldelta.pl>, which prints stub | |
91 | entries to STDOUT. Results can be pasted in place of the '=head2' entries | |
92 | below. A paragraph summary for important changes should then be added by hand. | |
93 | In an ideal world, dual-life modules would have a F<Changes> file that could be | |
94 | cribbed. | |
2638c0ff | 95 | |
9f7a72d0 | 96 | [ Within each section, list entries as a =item entry ] |
17096837 | 97 | |
9f7a72d0 | 98 | =head2 New Modules and Pragmata |
2638c0ff | 99 | |
9f7a72d0 | 100 | =over 4 |
17096837 | 101 | |
e1165778 Z |
102 | =item * |
103 | ||
e8a07a12 DG |
104 | L<CPAN::Meta::YAML> 0.002 has been added as a dual-life module. It supports a |
105 | subset of YAML sufficient for reading and writing META.yml and MYMETA.yml files | |
106 | included with CPAN distributions or generated by the module installation | |
107 | toolchain. It should not be used for any other general YAML parsing or | |
108 | generation task. | |
17096837 | 109 | |
935c8d19 DG |
110 | =item * |
111 | ||
6cf6332a | 112 | L<Module::Metadata> 1.000003 has been added as a dual-life module. It gathers |
e8b333e6 DG |
113 | package and POD information from Perl module files. It is a standalone module |
114 | based on Module::Build::ModuleInfo for use by other module installation | |
115 | toolchain components. Module::Build::ModuleInfo has been deprecated in | |
116 | favor of this module instead. | |
117 | ||
118 | =item * | |
119 | ||
935c8d19 DG |
120 | L<Perl::OSType> 1.002 has been added as a dual-life module. It maps Perl |
121 | operating system names (e.g. 'dragonfly' or 'MSWin32') to more generic types | |
122 | with standardized names (e.g. "Unix" or "Windows"). It has been refactored | |
123 | out of Module::Build and ExtUtils::CBuilder and consolidates such mappings into | |
124 | a single location for easier maintenance. | |
125 | ||
9f7a72d0 | 126 | =back |
e1165778 | 127 | |
9f7a72d0 | 128 | =head2 Updated Modules and Pragmata |
f295f417 | 129 | |
9f7a72d0 | 130 | =over 4 |
17096837 | 131 | |
f295f417 FC |
132 | =item * |
133 | ||
6447e912 CBW |
134 | C<Archive::Extract> has been upgraded from version 0.46 to 0.48 |
135 | ||
136 | =item * | |
137 | ||
89ae55b4 CBW |
138 | C<Archive::Tar> has been upgraded from version 1.74 to 1.76 |
139 | ||
140 | =item * | |
141 | ||
2a1594f6 CBW |
142 | C<CGI> has been upgraded from version 3.50 to 3.51 |
143 | ||
144 | =item * | |
145 | ||
f1aaabf8 CBW |
146 | C<CPANPLUS> has been upgraded from version 0.9010 to 0.9011 |
147 | ||
148 | =item * | |
149 | ||
deb99cce CBW |
150 | C<CPANPLUS::Dist::Build> has been upgraded from 0.50 to 0.52 |
151 | ||
152 | =item * | |
153 | ||
6d4f9cf2 KW |
154 | C<Encode> has been upgraded from version 2.40 to 2.42. |
155 | Now, all 66 Unicode non-characters are treated the same way U+FFFF has | |
156 | always been treated; if it was disallowed, all 66 are disallowed; if it | |
157 | warned, all 66 warn. | |
50afc8f8 CBW |
158 | |
159 | =item * | |
160 | ||
ac066c2a | 161 | C<File::Fetch> has been upgraded from version 0.28 to 0.30 |
f37ee46a CBW |
162 | |
163 | =item * | |
164 | ||
165 | C<IPC::Cmd> has been upgraded from version 0.66 to 0.68 | |
166 | ||
ac066c2a CBW |
167 | =item * |
168 | ||
b5ce1198 CBW |
169 | C<Log::Message> has been upgraded from version 0.02 to 0.04 |
170 | ||
171 | =item * | |
172 | ||
4fc94532 CBW |
173 | C<Module::Load::Conditional> has been upgraded from 0.38 to 0.40 |
174 | ||
175 | =item * | |
176 | ||
0019012a CBW |
177 | C<Object::Accessor> has been upgraded from 0.36 to 0.38 |
178 | ||
179 | =item * | |
180 | ||
8cb3aa53 CBW |
181 | C<Params::Check> has been upgraded from 0.26 to 0.28 |
182 | ||
183 | =item * | |
184 | ||
8e1e0801 CBW |
185 | C<Term::UI> has been upgraded from 0.20 to 0.22 |
186 | ||
187 | =item * | |
188 | ||
f5d41534 CBW |
189 | C<threads> has been upgraded from version 1.81_03 to 1.82 |
190 | ||
191 | =item * | |
192 | ||
193 | C<threads::shared> has been upgraded from version 1.35 to 1.36 | |
194 | ||
195 | =item * | |
196 | ||
23046b7e | 197 | C<Time::Local> has been upgraded from version 1.1901_01 to 1.2000. |
17096837 | 198 | |
9f7a72d0 | 199 | =back |
e1165778 | 200 | |
9f7a72d0 | 201 | =head2 Removed Modules and Pragmata |
b373eab8 | 202 | |
9f7a72d0 | 203 | =over 4 |
b373eab8 FC |
204 | |
205 | =item * | |
206 | ||
9f7a72d0 | 207 | XXX |
b6ae81ab | 208 | |
9f7a72d0 | 209 | =back |
ca88a729 | 210 | |
9f7a72d0 | 211 | =head1 Documentation |
17096837 | 212 | |
9f7a72d0 Z |
213 | XXX Changes to files in F<pod/> go here. Consider grouping entries by |
214 | file and be sure to link to the appropriate page, e.g. L<perlfunc>. | |
b6ae81ab | 215 | |
9f7a72d0 | 216 | =head2 New Documentation |
e1165778 | 217 | |
9f7a72d0 | 218 | XXX Changes which create B<new> files in F<pod/> go here. |
17096837 | 219 | |
9f7a72d0 | 220 | =head3 L<XXX> |
e1165778 | 221 | |
9f7a72d0 | 222 | XXX Description of the purpose of the new file here |
e1165778 | 223 | |
9f7a72d0 | 224 | =head2 Changes to Existing Documentation |
17096837 | 225 | |
9f7a72d0 Z |
226 | XXX Changes which significantly change existing files in F<pod/> go here. |
227 | However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics> | |
228 | section. | |
e1165778 | 229 | |
9f7a72d0 | 230 | =head3 L<XXX> |
d4238815 | 231 | |
9f7a72d0 | 232 | =over 4 |
17096837 | 233 | |
d4238815 FC |
234 | =item * |
235 | ||
9f7a72d0 | 236 | XXX Description of the change here |
e1165778 | 237 | |
9f7a72d0 | 238 | =back |
17096837 | 239 | |
9f7a72d0 | 240 | =head1 Diagnostics |
17096837 | 241 | |
9f7a72d0 Z |
242 | The following additions or changes have been made to diagnostic output, |
243 | including warnings and fatal error messages. For the complete list of | |
244 | diagnostic messages, see L<perldiag>. | |
e1165778 | 245 | |
9f7a72d0 Z |
246 | XXX New or changed warnings emitted by the core's C<C> code go here. Also |
247 | include any changes in L<perldiag> that reconcile it to the C<C> code. | |
68adb2b0 | 248 | |
9f7a72d0 | 249 | [ Within each section, list entries as a =item entry ] |
17096837 | 250 | |
9f7a72d0 | 251 | =head2 New Diagnostics |
3a5c9134 | 252 | |
9f7a72d0 | 253 | XXX Newly added diagnostic messages go here |
17096837 | 254 | |
9f7a72d0 | 255 | =over 4 |
17096837 | 256 | |
c2e0289e FC |
257 | =item * |
258 | ||
9f7a72d0 | 259 | XXX |
17096837 | 260 | |
9f7a72d0 | 261 | =back |
e6f1cc4d | 262 | |
9f7a72d0 | 263 | =head2 Changes to Existing Diagnostics |
e1165778 | 264 | |
9f7a72d0 | 265 | XXX Changes (i.e. rewording) of diagnostic messages go here |
17096837 | 266 | |
9f7a72d0 | 267 | =over 4 |
17096837 | 268 | |
e1165778 Z |
269 | =item * |
270 | ||
9f7a72d0 | 271 | XXX |
17096837 | 272 | |
3a5c9134 CBW |
273 | =back |
274 | ||
9f7a72d0 | 275 | =head1 Utility Changes |
e1165778 | 276 | |
9f7a72d0 Z |
277 | XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go |
278 | here. Most of these are built within the directories F<utils> and F<x2p>. | |
e1165778 | 279 | |
9f7a72d0 Z |
280 | [ List utility changes as a =head3 entry for each utility and =item |
281 | entries for each change | |
282 | Use L<XXX> with program names to get proper documentation linking. ] | |
e1165778 | 283 | |
9f7a72d0 | 284 | =head3 L<XXX> |
e1165778 | 285 | |
9f7a72d0 | 286 | =over 4 |
e1165778 Z |
287 | |
288 | =item * | |
289 | ||
9f7a72d0 | 290 | XXX |
e1165778 | 291 | |
9f7a72d0 | 292 | =back |
e1165778 | 293 | |
9f7a72d0 | 294 | =head1 Configuration and Compilation |
e1165778 | 295 | |
9f7a72d0 Z |
296 | XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools |
297 | go here. Any other changes to the Perl build process should be listed here. | |
298 | However, any platform-specific changes should be listed in the | |
299 | L</Platform Support> section, instead. | |
e1165778 | 300 | |
9f7a72d0 | 301 | [ List changes as a =item entry ]. |
e1165778 | 302 | |
9f7a72d0 | 303 | =over 4 |
3a5c9134 CBW |
304 | |
305 | =item * | |
306 | ||
9f7a72d0 | 307 | XXX |
3a5c9134 CBW |
308 | |
309 | =back | |
310 | ||
9f7a72d0 | 311 | =head1 Testing |
3a5c9134 | 312 | |
9f7a72d0 Z |
313 | XXX Any significant changes to the testing of a freshly built perl should be |
314 | listed here. Changes which create B<new> files in F<t/> go here as do any | |
315 | large changes to the testing harness (e.g. when parallel testing was added). | |
316 | Changes to existing files in F<t/> aren't worth summarising, although the bugs | |
317 | that they represent may be covered elsewhere. | |
3a5c9134 | 318 | |
9f7a72d0 | 319 | [ List each test improvement as a =item entry ] |
3a5c9134 | 320 | |
3a5c9134 CBW |
321 | =over 4 |
322 | ||
323 | =item * | |
324 | ||
9f7a72d0 | 325 | XXX |
3a5c9134 CBW |
326 | |
327 | =back | |
328 | ||
9f7a72d0 | 329 | =head1 Platform Support |
3a5c9134 | 330 | |
9f7a72d0 | 331 | XXX Any changes to platform support should be listed in the sections below. |
3a5c9134 | 332 | |
9f7a72d0 Z |
333 | [ Within the sections, list each platform as a =item entry with specific |
334 | changes as paragraphs below it. ] | |
3a5c9134 | 335 | |
9f7a72d0 | 336 | =head2 New Platforms |
3a5c9134 | 337 | |
9f7a72d0 Z |
338 | XXX List any platforms that this version of perl compiles on, that previous |
339 | versions did not. These will either be enabled by new files in the F<hints/> | |
340 | directories, or new subdirectories and F<README> files at the top level of the | |
341 | source tree. | |
3a5c9134 | 342 | |
3a5c9134 CBW |
343 | =over 4 |
344 | ||
9f7a72d0 | 345 | =item XXX-some-platform |
3a5c9134 | 346 | |
9f7a72d0 | 347 | XXX |
51bed910 | 348 | |
3a5c9134 CBW |
349 | =back |
350 | ||
9f7a72d0 Z |
351 | =head2 Discontinued Platforms |
352 | ||
353 | XXX List any platforms that this version of perl no longer compiles on. | |
3a5c9134 | 354 | |
3a5c9134 CBW |
355 | =over 4 |
356 | ||
9f7a72d0 | 357 | =item XXX-some-platform |
3a5c9134 | 358 | |
9f7a72d0 | 359 | XXX |
3a5c9134 CBW |
360 | |
361 | =back | |
362 | ||
3a5c9134 CBW |
363 | =head2 Platform-Specific Notes |
364 | ||
9f7a72d0 Z |
365 | XXX List any changes for specific platforms. This could include configuration |
366 | and compilation changes or changes in portability/compatibility. However, | |
367 | changes within modules for platforms should generally be listed in the | |
368 | L</Modules and Pragmata> section. | |
3a5c9134 | 369 | |
9f7a72d0 | 370 | =over 4 |
3a5c9134 | 371 | |
9f7a72d0 | 372 | =item XXX-some-platform |
fb3a2d89 | 373 | |
9f7a72d0 | 374 | XXX |
fb3a2d89 | 375 | |
3a5c9134 CBW |
376 | =back |
377 | ||
378 | =head1 Internal Changes | |
379 | ||
9f7a72d0 Z |
380 | XXX Changes which affect the interface available to C<XS> code go here. |
381 | Other significant internal changes for future core maintainers should | |
382 | be noted as well. | |
3a5c9134 | 383 | |
9f7a72d0 | 384 | [ List each test improvement as a =item entry ] |
3a5c9134 | 385 | |
9f7a72d0 | 386 | =over 4 |
3a5c9134 | 387 | |
c61b6d0f FC |
388 | =item * |
389 | ||
0a0e3cc5 NC |
390 | The opcode bodies for C<chop> and C<chomp> and for C<schop> and C<schomp> have |
391 | been merged. The implementation functions C<Perl_do_chop()> and | |
392 | C<Perl_do_chomp()>, never part of the public API, have been merged and moved to | |
393 | a static function in F<pp.c>. This shrinks the perl binary slightly, and should | |
394 | not affect any code outside the core (unless it is relying on the order of side | |
395 | effects when C<chomp> is passed a I<list> of values). | |
c61b6d0f | 396 | |
6d4f9cf2 KW |
397 | =item * |
398 | ||
399 | Some of the flags parameters to the uvuni_to_utf8_flags() and | |
400 | utf8n_to_uvuni() have changed. This is a result of Perl now allowing | |
401 | internal storage and manipulation of code points that are problematic | |
402 | in some situations. Hence, the default actions for these functions has | |
403 | been complemented to allow these code points. The new flags are | |
404 | documented in L<perlapi>. Code that requires the problematic code | |
405 | points to be rejected needs to change to use these flags. Some flag | |
406 | names are retained for backward source compatibility, though they do | |
407 | nothing, as they are now the default. However the flags | |
408 | C<UNICODE_ALLOW_FDD0>, C<UNICODE_ALLOW_FFFF>, C<UNICODE_ILLEGAL>, and | |
409 | C<UNICODE_IS_ILLEGAL> have been removed, as they stem from a | |
410 | fundamentally broken model of how the Unicode non-character code points | |
411 | should be handled, which is now described in | |
412 | L<perlunicode/Non-character code points>. See also L</Selected Bug Fixes>. | |
413 | ||
3a5c9134 CBW |
414 | =back |
415 | ||
416 | =head1 Selected Bug Fixes | |
417 | ||
9f7a72d0 Z |
418 | XXX Important bug fixes in the core language are summarised here. |
419 | Bug fixes in files in F<ext/> and F<lib/> are best summarised in | |
420 | L</Modules and Pragmata>. | |
b373eab8 | 421 | |
9f7a72d0 | 422 | [ List each fix as a =item entry ] |
b373eab8 | 423 | |
9f7a72d0 | 424 | =over 4 |
4c9d53d5 | 425 | |
0c7420e7 FC |
426 | =item * |
427 | ||
6d4f9cf2 KW |
428 | The handling of Unicode non-characters has changed. |
429 | Previously they were mostly considered illegal, except that only one of | |
430 | the 66 of them was known about in places. The Unicode standard | |
431 | considers them legal, but forbids the "open interchange" of them. | |
432 | This is part of the change to allow the internal use of any code point | |
433 | (see L</Core Enhancements>). Together, these changes resolve | |
434 | L<# 38722|https://rt.perl.org/rt3/Ticket/Display.html?id=38722>, | |
435 | L<# 51918|http://rt.perl.org/rt3/Ticket/Display.html?id=51918>, | |
436 | L<# 51936|http://rt.perl.org/rt3/Ticket/Display.html?id=51936>, | |
437 | L<# 63446|http://rt.perl.org/rt3/Ticket/Display.html?id=63446> | |
0c7420e7 | 438 | |
9f7a72d0 | 439 | =back |
460c4bfb | 440 | |
9f7a72d0 | 441 | =head1 Known Problems |
460c4bfb | 442 | |
9f7a72d0 Z |
443 | XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any |
444 | tests that had to be C<TODO>ed for the release would be noted here, unless | |
445 | they were specific to a particular platform (see below). | |
26de4ac8 | 446 | |
9f7a72d0 Z |
447 | This is a list of some significant unfixed bugs, which are regressions |
448 | from either 5.XXX.XXX or 5.XXX.XXX. | |
26de4ac8 | 449 | |
9f7a72d0 | 450 | [ List each fix as a =item entry ] |
ab7fb400 | 451 | |
9f7a72d0 | 452 | =over 4 |
ab7fb400 | 453 | |
836d5805 Z |
454 | =item * |
455 | ||
9f7a72d0 | 456 | XXX |
836d5805 | 457 | |
3a5c9134 CBW |
458 | =back |
459 | ||
9f7a72d0 | 460 | =head1 Obituary |
3a5c9134 | 461 | |
9f7a72d0 Z |
462 | XXX If any significant core contributor has died, we've added a short obituary |
463 | here. | |
b0c3724f | 464 | |
9f7a72d0 | 465 | =head1 Acknowledgements |
b0c3724f | 466 | |
9f7a72d0 | 467 | XXX The list of people to thank goes here. |
3a5c9134 CBW |
468 | |
469 | =head1 Reporting Bugs | |
470 | ||
471 | If you find what you think is a bug, you might check the articles | |
472 | recently posted to the comp.lang.perl.misc newsgroup and the perl | |
473 | bug database at http://rt.perl.org/perlbug/ . There may also be | |
474 | information at http://www.perl.org/ , the Perl Home Page. | |
475 | ||
476 | If you believe you have an unreported bug, please run the L<perlbug> | |
477 | program included with your release. Be sure to trim your bug down | |
478 | to a tiny but sufficient test case. Your bug report, along with the | |
479 | output of C<perl -V>, will be sent off to perlbug@perl.org to be | |
480 | analysed by the Perl porting team. | |
481 | ||
482 | If the bug you are reporting has security implications, which make it | |
483 | inappropriate to send to a publicly archived mailing list, then please send | |
484 | it to perl5-security-report@perl.org. This points to a closed subscription | |
485 | unarchived mailing list, which includes all the core committers, who be able | |
486 | to help assess the impact of issues, figure out a resolution, and help | |
487 | co-ordinate the release of patches to mitigate or fix the problem across all | |
488 | platforms on which Perl is supported. Please only use this address for | |
489 | security issues in the Perl core, not for modules independently | |
490 | distributed on CPAN. | |
491 | ||
492 | =head1 SEE ALSO | |
493 | ||
494 | The F<Changes> file for an explanation of how to view exhaustive details | |
495 | on what changed. | |
496 | ||
497 | The F<INSTALL> file for how to build Perl. | |
498 | ||
499 | The F<README> file for general stuff. | |
500 | ||
501 | The F<Artistic> and F<Copying> files for copyright information. | |
502 | ||
503 | =cut |