perldelta for ab4e48c10a / #123135
[perl #108276] avoid deep scalarvoid() self-recursion

This fixes the original test case from the ticket.

It may be possible for code that alternates recursion between
scalarvoid() and scalar() to cause deep recursion, but I haven't seen
an example that does it.

This doesn't indent the scalarvoid() loop, which will be done in another
change.
move the closing ) out of the #ifdef USE_ITHREADS to avoid confusing tools

emacs, in my case
[perl #108276] re-indent the loop body
perldelta for aa9d125313d7
simplify Perl_xs_apiversion_bootcheck

We control both strings. Perl API versions are not old decimal or alphas
versions. Maints dont increase Perl API ver. Just do a memcmp. Faster and
less machine code. Before 0xA6 bytes of machine code on VC 2003 32b,
after 0x35. This patch is related to [perl #123136].
sort perldiag
perldiag: rewrap an entry for better splain output
Fix perldiag typo

spotted by Lukas Mai.
Remove Mac Classic code from B::Concise
dump.c: Dump seq field of nextstate ops

This is very useful for debugging.
dump.c: Use same code for cops and ex-cops

This also allows ex-dbstate ops to have their cop fields dumped, which
was not the case before.
Adjust Peek.t for SEQ dumping
Increase $B::Concise::VERSION to 0.995
[perl #77452] Deparse BEGIN blocks in the right place

In the op tree, a statement consists of a nextstate/dbstate op (of
class cop) followed by the contents of the statement.  This cop is
created after the statement has been parsed.  So if you have nested
statements, the outermost statement has the highest sequence number
(cop_seq).  Every sub (including BEGIN blocks) has a sequence number
indicating where it occurs in its containing sub.

So

 BEGIN { } #1
 # seq 2
 {
   # seq 1
   ...
 }

is indistinguishable from

 # seq 2
 {
   BEGIN { } #1
   # seq 1
   ...
 }

because the sequence number of the BEGIN block is 1 in both examples.

By reserving a sequence number at the start of every block and using
it once the block has finished parsing, we can do this:

 BEGIN { } #1
 # seq 1
 {
   # seq 2
   ...
 }

 # seq 1
 {
   BEGIN { } #2
   # seq 2
   ...
 }

and now B::Deparse can tell where to put the blocks.

PL_compiling.cop_seq was unused, so this is where I am stashing
the pending sequence number.
Mention Data::Dump::Streamer in B::Deparse docs
Spell optimise consistently in Deparse pod

also add a missing hyphen.
Update B::Deparse docs about BEGIN blocks
Better B::Deparse warning for custom ops
Deparse Devel::Peek::Dump

I’m not sure how or where to test this.  Maybe we should document this
‘accidental’ plug-in interface for B::Deparse and custom ops.