perlfunc: layout getpw*&c return values as a table
Backport/genererate work from cross-port

At the "Perl5 and beyond" hackathon early feb 2014 in Amsterdam, hugmeir
and I walked through all the changes and ended up with a serious warning
in metalint where we stopped. The warning proved to be a bug in metalint
that will be fixed in the future and has a rather easy workaround.

Porting/Glossary is not yet being generated correctly. Will take care of
that later.
Make the ExtUtils-Install tests parallelisable
Update ExtUtils-Install Changes file
regen/regcharclass.pl: Generate correct macro instead of skipping

It makes no sense to check for length safeness for The macros generated
by this program which take a single UV code point as a parameter. Prior
to this patch, it would skip trying to generate them if asked.  But,
because of the way things are structured, that means that if you need
just this and the safe versions, you can't do it so easily.  What this
commit does is generate the cp macro if requested even if the 'safe'
version of other macros are also requested.
regen/regcharclass.pl: Don't generate unused macros

Having these unused macros around just clutters up the header file
regcomp.c: Make SSC node clone safe

This just sets the ptr field in the Synthetic Start Class that will be
passed to regexec.c NULL, and clarifies the comments in regcomp.h.  See
the thread starting at http://markmail.org/message/2txwaqnjco6zodeo
sprinkle LIKELY() on pp_hot.c scope.c and some *.h

I've gone through pp_hot.c and scope.c and added LIKELY() or UNLIKELY()
to all conditionals where I understand the code well enough to know that
a particular branch is or isn't likely to be taken very often.

I also processed some of the .h files which contain commonly used macros.
regcomp.c: Don't read past string-end

In doing an audit of regcomp.c, and experimenting using
Encode::_utf8_on(), I found this one instance of a regen/regcharclass.pl
macro that could read beyond the end of the string if given malformed
UTF-8.  Hence we convert to use the 'safe' form.  There are no other
uses of the non-safe version, so don't need to generate them.
Upgrade to Thread::Queue 3.04
Update ExtUtils-MakeMaker to CPAN version 6.92

  [DELTA]

6.92 Thu Mar 13 16:18:32 GMT 2014

    No changes from 6.91_01

6.91_01 Thu Mar  6 13:48:22 GMT 2014
    Test fixes:
    * Make meta tests more robust to changes in CPAN::Meta
lib/locale.t: Fix broken test

The test that [:digit:] is a subset of [:xdigit:] failed in locales
where  [:digit:] matches 2 blocks of 10 digits, but the second block
isn't considered part of [:xdigit:].  This happens in Thai on Windows.
The POSIX standard http://pubs.opengroup.org/onlinepubs/9699919799/
does not use very clear language, but I'm taking it as meaning it is ok
for this to happen, so this revises the test to accept it.
PATCH: [perl #121340] lib/locale.t noisy+complaining but passes on Win32

It turns out that these messages were not printed as one would expect
under TAP, but were output using warn().
lib/locale.t: Update $variable name

As of commit b057411ddb1a3d8b6ab062d667c8e39f80cd7343, the meaning of
the variable is extended to beyond just being about 'folding', so change
the name to correspond.
mktables: Inline short tables

mktables generates tables of Unicode properties.  These are stored in
files to be loaded on-demand.  This is because the memory cost of having
all of them loaded would be excessive, and many are rarely used.  Hashes
are created in Heavy.pl which is read in by utf8_heavy.pl map the
Unicode property name to the file which contains its definition.

It turns out that nearly half of current Unicode properties are just a
single consecutive ranges of code points, and their definitions are
representable almost as compactly as the name of the files that contain
them.

This commit changes mktables so that the tables for single-range
properties are not written out to disk, but instead a special syntax is
used in Heavy.pl to indicate this and what their definitions are.

This does not increase the memory usage of Heavy.pl appreciably, as the
definitions replace the file names that are already there, but it lowers
the number of files generated by mktables from 908 (in Unicode 6.3) to
507.  These files are probably each a disk block, so the disk savings is
not large.  But it means that reading in any of these properties is much
faster, as once utf8_heavy gets loaded, no further disk access is needed
to get any of these properties.  Most of these properties are obscure,
but not all.  The Line and Paragraph separators, for example, are quite
commonly used.

Further, utf8_heavy.pl caches the files it has read in into hashes.
This is not necessary for these, as they are already in memory, so the
total memory usage goes down if a program uses any of these, but again,
since these are small, that amount is not large..  The major gain is not
having to read these files from disk at run time.

Tables that match no code points at all are also represented using this
mechanimsm.  Previously, they were expressed as the complements of
\p{All}, which matches everything possible.
White-space only; properly indent newly formed blocks

The previous commit added braces forming blocks.  This indents the
contents of those blocks.
Update perldelta for core changes to this point

This doesn't include module version updates.
Configure misdetects strlcpy et al. with gcc -flto (RT#113022)
On OS X, allow Configure to override $ld with -Dld=...

Since it was added, hints/darwin.sh had been ignoring any user configuration
options and unconditionally setting ld='cc'. Instead, it should take a user
supplied value if one is given, otherwise defaulting to 'cc'.

The strange thing is that this was never noticed when commits cb3fc4263509f28c
and 69625aa92a91bf4c (May 2003) which added code which was intended offer
alternative behaviour if ld contained MACOSX_DEVELOPMENT_TARGET.
re_intuit_start(): stclass: use rx_origin more

In the stclass code block, we do

    s = rx_origin;
    ... stuff reading the value of s ...
    s = find_byclass(...);

change that to

    ... stuff reading the value of rx_origin ...
    s = find_byclass(...);