This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta: warnings on non-chars and surrogates
[perl5.git] / pod / perldelta.pod
index 8f83572..ea85093 100644 (file)
@@ -65,6 +65,10 @@ standard, are now always legal internally.  But inputting or outputting
 them will work the same as for the non-legal Unicode code points, as the
 Unicode standard says they are illegal for "open interchange".
 
+=head2 Regular expression debugging output improvement
+
+Regular expression debugging output (turned on by C<use re 'debug';>) now
+uses hexadecimal when escaping non-ASCII characters, instead of octal.
 
 =head1 Security
 
@@ -83,6 +87,18 @@ XXX For a release on a stable branch, this section aspires to be:
 
 [ List each incompatible change as a =head2 entry ]
 
+=head2 All objects are destroyed
+
+It used to be possible to prevent a destructor from being called during
+global destruction by artificially increasing the reference count of an
+object.
+
+Now such objects I<will> will be destroyed, as a result of a bug fix
+L<[perl #81230]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=81230>.
+
+This has the potential to break some XS modules. (In fact, it break some.
+See L</Known Problems>, below.)
+
 =head1 Deprecations
 
 XXX Any deprecated features, syntax, modules etc. should be listed here.
@@ -124,7 +140,7 @@ cribbed.
 
 =item *
 
-L<CPAN::Meta::YAML> 0.002 has been added as a dual-life module.  It supports a
+L<CPAN::Meta::YAML> 0.003 has been added as a dual-life module.  It supports a
 subset of YAML sufficient for reading and writing META.yml and MYMETA.yml files
 included with CPAN distributions or generated by the module installation
 toolchain. It should not be used for any other general YAML parsing or
@@ -140,6 +156,11 @@ binaries like F<curl> or F<wget>.
 
 =item *
 
+L<JSON::PP> 2.27103 has been added as a dual-life module, for the sake of
+reading F<META.json> files in CPAN distributions.
+
+=item *
+
 L<Module::Metadata> 1.000003 has been added as a dual-life module.  It gathers
 package and POD information from Perl module files.  It is a standalone module
 based on Module::Build::ModuleInfo for use by other module installation
@@ -172,6 +193,9 @@ C<Archive::Tar> has been upgraded from version 1.74 to 1.76
 
 C<CGI> has been upgraded from version 3.50 to 3.51
 
+Further improvements have been made to guard against newline injections
+in headers.
+
 =item *
 
 C<Compress::Raw::Bzip2> has been upgraded from version 2.031 to 2.033
@@ -245,6 +269,14 @@ C<Term::UI> has been upgraded from version 0.20 to 0.24
 
 =item *
 
+C<Thread::Queue> has been upgraded from version 2.11 to 2.12.
+
+=item *
+
+C<Thread::Semaphore> has been upgraded from version 2.11 to 2.12.
+
+=item *
+
 C<threads> has been upgraded from version 1.81_03 to 1.82
 
 =item *
@@ -257,14 +289,11 @@ C<Time::Local> has been upgraded from version 1.1901_01 to 1.2000.
 
 =item *
 
-C<Unicode::Collate> has been upgraded from version 0.68 to 0.70
-
-This also sees the switch from using the pure-perl version of this
-module to the XS version.
+C<Unicode::Normalize> has been upgraded from version 1.07 to 1.10
 
 =item *
 
-C<Unicode::Normalize> has been upgraded from version 1.07 to 1.10
+C<version> has been upgraded from 0.86 to 0.88.
 
 =back
 
@@ -297,13 +326,13 @@ XXX Changes which significantly change existing files in F<pod/> go here.
 However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
 section.
 
-=head3 L<XXX>
+=head3 L<perlfunc>
 
 =over 4
 
 =item *
 
-XXX Description of the change here
+It has now been documented that C<ord> returns 0 for an empty string.
 
 =back
 
@@ -326,7 +355,9 @@ XXX Newly added diagnostic messages go here
 
 =item *
 
-XXX
+Performing an operation requiring Unicode semantics (such as case-folding)
+on a Unicode surrogate or a non-Unicode character now triggers a warning:
+'Operation "%s" returns its argument for ...'.
 
 =back
 
@@ -351,13 +382,14 @@ here. Most of these are built within the directories F<utils> and F<x2p>.
 entries for each change
 Use L<XXX> with program names to get proper documentation linking. ]
 
