Move Cwd and List-Util to folders named as per their CPAN distributions
Move Cwd and List-Util: UNIX followup

the previous commit worked on win32; this commit makes it work under UNIX
too.

Basically Configure determines a list of "logical" extension names
such as "IPC/SysV",  based on physical dirs under cpan/ etc such as
"IPC-SysV".

In this case, keep the original logical names "Cwd" and "List/Util",
even though the physical paths have been changed to "PathTools" and
"Scalar/List/Utils".
fix -Wsign-compare in core

There were a few places that were doing

    unsigned_var = cond ? signed_val : unsigned_val;

or similar. Fixed by suitable casts etc.

The four in utf8.c were fixed by assigning to an intermediate
unsigned var; this has the happy side-effect of collapsing
a large macro expansion, where toUPPER_LC() etc evaluate their arg
multiple times.
Update HTTP-Tiny to CPAN version 0.039

  [DELTA]

0.039     2013-11-27 19:48:29 America/New_York

    [FIXED]

    - Temporary file creating during mirror() is now opened with O_EXCL
      for added security
revert pp_formline -Wformat-nonliteral fix

Revert the part of 5d37acd6b65eb421e938a3fde62cc1edde467dae that was
intended to silence non-literal format warnings. It's giving compiler
errors on AIX due (I suspect) to overlong macro expansions.

The next commit will fix the warning in a more prosaic fashion
silence -Wformat-nonliteral in pp_formline
constant.pm: Make elements of list consts read-only

Now that Internals::SvREADONLY turns on the PADTMP flag for all the
elements, the read-only flag on the elements themselves will not
actually make the returned elements read-only, because PADTMPs get
copied in all cases where readonliness matters.  What this does is
prevent the original SV from being modified, allowing for more opti-
misations in perl’s internals (e.g., string buffers being stolen from
PADTMPs not marked read-only).

The order of the statements needs to be rearranged, otherwise we end
up setting the flag on a temporary copy of each element due to ‘for’.
op.c: Turn on read-only flag for folded constants

They are marked PADTMP, which causes them to be copied in any contexts
where readonliness makes a difference, so marking them as read-only
does not change the behaviour.  What it does is allow a future commit
to implement string swiping for PADTMPs.
Allow PADTMPs’ strings to be swiped

While copy-on-write does speed things up, it is not perfect.  Take
this snippet for example:

$a = "$b$c";
$a .= $d;

The concatenation operator on the rhs of the first line has its own
scalar that it reuses every time that operator is called (its target).
When the assignment happens, $a and that target share the same string
buffer, which is good, because we didn’t have to copy it.  But because
it is shared between two scalars, the concatenation on the second line
forces it to be copied.

While copy-on-write may be fast, string swiping surpasses it, because
it has no later bookkeeping overhead.  If we allow stealing targets’
strings, then $a = "$b$c" no longer causes $a to share the same string
buffer as the target; rather, $a steals that buffer and leaves the tar-
get undefined.  The result is that neither ‘$a =’ nor ‘$a .= $d’ needs
to copy any strings.  Only the "$b$c" will copy strings (unavoidably).

This commit only applies that to long strings, however.  This is why:

Simply swiping the string from any swipable TARG (which I tried at
first) resulted in a significant slowdown.  By swiping the string from
a TARG that is going to be reused (as opposed to a TEMP about to be
freed, which is where swipe was already happening), we force it to
allocate another string next time, greatly increasing the number
of malloc calls.  malloc overhead exceeds the overhead of copying
short strings.

I tried swiping TARGs for short strings only when the buffer on the
lhs was not big enough for a copy (or there wasn’t one), but simple
benchmarks with mktables show that even checking SvLEN(dstr) is enough
to slow things down, since the speed-up this provides is minimal where
short strings are involved.

Then I tried checking just the string length, and saw a consistent
speed increase.  So that’s what this patch uses.  Programs using short
strings will not benefit.  Programs using long strings may see a 1.5%
increase in speed, due to fewer string copies.
sv.c: String copy comments

This layout, which goes back to 765f542df2 in 2002, I find a bit con-
fusing.  The comments help.  (Though rewriting it might be better.)
 Granted, back in 2002 there wasn’t nearly as much code in any of
the branches.
Increase $constant::VERSION to 1.30
Peek.t: Update skip version

I did not have this branch ready in time for 5.19.6.
[Merge] Swiping PADTMPs’ string buffers

This branch allows PADTMPs’ string buffers to be stolen, benefiting
programs that use long strings by avoiding a few copies.
sv.c: Fix Darwin g++ build
regen pod issues
Fix stdin inheritance for system and backticks on VMS.

The documentation to LIB$SPAWN says that standard input will be
inherited from the parent if not specified, and we've been
depending on that.  But it seems not to actually work that way
as a simple

    $ perl -e "system('edit foo.tmp');"

was failing due to the input not being a terminal.  So set up the
input explicitly using the same mechanism we've always used for
output and error.

Except when SYS$INPUT is a "directory," which probably means it's
a channel open on a volume that holds a command procedure.
sv.c: Clarify COW comments further

I was getting confused even when I wrote these comments.
Update ExtUtils-MakeMaker to CPAN version 6.84

  [DELTA]

6.84 Sat Nov 30 15:22:35 GMT 2013

    No changes from 6.83_06

6.83_06 Fri Nov 29 21:50:51 GMT 2013
    Doc fixes:
    * Correct the documentation for MAGICXS

6.83_05 Mon Nov 25 22:51:11 GMT 2013
    New Features:
    * Added MAGICXS attribute to explicitly enable automagic
      XS building.

    Bug fixes:
    * RT#90780 fix Macro `BOOTSTRAP' redefined warnings
    * Only enable automatic OBJECT generation if MAGICXS is true

6.83_04 Sun Nov 17 11:41:43 GMT 2013
    New Features:
    * OBJECT can now be specified as an array
    * build C_FILES/O_FILES/OBJECT automatically from XS

6.83_03 Fri Nov 15 09:44:26 GMT 2013
    Bug fixes:
    * Don't recurse into stale dist dirs

6.83_02 Tue Nov 12 11:11:34 GMT 2013
    Misc:
    * Enable bootstrapping to work on v5.10.x again

6.83_01 Tue Nov  5 11:43:50 GMT 2013
    Misc:
    * disable make parallelism for pure_all target
don't check format args on taint_proper

My recent commit 5d37acd6b65eb enabled (among other things)
format-arg checking of taint_proper(). This was not a good idea since
taint_proper() adds extra args before it actually calls a printf-style
function. This was masked since on some gcc systems, a NULLOK format arg
disables this check.
Update Unicode-Collate to CPAN version 1.03

  [DELTA]

1.03  Sun Dec  1 21:45:46 2013
    - XS: now unpack_U() uses unpack('U*') in pure perl.
      avoid XS for the internal "utf8" encoding of perl.