gv.c: Don’t ENTER/LEAVE unnecessarily

Commit 756cb47730 added an if/else block in between ENTER/LEAVE, mov-
ing the existing code into the else block.  But the if code (consist-
ing of newCONSTSUB) never needed to be surrounded by ENTER/LEAVE.
gv.c: Remove mro_method_changed_in() from gv_init

gv_init(_pvn) does not conceptually change anything.  There was
already a subroutine there before the stub was upgraded to a gv with
a real cv.

The example in the comment:

 sub Foo::bar($) { (shift) } sub ASDF::baz($); *ASDF::baz = \&Foo::bar

suggests that this was put in the wrong place to begin with.  Glob
assignment already takes care of mro_method_changed_in, so calling
it beforehand when reifying the glob is redundant.
perl.c:get_cvn_flags: Move a comment where it belongs

The PERL_ARGS_ASSERT_GET_CVN_FLAGS got inserted between a
comment and the code it described.
gv.c: Don’t repeat GvSVn

GvSVn checks whether there is a scalar present and creates one if there
is not.  So doing GvSVn twice in a row results in a redundant check.

It has been this way since c69033f2.
Rmv mro_method_changed_in call on stub upgraded to const

If a subroutine stub exists and a new subroutine is defined with the
same name, that new subroutine’s body is attached to the stub.  So
there are no changes from the point of view of method lookup.

For most subs, mro_method_changed_in is not called in this case.

For constant subs, it was being called.

In the case where a new sub is being created, we know that
cv == GvCV(gv) and GvSTASH(gv) is set, so checking CvSTASH is
unnecessary.
perl.c: Clarify comment

This comment was added by commit 17fbfdf.  Without looking at the
diff, it’s not clear that ‘Do this now’ refers to setting PL_curcop,
rather than destroying the main CV.  Also, there was a missing verb,
leading to confusion.  (I first inferred ‘cause’ when reading it,
but it is actually ‘expect’, based on inspecting the code in
sv.c:S_new_SV.)
sv.h: Move comment just before struct it describes

It was divorced therefrom in commit 20f4945e.
Use assertions for /* NOT REACHED */

to make sure it really is never reached.
op.c:newPROG: Remove questionable comment

This thing about PL_eval_root going through an expensive function call
had already ceased to be the case before commit 5983a79d, which added
it.  And I think it was only ever valid for non-core code.
Don’t create pads for sub stubs

Two code paths, sv_2cv (for \&name) and get_cvn_flags (for
&{"name"}()) were using start_subparse and newATTRSUB to create a
subroutine stub, which is what usually happens for Perl subs (with
op trees).

This resulted in subs with unused pads attached to them, because
start_subparse sets up the pad, which must be accessible dur-
ing parsing.

One code path, gv_init, which (among other things) reifies a GV after
a sub declaration (like ‘sub foo;’, which for efficiency doesn’t
create a CV), created the subroutine stub itself, without using
start_subparse/newATTRSUB.

This commit takes the code from gv_init, makes it more generic so it
can apply to the other two cases, puts it in a new function called
newSTUB, and makes all three locations call it.

Now stub creation should be faster and use less memory.

Additionally, this commit causes sv_2cv and get_cvn_flags to bypass
bug #107370 (glob stringification not round-tripping properly).  They
used to stringify the GV and pass the string to newATTRSUB (wrapped in
an op, of all things) for it to look up the GV again.  While bug
been fixed, as it was a side effect of sv_2cv triggering bug #107370.
Don’t call mro_method_changed_in after newCONSTSUB

newCONSTSUB already does it itself (by calling newXS_len_flags,
which does it).
configpm: comment typo
Tests for perl #94476
Let hints.t run at the top level
op.c:utilize: don't allocate pegop if !PL_madskills

Just following what the FIXME note says. :-)

This shaves off a few CPU cycles.
Add Rhesa Rozendaal to AUTHORS
[perl #29230] Class::Struct, accessor overrides not called from constructor

Class::Struct allows you to override the accessors it creates, but it
doesn't call them in its constructor.
In other words,

     $struct->field('blah');

calls my override, but

     $struct = structure->new('field' => 'blah');

doesn't. Class::Struct simply does

     $r->{'field'} = $init{'field'}

but it would be more useful if it did

     $r->field($init{'field'})
add tests for overridden Class::Struct accessors
Increase $Class::Struct::VERSION to 0.64
checkAUTHORS.pl: another address for Renee Bäcker