perly.c: Fix off-by-1 error for EBCDIC platforms

Code point 255 was being omitted in the translation.  It's better to use
the macro (that has it correctly) and avoid a redundant copy of the
test.
dump.c: Clarify pod
[perl #40565] Fix localisation in pseudo-fork

Several SAVEt_* types were giving the SVs the wrong reference counts
in ss_dup, causing child process to lose SVs too soon.

See <https://rt.perl.org/Ticket/Display.html?id=40565#txn-1180404>
and <https://rt.perl.org/Ticket/Display.html?id=40565#txn-1277127>.
perldelta for the prev. commit

based on https://rt.perl.org/Ticket/Display.html?id=40565#txn-1321149
Deparse: matchop: Remove double method+function call
Fix deparsing of $lexical =~ //

I broke this in 05a502dc.
To-do tests for deparsing regexp code blocks

Currently we have various bugs:
• Line breaks often come out as \n, changing the meaning.
• Some blocks are doubled up with do{...} for the first instance.
• qr/sub { .... }/ madness
Deparse FOO =~ y///r correctly

Apparently anything =~ y///r with the /r never deparsed properly (just
the lhs deparsed) until 05a502dc, when lexicals on the lhs started
being emitted.
Deparse qr/(?{code_blocks})/ with no interpolation

This is a preliminary patch that only applies when there are no varia-
bles interpolated into the pattern outside of the code blocks.

The code blocks are now actually deparsed, instead of the stringified
form just being reproduced.  This means the \n bug is gone:

Before:

$  ./perl -Ilib -mO=Deparse -e '{ qr/aaaaa\\\\\\(?{;' -e '$y})' -e '/}'
{
    qr/aaaaa\\\\\\(?{;\n\$y})\n/;
}
-e syntax OK

After:

$ ./perl -Ilib -mO=Deparse -e '{ qr/aaaaa\\\\\\(?{;' -e '$y})' -e '/}'
{
    qr/aaaaa\\\\\\(?{ $y; })\n/;
}
-e syntax OK

You can see the \n translation now happens only outside of the block.

It also means here-docs work:

Before:

$  ./perl -Ilib -mO=Deparse -e 'qr/(??{<<END})/' -efoo -eEND
qr/(??{<<END})/;
-e syntax OK

(The output is a syntax error.)

After:

$ ./perl -Ilib -mO=Deparse -e 'qr/(??{<<END})/' -efoo -eEND
qr/(??{ "foo\n"; })/;
-e syntax OK
Deparse.t: Put a line break after the test code

The line break gets removed when it is extracted from the __DATA__
section, and then it gets wrapped in sub{$input}.  That breaks
here-docs.
Deparse regexp code blocks in m// and split //

The blocks themselves are now deparsed, rather than the original strings
being emitted.  This fixes problems with newlines turning into \n and
here-docs missing their bodies.  It only applies to compile-time patterns.
Run-time patterns (with variables interpolated outside the code blocks)
are still unfixed and deparse with do{...} embedded in the pattern.
Deparse qr// and m// with code blocks and vars

Before, this:

/$a(?{ die $b; })/;
qr/$a(?{ die $b; })/;

would deparse as this:

/${a}do {
    die $b
}(?{ die $b; })/;
qr/sub : lvalue {
    $a, do {
        die $b
    }, '(?{ die $b; })'
}
->()/;

Now it deparses correctly.
Deparse.pm: Fold some logic into sub code_list

Both callers were doing $op->first->sibling, so just have code_list
do that itself.
Deparse s/// with code blocks

Before, s/$a(?{die})// would deparse like this:

s/${a}do {
    die
}(?{die})//;

Now it deparses correctly.
[Merge] Deparse regexp code blocks

The actual ops that make up the code blocks are now deparsed.
B::Deparse no longer uses the stringified form stored in the regexp.
This fixes a few bugs.  See the individual commits for details.
[perl #114498] lslice returning empty vs undef

Formerly, list slice would return an empty list if all the indices
fell outside the actual list, but would return ‘undef’ for every index
specified if but one of them fell within the list.

This was not implemented according to the original design, according
to which list slice would give an empty list (for a non-zero number of
indices) only if the list on the left-hand side were empty.

This commit rectifies that.  See ticket #114498 for the discussion.
perldata: document corrected list slicing behaviour
Convert "\t"s to spaces in perlref.pod.

For: RT #122986
Remove trailing whitespace.

For: RT #122987 (first part)
perlfork.pod: convert "\t"s to spaces.

For: RT #122987 (second part)