[rt.cpan.org #61577] sockdomain and socktype undef on newly accepted sockets

There appears to be a flaw in IO::Socket where some IO::Socket objects
are unable to properly report their socktype, sockdomain, or protocol
(they return undef, even when the underlying socket is sufficiently
initialized to have these properties).

The attached patch should cover IO::Socket objects created via accept(),
new_from_fd(), new(), and anywhere else whose details haven't been
properly cached.

No new code should be executed on IO::Socket objects whose details are
already cached and present.

These tests were original written by Daniel Kahn Gillmor
<dkg@fifthhorseman.net>, I've mangled them for use in a hopefully
final fix for the issue.
[rt.cpan.org #61577] propagate socket details on accept
[rt.cpan.org #61577] try to populate socket info when not cached

The fixes are originally by Daniel Kahn Gillmor
<dkg@fifthhorseman.net>, but I've made other changes.
document the limitations of protocol(), sockdomain(), socktype()

Determining these for a new_from_fd() socket has the following problems:

protocol() depends on SO_PROTOCOL, and socktype() on SO_TYPE, not
implemented on all systems.

sockdomain() depends on sockname(), which is documented as
unimplemented for AF_UNIX sockets on HP-UX.

I'm not sure that detail is useful in the documentation.
bump IO::Socket version
add Test::More as a prereq to Makefile.PL
[rt.cpan.org #61577] try harder to get socket information

also [perl #112736][debian #659075]

One of the tests may fail on HP-UX (but doesn't on the machine I have
access to)  I plan to monitor smokes and add skips as needed.
bump IO.pm version

cmpVERSION doesn't pick this up - should it?
perldelta for 18042359, 9adbac0b
s/thinngy/thingy/ in a comment in sv.c
Use find_runcv_where for pp_coreargs and pp_runcv
Put a cap on op slab sizes

If a subroutine is *really* big, we don’t want to allocate, say, 4MB
for ops when just over 2 will do, just because there was one op more
than could fit in 2MB.
pad.c: Improve intro_my docs
fix 64-bit compiler warning
Script to check Copyright information in git

Approach:

- find "Copyright" and according context lines
- from those extract greatest year
- compare this to last git change
- if commits happened after latest copyright year: show them for review
- blacklist exceptions, like known files and commits to ignore

The script outputs TAP, so you can run it like this:

  prove -v Porting/checkcopyright.pl

Generated files are reported as '# TODO' tests to
not fail overall success.
Copyright overhaul

Based on checkcopyright.pl analysis.

Approach:

- find "Copyright" and according context lines
- from those extract greatest year
- compare this to last git change
- if commits happened after latest copyright year: show them for review
- blacklisting exceptions, like known files and commits to ignore
- manually review of intermediate results, polishing the blacklists
- manually applied changes ("with the aid of Emacs and a few Marines")

Caveats:

- date semantics is always "CommitDate" (because I can only limit by that in git log)
- there could be race conditions during year change due to local-vs-commit timezone gaps