Sync autouse version for recent CPAN release
Update Test-Harness to CPAN version 3.31

  [DELTA]

3.31    2014-06-07
        - Implement external rulesfile for TAP::Harness (David Golden)
        - Add harness_class argument to TAP::Harness::Env (Leon Timmermans)
        - Make prove respect environmental variables #28 (Leon Timmermans)
Add C backtrace API.

Useful for at least debugging.

Supported in Linux and OS X (possibly to some extent in *BSD).

See perlhacktips for details.
Small grammatical fix.
Document that "exec LIST" and "system LIST" may fall back to the shell on Win32

As noted on p5p [1] and subsequently discussed [2].

The Win32 functions for handling exec() and system() attempt to
specially handle shell builtins by catching spawn failures and
re-attempting the spawn using the shell with the given argument LIST.

If "exec PROGRAM LIST" syntax (or the equivalent for system()) is used,
then only the specified PROGRAM will ever be run (although Perl will
still try the spawn twice on Win32 if PROGRAM doesn't exist or otherwise
can't be executed).

[1] http://www.nntp.perl.org/group/perl.perl5.porters/2014/04/msg214556.html
[2] http://www.nntp.perl.org/group/perl.perl5.porters/2014/04/msg214564.html
remove 1 read of interp var from PUSHMARK

PL_markstack_ptr was read once to do the ++ and comparison. Then after
the markstack_grow call, or not, depending on the branch. The code reads
PL_markstack_ptr a 2nd time. It has to be reread in case (or always does)
markstack_grow reallocs the mark stack. markstack_grow has a void retval.
That is a waste of a register. Let us put it to use to return the new
PL_markstack_ptr. In markstack_grow the contents that will be assigned to
PL_markstack_ptr are already in a register. So let the I32* flow out from
markstack_grow to its caller.

In VC2003 32 bit asm, mark_stack_entry is register eax. The retval of
markstack_grow is in eax. So the assignment "=" in
"mark_stack_entry = markstack_grow();" has no overhead. Since the other,
not extend branch, is function call free,
"(mark_stack_entry = ++PL_markstack_ptr)" assigns to eax. Ultimatly with
this patch a 3 byte mov instruction is saved for each instance of PUSHMARK,
and 1 interp var read is removed. I observed 42 callers of markstack_grow
with my disassembler, so theoretically 3*42 bytes of machine code was
removed for me.

Perl_pp_pushmark dropped from 0x2b to 0x28 bytes of x86 VC 2003
machine code. [perl #122034]
Eliminate VMS-specific code in PerlIOStdio_fill.

The same logic but with more safety checks is already defined for
PerlSIO_ungetc in iperlsys.h, so DRY says we should just use that.

Also, that definition in iperlsys.h really depends on the library
we are using, not the compiler.  And there is only one viable C
library on VMS and it ships with the OS, so it's really just an
OS dependency.

N.B.  While it may be something of a fool's errand to maintain the
stdio layer, deleting redundant code can only be a good thing,
possibly enabling further refactoring and clean-up.
Benchmark.pm: avoid long walltime on calibration

RT #122003

runloop() in Benchmark.pm does the equivalent of the following:

    $t = (times)[0];
    while ($t == (times)[0]) {}

so that it finishes in a position where the user CPU counter has just
incremented.

This is all well and good, but on some platforms (specifically OpenBSD
running under VirtualBox), the system CPU burned each time round the loop
to get times() is far greater than the user CPU burned. This can cause the
loop to run for minutes consuming system CPU until enough user CPU has
been burned to tick the user CPU counter.

The fix in this commit is to replace the empty body of the while loop with
something that does a gradually increasing amount of busy work.
bump Benchmark version

(whoops, I failed to run a full make test before my last commit)
[perl #121732] fix t/op/filetest.t for windows

Tony: fix for minitest
[perl #121733] fix t/op/stat.t 96 for windows

Tony: fixes for minitest
add a warning for using the :win32 PerlIO layer
perldelta for 7ac929242683
Locale tests assumed POSIX, not true in minitest.
correct handling of buffer sizes for POSIX::strxfrm()

There were two problems:

1) we allocated srclen*4+1, but then only supplied srclen to the first
  strxfrm() call, which meant we could be "failing" the strfrm()
  unnecessarily.

2) the return value of the first strxfrm() was being handled correctly,
  the contents of the output buffer supplied to strxfrm() is indeterminate
  when the return value is the buffer size or larger, so we should
  make a new call then.
Correct architectures and versions for hints

Over time, OpenBSD has kept this up-to-date locally without enough
patches going upstream.

This should bring perl in sync with reality.
Default to using OpenBSD's malloc

While perl bug #75742 successfully convinced p5p that the speed of the
OpenBSD malloc was a good enough reason to instead use perl's malloc,
the system malloc has many security features that OpenBSD users expect.

The system malloc has always been used in the base system perl.

While the is slower than the perl malloc, the OpenBSD project believes
the tradeoff is worth it and would prefer that users who need the speed
specifically ask for it.
Andrew Fresh is now a perl author
Fix i_bfd

The final i_bfd statement was a wrong copy-paste

re-order Configure: in preparation of backporting this change and
integration of another, some reorder is required
Fix cbacktrace