In perl.git, the branch sprout/carp-strval has been updated <https://perl5.git.perl.org/perl.git/commitdiff/c6edd2e99cc4d0329c61165ff9fa4b453622d6b4?hp=16ee47fe0e6db78371331e9f1f5f13f7965cc631>
discards 16ee47fe0e6db78371331e9f1f5f13f7965cc631 (commit) - Log ----------------------------------------------------------------- commit c6edd2e99cc4d0329c61165ff9fa4b453622d6b4 Author: Father Chrysostomos <spr...@cpan.org> Date: Mon Feb 26 01:23:53 2018 -0800 Carp: Avoid run-time mods; StrVal workarounds Carp needs to avoid loading modules while reporting errors, because it may be invoked via $SIG{__DIE__} after a syntax error, when BEGIN blocks are forbidden. Before this commit (as of v5.27.8-360-gc99363a) it was doing just that for reference arguments within stack traces. That means we either need to load overload.pm at start-up so that overload::StrVal is already available, or avoid overload::StrVal altogether. It turns out that various versions of overload::StrVal have their own problems that prevent Carp from using them (out- lined in the comments added to Carp.pm and also described at <https://rt.perl.org/Ticket/Display.html?id=132902#txn-1535564>). So we now follow two approaches: If overloading.pm is available, use that; otherwise, use a hideous workaround inspired by ancient imple- entations of overload::StrVal and Scalar::Util::blessed, while avoid- ing the bugs in those old versions. ----------------------------------------------------------------------- Summary of changes: MANIFEST | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MANIFEST b/MANIFEST index 2b8859ca66..b054110b65 100644 --- a/MANIFEST +++ b/MANIFEST @@ -2974,8 +2974,8 @@ dist/Carp/t/Carp_overloadless.t See if Carp handles overloads that dont use ove dist/Carp/t/errno.t See if Carp preserves $! and $^E dist/Carp/t/heavy.t See if Carp::Heavy works dist/Carp/t/heavy_mismatch.t See if Carp::Heavy catches version mismatch -dist/Carp/t/stack_after_err.t Test stack traces after syntax errors dist/Carp/t/rt52610_crash.t Test that we can gracefully handle serializing the stack with stack-refcounting bugs +dist/Carp/t/stack_after_err.t Test stack traces after syntax errors dist/Carp/t/stash_deletion.t See if Carp handles stash deletion dist/Carp/t/swash.t See if Carp avoids breaking swash loading dist/Carp/t/vivify_gv.t See if Carp leaves utf8:: stuff alone -- Perl5 Master Repository