In make_ext.pl, move loading FindExt and Cwd into the Win32-only code.

As Cwd is now required instead of used and hence doesn't export, qualify
the calls to getcwd() with the package name.
make_ext.pl need not manipulate @INC, as buildcustomize.pl already does it.

Remove from make_ext.pl code that predates the introduction of
buildcustomize.pl, as that now sets up @INC correctly before make_ext.pl even
runs. During the build process make_ext.pl is only run by miniperl.
In make_ext.pl, only fudge the Makefile.PL timestamp when generating it.

The expedient fudge added by commit 23525070d6c0e51f was actually after the
closing } for the if block that auto-generated a Makefile.PL. Hence it was
*always* changing the timestamp on every Makefile.PL just before running it,
even the ones checked out from the repository. That seems a bit wrong.
In make_ext.pl, inline _macroify_passthrough() into its only caller.
Merge improvements to make_ext.pl
Change B::COP::stashlen to stashoff

This was brought up in ticket #78742.

The stashlen method has never been in a stable release, and no longer
exists, as of d4d03940c, since it is dependent on a define that
d4d03940c removed.

So this commit removes stashlen from B.xs and adds stashoff in its
place, since this is what B::C needs.

It also adds a few basic tests for the stash and stashpv methods.
Fix version logic in B.xs
stash.t: 2 TODO tests I missed
Make B::COP::stashpv respect utf8 and embedded nulls

This was mentioned in ticket #113060.

This commit also adds another stashoff test.

The diff looks a bit complicated, because it stops ->file and
->stashpv from being XS aliases.
pending-author.t: Skip for lack of config

That ‘git config --get user.email’ will output something is a big
assumption.
Replace $compile_ok by $compile for two probes that can fail.

The probes for _NSGetExecutablePath and KERN_PROC_PATHNAME
will fail on systems where they are not available.  This is
normal, so use $compile to throw away the error messages.
Configure: Avoid Cppsym warnings for extra tokens [perl #113024]

The cppsymbols can include macros such as __INT16_C(c), which can't
be tested with a simple #ifdef.  This patch strips off the opening
parenthesis and everything following it.  These macros were generated
by cpp -dM.

Also ensure Cppsym.true list is sorted for later input to comm.
(I noticed this while testing this change on Solaris.)
perldelta for c2f56b9483 and a970290aa9.
Remove redundant substitution from win32/config_sh.PL

INST_VER doesn't contain a ~VERSION~ placeholder.
Remove Win9x hangover from win32/config_sh.PL

We no longer support Win9x so there is no need to undef d_flock and d_link
in that case.
Correct the dlsrc entry in configure.com.

It's not the .c, it's the .xs from which we generate the .c.

Spotted by Nicholas.
optimise (?:|) and related NOTHING like constructs out of the compiled optree

A pattern like (?:|) causes the regex engine to do extra work even though
it is equivelent to matching nothing. This optimises such sequences into
more efficient opcodes that do less work, and in some cases optimises
them away entirely.
Sync Maintainers.pl for recent Storable CPAN release
Remove INST_DRV from Windows makefiles' CFG_VARS

It isn't directly used by config_sh.PL, and the only appearance of it
in a config.xxx file was config.ce, where it was surely wrong: prefixexp
should be a ~name expanded version of prefix, so just set it to ~INST_TOP~
like the other config.xxx files all do.
Update how subversion is set in win32 config.xxx files

SUBVERSION was the old name from patchlevel.h but we should prefer to use
PERL_SUBVERSION now, just like patchlevel is already set from PERL_VERSION
rather than the old PATCHLEVEL.