develooper Front page | perl.perl5.porters | Postings from February 2018

[perl #132788] Blead Breaks CPAN:LEMBARK/Object-Trampoline-1.42.tar.gz

Thread Previous
From:
Father Chrysostomos via RT
Date:
February 27, 2018 20:54
Subject:
[perl #132788] Blead Breaks CPAN:LEMBARK/Object-Trampoline-1.42.tar.gz
Message ID:
rt-4.0.24-10336-1519764866-1326.132788-15-0@perl.org
On Thu, 15 Feb 2018 10:32:28 -0800, zefram@fysh.org wrote:
> I wrote:
> >The test is erroneous in using all keys it finds as method names.
> >It should skip ones that aren't syntactically OK.
> 
> Reported as [rt.cpan.org #124441].
> 
> >The edit to Carp is also arguably faulty.
> 
> Fixed in commit 682f3ac7d3c98fe1aa251a2e30684eeb7b859a0e.

In that commit you avoid vivifying the UNIVERSAL stash, but then assume that &UNIVERSAL::isa is defined anyway.  The code carefully uses _fetch_sub, which is designed for fetching a sub that may not even exist, but then assumes that it will return something callable.

Why do we need to avoid vivifying the UNIVERSAL stash (and its isa glob)?

I understand not vivifying utf8, because that causes problems on 5.6, and I understand not vivifying stashes we don’t need, but the UNIVERSAL stash is always there.

I ask because it would take less code (and Carp would load faster), if we could skip checking whether $::{"UNIVERSAL::"} exists and just use it.

(Note: None of this applies to $UNIVERSAL::{"isa::"}, which I understand we should not vivify.)

-- 

Father Chrysostomos


---
via perlbug:  queue: perl5 status: open
https://rt.perl.org/Ticket/Display.html?id=132788

Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About