regexp.t: Skip tests that are supposed to

This reorders some if elsif ... blocks so that skip is tested for and
done before actually trying the test.  This only affected tests which
were supposed to generate compiler errors.
regcomp.c: Avoid recalculating a value

This value was calculated and saved in 'len' a couple of lines above.
regcomp.c: Fix a panic

I haven't figured out a way to get this to panic with existing code
(hence no tests), but chanes I'm working on triggered it.

An inversion list has elements that indicate a range that matches code
points in the list; and elements for ranges that do not match code
points in the list.  This code was assuming that the final range in the
inversion list was in the list; it might not be, and so an extra test is
needed.
t/re/re_tests: Remove unused variable initializations

These lines all fail to compile, so matching doesn't happen, so it
doesn't matter at all what the target string to be matched against
is set to.  It is misleading to put apparently meaningful stuff in that
string.
t/re/re_tests: Remove duplicate test

This is identical to the test two lines above.
portability to Haiku-OS for the cachepropagate-*.t tests

which:
- defines but doesn't implement SO_TYPE
- doesn't support datagram unix sockets
stop -MO=Concise -e'm?x?' segfaulting

The op_pmreplstart field in a PMOP is actually a union, containing
op_pmreplstart for OP_SUBST, and op_pmstash/op_pmstashoff for OP_MATCH
with PMf_ONCE set.

The B pmreplstart method just blindly treated the value of this field as
an op pointer, even when it wasn't an OP_SUBST. Hence the segfault.
Make it instead return a null pointer when not OP_SUBST.

At the same time I improved the PMOP handling code in Concise.xs so that
it expects particular types for that and the op_pmreplrootu union based on
the op type (OP_SUBST or OP_PUSHRE) rather than trying to handle any field
value regardless of op type.
Update Archive-Extract to CPAN version 0.62

  [DELTA]

  Changes for 0.62    Wed Jan  9 21:38:10 2013
  ============================================
  * OpenBSD's tar does not like some archives
    on CPAN, prefer gtar if it is available.
  * Correctly detect lack of /bin/tar (Smylers)
regcomp.c: Don't write to freed memory

This commit moves code in two places that may have freed memory just
before writing to it, so that the writing happens before the freeing.

It seems not worth the extra test if we are going to free this memory
before actually doing the write.

This bug was found by valgrind
Tweak the test from 2721a2ca2e5e889d to work with PERL_UNICODE set.
Don't use a fixed iteration count in dist/threads-shared/t/stress.t

Looping 500,000 times takes between 0.025s and 1s depending on hardware and
optimisation levels on machines I have access to. For a fixed iteration
count, on a particularly slow machine the timeout can fire before all
threads have had a realistic chance to complete, but dropping the iteration
count will cause fast machines to finish each thread too quickly.

So use an initial busy loop (single-thread) to estimate a suitable iteration
count to use for the per-thread test loop.
Update File-Fetch to CPAN version 0.38

  [DELTA]

  Changes for 0.38        Thu Jan 10 20:52:53 2013
  =================================================
  * Add support for an optional tempdir_root
    parameter (Kent Fredric)
expand comment in Perl_pad_tidy

make it clear that /$var/ is only eval-able in the presence of
'use re eval'; then generally tidy and reformat the comment.
Make perlbug recommend perlcommunity.pod over Usenet

Suggested by Dave Mitchell.
pod/perlcommunity.pod: mention blogs.perl.org and Stack Overflow

And mention that use.perl.org is now read-only.
embed.fnc: Fix flags for _invlist_dump

This debugging function is normally #ifdef'd out, but should it e
enabled, the flags were wrong.
lib/warnings/regcomp: Add note about better place for these

reg_mesg.t has some more infrastructure, so it is probably easier
to add new tests there.
regexp.t: Add a period in test name skip reason

This is easier to read.
regcomp.c: Use a parameter to simplify some code

When parsing \p{} outside of a bracketed character class, code in
regcomp.c has pretended it is a bracketed character class by changing
and restoring the parsing pointers, and then calling the charclass
handler.  This code can be simplified by instead passing a flag to the
handler meaning to just parse one item.  The faking is simpler there,
with no restoring necessary.  Also we can eliminate the duplicate
handling of special cases.

Future commits will make more extensive use of this mechanism.
Revise calling sequences for grok_bslash_[xo]

By passing the address of the parse pointer, the functions can advance
it, eliminating a parameter to the function, and simplifying the code in
the caller.