5 [ this is a template for a new perldelta file. Any text flagged as
6 XXX needs to be processed before release. ]
8 perldelta - what is new for perl v5.13.9
12 This document describes differences between the 5.13.8 release and
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
21 XXX Any important notices here
23 =head1 Core Enhancements
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.
29 [ List each enhancement as a =head2 entry ]
31 =head2 New regular expression modifier C</a>
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.
51 =head2 Any unsigned value can be encoded as a character
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".
68 =head2 Regular expression debugging output improvement
70 Regular expression debugging output (turned on by C<use re 'debug';>) now
71 uses hexadecimal when escaping non-ASCII characters, instead of octal.
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.
79 [ List each security issue as a =head2 entry ]
81 =head1 Incompatible Changes
83 XXX For a release on a stable branch, this section aspires to be:
85 There are no changes intentionally incompatible with 5.XXX.XXX. If any
86 exist, they are bugs and reports are welcome.
88 [ List each incompatible change as a =head2 entry ]
90 =head2 All objects are destroyed
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
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>.
99 This has the potential to break some XS modules. (In fact, it break some.
100 See L</Known Problems>, below.)
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.
108 [ List each deprecation as a =head2 entry ]
110 =head1 Performance Enhancements
112 XXX Changes which enhance performance without changing behaviour go here. There
113 may well be none in a stable release.
115 [ List each enhancement as a =item entry ]
125 =head1 Modules and Pragmata
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
135 [ Within each section, list entries as a =item entry ]
137 =head2 New Modules and Pragmata
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
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>.
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.
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.
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.
180 =head2 Updated Modules and Pragmata
186 C<Archive::Extract> has been upgraded from version 0.46 to 0.48
190 C<Archive::Tar> has been upgraded from version 1.74 to 1.76
194 C<CGI> has been upgraded from version 3.50 to 3.51
196 Further improvements have been made to guard against newline injections
201 C<Compress::Raw::Bzip2> has been upgraded from version 2.031 to 2.033
205 C<Compress::Raw::Zlib> has been upgraded from version 2.030 to 2.033
209 C<CPAN> has been upgraded from version 1.94_62 to 1.94_63
213 C<CPANPLUS> has been upgraded from version 0.9010 to 0.9011
217 C<CPANPLUS::Dist::Build> has been upgraded from version 0.50 to 0.52
221 C<DB_File> has been upgraded from version 1.820 to 1.821
225 C<Encode> has been upgraded from version 2.40 to 2.42.
226 Now, all 66 Unicode non-characters are treated the same way U+FFFF has
227 always been treated; if it was disallowed, all 66 are disallowed; if it
232 C<File::Fetch> has been upgraded from version 0.28 to 0.32
236 C<IO::Compress> has been upgraded from version 2.030 to 2.033
240 C<IPC::Cmd> has been upgraded from version 0.66 to 0.68
244 C<Log::Message> has been upgraded from version 0.02 to 0.04
248 C<Log::Message::Simple> has been upgraded from version 0.06 to 0.08
252 C<Module::Load::Conditional> has been upgraded from version 0.38 to 0.40
256 C<Object::Accessor> has been upgraded from version 0.36 to 0.38
260 C<Params::Check> has been upgraded from version 0.26 to 0.28
264 C<Pod::LaTeX> has been upgraded from version 0.58 to 0.59
268 C<Term::UI> has been upgraded from version 0.20 to 0.24
272 C<Thread::Queue> has been upgraded from version 2.11 to 2.12.
276 C<Thread::Semaphore> has been upgraded from version 2.11 to 2.12.
280 C<threads> has been upgraded from version 1.81_03 to 1.82
284 C<threads::shared> has been upgraded from version 1.35 to 1.36
288 C<Time::Local> has been upgraded from version 1.1901_01 to 1.2000.
292 C<Unicode::Normalize> has been upgraded from version 1.07 to 1.10
296 C<version> has been upgraded from 0.86 to 0.88.
300 =head2 Removed Modules and Pragmata
312 XXX Changes to files in F<pod/> go here. Consider grouping entries by
313 file and be sure to link to the appropriate page, e.g. L<perlfunc>.
315 =head2 New Documentation
317 XXX Changes which create B<new> files in F<pod/> go here.
321 XXX Description of the purpose of the new file here
323 =head2 Changes to Existing Documentation
325 XXX Changes which significantly change existing files in F<pod/> go here.
326 However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
335 It has now been documented that C<ord> returns 0 for an empty string.
341 The following additions or changes have been made to diagnostic output,
342 including warnings and fatal error messages. For the complete list of
343 diagnostic messages, see L<perldiag>.
345 XXX New or changed warnings emitted by the core's C<C> code go here. Also
346 include any changes in L<perldiag> that reconcile it to the C<C> code.
348 [ Within each section, list entries as a =item entry ]
350 =head2 New Diagnostics
352 XXX Newly added diagnostic messages go here
358 Performing an operation requiring Unicode semantics (such as case-folding)
359 on a Unicode surrogate or a non-Unicode character now triggers a warning:
360 'Operation "%s" returns its argument for ...'.
364 =head2 Changes to Existing Diagnostics
366 XXX Changes (i.e. rewording) of diagnostic messages go here
376 =head1 Utility Changes
378 XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
379 here. Most of these are built within the directories F<utils> and F<x2p>.
381 [ List utility changes as a =head3 entry for each utility and =item
382 entries for each change
383 Use L<XXX> with program names to get proper documentation linking. ]
391 C<perlbug> did not previously generate a From: header, potentially
392 resulting in dropped mail. Now it does include that header.
396 =head1 Configuration and Compilation
398 XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
399 go here. Any other changes to the Perl build process should be listed here.
400 However, any platform-specific changes should be listed in the
401 L</Platform Support> section, instead.
403 [ List changes as a =item entry ].
415 XXX Any significant changes to the testing of a freshly built perl should be
416 listed here. Changes which create B<new> files in F<t/> go here as do any
417 large changes to the testing harness (e.g. when parallel testing was added).
418 Changes to existing files in F<t/> aren't worth summarising, although the bugs
419 that they represent may be covered elsewhere.
421 [ List each test improvement as a =item entry ]
427 A new test script, C<t/porting/filenames.t>, makes sure that filenames and
428 paths are reasonably portable.
432 =head1 Platform Support
434 XXX Any changes to platform support should be listed in the sections below.
436 [ Within the sections, list each platform as a =item entry with specific
437 changes as paragraphs below it. ]
441 XXX List any platforms that this version of perl compiles on, that previous
442 versions did not. These will either be enabled by new files in the F<hints/>
443 directories, or new subdirectories and F<README> files at the top level of the
448 =item XXX-some-platform
454 =head2 Discontinued Platforms
456 XXX List any platforms that this version of perl no longer compiles on.
460 =item Apollo DomainOS
462 The last vestiges of support for this platform have been excised from the
463 Perl distribution. It was officially discontinued in version 5.12.0. It had
464 not worked for years before that.
468 =head2 Platform-Specific Notes
470 XXX List any changes for specific platforms. This could include configuration
471 and compilation changes or changes in portability/compatibility. However,
472 changes within modules for platforms should generally be listed in the
473 L</Modules and Pragmata> section.
479 DTrace is now supported on Solaris. There used to be build failures, but
480 these have been fixed
481 L<[perl #73630]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=73630>.
485 =head1 Internal Changes
487 XXX Changes which affect the interface available to C<XS> code go here.
488 Other significant internal changes for future core maintainers should
491 [ List each test improvement as a =item entry ]
497 The opcode bodies for C<chop> and C<chomp> and for C<schop> and C<schomp> have
498 been merged. The implementation functions C<Perl_do_chop()> and
499 C<Perl_do_chomp()>, never part of the public API, have been merged and moved to
500 a static function in F<pp.c>. This shrinks the perl binary slightly, and should
501 not affect any code outside the core (unless it is relying on the order of side
502 effects when C<chomp> is passed a I<list> of values).
506 Some of the flags parameters to the uvuni_to_utf8_flags() and
507 utf8n_to_uvuni() have changed. This is a result of Perl now allowing
508 internal storage and manipulation of code points that are problematic
509 in some situations. Hence, the default actions for these functions has
510 been complemented to allow these code points. The new flags are
511 documented in L<perlapi>. Code that requires the problematic code
512 points to be rejected needs to change to use these flags. Some flag
513 names are retained for backward source compatibility, though they do
514 nothing, as they are now the default. However the flags
515 C<UNICODE_ALLOW_FDD0>, C<UNICODE_ALLOW_FFFF>, C<UNICODE_ILLEGAL>, and
516 C<UNICODE_IS_ILLEGAL> have been removed, as they stem from a
517 fundamentally broken model of how the Unicode non-character code points
518 should be handled, which is now described in
519 L<perlunicode/Non-character code points>. See also L</Selected Bug Fixes>.
523 Certain shared flags in the C<pmop.op_pmflags> and C<regexp.extflags>
524 structures have been removed. These are: C<Rxf_Pmf_LOCALE>,
525 C<Rxf_Pmf_UNICODE>, and C<PMf_LOCALE>. Instead there are encodes and
526 three static in-line functions for accessing the information:
527 C<get_regex_charset()>, C<set_regex_charset()>, and C<get_regex_charset_name()>,
528 which are defined in the places where the orginal flags were.
532 A new option has been added to C<pv_escape> to dump all characters above
533 ASCII in hexadecimal. Before, one could get all characters as hexadecimal
534 or the Latin1 non-ASCII as octal
538 =head1 Selected Bug Fixes
540 XXX Important bug fixes in the core language are summarised here.
541 Bug fixes in files in F<ext/> and F<lib/> are best summarised in
542 L</Modules and Pragmata>.
544 [ List each fix as a =item entry ]
550 The handling of Unicode non-characters has changed.
551 Previously they were mostly considered illegal, except that only one of
552 the 66 of them was known about in places. The Unicode standard
553 considers them legal, but forbids the "open interchange" of them.
554 This is part of the change to allow the internal use of any code point
555 (see L</Core Enhancements>). Together, these changes resolve
556 L<# 38722|https://rt.perl.org/rt3/Ticket/Display.html?id=38722>,
557 L<# 51918|http://rt.perl.org/rt3/Ticket/Display.html?id=51918>,
558 L<# 51936|http://rt.perl.org/rt3/Ticket/Display.html?id=51936>,
559 L<# 63446|http://rt.perl.org/rt3/Ticket/Display.html?id=63446>
563 Sometimes magic (ties, tainted, etc.) attached to variables could cause an
564 object to last longer than it should, or cause a crash if a tied variable
565 were freed from within a tie method. These have been fixed
566 L<[perl #81230]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=81230>.
570 Most I/O functions were not warning for unopened handles unless the
571 'closed' and 'unopened' warnings categories were both enabled. Now only
572 C<use warnings 'unopened'> is necessary to trigger these warnings (as was
573 always meant to be the case.
577 C<< <expr> >> always respects overloading now if the expression is
580 Due to the way that '<> as glob' was parsed differently from
581 '<> as filehandle' from 5.6 onwards, something like C<< <$foo[0]> >> did
582 not handle overloading, even if C<$foo[0]> was an overloaded object. This
583 was contrary to the documentation for overload, and meant that C<< <> >>
584 could not be used as a general overloaded iterator operator.
588 Destructors on objects were not called during global destruction on objects
589 that were not referenced by any scalars. This could happen if an array
590 element were blessed (e.g., C<bless \$a[0]>) or if a closure referenced a
591 blessed variable (C<bless \my @a; sub foo { @a }>).
593 Now there is an extra pass during global destruction to fire destructors on
594 any objects that might be left after the usual passes that check for
595 objects referenced by scalars
596 L<[perl #36347]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=36347>.
600 =head1 Known Problems
602 XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
603 tests that had to be C<TODO>ed for the release would be noted here, unless
604 they were specific to a particular platform (see below).
606 This is a list of some significant unfixed bugs, which are regressions
607 from either 5.XXX.XXX or 5.XXX.XXX.
609 [ List each fix as a =item entry ]
615 The fix for [perl #81230] causes test failures for C<Tk> version 804.029.
616 This is still being investigated.
622 XXX If any significant core contributor has died, we've added a short obituary
625 =head1 Acknowledgements
627 XXX The list of people to thank goes here.
629 =head1 Reporting Bugs
631 If you find what you think is a bug, you might check the articles
632 recently posted to the comp.lang.perl.misc newsgroup and the perl
633 bug database at http://rt.perl.org/perlbug/ . There may also be
634 information at http://www.perl.org/ , the Perl Home Page.
636 If you believe you have an unreported bug, please run the L<perlbug>
637 program included with your release. Be sure to trim your bug down
638 to a tiny but sufficient test case. Your bug report, along with the
639 output of C<perl -V>, will be sent off to perlbug@perl.org to be
640 analysed by the Perl porting team.
642 If the bug you are reporting has security implications, which make it
643 inappropriate to send to a publicly archived mailing list, then please send
644 it to perl5-security-report@perl.org. This points to a closed subscription
645 unarchived mailing list, which includes all the core committers, who be able
646 to help assess the impact of issues, figure out a resolution, and help
647 co-ordinate the release of patches to mitigate or fix the problem across all
648 platforms on which Perl is supported. Please only use this address for
649 security issues in the Perl core, not for modules independently
654 The F<Changes> file for an explanation of how to view exhaustive details
657 The F<INSTALL> file for how to build Perl.
659 The F<README> file for general stuff.
661 The F<Artistic> and F<Copying> files for copyright information.
667 Below, you'll find a cut-down version of the git log from 5.13.8 to 1b9043bb.
668 Jesse went through and took a first pass at cutting out non-changelog items. He may have been over-(or under-)zealous.
670 It hasn't yet been deduped with the entries that _are_ in the perldelta.
673 Major spell-checking pass throughout the core
675 Remove references to compat3.sym and interp.sym, deleted over 10 years ago.
677 Remove Mac OS classic code from numerous places throughout the core
679 commit 7fe50b8b8a4dc38fc341e3b403545aaca937f50e
680 Author: Leon Timmermans <fawaka@gmail.com>
681 Date: Tue Jan 18 16:40:07 2011 +0100
683 Also unblock signal handlers throwing an exception
685 Also handle and test the edge case of a signal handler throwing an
691 Numberous POD warnings fixed
695 Update Unicode-Collate to CPAN version 0.71
701 regexec.c: Remove break statements from macros
703 This is so future coders won't be tempted to rely on them.
705 regexec.c: Don't rely on break stmts in macros
707 It is safer and clearer to have the break statement in each case statement at
710 commit b57e41186b2ceb48bef4f0588dcd19e105cc8a38
711 Author: Karl Williamson <public@khwilliamson.com>
712 Date: Tue Jan 18 15:03:41 2011 -0700
714 regcomp: Disallow multi-char folds in lookbehind
716 The addition of the ANYOFV regnode to treat multi-char folds in a bracketed
717 character class has exposed a bug, in which those classes have long been able
718 to be varying length (due to the multi-char fold), but the compiler wasn't
719 aware of it. Now it is, and hence won't allow those which have multi-char
720 folds to be part of a lookbehind pattern, which requires a constant length.
722 This patch disallows multi-char folds in a lookbehind bracketed character
725 Author: Nicholas Clark <nick@ccl4.org>
726 Date: Tue Jan 18 16:14:43 2011 +0000
728 Remove Mac OS classic code from scripts in utils/
731 Convert DosGlob.t to Test::More.
733 commit d6dc8a6dc95226ddff7719cd1e0bd053c4e5725e
734 Author: Nicholas Clark <nick@ccl4.org>
735 Date: Tue Jan 18 13:08:11 2011 +0000
737 Remove Mac OS Classic docs from DirHandle and File::{Copy,DosGlob,Find}
739 The documentation for the different behaviour on Mac OS Classic was not
740 removed when the relevant code was removed in 862f843bac3434c2. That commit
741 also remove all callers to several Mac OS classic support functions, but not
742 the functions themselves. Rectify this.
744 commit 8254cbf193c939338449097a80163197fc755150
745 Author: Nicholas Clark <nick@ccl4.org>
746 Date: Tue Jan 18 11:10:41 2011 +0000
748 Build perltoc.pod with pragmata sorted by name.
750 Previously they were actually sorted by full pathname, which isn't logical.
751 I presume that this is an artefact of all pragmata being in lib/ when
752 pod/buildtoc was originally written.
754 commit 1d45ec279e4e105512a2803e3d0bd974a151a0f6
755 Author: Father Chrysostomos <sprout@cpan.org>
756 Date: Mon Jan 17 22:32:52 2011 -0800
758 perlcall: Fixes for various grammatical errors
760 commit faaf68361923e4bb95d1eb919bc724a0dcc5a4ce
761 Author: Leon Timmermans <fawaka@gmail.com>
762 Date: Mon Jan 17 17:59:33 2011 +0100
764 Clarify limitation in safe signals.
766 commit 0c1bf4c7d433bb0ad80bfe5511b1301db32b7b95
767 Author: Leon Timmermans <fawaka@gmail.com>
768 Date: Mon Jan 17 16:29:11 2011 +0100
770 Added tests for conditional unblocking
772 commit 555344425f04e96a72e4d29eab96b34bff8f96ae
773 Author: Leon Timmermans <fawaka@gmail.com>
774 Date: Thu Jan 13 18:30:29 2011 +0100
776 Conditionally unblock after signal handler[#82040]
778 Only unblock signal after a safe-signal handler is executed if that signal was
779 also unblocked before the handler.
780 commit 435aa301127ed481169903cb35187bde1ea44928
781 Author: David Golden <dagolden@cpan.org>
782 Date: Mon Jan 17 20:39:14 2011 -0500
784 Update HTTP::Tiny to CPAN version 0.009
786 commit 78cd53afbb1923bf0a68f361040ad8fe93a7d0d5
787 Author: David Mitchell <davem@iabyn.com>
788 Date: Tue Jan 18 00:46:30 2011 +0000
790 vastly speed up t/porting/diag.t
792 This used to take about 3 minutes of CPU. Reduce this to around
793 6 seconds (!!) by coalescing and pre-compiling various patterns
794 that get applied to nearly every line of every source file.
796 commit cfaf538b6276c6a8ef80ff6c66e106c6a4f1caaa
797 Author: Karl Williamson <public@khwilliamson.com>
798 Date: Mon Jan 17 08:58:53 2011 -0700
800 Add /a regex modifier
802 This restricts certain constructs, like \w, to matching in the ASCII range only.
804 commit 56ae17b45d2513d65903d13468e8f6a16b20f916
805 Author: Karl Williamson <public@khwilliamson.com>
806 Date: Sun Jan 16 17:41:30 2011 -0700
808 regcomp.c: Convert \d \D to a switch{}
810 commit e66820012d29519f903709f005e56a2c334ae183
811 Author: Tony Cook <tony@develop-help.com>
812 Date: Mon Jan 17 19:22:08 2011 +1100
814 test_prep now depends on the pods needed for porting/buildtoc.t
816 In the other makefiles test_prep (or test-prep) depends on all, so
817 they shouldn't need updating.
820 commit a52237f3a547cdefddd4c4be6224bfdf67c84263
821 Author: David Golden <dagolden@cpan.org>
822 Date: Sun Jan 16 21:32:21 2011 -0500
824 Update CPAN to CPAN version 1.94_63
826 commit 63ac0dadb1aafcf0c171d3c1422c1923b611b2fc
827 Author: Karl Williamson <public@khwilliamson.com>
828 Date: Tue Dec 28 16:13:49 2010 -0700
830 regex: Use BOUNDU regnodes
832 This refactors one area in regexec.c to use BOUNDU, NBOUNDU for
833 efficiciency, and easier adding of the future BOUNDA.
835 commit 980866de2cf8ecdb4bb72b7f9294763057008f50
836 Author: Karl Williamson <public@khwilliamson.com>
837 Date: Mon Dec 27 12:04:58 2010 -0700
839 regex: Separate nodes for Unicode semantics \s \w
841 This patch converts the \s, \w and complements Unicode semantics to
842 instead of using the flags field of their nodes to instead use separate
843 nodes. This gains some efficiency, especially useful in tight loops and
844 backtracking of regexec.c, and prepares the way for easily adding other
845 semantic variations, such as /a.
847 It refactors the CCC_TRY... macros. I tried to break this piece up into
848 smaller chunks, but found it much easier to get to this in one step.
849 Further patches will do some more refactoring of these.
851 As part of the CCC_TRY macro refactoring, the lines that include the
852 test if (! nextchr) are changed to just look for the end-of-string by
853 position instead of it being NUL. In locales, it could be (however
854 unlikely), that NUL is a real alphabetic, digit, or space character.
855 commit 50e911483ad5c29e25c54c9f81f92df974dd2cc0
856 Author: Karl Williamson <public@khwilliamson.com>
857 Date: Sun Dec 26 10:35:58 2010 -0700
859 Change name of /d to DEPENDS
861 I much prefer David Golden's name for /d whose meaning 'depends' on
862 circumstances, instead of 'dual' meaning it could be one or another.
863 Change it before this gets out in a stable release, and we're stuck with
866 commit 73134a2eb4055c76fe5b154da95e09118f716fd8
867 Author: Karl Williamson <public@khwilliamson.com>
868 Date: Sun Dec 26 10:35:20 2010 -0700
870 CH] Change usage of regex/op common to common names
872 This patch changes the core functions to use the common names for the
873 fields that are shared between op.c and regcomp.c, just for consistency
874 of using one name throughout the core for the same thing.
876 A grep of cpan shows that both names are used in various modules; so
877 both names must be retained.
879 commit a3ab329f3fc9494e700f51c38cef42021c130b6e
880 Author: David Golden <dagolden@cpan.org>
881 Date: Sun Jan 16 20:57:02 2011 -0500
883 Add HTTP::Tiny as a dual-life core module
885 HTTP::Tiny has been added as a dual-life module. It is a very
886 small, simple HTTP/1.1 client designed for simple GET requests and file
887 mirroring. It has has been added to enable CPAN.pm and CPANPLUS to
888 "bootstrap" HTTP access to CPAN using pure Perl without relying on external
889 binaries like F<curl> or F<wget>.
891 commit 211cc5012284f4bd900fcaa630adbcac69ca6112
892 Author: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
893 Date: Sun Jan 16 23:23:03 2011 +0000
895 Update Unicode-Collate to CPAN version 0.70 and enable XS version
897 commit a62b1201c068dc7b099bcb7182e188c4d2fbf34c
898 Author: Karl Williamson <public@khwilliamson.com>
899 Date: Sun Dec 26 10:31:16 2010 -0700
901 Use multi-bit field for regex character set
903 The /d, /l, and /u regex modifiers are mutually exclusive. This patch
904 changes the field that stores the character set to use more than one bit
905 with an enum determining which one. This data structure more
906 closely follows the semantics of their being mutually exclusive, and
907 conserves bits as well, and is better expandable.
909 A small API is added to set and query the bit field.
911 This patch is not .xs source backwards compatible. A handful of cpan
912 programs are affected.
917 Significant updates to buildtoc
919 Update Unicode-Normalize to CPAN version 1.10
921 commit 11454c594f22abc5945e69a46fc965363dbf326e
922 Author: Karl Williamson <public@khwilliamson.com>
923 Date: Sat Jan 15 13:42:58 2011 -0700
925 Fix \xa0 matching both [\s] [\S], et.al.
927 This bug stemmed from Latin1 characters not matching any (non-complemented)
928 character class in /d semantics when the target string is no utf8; but having
929 unicode semantics when it isn't. The solution here is to add a special flag.
931 There were several tests that relied on the broken behavior, specifically they
932 tested that \xff isn't a printable word character even in utf8. I changed the
933 deparse test to instead use a non-printable code point, and I changed the ones
934 in re_tests to be TODOs, and will change them back using /a when that is
940 restrict \p{IsUserDefined} to In\w+ and In\w+
942 In L<perlunicode/"User-Defined Character Properties">, it says you can
943 create custom properties by defining subroutines whose names begin with
944 "In" or "Is". However, perl doesn't actually enforce that naming
945 restriction, so \p{foo::bar} will call foo::Bar() if it exists.
947 This commit finally enforces this convention. Note that this broke a
948 number of existing tests for properties, since they didn't always use an
953 test that perl.pod, pod.lst, MANIFEST and the file system are consistent
955 commit f56b6394f7cf57733135f56e4e4ac49abe9ac9cc
956 Author: Karl Williamson <public@khwilliamson.com>
957 Date: Thu Jan 13 22:36:36 2011 -0700
961 This patch restructures the regex ANYOF code to generate ANYOFV nodes instead
962 when there is a possibility that it could match more than one character. Note
963 that this doesn't affect the optimizer, as it essentially ignores things that
964 fit into this category. (But it means that the optimizer will no longer reject
965 these when it shouldn't have.)
967 The handling of the LATIN SHARP s is modified to correspond with this new node
970 The initial handling of ANYOFV is placed in regexec.c. More analysis will come
971 on that. But there was significant change to the part that handles matching
972 multi-char strings. This has long been buggy, with it previously comparing a
973 folded-version on one side with a non-folded version on the other.
975 This patch fixes about 60% of the problems that my undelivered test suite gives
976 for multi-char folds. But there are still 17K test failures left, so I'm still
977 not delivering that. The TODOs that this fixes will be cleaned up in a later commit
980 Update Pod-LaTeX to CPAN version 0.59
982 commit 680818c0361b180bb6f09d4bb11c4d5cd467fe62
983 Author: Nicholas Clark <nick@ccl4.org>
984 Date: Thu Jan 13 16:24:52 2011 +0000
986 ithread_create() was relying on the stack not moving. Fix this.
988 4cf5eae5e58faebb changed S_ithread_create() to avoid creating an AV, by
989 passing the thread creation arguments as pointers to a block of memory
990 holding SVs. Unfortunately, this inadvertently introduced a subtle bug,
991 because the block of memory is on the Perl stack, which can move as a side
992 effect of being reallocated to extend it. Hence pass in the offset on the
993 stack instead, read the current value of the relevant interpreter's stack
994 at the point of access, and copy all the SVs away before making any further
995 calls which might cause reallocation.
997 Update to Win32-0.44 from CPAN
998 Update IO-Compress to CPAN version 2.033
999 Update Compress-Raw-Zlib to CPAN version 2.033
1000 Update Compress-Raw-Bzip2 to CPAN version 2.033
1001 Update DB_File to CPAN version 1.821
1004 Correct the "unimplemented" message for get{host,net,proto,serv}ent aliases.
1006 Previously, if all of gethost{byaddr,byname,ent} were unimplemented on a
1007 platform, they would all return 'Unsupported socket function "gethostent"
1008 called', with the analogous results for getnet{byaddr,byname,ent},
1009 getproto{byname,bynumber,ent} and getserv{byname,byport,ent}. This bug was
1010 introduced by change af51a00e97d5c559 - prior to this, all 12 functions would
1011 report their own name when unimplemented.
1014 commit 7627e6d0fe772ac90fce9e03fea273109521e261
1015 Author: Nicholas Clark <nick@ccl4.org>
1016 Date: Sat Jan 8 15:56:22 2011 +0000
1018 Generate "Unsupported socket function" stubs using PL_ppaddr.
1020 Instead of having each socket op conditionally compile as either the
1021 implementation or a DIE() depending on #HAS_SOCKET
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)
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.
1033 commit 897d398936dd2fc088a265fba2a7b62fa97ed458
1034 Author: Nicholas Clark <nick@ccl4.org>
1035 Date: Sun Jan 9 10:54:58 2011 +0000
1037 Generate pp_* prototypes in pp_proto.h, and remove pp.sym
1039 Eliminate the #define pp_foo Perl_pp_foo(pTHX) macros, and update the 13
1040 locations that relied on them.
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)
1048 commit a4a4c9e2c086dd5f7b7b05789161614dbbe8385b
1049 Author: Karl Williamson <public@khwilliamson.com>
1050 Date: Sat Jan 8 14:44:05 2011 -0700
1052 perldiag.pod: Add missing message severities
1056 add test for split without a pattern
1058 Add some while tests, about the context of the last statement in a block and about reinitializaiton of lexical variables.
1060 modernise t/cmd/while.t
1062 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".
1064 commit b86b68b4eefa1069dabc8ea0401d712b24a67857
1065 Author: Jesse Vincent <jesse@bestpractical.com>
1066 Date: Sat Jan 8 00:14:29 2011 +0800
1068 Update the policy on doc patches to maint
1071 commit 0b5e625bc99f5cb78697faf03b297b6cacadf60b
1072 Author: Reini Urban <rurban@x-ray.at>
1073 Date: Tue Sep 14 18:04:22 2010 +0200
1075 build man pages on cygwin too
1077 commit 172830635ea7813c85e51e4ae2b4bed56ddbab83
1078 Author: Reini Urban <rurban@x-ray.at>
1079 Date: Tue Sep 14 17:54:15 2010 +0200
1081 Improve cygwin rebase behaviour
1083 If a dll is updated on cygwin reuse the old imagebase address.
1084 This solves most rebase errors, esp when updating on core dll's.
1085 See http://www.tishler.net/jason/software/rebase/rebase-2.4.2.README
1090 commit cc7e77fd5a0ee9f1498e54dddf566117da62754b
1091 Author: Reini Urban <rurban@x-ray.at>
1092 Date: Tue Sep 14 17:48:32 2010 +0200
1094 CYG14 Dynaloader without USEIMPORTLIB, and search cyg prefix
1096 part1: Support the standard cyg dll prefix, which is e.g. needed for FFI's.
1097 Ctypes and C::DynaLib use DynaLoader to find dlls.
1099 part2: With -DUSEIMPORTLIB DynaLoader symbols link against the prefixed
1100 symbol names for the .dll.a importlib, but we need to link against the
1101 symbols directly. We don't link Dynaloader against libperl.dll.a.
1104 $ g++-4 -o cygperl5_13_4.dll --shared perlsrc.o cygwin.o DynaLoader.o -ldl -lcrypt
1105 Creating library file: libperl.dll.a
1106 DynaLoader.o: In function `XS_DynaLoader_dl_undef_symbols':
1107 ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_stack_sp'
1108 ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_markstack_ptr'
1109 ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_stack_base'
1111 commit c0a149a90b8b6e1c18de7294ca974265fb559cf5
1112 Author: Reini Urban <rurban@x-ray.at>
1113 Date: Tue Sep 14 18:06:38 2010 +0200
1116 do not use usemymalloc (double size + slow)
1117 remove deprecated libcygipc info
1118 remove overlarge stack size
1120 commit 2831a86cee065b53b74fd19ddcc6a4257484646d
1121 Author: Zsbán Ambrus <ambrus@math.bme.hu>
1122 Date: Sun Jan 2 20:25:55 2011 -0800
1124 [perl #81032] Overhaul Porting/epigraphs.pod
1126 This patch makes multiple changes to Porting/epigraphs.pod and
1129 For those that don't know, Porting/epigraphs.pod is a new document that
1130 collects the quotes (chosen by Pumpkins) in perl release announcements.
1132 The changes are the following.
1134 1. Add a link pointing to each release announcement in the mailing
1135 list archives. These are from ysth's list, the source from which
1136 Porting/epigraphs.pod was originally compiled, but they weren't in
1137 Porting/epigraphs.pod so far.
1138 2. Reorder Porting/epigraphs.pod chronologically, because I believe
1139 that makes more sense -- pod/perlhist.pod is still sorted by version numbers.
1140 3. Incidentally, some missing releases are added to pod/perlhist.pod too.
1141 4. Fix a mistake where Porting/epigraphs.pod gives the wrong version number.
1142 5. Add some epigraphs that appear in ysth's list but not in
1143 Porting/epigraphs.pod.
1144 6. I did some research in perl history before the part that ysth's list
1145 covers, and added older perl announcements I found. This work is not
1146 complete: I stopped somewhere in 2000.
1148 commit eccda089fc3dcaafc1ae0aac6b428f799231b824
1149 Author: Paul "LeoNerd" Evans <leonerd@leonerd.org.uk>
1150 Date: Mon Dec 13 17:50:06 2010 +0000
1152 Implement Socket::getaddrinfo() and Socket::getnameinfo(), with related constants
1154 commit edcf105d70e5423fd928c776e086fe31a4a543f4
1155 Author: Jesse Vincent <jesse@bestpractical.com>
1156 Date: Sat Jan 1 18:46:20 2011 +0800
1158 Document 'test_porting' and start a section on how committing to blead
1160 commit cce04bebd8af026c2a6731940ddb895d3c1fc3e4
1161 Author: David Golden <dagolden@cpan.org>
1162 Date: Mon Dec 13 17:36:33 2010 -0500
1164 Reorganize perlhack.pod
1166 Following on an IRC conversation, I've attempted to reorganize
1167 perlhack for greater clarity. I have only cut and paste blocks
1168 of text and amended section titles and levels. (I have not addressed
1169 any of the numerous factual issues which remain.)
1171 The resulting guide should be clearer for those trying to skim the
1172 table of contents to understand what is covered in perlhack and
1173 whether it is worth an in-depth read.
1175 I see this change as the first step towards future improvements.