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