Skip Menu |

Preferred bug tracker

Please visit the preferred bug tracker to report your issue.

This queue is for tickets about the devel-nytprof CPAN distribution.

Report information
The Basics
Id: 123846
Status: resolved
Priority: 0/
Queue: devel-nytprof

People
Owner: Nobody in particular
Requestors: zefram [...] fysh.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: 5.27.7 &PL_sv_yes callable update needed
Date: Sat, 9 Dec 2017 03:28:12 +0000
To: bug-Devel-NYTProf [...] rt.cpan.org
From: Zefram <zefram [...] fysh.org>
The Perl core has recently made a change that causes Devel-NYTProf to fail its tests. It's an intentional change in some undocumented behaviour, and Devel-NYTProf will need an update to handle it. The change is that &PL_sv_yes is no longer used to represent a fake import method. Method lookup of "import" or "unimport" on a package that has no such method now returns a CV, not &PL_sv_yes. pp_entersub no longer treats &PL_sv_yes specially: it is instead treated as any other string "1", as a symbolic reference to the subroutine in the *1 glob. This change happened in core commit 0740a29d60ebd4ff72090340b0140ec2210e90c7, and the first released Perl version to include it will be 5.27.7 (due on 2017-12-20). I see that the functions resolve_sub_to_cv() and pp_subcall_profiler() in NYTProf.xs have some explicit recognition of &PL_sv_yes as a callable. That should change. On its own that wouldn't cause test failures, but if the test suite is diligent enough to exercise that code then it'd be natural for that to build in expectations about the behaviour of &PL_sv_yes as a callable, the falsification of which would then cause failures. I have not found such a part of the test suite, but I have no idea how it's organised and am not effective in searching it. -zefram
Thanks for the detailed report Zefram.