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