-=head3 L<XXX>
+=head3 L<perlbug>
 
 =over 4
 
 =item *
 
-XXX
+C<perlbug> did not previously generate a From: header, potentially
+resulting in dropped mail. Now it does include that header.
 
 =back
 
@@ -392,7 +424,8 @@ that they represent may be covered elsewhere.
 
 =item *
 
-XXX
+A new test script, C<t/porting/filenames.t>, makes sure that filenames and
+paths are reasonably portable.
 
 =back
 
@@ -424,9 +457,11 @@ XXX List any platforms that this version of perl no longer compiles on.
 
 =over 4
 
-=item XXX-some-platform
+=item Apollo DomainOS
 
-XXX
+The last vestiges of support for this platform have been excised from the
+Perl distribution. It was officially discontinued in version 5.12.0. It had
+not worked for years before that.
 
 =back
 
@@ -439,9 +474,11 @@ L</Modules and Pragmata> section.
 
 =over 4
 
-=item XXX-some-platform
+=item Solaris
 
-XXX
+DTrace is now supported on Solaris. There used to be build failures, but
+these have been fixed
+L<[perl #73630]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=73630>.
 
 =back
 
@@ -490,6 +527,12 @@ three static in-line functions for accessing the information:
 C<get_regex_charset()>, C<set_regex_charset()>, and C<get_regex_charset_name()>,
 which are defined in the places where the orginal flags were.
 
+=item *
+
+A new option has been added to C<pv_escape> to dump all characters above
+ASCII in hexadecimal. Before, one could get all characters as hexadecimal
+or the Latin1 non-ASCII as octal
+
 =back
 
 =head1 Selected Bug Fixes
@@ -515,6 +558,43 @@ L<# 51918|http://rt.perl.org/rt3/Ticket/Display.html?id=51918>,
 L<# 51936|http://rt.perl.org/rt3/Ticket/Display.html?id=51936>,
 L<# 63446|http://rt.perl.org/rt3/Ticket/Display.html?id=63446>
 
+=item *
+
+Sometimes magic (ties, tainted, etc.) attached to variables could cause an
+object to last longer than it should, or cause a crash if a tied variable
+were freed from within a tie method. These have been fixed
+L<[perl #81230]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=81230>.
+
+=item *
+
+Most I/O functions were not warning for unopened handles unless the
+'closed' and 'unopened' warnings categories were both enabled. Now only
+C<use warnings 'unopened'> is necessary to trigger these warnings (as was
+always meant to be the case.
+
+=item *
+
+C<< <expr> >> always respects overloading now if the expression is
+overloaded.
+
+Due to the way that '<> as glob' was parsed differently from
+'<> as filehandle' from 5.6 onwards, something like C<< <$foo[0]> >> did
+not handle overloading, even if C<$foo[0]> was an overloaded object. This
+was contrary to the documentation for overload, and meant that C<< <> >>
+could not be used as a general overloaded iterator operator.
+
+=item *
+
+Destructors on objects were not called during global destruction on objects
+that were not referenced by any scalars. This could happen if an array
+element were blessed (e.g., C<bless \$a[0]>) or if a closure referenced a
+blessed variable (C<bless \my @a; sub foo { @a }>).
+
+Now there is an extra pass during global destruction to fire destructors on
+any objects that might be left after the usual passes that check for
+objects referenced by scalars
+L<[perl #36347]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=36347>.
+
 =back
 
 =head1 Known Problems
@@ -532,7 +612,8 @@ from either 5.XXX.XXX or 5.XXX.XXX.
 
 =item *
 
-XXX
+The fix for [perl #81230] causes test failures for C<Tk> version 804.029.
+This is still being investigated.
 
 =back
 
@@ -580,3 +661,517 @@ The F<README> file for general stuff.
 The F<Artistic> and F<Copying> files for copyright information.
 
 =cut
+
+=for later
+
+Below, you'll find a cut-down version of the git log from 5.13.8 to 1b9043bb.
+Jesse went through and took a first pass at cutting out non-changelog items. He may have been over-(or under-)zealous.
+
+It hasn't yet been deduped with the entries that _are_ in the perldelta.
+
+
+    Major spell-checking pass throughout the core
+
+    Remove references to compat3.sym and interp.sym, deleted over 10 years ago.
+
+    Remove Mac OS classic code from numerous places throughout the core
+
+commit 7fe50b8b8a4dc38fc341e3b403545aaca937f50e
+Author: Leon Timmermans <fawaka@gmail.com>
+Date:   Tue Jan 18 16:40:07 2011 +0100
+
+    Also unblock signal handlers throwing an exception
+
+    Also handle and test the edge case of a signal handler throwing an
+    exception
+
+
+
+
+Numberous POD warnings fixed
+
+
+
+    Update Unicode-Collate to CPAN version 0.71
+
+
+internals
+
+
+    regexec.c: Remove break statements from macros
+
+    This is so future coders won't be tempted to rely on them.
+
+    regexec.c: Don't rely on break stmts in macros
+
+    It is safer and clearer to have the break statement in each case statement at
+    the source level
+
+commit b57e41186b2ceb48bef4f0588dcd19e105cc8a38
+Author: Karl Williamson <public@khwilliamson.com>
+Date:   Tue Jan 18 15:03:41 2011 -0700
+
+    regcomp: Disallow multi-char folds in lookbehind
+
+    The addition of the ANYOFV regnode to treat multi-char folds in a bracketed
+    character class has exposed a bug, in which those classes have long been able
+    to be varying length (due to the multi-char fold), but the compiler wasn't
+    aware of it.  Now it is, and hence won't allow those which have multi-char
+    folds to be part of a lookbehind pattern, which requires a constant length.
+
+    This patch disallows multi-char folds in a lookbehind bracketed character
+    class.
+
+Author: Nicholas Clark <nick@ccl4.org>
+Date:   Tue Jan 18 16:14:43 2011 +0000
+
+    Remove Mac OS classic code from scripts in utils/
+
+
+    Convert DosGlob.t to Test::More.
+
+commit d6dc8a6dc95226ddff7719cd1e0bd053c4e5725e
+Author: Nicholas Clark <nick@ccl4.org>
+Date:   Tue Jan 18 13:08:11 2011 +0000
+
+    Remove Mac OS Classic docs from DirHandle and File::{Copy,DosGlob,Find}
+
+    The documentation for the different behaviour on Mac OS Classic was not
+    removed when the relevant code was removed in 862f843bac3434c2. That commit
+    also remove all callers to several Mac OS classic support functions, but not
+    the functions themselves. Rectify this.
+
+commit 8254cbf193c939338449097a80163197fc755150
+Author: Nicholas Clark <nick@ccl4.org>
+Date:   Tue Jan 18 11:10:41 2011 +0000
+
+    Build perltoc.pod with pragmata sorted by name.
+
+    Previously they were actually sorted by full pathname, which isn't logical.
+    I presume that this is an artefact of all pragmata being in lib/ when
+    pod/buildtoc was originally written.
+
+commit 1d45ec279e4e105512a2803e3d0bd974a151a0f6
+Author: Father Chrysostomos <sprout@cpan.org>
+Date:   Mon Jan 17 22:32:52 2011 -0800
+
+    perlcall: Fixes for various grammatical errors
+
+commit faaf68361923e4bb95d1eb919bc724a0dcc5a4ce
+Author: Leon Timmermans <fawaka@gmail.com>
+Date:   Mon Jan 17 17:59:33 2011 +0100
+
+    Clarify limitation in safe signals.
+
+commit 0c1bf4c7d433bb0ad80bfe5511b1301db32b7b95
+Author: Leon Timmermans <fawaka@gmail.com>
+Date:   Mon Jan 17 16:29:11 2011 +0100
+
+    Added tests for conditional unblocking
+
+commit 555344425f04e96a72e4d29eab96b34bff8f96ae
+Author: Leon Timmermans <fawaka@gmail.com>
+Date:   Thu Jan 13 18:30:29 2011 +0100
+
+    Conditionally unblock after signal handler[#82040]
+
+    Only unblock signal after a safe-signal handler is executed if that signal was
+    also unblocked before the handler.
+commit 435aa301127ed481169903cb35187bde1ea44928
+Author: David Golden <dagolden@cpan.org>
+Date:   Mon Jan 17 20:39:14 2011 -0500
+
+    Update HTTP::Tiny to CPAN version 0.009
+
+commit 78cd53afbb1923bf0a68f361040ad8fe93a7d0d5
+Author: David Mitchell <davem@iabyn.com>
+Date:   Tue Jan 18 00:46:30 2011 +0000
+
+    vastly speed up t/porting/diag.t
+
+    This used to take about 3 minutes of CPU. Reduce this to around
+    6 seconds (!!) by coalescing and pre-compiling various patterns
+    that get applied to nearly every line of every source file.
+
+commit cfaf538b6276c6a8ef80ff6c66e106c6a4f1caaa
+Author: Karl Williamson <public@khwilliamson.com>
+Date:   Mon Jan 17 08:58:53 2011 -0700
+
+    Add /a regex modifier
+
+    This restricts certain constructs, like \w, to matching in the ASCII range only.
+
+commit 56ae17b45d2513d65903d13468e8f6a16b20f916
+Author: Karl Williamson <public@khwilliamson.com>
+Date:   Sun Jan 16 17:41:30 2011 -0700
+
+    regcomp.c: Convert \d \D to a switch{}
+
+commit e66820012d29519f903709f005e56a2c334ae183
+Author: Tony Cook <tony@develop-help.com>
+Date:   Mon Jan 17 19:22:08 2011 +1100
+
+    test_prep now depends on the pods needed for porting/buildtoc.t
+
+    In the other makefiles test_prep (or test-prep) depends on all, so
+    they shouldn't need updating.
+
+
+commit a52237f3a547cdefddd4c4be6224bfdf67c84263
+Author: David Golden <dagolden@cpan.org>
+Date:   Sun Jan 16 21:32:21 2011 -0500
+
+    Update CPAN to CPAN version 1.94_63
+
+commit 63ac0dadb1aafcf0c171d3c1422c1923b611b2fc
+Author: Karl Williamson <public@khwilliamson.com>
+Date:   Tue Dec 28 16:13:49 2010 -0700
+
+    regex: Use BOUNDU regnodes
+
+    This refactors one area in regexec.c to use BOUNDU, NBOUNDU for
+    efficiciency, and easier adding of the future BOUNDA.
+
+commit 980866de2cf8ecdb4bb72b7f9294763057008f50
+Author: Karl Williamson <public@khwilliamson.com>
+Date:   Mon Dec 27 12:04:58 2010 -0700
+
+    regex: Separate nodes for Unicode semantics \s \w
+
+    This patch converts the \s, \w and complements Unicode semantics to
+    instead of using the flags field of their nodes to instead use separate
+    nodes.  This gains some efficiency, especially useful in tight loops and
+    backtracking of regexec.c, and prepares the way for easily adding other
+    semantic variations, such as /a.
+
+    It refactors the CCC_TRY... macros.  I tried to break this piece up into
+    smaller chunks, but found it much easier to get to this in one step.
+    Further patches will do some more refactoring of these.
+
+    As part of the CCC_TRY macro refactoring, the lines that include the
+    test if (! nextchr) are changed to just look for the end-of-string by
+    position instead of it being NUL.  In locales, it could be (however
+    unlikely), that NUL is a real alphabetic, digit, or space character.
+commit 50e911483ad5c29e25c54c9f81f92df974dd2cc0
+Author: Karl Williamson <public@khwilliamson.com>
+Date:   Sun Dec 26 10:35:58 2010 -0700
+
+    Change name of /d to DEPENDS
+
+    I much prefer David Golden's name for /d whose meaning 'depends' on
+    circumstances, instead of 'dual' meaning it could be one or another.
+    Change it before this gets out in a stable release, and we're stuck with
+    the old name.
+
+commit 73134a2eb4055c76fe5b154da95e09118f716fd8
+Author: Karl Williamson <public@khwilliamson.com>
+Date:   Sun Dec 26 10:35:20 2010 -0700
+
+    CH] Change usage of regex/op common to common names
+
+    This patch changes the core functions to use the common names for the
+    fields that are shared between op.c and regcomp.c, just for consistency
+    of using one name throughout the core for the same thing.
+
+    A grep of cpan shows that both names are used in various modules; so
+    both names must be retained.
+
+commit a3ab329f3fc9494e700f51c38cef42021c130b6e
+Author: David Golden <dagolden@cpan.org>
+Date:   Sun Jan 16 20:57:02 2011 -0500
+
+    Add HTTP::Tiny as a dual-life core module
+
+    HTTP::Tiny has been added as a dual-life module.  It is a very
+    small, simple HTTP/1.1 client designed for simple GET requests and file
+    mirroring.  It has has been added to enable CPAN.pm and CPANPLUS to
+    "bootstrap" HTTP access to CPAN using pure Perl without relying on external
+    binaries like F<curl> or F<wget>.
+
+commit 211cc5012284f4bd900fcaa630adbcac69ca6112
+Author: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
+Date:   Sun Jan 16 23:23:03 2011 +0000
+
+    Update Unicode-Collate to CPAN version 0.70 and enable XS version
+
+commit a62b1201c068dc7b099bcb7182e188c4d2fbf34c
+Author: Karl Williamson <public@khwilliamson.com>
+Date:   Sun Dec 26 10:31:16 2010 -0700
+
+    Use multi-bit field for regex character set
+
+    The /d, /l, and /u regex modifiers are mutually exclusive.  This patch
+    changes the field that stores the character set to use more than one bit
+    with an enum determining which one.  This data structure more
+    closely follows the semantics of their being mutually exclusive, and
+    conserves bits as well, and is better expandable.
+
+    A small API is added to set and query the bit field.
+
+    This patch is not .xs source backwards compatible.  A handful of cpan
+    programs are affected.
+
+
+tools
+
+    Significant updates to buildtoc
+
+    Update Unicode-Normalize to CPAN version 1.10
+
+commit 11454c594f22abc5945e69a46fc965363dbf326e
+Author: Karl Williamson <public@khwilliamson.com>
+Date:   Sat Jan 15 13:42:58 2011 -0700
+
+    Fix \xa0 matching both [\s] [\S], et.al.
+
+    This bug stemmed from Latin1 characters not matching any (non-complemented)
+    character class in /d semantics when the target string is no utf8; but having
+    unicode semantics when it isn't.  The solution here is to add a special flag.
+
+    There were several tests that relied on the broken behavior, specifically they
+    tested that \xff isn't a printable word character even in utf8.  I changed the
+    deparse test to instead use a non-printable code point, and I changed the ones
+    in re_tests to be TODOs, and will change them back using /a when that is
+    shortly added.
+
+
+SECURITY
+
+    restrict \p{IsUserDefined} to In\w+ and In\w+
+
+    In L<perlunicode/"User-Defined Character Properties">, it says you can
+    create custom properties by defining subroutines whose names begin with
+    "In" or "Is". However, perl doesn't actually enforce that naming
+    restriction, so \p{foo::bar} will call foo::Bar() if it exists.
+
+    This commit finally enforces this convention. Note that this broke a
+    number of existing tests for properties, since they didn't always use an
+    Is/In prefix.
+
+TESTING
+
+    test that perl.pod, pod.lst, MANIFEST and the file system are consistent
+
+commit f56b6394f7cf57733135f56e4e4ac49abe9ac9cc
+Author: Karl Williamson <public@khwilliamson.com>
+Date:   Thu Jan 13 22:36:36 2011 -0700
+
+    regex: Use ANYOFV
+
+    This patch restructures the regex ANYOF code to generate ANYOFV nodes instead
+    when there is a possibility that it could match more than one character.   Note
+    that this doesn't affect the optimizer, as it essentially ignores things that
+    fit into this category.  (But it means that the optimizer will no longer reject
+    these when it shouldn't have.)
+
+    The handling of the LATIN SHARP s is modified to correspond with this new node
+    type.
+
+    The initial handling of ANYOFV is placed in regexec.c.  More analysis will come
+    on that.  But there was significant change to the part that handles matching
+    multi-char strings.  This has long been buggy, with it previously comparing a
+    folded-version on one side with a non-folded version on the other.
+
+    This patch fixes about 60% of the problems that my undelivered test suite gives
+    for multi-char folds.  But there are still 17K test failures left, so I'm still
+    not delivering that.  The TODOs that this fixes will be cleaned up in a later commit
+
+
+    Update Pod-LaTeX to CPAN version 0.59
+
+commit 680818c0361b180bb6f09d4bb11c4d5cd467fe62
+Author: Nicholas Clark <nick@ccl4.org>
+Date:   Thu Jan 13 16:24:52 2011 +0000
+
+    ithread_create() was relying on the stack not moving. Fix this.
+
+    4cf5eae5e58faebb changed S_ithread_create() to avoid creating an AV, by
+    passing the thread creation arguments as pointers to a block of memory
+    holding SVs. Unfortunately, this inadvertently introduced a subtle bug,
+    because the block of memory is on the Perl stack, which can move as a side
+    effect of being reallocated to extend it. Hence pass in the offset on the
+    stack instead, read the current value of the relevant interpreter's stack
+    at the point of access, and copy all the SVs away before making any further
+    calls which might cause reallocation.
+
+    Update to Win32-0.44 from CPAN
+    Update IO-Compress to CPAN version 2.033
+    Update Compress-Raw-Zlib to CPAN version 2.033
+    Update Compress-Raw-Bzip2 to CPAN version 2.033
+    Update DB_File to CPAN version 1.821
+
+DIAGNOSTICS
+    Correct the "unimplemented" message for get{host,net,proto,serv}ent aliases.
+
+    Previously, if all of gethost{byaddr,byname,ent} were unimplemented on a
+    platform, they would all return 'Unsupported socket function "gethostent"
+    called', with the analogous results for getnet{byaddr,byname,ent},
+    getproto{byname,bynumber,ent} and getserv{byname,byport,ent}. This bug was
+    introduced by change af51a00e97d5c559 - prior to this, all 12 functions would
+    report their own name when unimplemented.
+
+
+commit 7627e6d0fe772ac90fce9e03fea273109521e261
+Author: Nicholas Clark <nick@ccl4.org>
+Date:   Sat Jan 8 15:56:22 2011 +0000
+
+    Generate "Unsupported socket function" stubs using PL_ppaddr.
+
+    Instead of having each socket op conditionally compile as either the
+    implementation or a DIE() depending on #HAS_SOCKET
+
+    1: remove the conditional code from the ops themselves
+    2: only compile the ops if HAS_SOCKET is defined
+    3: general conditional code for the intialisation of PL_ppaddr - as appropriate
+       either the ops, or Perl_unimplemented_op
+    4: Amend Perl_unimplemented_op to generate the appropriate DIE() for socket
+       ops (ie not the "panic"... message)
+
+    Whilst this complicates the support code in regen/opcode.pl, it's already a
+    net saving of 5 lines in the C code.
+
+commit 897d398936dd2fc088a265fba2a7b62fa97ed458
+Author: Nicholas Clark <nick@ccl4.org>
+Date:   Sun Jan 9 10:54:58 2011 +0000
+
+    Generate pp_* prototypes in pp_proto.h, and remove pp.sym
+
+    Eliminate the #define pp_foo Perl_pp_foo(pTHX) macros, and update the 13
+    locations that relied on them.
+
+    regen/opcode.pl now generates prototypes for the PP functions directly, into
+    pp_proto.h. It no longer writes pp.sym, and regen/embed.pl no longer reads
+    this, removing the only ordering dependency in the regen scripts. opcode.pl
+    is now responsible for prototypes for pp_* functions. (embed.pl remains
+    responsible for ck_* functions, reading from regen/opcodes)
+
+commit a4a4c9e2c086dd5f7b7b05789161614dbbe8385b
+Author: Karl Williamson <public@khwilliamson.com>
+Date:   Sat Jan 8 14:44:05 2011 -0700
+
+    perldiag.pod: Add missing message severities
+
+
+TESTING
+    add test for split without a pattern
+
+    Add some while tests, about the context of the last statement in a block and about reinitializaiton of lexical variables.
+
+    modernise t/cmd/while.t
+
+    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".
+
+commit b86b68b4eefa1069dabc8ea0401d712b24a67857
+Author: Jesse Vincent <jesse@bestpractical.com>
+Date:   Sat Jan 8 00:14:29 2011 +0800
+
+    Update the policy on doc patches to maint
+
+
+commit 0b5e625bc99f5cb78697faf03b297b6cacadf60b
+Author: Reini Urban <rurban@x-ray.at>
+Date:   Tue Sep 14 18:04:22 2010 +0200
+
+    build man pages on cygwin too
+
+commit 172830635ea7813c85e51e4ae2b4bed56ddbab83
+Author: Reini Urban <rurban@x-ray.at>
+Date:   Tue Sep 14 17:54:15 2010 +0200
+
+    Improve cygwin rebase behaviour
+
+    If a dll is updated on cygwin reuse the old imagebase address.
+    This solves most rebase errors, esp when updating on core dll's.
+    See http://www.tishler.net/jason/software/rebase/rebase-2.4.2.README
+
+
+Platforms
+
+commit cc7e77fd5a0ee9f1498e54dddf566117da62754b
+Author: Reini Urban <rurban@x-ray.at>
+Date:   Tue Sep 14 17:48:32 2010 +0200
+
+    CYG14 Dynaloader without USEIMPORTLIB, and search cyg prefix
+
+    part1: Support the standard cyg dll prefix, which is e.g. needed for FFI's.
+    Ctypes and C::DynaLib use DynaLoader to find dlls.
+
+    part2: With -DUSEIMPORTLIB DynaLoader symbols link against the prefixed
+    symbol names for the .dll.a importlib, but we need to link against the
+    symbols directly. We don't link Dynaloader against libperl.dll.a.
+
+    Otherwise:
+    $ g++-4 -o cygperl5_13_4.dll --shared perlsrc.o cygwin.o  DynaLoader.o -ldl -lcrypt
+      Creating library file: libperl.dll.a
+      DynaLoader.o: In function `XS_DynaLoader_dl_undef_symbols':
+      ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_stack_sp'
+      ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_markstack_ptr'
+      ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_stack_base'
+
+commit c0a149a90b8b6e1c18de7294ca974265fb559cf5
+Author: Reini Urban <rurban@x-ray.at>
+Date:   Tue Sep 14 18:06:38 2010 +0200
+
+    Update cygwin hints
+    do not use usemymalloc (double size + slow)
+    remove deprecated libcygipc info
+    remove overlarge stack size
+
+commit 2831a86cee065b53b74fd19ddcc6a4257484646d
+Author: Zsbán Ambrus <ambrus@math.bme.hu>
+Date:   Sun Jan 2 20:25:55 2011 -0800
+
+    [perl #81032] Overhaul Porting/epigraphs.pod
+
+    This patch makes multiple changes to Porting/epigraphs.pod and
+    pod/perlhist.pod.
+
+    For those that don't know, Porting/epigraphs.pod is a new document that
+    collects the quotes (chosen by Pumpkins) in perl release announcements.
+
+    The changes are the following.
+
+    1. Add a link pointing to each release announcement in the mailing
+    list archives.  These are from ysth's list, the source from which
+    Porting/epigraphs.pod was originally compiled, but they weren't in
+    Porting/epigraphs.pod so far.
+    2. Reorder Porting/epigraphs.pod chronologically, because I believe
+    that makes more sense -- pod/perlhist.pod is still sorted by version numbers.
+    3. Incidentally, some missing releases are added to pod/perlhist.pod too.
+    4. Fix a mistake where Porting/epigraphs.pod gives the wrong version number.
+    5. Add some epigraphs that appear in ysth's list but not in
+    Porting/epigraphs.pod.
+    6. I did some research in perl history before the part that ysth's list
+    covers, and added older perl announcements I found.  This work is not
+    complete: I stopped somewhere in 2000.
+
+commit eccda089fc3dcaafc1ae0aac6b428f799231b824
+Author: Paul "LeoNerd" Evans <leonerd@leonerd.org.uk>
+Date:   Mon Dec 13 17:50:06 2010 +0000
+
+    Implement Socket::getaddrinfo() and Socket::getnameinfo(), with related constants
+
+commit edcf105d70e5423fd928c776e086fe31a4a543f4
+Author: Jesse Vincent <jesse@bestpractical.com>
+Date:   Sat Jan 1 18:46:20 2011 +0800
+
+    Document 'test_porting' and start a section on how committing to blead
+
+commit cce04bebd8af026c2a6731940ddb895d3c1fc3e4
+Author: David Golden <dagolden@cpan.org>
+Date:   Mon Dec 13 17:36:33 2010 -0500
+
+    Reorganize perlhack.pod
+
+    Following on an IRC conversation, I've attempted to reorganize
+    perlhack for greater clarity.  I have only cut and paste blocks
+    of text and amended section titles and levels.  (I have not addressed
+    any of the numerous factual issues which remain.)
+
+    The resulting guide should be clearer for those trying to skim the
+    table of contents to understand what is covered in perlhack and
+    whether it is worth an in-depth read.
+
+    I see this change as the first step towards future improvements.
+
+=cut