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