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