Commit e3ff370
committed
util.c: Perl_xs_handshake print API ver mismatch before interp mismatch
-this fatal error is much more common by general users than
I (orig author) anticipated when I added this check in 5.21.6/2014.
I assumed Unix land never had ABI/SEGVing or upgrade problems previous.
I wrote the code for my dev style, and my personal setup as test cases,
and test cases with Win32-isms.
If other OSes get bad-ABI caught, its a plus, but I thought they wouldn't.
-the hexadecimal handshake keys were intended to be a debug tool for core
devs hacking on something and for XS authors with very complicated
Makefile.PL s. To catch -D CCFLAGS arg dropouts on the way to the final
cmd line invocation of the CC.
-I say the handshake keys are a terrible UI for general "power users" and
non-coder sys admins
-the Perl API version strings ARE available, even with mismatched
interp struct sizes, and those are much more user friendly to print
as a error. It should be obvious that from now on, non-power users
can figure out on their own (no community help) that a way to "fix"
XS boot handshake is to force "reinstall" the "left side perl"
or "right side perl" through the OS Pkg Manager.
-after this commit, much more often! but not always, users will see a
"Perl API 5.X.Y against 5.X+1.Y is incompatible" fatal message instead
of the those Core-dev only undocumented hex handshake keys. Sadly the
technical P5P debug info is now gone/lost/hidden if
"Perl API 5.X.Y against 5.X+1.Y is incompatible" fatal message executes.
-core devs, obv will have v5.X.Y matching v5.X.Y in blead perl, so they
will still get the handshake keys hex numbers. Since API strings are
same.
-Package name will get downgraded to "Foo.c" if interp size is wrong, or
2 libperls in 1 proc happens. But the major improvement is showing left
and right side Perl API version info.
This commit was specifically written for
#16654
but there are dozens or 100s of them
#191121 parent 4acc9fb commit e3ff370
File tree
6 files changed
+129
-23
lines changed- ext/XS-APItest
- t
- pod
6 files changed
+129
-23
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1941 | 1941 | | |
1942 | 1942 | | |
1943 | 1943 | | |
| 1944 | + | |
| 1945 | + | |
| 1946 | + | |
| 1947 | + | |
| 1948 | + | |
| 1949 | + | |
| 1950 | + | |
| 1951 | + | |
| 1952 | + | |
| 1953 | + | |
| 1954 | + | |
| 1955 | + | |
| 1956 | + | |
| 1957 | + | |
| 1958 | + | |
| 1959 | + | |
| 1960 | + | |
| 1961 | + | |
| 1962 | + | |
| 1963 | + | |
| 1964 | + | |
| 1965 | + | |
| 1966 | + | |
| 1967 | + | |
| 1968 | + | |
| 1969 | + | |
| 1970 | + | |
| 1971 | + | |
| 1972 | + | |
| 1973 | + | |
| 1974 | + | |
| 1975 | + | |
| 1976 | + | |
| 1977 | + | |
| 1978 | + | |
| 1979 | + | |
| 1980 | + | |
| 1981 | + | |
| 1982 | + | |
| 1983 | + | |
| 1984 | + | |
| 1985 | + | |
| 1986 | + | |
| 1987 | + | |
| 1988 | + | |
| 1989 | + | |
| 1990 | + | |
| 1991 | + | |
| 1992 | + | |
| 1993 | + | |
| 1994 | + | |
| 1995 | + | |
| 1996 | + | |
| 1997 | + | |
| 1998 | + | |
| 1999 | + | |
| 2000 | + | |
| 2001 | + | |
| 2002 | + | |
1944 | 2003 | | |
1945 | 2004 | | |
1946 | 2005 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
| 14 | + | |
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| |||
385 | 385 | | |
386 | 386 | | |
387 | 387 | | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
125 | 125 | | |
126 | 126 | | |
127 | 127 | | |
128 | | - | |
129 | | - | |
130 | | - | |
| 128 | + | |
131 | 129 | | |
132 | 130 | | |
133 | 131 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5198 | 5198 | | |
5199 | 5199 | | |
5200 | 5200 | | |
5201 | | - | |
| 5201 | + | |
| 5202 | + | |
| 5203 | + | |
| 5204 | + | |
5202 | 5205 | | |
5203 | 5206 | | |
5204 | 5207 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5546 | 5546 | | |
5547 | 5547 | | |
5548 | 5548 | | |
| 5549 | + | |
5549 | 5550 | | |
5550 | 5551 | | |
5551 | 5552 | | |
| |||
5585 | 5586 | | |
5586 | 5587 | | |
5587 | 5588 | | |
5588 | | - | |
5589 | | - | |
5590 | | - | |
5591 | | - | |
| 5589 | + | |
| 5590 | + | |
| 5591 | + | |
| 5592 | + | |
5592 | 5593 | | |
5593 | 5594 | | |
5594 | 5595 | | |
| |||
5599 | 5600 | | |
5600 | 5601 | | |
5601 | 5602 | | |
5602 | | - | |
| 5603 | + | |
5603 | 5604 | | |
5604 | | - | |
5605 | | - | |
5606 | | - | |
5607 | | - | |
5608 | | - | |
| 5605 | + | |
| 5606 | + | |
| 5607 | + | |
| 5608 | + | |
| 5609 | + | |
| 5610 | + | |
| 5611 | + | |
| 5612 | + | |
| 5613 | + | |
| 5614 | + | |
| 5615 | + | |
| 5616 | + | |
| 5617 | + | |
5609 | 5618 | | |
5610 | 5619 | | |
5611 | 5620 | | |
5612 | 5621 | | |
5613 | 5622 | | |
5614 | | - | |
5615 | | - | |
| 5623 | + | |
| 5624 | + | |
| 5625 | + | |
| 5626 | + | |
| 5627 | + | |
| 5628 | + | |
5616 | 5629 | | |
5617 | 5630 | | |
5618 | 5631 | | |
5619 | 5632 | | |
5620 | 5633 | | |
5621 | 5634 | | |
5622 | 5635 | | |
5623 | | - | |
5624 | | - | |
5625 | | - | |
5626 | | - | |
5627 | | - | |
| 5636 | + | |
| 5637 | + | |
| 5638 | + | |
| 5639 | + | |
| 5640 | + | |
| 5641 | + | |
| 5642 | + | |
| 5643 | + | |
| 5644 | + | |
| 5645 | + | |
| 5646 | + | |
| 5647 | + | |
| 5648 | + | |
| 5649 | + | |
| 5650 | + | |
| 5651 | + | |
| 5652 | + | |
| 5653 | + | |
| 5654 | + | |
| 5655 | + | |
| 5656 | + | |
| 5657 | + | |
| 5658 | + | |
| 5659 | + | |
| 5660 | + | |
| 5661 | + | |
| 5662 | + | |
| 5663 | + | |
5628 | 5664 | | |
5629 | 5665 | | |
5630 | 5666 | | |
| |||
0 commit comments