Dumpvalue has been synchronised to CPAN
ExtUtils::Manifest has been synchronised to CPAN
Term::ReadLine has been synchronised to CPAN
Text::Abbrev has been synchronised to CPAN
Perldelta up to 5e96eee9
Updated Search::Dict to 1.07 as on CPAN
pad.c: Share pad name lists between clones

Pad names are immutable once the sub is compiled.  They are shared
between clones.  Instead of creating a new array containing the same
pad name SVs, just share the whole array.

cv_undef does not need to modify the pad name list when removing an
anonymous sub, so we can just delete that code.  That was the only
thing modifying them between compilation and freeing, as far as I
could tell.
Unify CvDEPTH for formats and subs

As Dave Mitchell pointed out, while putting the CvDEPTH field for for-
mats in the SvCUR slot might save memory for formats, it slows down
sub calls because CvDEPTH is used on subs in very hot code paths.
Checking the SvTYPE to determine which field to use should not be
necessary.
Refactor to use test.pl instead of making TAP by hand. Add test names.
update docs for $`, $&, $' changes

mention that they're now detected individually, and mention in reapi
the new RX_BUFF_IDX_* symbolic constants.
perldelta: add recent regex API changes
add test for 6502e08, s/(.)/die/e

Forgot to add a test along with the commit that fixed this
stop ""-overloaded Regex recursing

There was code to detect this, but it checked for the returned value being
the same as before, but in this case it was returning a *new* temporary
reference to the same Regexp object; so check for that too.
Eradicate race condition in t/op/sigsystem.t (#114562)
Add PL_subname to the save stack

Otherwise, PL_subname is left as utf8::SWASHNEW after isIDFIRST_lazy_if
(etc) is called in UTF context
toke.c: Under -DT, dump complement properly

Before:

$ ./miniperl -DT -e '~foo'
....
### 0:LEX_NORMAL/XSTATE ""
### <== ?? 126
....

After:

$ ./miniperl -DT -e '~foo'
....
### 0:LEX_NORMAL/XSTATE ""
### <== '~'
....
Fix listop-hash-infix parsing

With some list operators, this happens:

$ ./miniperl -e 'warn({$_ => 1} + 1) if 0'
syntax error at -e line 1, near "} +"
Execution of -e aborted due to compilation errors.

Putting + before the { or changing warn to print makes the prob-
lem go away.

The lexer is losing track of what token it expects next, so it ends
up interpreting the + as a unary plus, instead of an infix plus.  The
parser doesn’t like that.

It happens because of this logic under case '{' (aka leftbracket:) in
toke.c:yylex:

	switch (PL_expect) {
	case XTERM:
	    if (PL_oldoldbufptr == PL_last_lop)
		PL_lex_brackstack[PL_lex_brackets++] = XTERM;
	    else
		PL_lex_brackstack[PL_lex_brackets++] = XOPERATOR;
	    PL_lex_allbrackets++;
	    OPERATOR(HASHBRACK);

The value we put on the brackstack is what we expect to find after the
closing brace (case '}' pops it off).

This particular if/else goes all the back to ef6361f9c226 (perl
5.000), or at least that was when it moved inside the XTERM case.
Before that, we had this:

	if (oldoldbufptr == last_lop)
	    lex_brackstack[lex_brackets++] = XTERM;
	else
	    lex_brackstack[lex_brackets++] = XOPERATOR;
	if (expect == XTERM)
	    OPERATOR(HASHBRACK);

So it appears that the XTERM/XOPERATOR distinction, based on last_lop
was the ‘old’ (and wrong) way of doing it, but it had to be changed in
perl 5.000 for cases other than XTERM.  That it remained for XTERM was
probably an oversight, which is easy to understand, since I seem to be
the first one to stumble across this after 18 years (what’s the rele-
vant Klortho number?).

Removing this last_lop check causes no tests to fail.  And it makes
sense, since anything coming right after an anonymous hash that could
be either an infix or prefix operator must be infix.
op.c: Document newGIVENOP(..., 0)

Something I missed in b5a648148c.
whoops, move this back where it was

apparently utf8->SWASHNEW calls "require 'unicore/Heavy.pl'" too
Avoid POSIX::close when closing files by descriptor in IPC::Open3

Closing a file descriptor with POSIX::close bypasses PerlIO's ref-counting
of file descriptors and leads to MSVC++'s invalid parameter handler being
triggered when the PerlIO stream is closed later because that attempts to
close the underlying file descriptor again, but it's already closed.

So instead, we effectively fdopen() a new PerlIO stream and then close it
again to effect the closure of the file descriptor.