For backcompat, B::formfeed can use gv_fetchpvs() if there is no PL_formfeed.
Get rid of PL_formfeed.

$^L is neither a magical variable, nor a normal one (like $;) but
it's just a little bit special :)

This patch removes PL_formfeed - IMHO, an extra gv_fetchpv per page
when using formats isn't going to cause a sensible speed regression.

I suppose that removing the intrpvar.h hunk from the patch is enough
to keep binary compatibility - unless someone used PL_formfeed from
an XS module.

[with regen.pl run as noted by the author, and an additional change to
perl.c to remove the reference to PL_formfeed added soon after this patch
was sent]
Use gv_fetchpvs() instead of gv_fetchpv(), and GV_ADD, not TRUE.

This avoids a needless strlen(), and corrects a classic usage error for the
gv_fetch*() functions.
Eliminate the vestigial comment "magical thingies" from intrpvar.h

The original comment "magical thingies" was added to perl.c by commit
8ebc5c0145d2e355 in Jan 1997. It is above code which frees 4 interpreter-
global SVs in perl_destruct.

The comment "magical thingies" was in intrpvar.h since the file was created
by commit 49f531dad558d800 on 29 Nov 1997. At that time, it was followed by
a block of 13 relevant interpreter global variables. However, by commit
d4cce5f1785350c2 (30 Nov 1997) all bar two were now in other places, mostly
in thrdvar.h. With the abolition of PL_formfeed, the comment now annotates
just one "magical" thingy, PL_basetime, which isn't even one of the SVs
freed at the analogous location in perl.c. Hence the comment adds no value.
[perl #105924] require 1 << 2

Setting PL_expect after force_next has no effect, as force_next
(called by force_version and force_word) picks up the current value of
PL_expect and arranges for it to be reset thereto after the forced
token is force-fed to the parser.

The KEY_require case should be setting PL_expect to XTERM (as it
already does) when there is no forced token (version or bareword),
because we expect a term after ‘require’, but to XOPERATOR when
there is a forced token, because we expect an operator after that
forced token.

Since the PL_expect assignment has no effect after force_next, we can
set it to XOPERATOR before calling potentially calling force_next, and
then to XTERM afterwards.

Loop exits had the same bug, so this fixes them all.
release schedule updates
...and we have a 5.17.9 volunteer
[perl #105922] Allow any string before ->meth

The rules for filtering out what do not look like package names are
not logical and disallow valid things like "::main", while allowing
q"_#@*$!@*^(".

This commit simply lets any non-empty string be used as a package
name.  If it is a typo, you’ll get an error anyway.  This allows
autobox-style calls like "3foo"->CORE::uc, or even "3foo"->uc if you
set up @ISA first.

I made an exception for the empty string because it messes up caches
somehow and causes subsequent method calls all to be called on the
main package.  I haven’t looked into that yet.  I don’t know whether
it’s worth it.

The changes to the tests in cpan/Test-Simple have been submit-
ted upstream.
pp_hot.c: Clean up after the prev commit

Even before that it was more complicated than necessary, as
SvPV_nomg_const  never returns null.
[perl #107002] No warnings test for require a::b+1

This used to produce an erroneous ambiguity warning.  The . case
stopped warning in 5.12.0.  The + case stopped warning earlier today
with commit c31f6d3b.
[perl #114984] Glob.xs: Extend stack when returning

If a pattern passed to File::Glob consists of a space-separated list
of patterns, the stack will only be extended by doglob() enough for
the list returned by each subpattern.  So iterate() needs to extend
the stack before copying the list of files from an AV to the stack.

This fixes a regression introduced in 5.16.0.
Increase $File::Glob::VERSION to 1.18
Restore mymalloc build with ithreads

Broken by commit 7cd83f6573.
Refactor t/run/switcha.t to use test.pl instead of making TAP by hand.