New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Blead Breaks CPAN: LEMBARK/Object-Trampoline-1.42.tar.gz #16394
Comments
From @eserteThis is a bug report for perl from slaven@rezic.de, The test t/03-Universal-Override.t in Object-Trampoline-1.42 # Failed test 'Object is 'Object::Trampoline::Bounce' (Foo::Bar)' Flags: Site configuration information for perl 5.27.8: Configured by eserte at Sat Jan 20 09:22:10 CET 2018. Summary of my perl5 (revision 5 version 27 subversion 8) configuration: @INC for perl 5.27.8: Environment for perl 5.27.8: |
From zefram@fysh.orgslaven@rezic.de wrote:
Bisects to commit 915a681 "Carp: optimize The test is erroneous in using all keys it finds as method names. The edit to Carp is also arguably faulty. In other areas Carp goes -zefram |
The RT System itself - Status changed from 'new' to 'open' |
From @jkeenanOn Tue, 30 Jan 2018 07:13:47 GMT, zefram@fysh.org wrote:
Are you saying we should apply something like the patch attached? Thank you very much. -- |
From @jkeenan0001-Ensure-we-don-t-unnecessarily-vivify-UNIVERSAL-isa.patchFrom 7d30fb46959b73e8ed43fc7ee0eec5775bf8c816 Mon Sep 17 00:00:00 2001
From: James E Keenan <jkeenan@cpan.org>
Date: Wed, 31 Jan 2018 09:52:57 -0500
Subject: [PATCH] Ensure we don't unnecessarily vivify $UNIVERSAL::{"isa::"}.
In response to issue raised in RT #132788
---
dist/Carp/lib/Carp.pm | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/dist/Carp/lib/Carp.pm b/dist/Carp/lib/Carp.pm
index 65d22b1..f31b5be 100644
--- a/dist/Carp/lib/Carp.pm
+++ b/dist/Carp/lib/Carp.pm
@@ -116,7 +116,7 @@ BEGIN {
;
}
-our $VERSION = '1.45';
+our $VERSION = '1.46';
$VERSION =~ tr/_//d;
our $MaxEvalLen = 0;
@@ -286,7 +286,9 @@ sub format_arg {
# lazy check if the CPAN module UNIVERSAL::isa is used or not
# if we use a rogue version of UNIVERSAL this would lead to infinite loop
- my $isa = $UNIVERSAL::isa::VERSION ? sub { 1 } : \&UNIVERSAL::isa;
+ my $isa = (exists $UNIVERSAL::{"isa::"} and $UNIVERSAL::isa::VERSION)
+ ? sub { 1 }
+ : \&UNIVERSAL::isa;
# legitimate, let's not leak it.
if (!$in_recurse && $isa->( $arg, 'UNIVERSAL' ) &&
--
2.7.4
|
From @jkeenanOn Wed, 31 Jan 2018 14:57:32 GMT, jkeenan wrote:
In the branch, to avert a test failure I have also incremented $Carp::Heavy::VERSION. -- |
From zefram@fysh.orgJames E Keenan via RT wrote:
That doesn't help: the reference to $UNIVERSAL::isa::VERSION still -zefram |
From zefram@fysh.orgI wrote:
Reported as [rt.cpan.org #124441].
Fixed in commit 682f3ac. -zefram |
From @demerphqI accidentally sent this response only to Zefram.... Resend
|
From @cpansproutOn Fri, 16 Feb 2018 18:53:47 -0800, demerphq wrote:
Why cannot we have both? You are being vague. -- Father Chrysostomos |
From @demerphqOn 17 Feb 2018 21:36, "Father Chrysostomos via RT" < On Fri, 16 Feb 2018 18:53:47 -0800, demerphq wrote:
Why cannot we have both? You are being vague Carp incorrectly assumes that the only way you can have an overloaded Which means that this segfaults due to stack overflow: perl -MCarp -E 'my $p = "OverloadedInXS"; *{$p."::(("} = sub{}; See #132828. To fix that without loading overload.pm I would have to more or less But I am curious why you feel I need to defend making Carp.pm use a module. We have no less than 4 different subs/mechanisms that are loaded like this: $ grep _fetch_sub dist/Carp/lib/Carp.pm Some of them appear to be related to back-compat, but some of them are # The downgrade() function defined here is to be used for attempts to I dont see any explanation for these shenanigans in the module, and instead Around the same time I was thinking about this Zefram then bumped If there is a good reason for these measures then I would expect it to be So if there is a good reason please explain before I waste my time. On the Why should it matter if Carp.pm unilaterally loaded overload.pm when first For that matter, why should Carp be lugging around code to support 5.6 when cheers, . |
From @demerphqOn 17 February 2018 at 15:55, demerphq <demerphq@gmail.com> wrote:
After writing I revisited solving it without loading overload.pm, ../cpan/Encode/t/truncated_utf8.t (Wstat: 0 Tests: 9 Failed: 0) 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 Yves -- |
From @khwilliamsonOn 02/18/2018 03:44 AM, demerphq wrote:
Carp did not fix this; commit c31ca20 did. |
From zefram@fysh.orgdemerphq wrote:
It would be reasonable to load overload.pm when a reference arg is seen,
No, they're not. The downgrade example isn't about whether the utf8.pm The optionality of utf8::is_utf8() is likewise for 5.6 compat.
Don't just do that. Be cautious; follow the precedent of minimising -zefram |
From @cpansproutOn Thu, 15 Feb 2018 10:32:28 -0800, zefram@fysh.org wrote:
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 |
From @cpansproutOn Sun, 18 Feb 2018 14:40:37 -0800, zefram@fysh.org wrote:
I just want to point out that, as I mentioned in another thread, loading modules at run time is not an option for Carp. It can be (and has been) invoked after a syntax error, which prevents BEGIN blocks from running. (I had forgotten about it when I first read this message. I had to go digging through the logs to refresh my memory as to why we can’t do that.) -- Father Chrysostomos |
From @iabynOn Tue, Feb 27, 2018 at 12:56:40PM -0800, Father Chrysostomos via RT wrote:
Also, we got rid of Carp/Heavy.pm because of the possibility of an error -- |
From zefram@fysh.orgI wrote:
That ticket has been closed with a patch that doesn't really fix the -zefram |
From @iabynOn Sun, Feb 18, 2018 at 12:58:00PM -0700, Karl Williamson wrote:
Or more strictly, two commits did. I've just opened this ticket with https://rt.cpan.org/Ticket/Display.html?id=125131 and pushed the following to blead: commit 836bb1e Encode: truncated_utf8.t TODO passes -- |
From @xsawyerxWhat else is left on this ticket? On 04/19/2018 03:42 PM, Dave Mitchell wrote:
|
From @iabynOn Thu, Apr 19, 2018 at 06:57:41PM +0200, Sawyer X wrote:
I don't know. -- |
From @demerphqOn 20 April 2018 at 10:32, Dave Mitchell <davem@iabyn.com> wrote:
I believe that in another patch sequence we (Zefram, FC and I) arrived cheers, -- |
From @xsawyerxOn 04/20/2018 12:19 PM, demerphq wrote:
Is this a merged patch already? |
From @demerphqOn 20 April 2018 at 13:06, Sawyer X <xsawyerx@gmail.com> wrote:
Its not clear if you mean merged to blead or something else. The issues I was involved in were basically wrapped up with FC's which is merged to blead. cheers, -- |
From @xsawyerxOn 04/20/2018 02:29 PM, demerphq wrote:
Yes. This is what I meant. Thank you. |
From @iabynOn Fri, Apr 20, 2018 at 02:29:19PM +0200, demerphq wrote:
So it's ok to close this tickety then? -- |
From @demerphqI think so, yes. Yves On 20 April 2018 at 16:17, Dave Mitchell <davem@iabyn.com> wrote:
-- |
@iabyn - Status changed from 'open' to 'resolved' |
Migrated from rt.perl.org#132788 (status was 'resolved')
Searchable as RT132788$
The text was updated successfully, but these errors were encountered: