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 | |
086325d8 KW |
29 | [ List each enhancement as a =head2 entry ] |
30 | ||
cfaf538b KW |
31 | =head2 New regular expression modifier C</a> |
32 | ||
33 | The C</a> regular expression modifier restricts C<\s> to match precisely | |
34 | the five characters C<[ \f\n\r\t]>, C<\d> to match precisely the 10 | |
35 | characters C<[0-9]>, C<\w> to match precisely the 63 characters | |
36 | C<[A-Za-z0-9_]>, and the Posix (C<[[:posix:]]>) character classes to | |
37 | match only the appropriate ASCII characters. The complements, of | |
38 | course, match everything but; and C<\b> and C<\B> are correspondingly | |
39 | affected. Otherwise, C</a> behaves like the C</u> modifier, in that | |
40 | case-insensitive matching uses Unicode semantics; for example, "k" will | |
41 | match the Unicode C<\N{KELVIN SIGN}> under C</i> matching, and code | |
42 | points in the Latin1 range, above ASCII will have Unicode semantics when | |
43 | it comes to case-insensitive matching. Like its cousins (C</u>, C</l>, | |
44 | and C</d>), and in spite of the terminology, C</a> in 5.14 will not | |
45 | actually be able to be used as a suffix at the end of a regular | |
46 | expression (this restriction is planned to be lifted in 5.16). It must | |
47 | occur either as an infix modifier, such as C<(?a:...)> or (C<(?a)...>, | |
48 | or it can be turned on within the lexical scope of C<use re '/a'>. | |
49 | Turning on C</a> turns off the other "character set" modifiers. | |
50 | ||
086325d8 KW |
51 | =head2 Any unsigned value can be encoded as a character |
52 | ||
6d4f9cf2 | 53 | With this release, Perl is adopting a model that any unsigned value can |
086325d8 KW |
54 | be treated as a code point and encoded internally (as utf8) without |
55 | warnings -- not just the code points that are legal in Unicode. | |
56 | However, unless utf8 warnings have been | |
6d4f9cf2 KW |
57 | explicitly lexically turned off, outputting or performing a |
58 | Unicode-defined operation (such as upper-casing) on such a code point | |
59 | will generate a warning. Attempting to input these using strict rules | |
60 | (such as with the C<:encoding('UTF-8')> layer) will continue to fail. | |
61 | Prior to this release the handling was very inconsistent, and incorrect | |
62 | in places. Also, the Unicode non-characters, some of which previously were | |
63 | erroneously considered illegal in places by Perl, contrary to the Unicode | |
64 | standard, are now always legal internally. But inputting or outputting | |
65 | them will work the same as for the non-legal Unicode code points, as the | |
66 | Unicode standard says they are illegal for "open interchange". | |
67 | ||
0d157ee2 | 68 | |
9f7a72d0 | 69 | =head1 Security |
0d157ee2 | 70 | |
9f7a72d0 Z |
71 | XXX Any security-related notices go here. In particular, any security |
72 | vulnerabilities closed should be noted here rather than in the | |
73 | L</Selected Bug Fixes> section. | |
bd8e866d | 74 | |
9f7a72d0 | 75 | [ List each security issue as a =head2 entry ] |
bd8e866d | 76 | |
3a5c9134 CBW |
77 | =head1 Incompatible Changes |
78 | ||
9f7a72d0 | 79 | XXX For a release on a stable branch, this section aspires to be: |
3a5c9134 | 80 | |
9f7a72d0 Z |
81 | There are no changes intentionally incompatible with 5.XXX.XXX. If any |
82 | exist, they are bugs and reports are welcome. | |
3a5c9134 | 83 | |
9f7a72d0 | 84 | [ List each incompatible change as a =head2 entry ] |
d66e82e8 | 85 | |
3a5c9134 CBW |
86 | =head1 Deprecations |
87 | ||
9f7a72d0 Z |
88 | XXX Any deprecated features, syntax, modules etc. should be listed here. |
89 | In particular, deprecated modules should be listed here even if they are | |
90 | listed as an updated module in the L</Modules and Pragmata> section. | |
5609d5f9 | 91 | |
9f7a72d0 | 92 | [ List each deprecation as a =head2 entry ] |
5609d5f9 | 93 | |
9f7a72d0 | 94 | =head1 Performance Enhancements |
5609d5f9 | 95 | |
9f7a72d0 Z |
96 | XXX Changes which enhance performance without changing behaviour go here. There |
97 | may well be none in a stable release. | |
5609d5f9 | 98 | |
9f7a72d0 | 99 | [ List each enhancement as a =item entry ] |
3a5c9134 CBW |
100 | |
101 | =over 4 | |
102 | ||
103 | =item * | |
104 | ||
9f7a72d0 | 105 | XXX |
e1165778 | 106 | |
9f7a72d0 | 107 | =back |
121e1895 | 108 | |
9f7a72d0 | 109 | =head1 Modules and Pragmata |
2638c0ff | 110 | |
9f7a72d0 Z |
111 | XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/> |
112 | go here. If Module::CoreList is updated, generate an initial draft of the | |
113 | following sections using F<Porting/corelist-perldelta.pl>, which prints stub | |
114 | entries to STDOUT. Results can be pasted in place of the '=head2' entries | |
115 | below. A paragraph summary for important changes should then be added by hand. | |
116 | In an ideal world, dual-life modules would have a F<Changes> file that could be | |
117 | cribbed. | |
2638c0ff | 118 | |
9f7a72d0 | 119 | [ Within each section, list entries as a =item entry ] |
17096837 | 120 | |
9f7a72d0 | 121 | =head2 New Modules and Pragmata |
2638c0ff | 122 | |
9f7a72d0 | 123 | =over 4 |
17096837 | 124 | |
e1165778 Z |
125 | =item * |
126 | ||
e8a07a12 DG |
127 | L<CPAN::Meta::YAML> 0.002 has been added as a dual-life module. It supports a |
128 | subset of YAML sufficient for reading and writing META.yml and MYMETA.yml files | |
129 | included with CPAN distributions or generated by the module installation | |
130 | toolchain. It should not be used for any other general YAML parsing or | |
131 | generation task. | |
17096837 | 132 | |
935c8d19 DG |
133 | =item * |
134 | ||
435aa301 | 135 | L<HTTP::Tiny> 0.009 has been added as a dual-life module. It is a very |
a3ab329f DG |
136 | small, simple HTTP/1.1 client designed for simple GET requests and file |
137 | mirroring. It has has been added to enable CPAN.pm and CPANPLUS to | |
138 | "bootstrap" HTTP access to CPAN using pure Perl without relying on external | |
139 | binaries like F<curl> or F<wget>. | |
140 | ||
141 | =item * | |
142 | ||
6cf6332a | 143 | L<Module::Metadata> 1.000003 has been added as a dual-life module. It gathers |
e8b333e6 DG |
144 | package and POD information from Perl module files. It is a standalone module |
145 | based on Module::Build::ModuleInfo for use by other module installation | |
146 | toolchain components. Module::Build::ModuleInfo has been deprecated in | |
147 | favor of this module instead. | |
148 | ||
149 | =item * | |
150 | ||
935c8d19 DG |
151 | L<Perl::OSType> 1.002 has been added as a dual-life module. It maps Perl |
152 | operating system names (e.g. 'dragonfly' or 'MSWin32') to more generic types | |
153 | with standardized names (e.g. "Unix" or "Windows"). It has been refactored | |
154 | out of Module::Build and ExtUtils::CBuilder and consolidates such mappings into | |
155 | a single location for easier maintenance. | |
156 | ||
9f7a72d0 | 157 | =back |
e1165778 | 158 | |
9f7a72d0 | 159 | =head2 Updated Modules and Pragmata |
f295f417 | 160 | |
9f7a72d0 | 161 | =over 4 |
17096837 | 162 | |
f295f417 FC |
163 | =item * |
164 | ||
6447e912 CBW |
165 | C<Archive::Extract> has been upgraded from version 0.46 to 0.48 |
166 | ||
167 | =item * | |
168 | ||
89ae55b4 CBW |
169 | C<Archive::Tar> has been upgraded from version 1.74 to 1.76 |
170 | ||
171 | =item * | |
172 | ||
2a1594f6 CBW |
173 | C<CGI> has been upgraded from version 3.50 to 3.51 |
174 | ||
175 | =item * | |
5ebf8416 CBW |
176 | |
177 | C<Compress::Raw::Bzip2> has been upgraded from version 2.031 to 2.033 | |
178 | ||
179 | =item * | |
e2f1db54 CBW |
180 | |
181 | C<Compress::Raw::Zlib> has been upgraded from version 2.030 to 2.033 | |
182 | ||
183 | =item * | |
2a1594f6 | 184 | |
a52237f3 DG |
185 | C<CPAN> has been upgraded from version 1.94_62 to 1.94_63 |
186 | ||
187 | =item * | |
188 | ||
f1aaabf8 CBW |
189 | C<CPANPLUS> has been upgraded from version 0.9010 to 0.9011 |
190 | ||
191 | =item * | |
192 | ||
ae0f8eee CBW |
193 | C<CPANPLUS::Dist::Build> has been upgraded from version 0.50 to 0.52 |
194 | ||
195 | =item * | |
196 | ||
197 | C<DB_File> has been upgraded from version 1.820 to 1.821 | |
deb99cce CBW |
198 | |
199 | =item * | |
200 | ||
6d4f9cf2 KW |
201 | C<Encode> has been upgraded from version 2.40 to 2.42. |
202 | Now, all 66 Unicode non-characters are treated the same way U+FFFF has | |
203 | always been treated; if it was disallowed, all 66 are disallowed; if it | |
204 | warned, all 66 warn. | |
50afc8f8 CBW |
205 | |
206 | =item * | |
207 | ||
eee47ba6 | 208 | C<File::Fetch> has been upgraded from version 0.28 to 0.32 |
f37ee46a CBW |
209 | |
210 | =item * | |
211 | ||
cd0c0e65 CBW |
212 | C<IO::Compress> has been upgraded from version 2.030 to 2.033 |
213 | ||
214 | =item * | |
215 | ||
f37ee46a CBW |
216 | C<IPC::Cmd> has been upgraded from version 0.66 to 0.68 |
217 | ||
ac066c2a CBW |
218 | =item * |
219 | ||
b5ce1198 CBW |
220 | C<Log::Message> has been upgraded from version 0.02 to 0.04 |
221 | ||
222 | =item * | |
223 | ||
c0395286 CBW |
224 | C<Log::Message::Simple> has been upgraded from version 0.06 to 0.08 |
225 | ||
226 | =item * | |
227 | ||
ae0f8eee | 228 | C<Module::Load::Conditional> has been upgraded from version 0.38 to 0.40 |
4fc94532 CBW |
229 | |
230 | =item * | |
231 | ||
ae0f8eee | 232 | C<Object::Accessor> has been upgraded from version 0.36 to 0.38 |
0019012a CBW |
233 | |
234 | =item * | |
235 | ||
ae0f8eee | 236 | C<Params::Check> has been upgraded from version 0.26 to 0.28 |
8cb3aa53 CBW |
237 | |
238 | =item * | |
239 | ||
9c88a88b CBW |
240 | C<Pod::LaTeX> has been upgraded from version 0.58 to 0.59 |
241 | ||
242 | =item * | |
243 | ||
6df88f97 | 244 | C<Term::UI> has been upgraded from version 0.20 to 0.24 |
8e1e0801 CBW |
245 | |
246 | =item * | |
247 | ||
f5d41534 CBW |
248 | C<threads> has been upgraded from version 1.81_03 to 1.82 |
249 | ||
250 | =item * | |
251 | ||
252 | C<threads::shared> has been upgraded from version 1.35 to 1.36 | |
253 | ||
254 | =item * | |
255 | ||
23046b7e | 256 | C<Time::Local> has been upgraded from version 1.1901_01 to 1.2000. |
17096837 | 257 | |
788ba0f4 CBW |
258 | =item * |
259 | ||
260 | C<Unicode::Normalize> has been upgraded from version 1.07 to 1.10 | |
261 | ||
9f7a72d0 | 262 | =back |
e1165778 | 263 | |
9f7a72d0 | 264 | =head2 Removed Modules and Pragmata |
b373eab8 | 265 | |
9f7a72d0 | 266 | =over 4 |
b373eab8 FC |
267 | |
268 | =item * | |
269 | ||
9f7a72d0 | 270 | XXX |
b6ae81ab | 271 | |
9f7a72d0 | 272 | =back |
ca88a729 | 273 | |
9f7a72d0 | 274 | =head1 Documentation |
17096837 | 275 | |
9f7a72d0 Z |
276 | XXX Changes to files in F<pod/> go here. Consider grouping entries by |
277 | file and be sure to link to the appropriate page, e.g. L<perlfunc>. | |
b6ae81ab | 278 | |
9f7a72d0 | 279 | =head2 New Documentation |
e1165778 | 280 | |
9f7a72d0 | 281 | XXX Changes which create B<new> files in F<pod/> go here. |
17096837 | 282 | |
9f7a72d0 | 283 | =head3 L<XXX> |
e1165778 | 284 | |
9f7a72d0 | 285 | XXX Description of the purpose of the new file here |
e1165778 | 286 | |
9f7a72d0 | 287 | =head2 Changes to Existing Documentation |
17096837 | 288 | |
9f7a72d0 Z |
289 | XXX Changes which significantly change existing files in F<pod/> go here. |
290 | However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics> | |
291 | section. | |
e1165778 | 292 | |
9f7a72d0 | 293 | =head3 L<XXX> |
d4238815 | 294 | |
9f7a72d0 | 295 | =over 4 |
17096837 | 296 | |
d4238815 FC |
297 | =item * |
298 | ||
9f7a72d0 | 299 | XXX Description of the change here |
e1165778 | 300 | |
9f7a72d0 | 301 | =back |
17096837 | 302 | |
9f7a72d0 | 303 | =head1 Diagnostics |
17096837 | 304 | |
9f7a72d0 Z |
305 | The following additions or changes have been made to diagnostic output, |
306 | including warnings and fatal error messages. For the complete list of | |
307 | diagnostic messages, see L<perldiag>. | |
e1165778 | 308 | |
9f7a72d0 Z |
309 | XXX New or changed warnings emitted by the core's C<C> code go here. Also |
310 | include any changes in L<perldiag> that reconcile it to the C<C> code. | |
68adb2b0 | 311 | |
9f7a72d0 | 312 | [ Within each section, list entries as a =item entry ] |
17096837 | 313 | |
9f7a72d0 | 314 | =head2 New Diagnostics |
3a5c9134 | 315 | |
9f7a72d0 | 316 | XXX Newly added diagnostic messages go here |
17096837 | 317 | |
9f7a72d0 | 318 | =over 4 |
17096837 | 319 | |
c2e0289e FC |
320 | =item * |
321 | ||
9f7a72d0 | 322 | XXX |
17096837 | 323 | |
9f7a72d0 | 324 | =back |
e6f1cc4d | 325 | |
9f7a72d0 | 326 | =head2 Changes to Existing Diagnostics |
e1165778 | 327 | |
9f7a72d0 | 328 | XXX Changes (i.e. rewording) of diagnostic messages go here |
17096837 | 329 | |
9f7a72d0 | 330 | =over 4 |
17096837 | 331 | |
e1165778 Z |
332 | =item * |
333 | ||
9f7a72d0 | 334 | XXX |
17096837 | 335 | |
3a5c9134 CBW |
336 | =back |
337 | ||
9f7a72d0 | 338 | =head1 Utility Changes |
e1165778 | 339 | |
9f7a72d0 Z |
340 | XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go |
341 | here. Most of these are built within the directories F<utils> and F<x2p>. | |
e1165778 | 342 | |
9f7a72d0 Z |
343 | [ List utility changes as a =head3 entry for each utility and =item |
344 | entries for each change | |
345 | Use L<XXX> with program names to get proper documentation linking. ] | |
e1165778 | 346 | |
9f7a72d0 | 347 | =head3 L<XXX> |
e1165778 | 348 | |
9f7a72d0 | 349 | =over 4 |
e1165778 Z |
350 | |
351 | =item * | |
352 | ||
9f7a72d0 | 353 | XXX |
e1165778 | 354 | |
9f7a72d0 | 355 | =back |
e1165778 | 356 | |
9f7a72d0 | 357 | =head1 Configuration and Compilation |
e1165778 | 358 | |
9f7a72d0 Z |
359 | XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools |
360 | go here. Any other changes to the Perl build process should be listed here. | |
361 | However, any platform-specific changes should be listed in the | |
362 | L</Platform Support> section, instead. | |
e1165778 | 363 | |
9f7a72d0 | 364 | [ List changes as a =item entry ]. |
e1165778 | 365 | |
9f7a72d0 | 366 | =over 4 |
3a5c9134 CBW |
367 | |
368 | =item * | |
369 | ||
9f7a72d0 | 370 | XXX |
3a5c9134 CBW |
371 | |
372 | =back | |
373 | ||
9f7a72d0 | 374 | =head1 Testing |
3a5c9134 | 375 | |
9f7a72d0 Z |
376 | XXX Any significant changes to the testing of a freshly built perl should be |
377 | listed here. Changes which create B<new> files in F<t/> go here as do any | |
378 | large changes to the testing harness (e.g. when parallel testing was added). | |
379 | Changes to existing files in F<t/> aren't worth summarising, although the bugs | |
380 | that they represent may be covered elsewhere. | |
3a5c9134 | 381 | |
9f7a72d0 | 382 | [ List each test improvement as a =item entry ] |
3a5c9134 | 383 | |
3a5c9134 CBW |
384 | =over 4 |
385 | ||
386 | =item * | |
387 | ||
9f7a72d0 | 388 | XXX |
3a5c9134 CBW |
389 | |
390 | =back | |
391 | ||
9f7a72d0 | 392 | =head1 Platform Support |
3a5c9134 | 393 | |
9f7a72d0 | 394 | XXX Any changes to platform support should be listed in the sections below. |
3a5c9134 | 395 | |
9f7a72d0 Z |
396 | [ Within the sections, list each platform as a =item entry with specific |
397 | changes as paragraphs below it. ] | |
3a5c9134 | 398 | |
9f7a72d0 | 399 | =head2 New Platforms |
3a5c9134 | 400 | |
9f7a72d0 Z |
401 | XXX List any platforms that this version of perl compiles on, that previous |
402 | versions did not. These will either be enabled by new files in the F<hints/> | |
403 | directories, or new subdirectories and F<README> files at the top level of the | |
404 | source tree. | |
3a5c9134 | 405 | |
3a5c9134 CBW |
406 | =over 4 |
407 | ||
9f7a72d0 | 408 | =item XXX-some-platform |
3a5c9134 | 409 | |
9f7a72d0 | 410 | XXX |
51bed910 | 411 | |
3a5c9134 CBW |
412 | =back |
413 | ||
9f7a72d0 Z |
414 | =head2 Discontinued Platforms |
415 | ||
416 | XXX List any platforms that this version of perl no longer compiles on. | |
3a5c9134 | 417 | |
3a5c9134 CBW |
418 | =over 4 |
419 | ||
9f7a72d0 | 420 | =item XXX-some-platform |
3a5c9134 | 421 | |
9f7a72d0 | 422 | XXX |
3a5c9134 CBW |
423 | |
424 | =back | |
425 | ||
3a5c9134 CBW |
426 | =head2 Platform-Specific Notes |
427 | ||
9f7a72d0 Z |
428 | XXX List any changes for specific platforms. This could include configuration |
429 | and compilation changes or changes in portability/compatibility. However, | |
430 | changes within modules for platforms should generally be listed in the | |
431 | L</Modules and Pragmata> section. | |
3a5c9134 | 432 | |
9f7a72d0 | 433 | =over 4 |
3a5c9134 | 434 | |
9f7a72d0 | 435 | =item XXX-some-platform |
fb3a2d89 | 436 | |
9f7a72d0 | 437 | XXX |
fb3a2d89 | 438 | |
3a5c9134 CBW |
439 | =back |
440 | ||
441 | =head1 Internal Changes | |
442 | ||
9f7a72d0 Z |
443 | XXX Changes which affect the interface available to C<XS> code go here. |
444 | Other significant internal changes for future core maintainers should | |
445 | be noted as well. | |
3a5c9134 | 446 | |
9f7a72d0 | 447 | [ List each test improvement as a =item entry ] |
3a5c9134 | 448 | |
9f7a72d0 | 449 | =over 4 |
3a5c9134 | 450 | |
c61b6d0f FC |
451 | =item * |
452 | ||
0a0e3cc5 NC |
453 | The opcode bodies for C<chop> and C<chomp> and for C<schop> and C<schomp> have |
454 | been merged. The implementation functions C<Perl_do_chop()> and | |
455 | C<Perl_do_chomp()>, never part of the public API, have been merged and moved to | |
456 | a static function in F<pp.c>. This shrinks the perl binary slightly, and should | |
457 | not affect any code outside the core (unless it is relying on the order of side | |
458 | effects when C<chomp> is passed a I<list> of values). | |
c61b6d0f | 459 | |
6d4f9cf2 KW |
460 | =item * |
461 | ||
462 | Some of the flags parameters to the uvuni_to_utf8_flags() and | |
463 | utf8n_to_uvuni() have changed. This is a result of Perl now allowing | |
464 | internal storage and manipulation of code points that are problematic | |
465 | in some situations. Hence, the default actions for these functions has | |
466 | been complemented to allow these code points. The new flags are | |
467 | documented in L<perlapi>. Code that requires the problematic code | |
468 | points to be rejected needs to change to use these flags. Some flag | |
469 | names are retained for backward source compatibility, though they do | |
470 | nothing, as they are now the default. However the flags | |
471 | C<UNICODE_ALLOW_FDD0>, C<UNICODE_ALLOW_FFFF>, C<UNICODE_ILLEGAL>, and | |
472 | C<UNICODE_IS_ILLEGAL> have been removed, as they stem from a | |
473 | fundamentally broken model of how the Unicode non-character code points | |
474 | should be handled, which is now described in | |
475 | L<perlunicode/Non-character code points>. See also L</Selected Bug Fixes>. | |
476 | ||
a62b1201 KW |
477 | =item * |
478 | ||
479 | Certain shared flags in the C<pmop.op_pmflags> and C<regexp.extflags> | |
480 | structures have been removed. These are: C<Rxf_Pmf_LOCALE>, | |
481 | C<Rxf_Pmf_UNICODE>, and C<PMf_LOCALE>. Instead there are encodes and | |
482 | three static in-line functions for accessing the information: | |
483 | C<get_regex_charset()>, C<set_regex_charset()>, and C<get_regex_charset_name()>, | |
484 | which are defined in the places where the orginal flags were. | |
485 | ||
b030240b FC |
486 | =item * |
487 | ||
488 | A new option has been added to C<pv_escape> to dump all characters above | |
489 | ASCII in hexadecimal. Before, one could get all characters as hexadecimal | |
490 | or the Latin1 non-ASCII as octal | |
491 | ||
3a5c9134 CBW |
492 | =back |
493 | ||
494 | =head1 Selected Bug Fixes | |
495 | ||
9f7a72d0 Z |
496 | XXX Important bug fixes in the core language are summarised here. |
497 | Bug fixes in files in F<ext/> and F<lib/> are best summarised in | |
498 | L</Modules and Pragmata>. | |
b373eab8 | 499 | |
9f7a72d0 | 500 | [ List each fix as a =item entry ] |
b373eab8 | 501 | |
9f7a72d0 | 502 | =over 4 |
4c9d53d5 | 503 | |
0c7420e7 FC |
504 | =item * |
505 | ||
6d4f9cf2 KW |
506 | The handling of Unicode non-characters has changed. |
507 | Previously they were mostly considered illegal, except that only one of | |
508 | the 66 of them was known about in places. The Unicode standard | |
509 | considers them legal, but forbids the "open interchange" of them. | |
510 | This is part of the change to allow the internal use of any code point | |
511 | (see L</Core Enhancements>). Together, these changes resolve | |
512 | L<# 38722|https://rt.perl.org/rt3/Ticket/Display.html?id=38722>, | |
513 | L<# 51918|http://rt.perl.org/rt3/Ticket/Display.html?id=51918>, | |
514 | L<# 51936|http://rt.perl.org/rt3/Ticket/Display.html?id=51936>, | |
515 | L<# 63446|http://rt.perl.org/rt3/Ticket/Display.html?id=63446> | |
0c7420e7 | 516 | |
9f7a72d0 | 517 | =back |
460c4bfb | 518 | |
9f7a72d0 | 519 | =head1 Known Problems |
460c4bfb | 520 | |
9f7a72d0 Z |
521 | XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any |
522 | tests that had to be C<TODO>ed for the release would be noted here, unless | |
523 | they were specific to a particular platform (see below). | |
26de4ac8 | 524 | |
9f7a72d0 Z |
525 | This is a list of some significant unfixed bugs, which are regressions |
526 | from either 5.XXX.XXX or 5.XXX.XXX. | |
26de4ac8 | 527 | |
9f7a72d0 | 528 | [ List each fix as a =item entry ] |
ab7fb400 | 529 | |
9f7a72d0 | 530 | =over 4 |
ab7fb400 | 531 | |
836d5805 Z |
532 | =item * |
533 | ||
9f7a72d0 | 534 | XXX |
836d5805 | 535 | |
3a5c9134 CBW |
536 | =back |
537 | ||
9f7a72d0 | 538 | =head1 Obituary |
3a5c9134 | 539 | |
9f7a72d0 Z |
540 | XXX If any significant core contributor has died, we've added a short obituary |
541 | here. | |
b0c3724f | 542 | |
9f7a72d0 | 543 | =head1 Acknowledgements |
b0c3724f | 544 | |
9f7a72d0 | 545 | XXX The list of people to thank goes here. |
3a5c9134 CBW |
546 | |
547 | =head1 Reporting Bugs | |
548 | ||
549 | If you find what you think is a bug, you might check the articles | |
550 | recently posted to the comp.lang.perl.misc newsgroup and the perl | |
551 | bug database at http://rt.perl.org/perlbug/ . There may also be | |
552 | information at http://www.perl.org/ , the Perl Home Page. | |
553 | ||
554 | If you believe you have an unreported bug, please run the L<perlbug> | |
555 | program included with your release. Be sure to trim your bug down | |
556 | to a tiny but sufficient test case. Your bug report, along with the | |
557 | output of C<perl -V>, will be sent off to perlbug@perl.org to be | |
558 | analysed by the Perl porting team. | |
559 | ||
560 | If the bug you are reporting has security implications, which make it | |
561 | inappropriate to send to a publicly archived mailing list, then please send | |
562 | it to perl5-security-report@perl.org. This points to a closed subscription | |
563 | unarchived mailing list, which includes all the core committers, who be able | |
564 | to help assess the impact of issues, figure out a resolution, and help | |
565 | co-ordinate the release of patches to mitigate or fix the problem across all | |
566 | platforms on which Perl is supported. Please only use this address for | |
567 | security issues in the Perl core, not for modules independently | |
568 | distributed on CPAN. | |
569 | ||
570 | =head1 SEE ALSO | |
571 | ||
572 | The F<Changes> file for an explanation of how to view exhaustive details | |
573 | on what changed. | |
574 | ||
575 | The F<INSTALL> file for how to build Perl. | |
576 | ||
577 | The F<README> file for general stuff. | |
578 | ||
579 | The F<Artistic> and F<Copying> files for copyright information. | |
580 | ||
581 | =cut | |
e0b8b6f1 JV |
582 | |
583 | =for later | |
584 | ||
585 | Below, you'll find a cut-down version of the git log from 5.13.8 to 1b9043bb. | |
586 | Jesse went through and took a first pass at cutting out non-changelog items. He may have been over-(or under-)zealous. | |
587 | ||
588 | It hasn't yet been deduped with the entries that _are_ in the perldelta. | |
589 | ||
590 | ||
591 | Major spell-checking pass throughout the core | |
592 | ||
593 | Remove references to compat3.sym and interp.sym, deleted over 10 years ago. | |
594 | ||
595 | Remove Mac OS classic code from numerous places throughout the core | |
596 | ||
e0b8b6f1 JV |
597 | commit 7fe50b8b8a4dc38fc341e3b403545aaca937f50e |
598 | Author: Leon Timmermans <fawaka@gmail.com> | |
599 | Date: Tue Jan 18 16:40:07 2011 +0100 | |
600 | ||
601 | Also unblock signal handlers throwing an exception | |
602 | ||
603 | Also handle and test the edge case of a signal handler throwing an | |
604 | exception | |
605 | ||
606 | ||
607 | ||
608 | ||
609 | Numberous POD warnings fixed | |
610 | ||
611 | ||
612 | ||
613 | Update Unicode-Collate to CPAN version 0.71 | |
614 | ||
615 | ||
616 | internals | |
617 | ||
618 | ||
619 | regexec.c: Remove break statements from macros | |
620 | ||
621 | This is so future coders won't be tempted to rely on them. | |
622 | ||
623 | regexec.c: Don't rely on break stmts in macros | |
624 | ||
625 | It is safer and clearer to have the break statement in each case statement at | |
626 | the source level | |
627 | ||
628 | commit b57e41186b2ceb48bef4f0588dcd19e105cc8a38 | |
629 | Author: Karl Williamson <public@khwilliamson.com> | |
630 | Date: Tue Jan 18 15:03:41 2011 -0700 | |
631 | ||
632 | regcomp: Disallow multi-char folds in lookbehind | |
633 | ||
634 | The addition of the ANYOFV regnode to treat multi-char folds in a bracketed | |
635 | character class has exposed a bug, in which those classes have long been able | |
636 | to be varying length (due to the multi-char fold), but the compiler wasn't | |
637 | aware of it. Now it is, and hence won't allow those which have multi-char | |
638 | folds to be part of a lookbehind pattern, which requires a constant length. | |
639 | ||
640 | This patch disallows multi-char folds in a lookbehind bracketed character | |
641 | class. | |
642 | ||
643 | Author: Nicholas Clark <nick@ccl4.org> | |
644 | Date: Tue Jan 18 16:14:43 2011 +0000 | |
645 | ||
646 | Remove Mac OS classic code from scripts in utils/ | |
647 | ||
648 | ||
649 | Convert DosGlob.t to Test::More. | |
650 | ||
651 | commit d6dc8a6dc95226ddff7719cd1e0bd053c4e5725e | |
652 | Author: Nicholas Clark <nick@ccl4.org> | |
653 | Date: Tue Jan 18 13:08:11 2011 +0000 | |
654 | ||
655 | Remove Mac OS Classic docs from DirHandle and File::{Copy,DosGlob,Find} | |
656 | ||
657 | The documentation for the different behaviour on Mac OS Classic was not | |
658 | removed when the relevant code was removed in 862f843bac3434c2. That commit | |
659 | also remove all callers to several Mac OS classic support functions, but not | |
660 | the functions themselves. Rectify this. | |
661 | ||
662 | commit 8254cbf193c939338449097a80163197fc755150 | |
663 | Author: Nicholas Clark <nick@ccl4.org> | |
664 | Date: Tue Jan 18 11:10:41 2011 +0000 | |
665 | ||
666 | Build perltoc.pod with pragmata sorted by name. | |
667 | ||
668 | Previously they were actually sorted by full pathname, which isn't logical. | |
669 | I presume that this is an artefact of all pragmata being in lib/ when | |
670 | pod/buildtoc was originally written. | |
671 | ||
672 | commit 1d45ec279e4e105512a2803e3d0bd974a151a0f6 | |
673 | Author: Father Chrysostomos <sprout@cpan.org> | |
674 | Date: Mon Jan 17 22:32:52 2011 -0800 | |
675 | ||
676 | perlcall: Fixes for various grammatical errors | |
677 | ||
678 | commit faaf68361923e4bb95d1eb919bc724a0dcc5a4ce | |
679 | Author: Leon Timmermans <fawaka@gmail.com> | |
680 | Date: Mon Jan 17 17:59:33 2011 +0100 | |
681 | ||
682 | Clarify limitation in safe signals. | |
683 | ||
684 | commit 0c1bf4c7d433bb0ad80bfe5511b1301db32b7b95 | |
685 | Author: Leon Timmermans <fawaka@gmail.com> | |
686 | Date: Mon Jan 17 16:29:11 2011 +0100 | |
687 | ||
688 | Added tests for conditional unblocking | |
689 | ||
690 | commit 555344425f04e96a72e4d29eab96b34bff8f96ae | |
691 | Author: Leon Timmermans <fawaka@gmail.com> | |
692 | Date: Thu Jan 13 18:30:29 2011 +0100 | |
693 | ||
694 | Conditionally unblock after signal handler[#82040] | |
695 | ||
696 | Only unblock signal after a safe-signal handler is executed if that signal was | |
697 | also unblocked before the handler. | |
698 | commit 435aa301127ed481169903cb35187bde1ea44928 | |
699 | Author: David Golden <dagolden@cpan.org> | |
700 | Date: Mon Jan 17 20:39:14 2011 -0500 | |
701 | ||
702 | Update HTTP::Tiny to CPAN version 0.009 | |
703 | ||
704 | commit 78cd53afbb1923bf0a68f361040ad8fe93a7d0d5 | |
705 | Author: David Mitchell <davem@iabyn.com> | |
706 | Date: Tue Jan 18 00:46:30 2011 +0000 | |
707 | ||
708 | vastly speed up t/porting/diag.t | |
709 | ||
710 | This used to take about 3 minutes of CPU. Reduce this to around | |
711 | 6 seconds (!!) by coalescing and pre-compiling various patterns | |
712 | that get applied to nearly every line of every source file. | |
713 | ||
714 | commit cfaf538b6276c6a8ef80ff6c66e106c6a4f1caaa | |
715 | Author: Karl Williamson <public@khwilliamson.com> | |
716 | Date: Mon Jan 17 08:58:53 2011 -0700 | |
717 | ||
718 | Add /a regex modifier | |
719 | ||
720 | This restricts certain constructs, like \w, to matching in the ASCII range only. | |
721 | ||
722 | commit 56ae17b45d2513d65903d13468e8f6a16b20f916 | |
723 | Author: Karl Williamson <public@khwilliamson.com> | |
724 | Date: Sun Jan 16 17:41:30 2011 -0700 | |
725 | ||
726 | regcomp.c: Convert \d \D to a switch{} | |
727 | ||
728 | commit eee47ba661717bca7751443be1b6ac8f8f64585a | |
729 | Author: Chris 'BinGOs' Williams <chris@bingosnet.co.uk> | |
730 | Date: Mon Jan 17 12:35:54 2011 +0000 | |
731 | ||
732 | Update File-Fetch to CPAN version 0.32 | |
733 | ||
734 | commit e66820012d29519f903709f005e56a2c334ae183 | |
735 | Author: Tony Cook <tony@develop-help.com> | |
736 | Date: Mon Jan 17 19:22:08 2011 +1100 | |
737 | ||
738 | test_prep now depends on the pods needed for porting/buildtoc.t | |
739 | ||
740 | In the other makefiles test_prep (or test-prep) depends on all, so | |
741 | they shouldn't need updating. | |
742 | ||
743 | ||
744 | commit a52237f3a547cdefddd4c4be6224bfdf67c84263 | |
745 | Author: David Golden <dagolden@cpan.org> | |
746 | Date: Sun Jan 16 21:32:21 2011 -0500 | |
747 | ||
748 | Update CPAN to CPAN version 1.94_63 | |
749 | ||
750 | commit 63ac0dadb1aafcf0c171d3c1422c1923b611b2fc | |
751 | Author: Karl Williamson <public@khwilliamson.com> | |
752 | Date: Tue Dec 28 16:13:49 2010 -0700 | |
753 | ||
754 | regex: Use BOUNDU regnodes | |
755 | ||
756 | This refactors one area in regexec.c to use BOUNDU, NBOUNDU for | |
757 | efficiciency, and easier adding of the future BOUNDA. | |
758 | ||
759 | commit 980866de2cf8ecdb4bb72b7f9294763057008f50 | |
760 | Author: Karl Williamson <public@khwilliamson.com> | |
761 | Date: Mon Dec 27 12:04:58 2010 -0700 | |
762 | ||
763 | regex: Separate nodes for Unicode semantics \s \w | |
764 | ||
765 | This patch converts the \s, \w and complements Unicode semantics to | |
766 | instead of using the flags field of their nodes to instead use separate | |
767 | nodes. This gains some efficiency, especially useful in tight loops and | |
768 | backtracking of regexec.c, and prepares the way for easily adding other | |
769 | semantic variations, such as /a. | |
770 | ||
771 | It refactors the CCC_TRY... macros. I tried to break this piece up into | |
772 | smaller chunks, but found it much easier to get to this in one step. | |
773 | Further patches will do some more refactoring of these. | |
774 | ||
775 | As part of the CCC_TRY macro refactoring, the lines that include the | |
776 | test if (! nextchr) are changed to just look for the end-of-string by | |
777 | position instead of it being NUL. In locales, it could be (however | |
778 | unlikely), that NUL is a real alphabetic, digit, or space character. | |
779 | commit 50e911483ad5c29e25c54c9f81f92df974dd2cc0 | |
780 | Author: Karl Williamson <public@khwilliamson.com> | |
781 | Date: Sun Dec 26 10:35:58 2010 -0700 | |
782 | ||
783 | Change name of /d to DEPENDS | |
784 | ||
785 | I much prefer David Golden's name for /d whose meaning 'depends' on | |
786 | circumstances, instead of 'dual' meaning it could be one or another. | |
787 | Change it before this gets out in a stable release, and we're stuck with | |
788 | the old name. | |
789 | ||
790 | commit 73134a2eb4055c76fe5b154da95e09118f716fd8 | |
791 | Author: Karl Williamson <public@khwilliamson.com> | |
792 | Date: Sun Dec 26 10:35:20 2010 -0700 | |
793 | ||
794 | CH] Change usage of regex/op common to common names | |
795 | ||
796 | This patch changes the core functions to use the common names for the | |
797 | fields that are shared between op.c and regcomp.c, just for consistency | |
798 | of using one name throughout the core for the same thing. | |
799 | ||
800 | A grep of cpan shows that both names are used in various modules; so | |
801 | both names must be retained. | |
802 | ||
803 | commit a3ab329f3fc9494e700f51c38cef42021c130b6e | |
804 | Author: David Golden <dagolden@cpan.org> | |
805 | Date: Sun Jan 16 20:57:02 2011 -0500 | |
806 | ||
807 | Add HTTP::Tiny as a dual-life core module | |
808 | ||
809 | HTTP::Tiny has been added as a dual-life module. It is a very | |
810 | small, simple HTTP/1.1 client designed for simple GET requests and file | |
811 | mirroring. It has has been added to enable CPAN.pm and CPANPLUS to | |
812 | "bootstrap" HTTP access to CPAN using pure Perl without relying on external | |
813 | binaries like F<curl> or F<wget>. | |
814 | ||
815 | commit 211cc5012284f4bd900fcaa630adbcac69ca6112 | |
816 | Author: Chris 'BinGOs' Williams <chris@bingosnet.co.uk> | |
817 | Date: Sun Jan 16 23:23:03 2011 +0000 | |
818 | ||
819 | Update Unicode-Collate to CPAN version 0.70 and enable XS version | |
820 | ||
821 | commit a62b1201c068dc7b099bcb7182e188c4d2fbf34c | |
822 | Author: Karl Williamson <public@khwilliamson.com> | |
823 | Date: Sun Dec 26 10:31:16 2010 -0700 | |
824 | ||
825 | Use multi-bit field for regex character set | |
826 | ||
827 | The /d, /l, and /u regex modifiers are mutually exclusive. This patch | |
828 | changes the field that stores the character set to use more than one bit | |
829 | with an enum determining which one. This data structure more | |
830 | closely follows the semantics of their being mutually exclusive, and | |
831 | conserves bits as well, and is better expandable. | |
832 | ||
833 | A small API is added to set and query the bit field. | |
834 | ||
835 | This patch is not .xs source backwards compatible. A handful of cpan | |
836 | programs are affected. | |
837 | ||
838 | ||
839 | tools | |
840 | ||
841 | Significant updates to buildtoc | |
842 | ||
843 | Update Unicode-Normalize to CPAN version 1.10 | |
844 | ||
845 | commit 11454c594f22abc5945e69a46fc965363dbf326e | |
846 | Author: Karl Williamson <public@khwilliamson.com> | |
847 | Date: Sat Jan 15 13:42:58 2011 -0700 | |
848 | ||
849 | Fix \xa0 matching both [\s] [\S], et.al. | |
850 | ||
851 | This bug stemmed from Latin1 characters not matching any (non-complemented) | |
852 | character class in /d semantics when the target string is no utf8; but having | |
853 | unicode semantics when it isn't. The solution here is to add a special flag. | |
854 | ||
855 | There were several tests that relied on the broken behavior, specifically they | |
856 | tested that \xff isn't a printable word character even in utf8. I changed the | |
857 | deparse test to instead use a non-printable code point, and I changed the ones | |
858 | in re_tests to be TODOs, and will change them back using /a when that is | |
859 | shortly added. | |
860 | ||
861 | ||
862 | SECURITY | |
863 | ||
864 | restrict \p{IsUserDefined} to In\w+ and In\w+ | |
865 | ||
866 | In L<perlunicode/"User-Defined Character Properties">, it says you can | |
867 | create custom properties by defining subroutines whose names begin with | |
868 | "In" or "Is". However, perl doesn't actually enforce that naming | |
869 | restriction, so \p{foo::bar} will call foo::Bar() if it exists. | |
870 | ||
871 | This commit finally enforces this convention. Note that this broke a | |
872 | number of existing tests for properties, since they didn't always use an | |
873 | Is/In prefix. | |
874 | ||
875 | TESTING | |
876 | ||
877 | test that perl.pod, pod.lst, MANIFEST and the file system are consistent | |
878 | ||
879 | commit f56b6394f7cf57733135f56e4e4ac49abe9ac9cc | |
880 | Author: Karl Williamson <public@khwilliamson.com> | |
881 | Date: Thu Jan 13 22:36:36 2011 -0700 | |
882 | ||
883 | regex: Use ANYOFV | |
884 | ||
885 | This patch restructures the regex ANYOF code to generate ANYOFV nodes instead | |
886 | when there is a possibility that it could match more than one character. Note | |
887 | that this doesn't affect the optimizer, as it essentially ignores things that | |
888 | fit into this category. (But it means that the optimizer will no longer reject | |
889 | these when it shouldn't have.) | |
890 | ||
891 | The handling of the LATIN SHARP s is modified to correspond with this new node | |
892 | type. | |
893 | ||
894 | The initial handling of ANYOFV is placed in regexec.c. More analysis will come | |
895 | on that. But there was significant change to the part that handles matching | |
896 | multi-char strings. This has long been buggy, with it previously comparing a | |
897 | folded-version on one side with a non-folded version on the other. | |
898 | ||
899 | This patch fixes about 60% of the problems that my undelivered test suite gives | |
900 | for multi-char folds. But there are still 17K test failures left, so I'm still | |
901 | not delivering that. The TODOs that this fixes will be cleaned up in a later commit | |
902 | ||
903 | ||
904 | Update Pod-LaTeX to CPAN version 0.59 | |
905 | ||
906 | commit 680818c0361b180bb6f09d4bb11c4d5cd467fe62 | |
907 | Author: Nicholas Clark <nick@ccl4.org> | |
908 | Date: Thu Jan 13 16:24:52 2011 +0000 | |
909 | ||
910 | ithread_create() was relying on the stack not moving. Fix this. | |
911 | ||
912 | 4cf5eae5e58faebb changed S_ithread_create() to avoid creating an AV, by | |
913 | passing the thread creation arguments as pointers to a block of memory | |
914 | holding SVs. Unfortunately, this inadvertently introduced a subtle bug, | |
915 | because the block of memory is on the Perl stack, which can move as a side | |
916 | effect of being reallocated to extend it. Hence pass in the offset on the | |
917 | stack instead, read the current value of the relevant interpreter's stack | |
918 | at the point of access, and copy all the SVs away before making any further | |
919 | calls which might cause reallocation. | |
920 | ||
921 | Update to Win32-0.44 from CPAN | |
922 | Update Term-UI to CPAN version 0.24 | |
923 | Update IO-Compress to CPAN version 2.033 | |
924 | Update Compress-Raw-Zlib to CPAN version 2.033 | |
925 | Update Compress-Raw-Bzip2 to CPAN version 2.033 | |
926 | Update DB_File to CPAN version 1.821 | |
927 | ||
928 | DIAGNOSTICS | |
929 | Correct the "unimplemented" message for get{host,net,proto,serv}ent aliases. | |
930 | ||
931 | Previously, if all of gethost{byaddr,byname,ent} were unimplemented on a | |
932 | platform, they would all return 'Unsupported socket function "gethostent" | |
933 | called', with the analogous results for getnet{byaddr,byname,ent}, | |
934 | getproto{byname,bynumber,ent} and getserv{byname,byport,ent}. This bug was | |
935 | introduced by change af51a00e97d5c559 - prior to this, all 12 functions would | |
936 | report their own name when unimplemented. | |
937 | ||
938 | commit 9ae3ac1a84c63b0eadf5baf47ce7096482280f32 | |
939 | Author: Karl Williamson <public@khwilliamson.com> | |
940 | Date: Sun Jan 9 15:33:28 2011 -0700 | |
941 | ||
942 | Add warnings for use of problematic code points | |
943 | ||
944 | The non-Unicode code points have no Unicode semantics, so applying operations | |
945 | such as casing on them warns. | |
946 | ||
947 | This patch also includes the changes to test the warnings added by recent | |
948 | commits for handling the surrogates and above-Unicode code points | |
949 | ||
950 | commit 949cf4983af707fbd15e422845f4f3df20505f97 | |
951 | Author: Karl Williamson <public@khwilliamson.com> | |
952 | Date: Sun Jan 9 13:50:18 2011 -0700 | |
953 | ||
954 | utf8.c(): Default to allow problematic code points | |
955 | ||
956 | Surrogates, non-character code points, and code points that aren't in Unicode | |
957 | are now allowed by default, instead of having to specify a flag to allow them. | |
958 | (Most code did specify those flags anyway.) | |
959 | ||
960 | This affects uvuni_to_utf8_flags(), utf8n_to_uvuni() and various routines that | |
961 | are specialized interfaces to them. | |
962 | ||
963 | Now there is a new set of flags to disallow those code points. Further, all 66 | |
964 | of the non-character code points are known about and handled consistently, | |
965 | instead of just U+FFFF. | |
966 | ||
967 | Code that requires these code points to be forbidden will have to change to use | |
968 | the new flags. I have looked at all the (few) instances in CPAN where these | |
969 | routines are used, and the only one I found that appears to have need to do | |
970 | this, Encode, has already been patched to accommodate this change. Of course, | |
971 | I may have overlooked some subtleties. | |
972 | ||
973 | ||
974 | commit 7627e6d0fe772ac90fce9e03fea273109521e261 | |
975 | Author: Nicholas Clark <nick@ccl4.org> | |
976 | Date: Sat Jan 8 15:56:22 2011 +0000 | |
977 | ||
978 | Generate "Unsupported socket function" stubs using PL_ppaddr. | |
979 | ||
980 | Instead of having each socket op conditionally compile as either the | |
981 | implementation or a DIE() depending on #HAS_SOCKET | |
982 | ||
983 | 1: remove the conditional code from the ops themselves | |
984 | 2: only compile the ops if HAS_SOCKET is defined | |
985 | 3: general conditional code for the intialisation of PL_ppaddr - as appropriate | |
986 | either the ops, or Perl_unimplemented_op | |
987 | 4: Amend Perl_unimplemented_op to generate the appropriate DIE() for socket | |
988 | ops (ie not the "panic"... message) | |
989 | ||
990 | Whilst this complicates the support code in regen/opcode.pl, it's already a | |
991 | net saving of 5 lines in the C code. | |
992 | ||
993 | commit 897d398936dd2fc088a265fba2a7b62fa97ed458 | |
994 | Author: Nicholas Clark <nick@ccl4.org> | |
995 | Date: Sun Jan 9 10:54:58 2011 +0000 | |
996 | ||
997 | Generate pp_* prototypes in pp_proto.h, and remove pp.sym | |
998 | ||
999 | Eliminate the #define pp_foo Perl_pp_foo(pTHX) macros, and update the 13 | |
1000 | locations that relied on them. | |
1001 | ||
1002 | regen/opcode.pl now generates prototypes for the PP functions directly, into | |
1003 | pp_proto.h. It no longer writes pp.sym, and regen/embed.pl no longer reads | |
1004 | this, removing the only ordering dependency in the regen scripts. opcode.pl | |
1005 | is now responsible for prototypes for pp_* functions. (embed.pl remains | |
1006 | responsible for ck_* functions, reading from regen/opcodes) | |
1007 | ||
1008 | commit f1aaabf80b19a3cc6dc435510732b561ab46361e | |
1009 | Author: Chris 'BinGOs' Williams <chris@bingosnet.co.uk> | |
1010 | Date: Sun Jan 9 00:16:46 2011 +0000 | |
1011 | ||
1012 | Update CPANPLUS to CPAN version 0.9011 | |
1013 | Update CPANPLUS-Dist-Build to CPAN version 0.52 | |
1014 | Update Term-UI to CPAN version 0.22 | |
1015 | Update Params-Check to CPAN version 0.28 | |
1016 | ||
1017 | commit a4a4c9e2c086dd5f7b7b05789161614dbbe8385b | |
1018 | Author: Karl Williamson <public@khwilliamson.com> | |
1019 | Date: Sat Jan 8 14:44:05 2011 -0700 | |
1020 | ||
1021 | perldiag.pod: Add missing message severities | |
1022 | ||
1023 | commit 0019012ad86d597fb507f71577d70ecd4c416bba | |
1024 | Author: Chris 'BinGOs' Williams <chris@bingosnet.co.uk> | |
1025 | Date: Sat Jan 8 23:09:04 2011 +0000 | |
1026 | ||
1027 | Update Object-Accessor to CPAN version 0.38 | |
1028 | Update Module-Load-Conditional to CPAN version 0.40 | |
1029 | Update Log-Message to CPAN version 0.04 | |
1030 | Update IPC-Cmd to CPAN version 0.68 | |
1031 | ||
1032 | ||
1033 | TESTING | |
1034 | add test for split without a pattern | |
1035 | ||
1036 | Add some while tests, about the context of the last statement in a block and about reinitializaiton of lexical variables. | |
1037 | ||
1038 | modernise t/cmd/while.t | |
1039 | ||
1040 | Add t/base/while.t testing the basic of a while loop with minimal dependencies. Change t/cmd/while.t into a non-base test using "test.pl". | |
1041 | ||
1042 | commit ac066c2ab5bc31260104aeee778921b186894769 | |
1043 | ||
1044 | Update File-Fetch to CPAN version 0.30 | |
1045 | Update Archive-Tar to CPAN version 1.76 | |
1046 | Update Archive-Extract to CPAN version 0.48 | |
1047 | ||
1048 | commit b86b68b4eefa1069dabc8ea0401d712b24a67857 | |
1049 | Author: Jesse Vincent <jesse@bestpractical.com> | |
1050 | Date: Sat Jan 8 00:14:29 2011 +0800 | |
1051 | ||
1052 | Update the policy on doc patches to maint | |
1053 | ||
1054 | ||
1055 | commit e8b333e679eb9a7a62c1d86b647515f01821eb60 | |
1056 | Author: David Golden <dagolden@cpan.org> | |
1057 | Date: Wed Jan 5 22:47:41 2011 -0500 | |
1058 | ||
1059 | Add Module::Metadata as a dual-life core module | |
1060 | ||
1061 | This commit adds Module::Metadata 1.000002 as a dual-life module. It | |
1062 | gathers package and POD information from Perl module files. It is a | |
1063 | standalone module based on Module::Build::ModuleInfo for use by other | |
1064 | module installation toolchain components. Module::Build::ModuleInfo | |
1065 | has been deprecated in favor of this module instead. | |
1066 | ||
1067 | commit a8fb8d791b74ff90850140d94407aad99ec86fe3 | |
1068 | Author: John Peacock <jpeacock@jpeacock-hp.doesntexist.org> | |
1069 | Date: Thu Jan 6 20:02:37 2011 -0500 | |
1070 | ||
1071 | Sync with version 0.88 on CPAN | |
1072 | ||
1073 | commit c1b879e57aecbfe520b3f44dd28472d1862f037d | |
1074 | Author: Craig A. Berry <craigberry@mac.com> | |
1075 | Date: Wed Jan 5 19:14:06 2011 -0600 | |
1076 | ||
1077 | Make newline on last record explicit. | |
1078 | ||
1079 | On VMS, the last line written to a file will get a trailing newline | |
1080 | willy nilly. This has its advantages insofar as you never get the | |
1081 | "no newline at end of file" warnings from various utilities, but | |
1082 | reality conflicts with expectations when you explicitly test for | |
1083 | the last (or only) line *not* ending with newline, which is what | |
1084 | the recent addtion to ref.t (5e3072707906cc4cb8a364c4cf7c487df0300caa) | |
1085 | was doing. Adding an explicit newline makes everyone happy. | |
1086 | ||
1087 | commit 935c8d19ecf9ad3ea7589ffd1721e6ba1c671ed9 | |
1088 | Author: David Golden <dagolden@cpan.org> | |
1089 | Date: Wed Jan 5 22:25:23 2011 -0500 | |
1090 | ||
1091 | Add Perl::OSType as a dual-life core module | |
1092 | ||
1093 | This commit adds Perl::OSType 1.002 as a dual-life module. It maps Perl | |
1094 | operating system names (e.g. 'dragonfly' or 'MSWin32') to more generic | |
1095 | types with standardized names (e.g. "Unix" or "Windows"). It has been | |
1096 | refactored out of Module::Build and ExtUtils::CBuilder and consolidates | |
1097 | such mappings into a single location for easier maintenance. | |
1098 | ||
1099 | c.f. | |
1100 | http://www.nntp.perl.org/group/perl.perl5.porters/2010/05/msg160280.html | |
1101 | ||
1102 | commit 2a1594f630b57637ddd7a38daaa1e17f66da396a | |
1103 | Author: Chris 'BinGOs' Williams <chris@bingosnet.co.uk> | |
1104 | Date: Wed Jan 5 23:35:15 2011 +0000 | |
1105 | ||
1106 | Update CGI to CPAN version 3.51 | |
1107 | ||
1108 | [SECURITY] | |
1109 | - Further improvements have been made to guard against newline injections | |
1110 | in headers. (Thanks to Max Kanat-Alexander, Yanick Champoux, Mark Stosberg) | |
1111 | ||
1112 | ||
1113 | commit 0b5e625bc99f5cb78697faf03b297b6cacadf60b | |
1114 | Author: Reini Urban <rurban@x-ray.at> | |
1115 | Date: Tue Sep 14 18:04:22 2010 +0200 | |
1116 | ||
1117 | build man pages on cygwin too | |
1118 | ||
1119 | commit 172830635ea7813c85e51e4ae2b4bed56ddbab83 | |
1120 | Author: Reini Urban <rurban@x-ray.at> | |
1121 | Date: Tue Sep 14 17:54:15 2010 +0200 | |
1122 | ||
1123 | Improve cygwin rebase behaviour | |
1124 | ||
1125 | If a dll is updated on cygwin reuse the old imagebase address. | |
1126 | This solves most rebase errors, esp when updating on core dll's. | |
1127 | See http://www.tishler.net/jason/software/rebase/rebase-2.4.2.README | |
1128 | ||
1129 | ||
1130 | NEW TESTS | |
1131 | ||
1132 | t/porting/filenames.t to make sure that filenames and paths are reasonably portable | |
1133 | ||
1134 | ||
1135 | Platforms | |
1136 | ||
1137 | Actually excise 'Apollo DomainOS' support. We officially killed it in 5.11.0. It | |
1138 | hadn't worked for years before that. | |
1139 | ||
1140 | commit cc7e77fd5a0ee9f1498e54dddf566117da62754b | |
1141 | Author: Reini Urban <rurban@x-ray.at> | |
1142 | Date: Tue Sep 14 17:48:32 2010 +0200 | |
1143 | ||
1144 | CYG14 Dynaloader without USEIMPORTLIB, and search cyg prefix | |
1145 | ||
1146 | part1: Support the standard cyg dll prefix, which is e.g. needed for FFI's. | |
1147 | Ctypes and C::DynaLib use DynaLoader to find dlls. | |
1148 | ||
1149 | part2: With -DUSEIMPORTLIB DynaLoader symbols link against the prefixed | |
1150 | symbol names for the .dll.a importlib, but we need to link against the | |
1151 | symbols directly. We don't link Dynaloader against libperl.dll.a. | |
1152 | ||
1153 | Otherwise: | |
1154 | $ g++-4 -o cygperl5_13_4.dll --shared perlsrc.o cygwin.o DynaLoader.o -ldl -lcrypt | |
1155 | Creating library file: libperl.dll.a | |
1156 | DynaLoader.o: In function `XS_DynaLoader_dl_undef_symbols': | |
1157 | ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_stack_sp' | |
1158 | ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_markstack_ptr' | |
1159 | ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_stack_base' | |
1160 | ||
1161 | commit c0a149a90b8b6e1c18de7294ca974265fb559cf5 | |
1162 | Author: Reini Urban <rurban@x-ray.at> | |
1163 | Date: Tue Sep 14 18:06:38 2010 +0200 | |
1164 | ||
1165 | Update cygwin hints | |
1166 | do not use usemymalloc (double size + slow) | |
1167 | remove deprecated libcygipc info | |
1168 | remove overlarge stack size | |
1169 | ||
1170 | commit ac0650a4c9f69cdc9e7af31df29011c42b42b770 | |
1171 | Author: Father Chrysostomos <sprout@cpan.org> | |
1172 | Date: Sun Jan 2 23:14:37 2011 -0800 | |
1173 | ||
1174 | Restore the old description of $[ | |
1175 | ||
1176 | The new entry is a bit too futuristic: assignment to $[ still works | |
1177 | and it is not read-only. | |
1178 | ||
1179 | This does not fully restore the old description, as it contained | |
1180 | grammatical errors and parts of it were not updated when 5.10 changed | |
1181 | the scoping. | |
1182 | ||
1183 | commit 2831a86cee065b53b74fd19ddcc6a4257484646d | |
1184 | Author: Zsbán Ambrus <ambrus@math.bme.hu> | |
1185 | Date: Sun Jan 2 20:25:55 2011 -0800 | |
1186 | ||
1187 | [perl #81032] Overhaul Porting/epigraphs.pod | |
1188 | ||
1189 | This patch makes multiple changes to Porting/epigraphs.pod and | |
1190 | pod/perlhist.pod. | |
1191 | ||
1192 | For those that don't know, Porting/epigraphs.pod is a new document that | |
1193 | collects the quotes (chosen by Pumpkins) in perl release announcements. | |
1194 | ||
1195 | The changes are the following. | |
1196 | ||
1197 | 1. Add a link pointing to each release announcement in the mailing | |
1198 | list archives. These are from ysth's list, the source from which | |
1199 | Porting/epigraphs.pod was originally compiled, but they weren't in | |
1200 | Porting/epigraphs.pod so far. | |
1201 | 2. Reorder Porting/epigraphs.pod chronologically, because I believe | |
1202 | that makes more sense -- pod/perlhist.pod is still sorted by version numbers. | |
1203 | 3. Incidentally, some missing releases are added to pod/perlhist.pod too. | |
1204 | 4. Fix a mistake where Porting/epigraphs.pod gives the wrong version number. | |
1205 | 5. Add some epigraphs that appear in ysth's list but not in | |
1206 | Porting/epigraphs.pod. | |
1207 | 6. I did some research in perl history before the part that ysth's list | |
1208 | covers, and added older perl announcements I found. This work is not | |
1209 | complete: I stopped somewhere in 2000. | |
1210 | ||
1211 | commit eccda089fc3dcaafc1ae0aac6b428f799231b824 | |
1212 | Author: Paul "LeoNerd" Evans <leonerd@leonerd.org.uk> | |
1213 | Date: Mon Dec 13 17:50:06 2010 +0000 | |
1214 | ||
1215 | Implement Socket::getaddrinfo() and Socket::getnameinfo(), with related constants | |
1216 | ||
1217 | commit d54243158c0e4ba0127eb487c5b2e2a10484e8d0 | |
1218 | Author: David Golden <dagolden@cpan.org> | |
1219 | Date: Thu Dec 30 23:43:44 2010 -0500 | |
1220 | ||
1221 | Add JSON::PP to the Perl core | |
1222 | ||
1223 | Per discussions with Jesse Vincent, JSON::PP has been added | |
1224 | to the Perl core to support the new CPAN meta file specification | |
1225 | ||
1226 | commit 4155e4fe81b9987a30efea627e43a574f5460f73 | |
1227 | Author: Father Chrysostomos <sprout@cpan.org> | |
1228 | Date: Sun Jan 2 14:51:21 2011 -0800 | |
1229 | ||
1230 | [perl #36347] Object destruction incomplete | |
1231 | ||
1232 | do_clean_objs only looks for objects referenced by RVs, so blessed | |
1233 | array references and lexical variables (and probably other SVs, too) | |
1234 | are not DESTROYed. | |
1235 | ||
1236 | This commit adds a new visit() call to sv_clean_objs, which curses | |
1237 | (DESTROYs and un-blesses, leaving the reference count as it is) any | |
1238 | objects that are still left after do_clean_named_io_objs. The new | |
1239 | do_curse routine (a pointer to which is passeds to visit()) follows | |
1240 | do_clean_named_io_objs’ example and explicitly skips the STDOUT and | |
1241 | STDERR handles, in case destructors need to use them. | |
1242 | ||
1243 | The cursing code, which is now called from two places, is moved out of | |
1244 | sv_clear and put in its own routine. The check that the reference | |
1245 | count is zero does not apply when called from sv_clean_objs, so the | |
1246 | new S_curse routine takes a boolean argument that determines whether | |
1247 | that check should take place. | |
1248 | ||
1249 | commit 3d450a5dd4e8f9a7b2aba0b018f9fe078fb6aa30 | |
1250 | Author: David Leadbeater <dgl@dgl.cx> | |
1251 | Date: Sun Jan 2 14:33:16 2011 -0800 | |
1252 | ||
1253 | [perl #73630] Build separate DTrace for miniperl | |
1254 | ||
1255 | As outlined in the RT ticket due to miniperl's dependencies differing to | |
1256 | the final perl binary dtrace -G needs to be called separately for each. | |
1257 | ||
1258 | Build tested on Mac OS X 10.6, Solaris 11 and Scientific Linux with | |
1259 | SystemTap from git. | |
1260 | ||
1261 | (Solaris is the only system I have access to where DTRACE_O actually gets | |
1262 | defined. Neither the dtrace binary on OS X nor SystemTap's dtrace | |
1263 | compatibility layer accept the -G option.) | |
1264 | ||
1265 | commit 42467a219c70177fc2004ed9b73d6c3db59dba5c | |
1266 | Author: David Golden <dagolden@cpan.org> | |
1267 | Date: Sun Jan 2 17:34:44 2011 -0500 | |
1268 | ||
1269 | Update CPAN::Meta::YAML to 0.003 | |
1270 | ||
1271 | commit 9426e1a55981168c83a030df9bce5e0b46586581 | |
1272 | Author: David Mitchell <davem@iabyn.com> | |
1273 | Date: Sun Jan 2 19:38:30 2011 +0000 | |
1274 | ||
1275 | make <expr> always overload if expr is overloaded | |
1276 | ||
1277 | Due to the way that '<> as glob' was parsed differently from | |
1278 | '<> as filehandle' from 5.6 onwards, something like <$foo[0]> | |
1279 | didn't handle overloading, even where $foo[0] was an overloaded object. | |
1280 | This was contrary to the docs for overload, and meant that <> couldn't | |
1281 | be used as a general overloaded iterator operator. | |
1282 | ||
1283 | commit e4ef33329eb648489bad5296e9673c409f5577f9 | |
1284 | Author: Jesse Vincent <jesse@bestpractical.com> | |
1285 | Date: Sun Jan 2 10:50:21 2011 +0800 | |
1286 | ||
1287 | perlbug did not previously generate a From: header. While some MTAs do | |
1288 | the "right" thing and insert a valid "From:", not all of them do, | |
1289 | potentially resulting in dropped mail. | |
1290 | ||
1291 | ||
1292 | commit edcf105d70e5423fd928c776e086fe31a4a543f4 | |
1293 | Author: Jesse Vincent <jesse@bestpractical.com> | |
1294 | Date: Sat Jan 1 18:46:20 2011 +0800 | |
1295 | ||
1296 | Document 'test_porting' and start a section on how committing to blead | |
1297 | ||
1298 | commit b85802c5d04fcd6e5c969a5c56136e05061f05d7 | |
1299 | Author: Chris 'BinGOs' Williams <chris@bingosnet.co.uk> | |
1300 | Date: Sat Jan 1 10:37:04 2011 +0000 | |
1301 | ||
1302 | Update Encode to CPAN version 2.42 | |
1303 | ||
1304 | ||
1305 | commit fbcda526a9bbe2ee1302d6f4507b07f83661fc0d | |
1306 | Author: Nicholas Clark <nick@ccl4.org> | |
1307 | Date: Thu Dec 30 17:30:24 2010 +0000 | |
1308 | ||
1309 | Most socket ops weren't warning for unopened handles unless 'closed' was enabled | |
1310 | ||
1311 | They were checking that category 'closed' was enabled for warnings before | |
1312 | calling report_evil_fh(), which in turn was (correctly) checking category | |
1313 | 'unopened'. | |
1314 | commit c521cf7c8af1697e5efd8ce3ad75ed00606db13b | |
1315 | Author: Nicholas Clark <nick@ccl4.org> | |
1316 | Date: Thu Dec 30 16:52:22 2010 +0000 | |
1317 | ||
1318 | pp_leavewrite wasn't warning for unopened handles unless 'closed' was enabled. | |
1319 | ||
1320 | It was checking that category 'closed' was enabled for warnings before calling | |
1321 | report_evil_fh(), which in turn was (correctly) checking category 'unopened'. | |
1322 | ||
1323 | commit 8985fe98dcc5c0af2fadeac15dfbc13f553ee7fc | |
1324 | Author: David Mitchell <davem@iabyn.com> | |
1325 | Date: Thu Dec 30 10:32:44 2010 +0000 | |
1326 | ||
1327 | Better handling of magic methods freeing the SV | |
1328 | ||
1329 | This is a fix for RT #81230 (and more). Currently, mg_get() works around | |
1330 | the case where the called magic (e.g. FETCH) frees the magic SV. It does | |
1331 | this by unconditionally pushing the SV on the tmps stack before invoking | |
1332 | the method. | |
1333 | ||
1334 | There are two issues with this. Firstly, it may artificially extend the | |
1335 | life of the SV. This was the root of the problem with #81230. There, the | |
1336 | DB_File code, under -T, created a tainted tied object. Accessing the | |
1337 | object (within FETCH as it happens), caused mg_get() to be invoked on the | |
1338 | object (due to the taint magic), and thus extend the life of the object. | |
1339 | This then caused c<untie %h if $h{k}> to give the warning | |
1340 | untie attempted while 1 inner references still exist. | |
1341 | This only became noticeable after efaf36747029c85b4d8825318cb4d485a0bb350e, | |
1342 | which stopped wrapping magic method calls in SAVETMPS/FREETMPS. | |
1343 | ||
1344 | The second issue issue that this protection only applies to mg_get(); | |
1345 | functions like mg_set() can still segfault if the SV is deleted. | |
1346 | ||
1347 | This commit fixes both problems as follows: | |
1348 | ||
1349 | First, the protection mechanism is moved out of mg_get() and into | |
1350 | save_magic() / restore_magic(), so that it protects more things. | |
1351 | Secondly, the protection is now: | |
1352 | ||
1353 | * in save_magic(), SvREFCNT_inc() the SV, thus protecting it from being | |
1354 | freed during FETCH (or whatever) | |
1355 | ||
1356 | * in restore_magic(), SvREFCNT_dec() the SV, undoing the protection | |
1357 | without extending the life of the SV, *except* if the refcount is | |
1358 | 1 (ie FETCH tried to free it), then push it on the mortals stack | |
1359 | to extend it life a bit so our callers wont choke on it. | |
1360 | ||
1361 | ||
1362 | commit e8a07a125ebebaf06dc890127439c7461a063b35 | |
1363 | Author: David Golden <dagolden@cpan.org> | |
1364 | Date: Mon Dec 27 14:50:31 2010 -0500 | |
1365 | ||
1366 | Add CPAN::Meta::YAML as a dual-life core module | |
1367 | ||
1368 | commit 6fae7aa4cab68dd6bb59af7f22c85e77eb8a1b0c | |
1369 | Author: Zsbán Ambrus <ambrus@math.bme.hu> | |
1370 | Date: Sun Dec 26 18:10:57 2010 -0800 | |
1371 | ||
1372 | [perl #81016] Document ord("") | |
1373 | ||
1374 | The following patch clarifies what ord("") does in pod/perlfunc.pod. | |
1375 | ||
1376 | From the current documentation, it's not documented what it does, and one | |
1377 | could guess several different things: returns zero, returns undef, returns | |
1378 | zero with a warning, returns undef with a warning, dies. (There's precedent | |
1379 | for dying: some BASIC implementations give an error if you ask for ASC("") | |
1380 | -- here ASC is their equivalent of our ord function.) | |
1381 | ||
1382 | commit 23e2fda90bc3d33c854bd36de712a45aca7a7711 | |
1383 | Author: Jerry D. Hedden <jdhedden@cpan.org> | |
1384 | Date: Fri Dec 24 12:53:28 2010 -0500 | |
1385 | ||
1386 | Upgrade to Thread::Queue 2.12 | |
1387 | Upgrade to Thread::Semaphore 2.12 | |
1388 | ||
1389 | commit cce04bebd8af026c2a6731940ddb895d3c1fc3e4 | |
1390 | Author: David Golden <dagolden@cpan.org> | |
1391 | Date: Mon Dec 13 17:36:33 2010 -0500 | |
1392 | ||
1393 | Reorganize perlhack.pod | |
1394 | ||
1395 | Following on an IRC conversation, I've attempted to reorganize | |
1396 | perlhack for greater clarity. I have only cut and paste blocks | |
1397 | of text and amended section titles and levels. (I have not addressed | |
1398 | any of the numerous factual issues which remain.) | |
1399 | ||
1400 | The resulting guide should be clearer for those trying to skim the | |
1401 | table of contents to understand what is covered in perlhack and | |
1402 | whether it is worth an in-depth read. | |
1403 | ||
1404 | I see this change as the first step towards future improvements. | |
1405 | ||
1406 | commit 0b76a1aba72393931944e93dffe81e1937ff3ac4 | |
1407 | Author: Jerry D. Hedden <jdhedden@cpan.org> | |
1408 | Date: Fri Dec 24 22:29:14 2010 +0000 | |
1409 | ||
1410 | [PATCH] Upgrade to threads::shared 1.36 | |
1411 | [PATCH] Upgrade to threads 1.82 | |
1412 | ||
1413 | commit c89df6cf6f70d6460ca3fec9d465e5e6e17fb3a7 | |
1414 | Author: Karl Williamson <public@khwilliamson.com> | |
1415 | Date: Sun Dec 19 11:08:47 2010 -0700 | |
1416 | ||
1417 | Change regexes to debug dump non-ASCII as hex. | |
1418 | ||
1419 | instead of the less familiar octal for larger values. Perhaps they | |
1420 | should actually print the actual character, but this is far easier than | |
1421 | the previous to understand. | |
1422 | ||
e0b8b6f1 | 1423 | =cut |