On 17 February 2018 at 15:55, demerphq <demerphq@gmail.com> wrote: > On 17 Feb 2018 21:36, "Father Chrysostomos via RT" > <perlbug-followup@perl.org> wrote: > > On Fri, 16 Feb 2018 18:53:47 -0800, demerphq wrote: >> > It is unfortunate that so many critical functions and checks in Perl >> > require namespace mutations, but that's how things work, and imo not >> > touching other namespaces has a *much* lower priority than Carp working >> > correctly and not segfaulting. > > Why cannot we have both? You are being vague > > > Carp incorrectly assumes that the only way you can have an overloaded object > is if you have loaded overload.pm. > > Which means that this segfaults due to stack overflow: > > perl -MCarp -E 'my $p = "OverloadedInXS"; *{$p."::(("} = sub{}; > *{$p.q!::(""!} = sub { Carp::cluck "<My Stringify>" }; sub { > Carp::cluck("") }->(bless {}, $p);' > > See #132828. > > To fix that without loading overload.pm I would have to more or less extract > a nice chunk of the internals of overload.pm into Carp. After writing I revisited solving it without loading overload.pm, which I was able to do more or less, with only two test result changes: ../cpan/Encode/t/truncated_utf8.t (Wstat: 0 Tests: 9 Failed: 0) TODO passed: 9 ../cpan/Math-BigInt/t/mbimbf.t (Wstat: 256 Tests: 738 Failed: 1) Failed test: 718 Non-zero exit status: 1 It is interesting that a change to Carp fixes cpan/Encode/t/truncated_utf8.t On the other hand, I havent figured out what to do about Math-BigInt and I am still digging into why it fails witth the "tricky" logic I am doing, but not when using overload::StrVal. Yves -- perl -Mre=debug -e "/just|another|perl|hacker/"Thread Previous | Thread Next