Allow OPf_SPECIAL on OP_GV

The multideref assertions should allow the OPf_SPECIAL flag, because
an OP_GV that started out as OP_CONST and got converted in ck_rvconst
may have have OPf_SPECIAL set already.  This flag is harmless on
OP_GV, so don’t bother turning it off.
Remove VAXC special cases from ExtUtils::CBuilder.

VAX C was a pre-ANSI compiler that was superceded about fifteen
years ago, so there is no reason to include special cases for it
now.
Version bump for ExtUtils::CBuilder.
Revert ‘alternate way to figure out prototypes’

This reverts commit 1d38190f803f2a83884e9591276436394df55dd4.

$ ./perl -Ilib -MO=-q,Deparse -e 'BEGIN { require "t/test.pl"; is("foo","foo") }'
sub BEGIN {
    require 't/test.pl';
    is 'foo', 'foo';
}
-e syntax OK

The resulting code doesn’t even compile, because it lacks parentheses
around the arguments to ‘is’, and the function does not exist yet when
that statement is compiled.

The logic that makes ‘is’ lose its parentheses was added by
this commit:

commit 1d38190f803f2a83884e9591276436394df55dd4
Author: Rafael Garcia-Suarez <rgarciasuarez@gmail.com>
Date:   Tue Jan 1 23:45:21 2002 +0100

    alternate way to figure out prototypes
    Message-ID: <20020101224521.A691@rafael>

    p4raw-id: //depot/perl@14007

Previously, B::Deparse would put & on any prototyped sub call if it
were not deparsing the sub itself, because it is not possible to tell
exactly when the sub will be defined when the program loads.  (That is
still true.)

That meant is(@foo, @bar) would be deparsed as &is(@foo, @bar), which
is wrong, because the arrays are not evaluated in scalar context.
(test.pl and Test::More both have prototypes beginning with $$ for
‘is’.)  1d38190f8 was meant to fix that, and did so by respecting the
prototype if the sub exists and B::Deparse is not going to emit it
(e.g., because it’s in another file than the main program).

As of v5.21.6-321-gc65b7c4, & calls include ‘scalar’ where necessary,
so the fix from 1d38190f8 is no longer necessary.
Test for deparsing proto sub calls with &

See the previous commit’s explanation.
Deparse.t: Adjust a test broken 2 commits ago
Deparse use-ver features correctly

This does not do the same thing as ‘use v5.16’:

    no feature;
    use feature ":5.16";

because ‘no feature’ restores the default bundle, and does not disa-
ble array_base, whereas ‘use v5.16’ does.  What you need is ‘no fea-
ture ":all"’.
deparse-skips.txt: array_base.t now passes
deparse-skips.t: Reason for attrhand.t skip

This is a hard one which I don’t feel like fixing just now.
deparse-skips.t: Note bug number for attrs.t

‘my’ list assignment with attributes.  Another tricky one.
deparse-skips.t: bop.t passes
Deparse chdir(bareword) without quotes
Fix ptargrep match.

The 08_ptargrep.t test does a pattern match that appears to assume platform-specific semantics for the pattern that matches a filename.  It certainly doesn't match the filename on VMS:

not ok 1 - ptargrep shows matched file

But we know the actual filename, so the simplest solution is to just do an equality test on that, and that's what the attached patch does.

Submitted upstream at <https://rt.cpan.org/Public/Bug/Display.html?id=100903>.
op.c: Correct comment about OPf_SPECIAL & parens
op.h: Note chdir’s use of OPf_SPECIAL
Fix deparsing of chdir without args

I just broke that in 0175f038c5.  I did not realise that OPf_SPECIAL
means two different things on chdir.  (See the previous commit.)
deparse-skips.t: chdir.t passes
deparse-skips.txt: More passing tests
Test-Simple Version Bump, 1.301001_088 (RC8)
fix PERL_TRACE_OPS for sub-threads

In PERL_TRACE_OPS builds, perl_destruct() prints counts of executed
OPs by optype; for the most basic thread tests, the sub-threads
display "abab.." counts for most OPs (or would with printf("%x"...),
excluded from patch)

This patch fixes erroneous op-count display by Zeroing
PL_op_exec_cnt[] in perl_clone_using().