prevent memory exhaustion from hash attacks

We do not want to resize the hash every time the bucket length is
too long. Nor do we want to pay the price of checking how long
the bucket length is when there is nothing we can do about it anyway.
Stop ignored :lvalue warning from leaking CVs

When newMYSUB and newATTRSUB are called, PL_compcv has an unclaimed
reference count, so any code that croaks must decrement the reference
count or make arrangements for such to happen.
op.c:newATTRSUB: Change an if condition to an else

In one spot we have if(blah blah balh) {...} followed by
if (<exactly the opposite>).  We can just change the second if to
an else, since the condition is not going to change here.

This brings newATTRSUB and newMYSUB slightly closer, allowing me
to factor some of it out into a static routine in the next commit.
Prevent double frees with lexical constants

my sub foo() { 2 }

This produces a double free, because SAVEPADSVANDMORTALIZE causes the
reference count to go down on scope exit, and nothing was increment-
ing it to compensate.
Warn by default for constant my sub redefinition

I apparently never had this working and never tested it either.

I was checking whether the new sub was a constant, rather than the one
it was clobbering.
op.c: Factor common ‘existing sub’ logic into static routine

newMYSUB and newATTRSUB are very similar but differ in small ways
throughout.  This particular block of code is close enough it can be
moved into a separate static routine to avoid repetition.
Warn when declaring lexsubs, not when enabling them

feature.pm has an ":all" tag.  So if we warn when lexical subs are
enabled, then ‘use feature ":all"’ will also warn.  That’s unkind.

Instead, warn when a lexical sub is declared via
‘my/our/state sub...’.
Increase $feature::VERSION to 1.32
perldiag: Add cat to ‘Using just the first char...’
perldiag: Correct wording of ‘Using just the first char...’
Stop sub decl redef warnings from leaking CVs

When newMYSUB and newATTRSUB are called, PL_compcv has an unclaimed
reference count, so any code that croaks must decrement the reference
count or make arrangements for such to happen.

This commit applies only to redefinition warnings triggered by sub
declarations, like ‘sub foo {}’ and ‘my sub foo {}’.
Add "buzzhash16" - a random hash function

This is just a toy. Probably not worth using in production. But
interesting enough I thought I would include it.

The idea is to use the hash seed as a table of random 16 bit integers
whose values are what we hash depending on the character we read.

It is pretty fast, I have no idea how secure it is. It will probably
work really badly if the seed is crap. YMMV.
regen/embed.pl: flag 'i' didn't work with 'n'
Request is_utf8_char_slow() be inlined
Errno was added in 5.5, not in 5.5.4
Increase $Module::CoreList::VERSION to 2.79
Handle invalid directory spec with EFS in pathify_dirspec.

When Extended Filename Syntax is enabled on VMS (which is not [yet]
the default), we were allowing invalid directory specifications
consisting of a .DIR extension but some version other than ;1 to
be passed through.

Now we flag that as an invalid directory just as we were doing
without EFS.  This gets a test passing in vms/ext/filespec.t that
was failing under EFS.
Clarify reporting of .DIR extension on VMS.

In readdir and start_glob, we were removing the .DIR extension from
VMS directory names when reporting results in Unix format, but also
when Extended Filename Syntax (EFS) was enabled.  The former makes
sense, but the latter (by itself) doesn't.
RT-23180 - If we skip matching in pp_match for any reason, pos() must still be updated.
perlhack: Add note to not use "register" declarations