Skip Menu |
 

This queue is for tickets about the Want CPAN distribution.

Report information
The Basics
Id: 94086
Status: resolved
Priority: 0/
Queue: Want

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

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



MIME-Version: 1.0
X-Spam-Status: No, score=-2.051 tagged_above=-99.9 required=10 tests=[AWL=-0.140, BAYES_00=-1.9, SPF_HELO_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Content-Disposition: inline
X-Spam-Flag: NO
content-type: text/plain; charset="utf-8"
Message-ID: <20140321142950.GR18071 [...] fysh.org>
X-Virus-Scanned: Debian amavisd-new at bestpractical.com
X-Spam-Score: -2.051
Received: from localhost (localhost [127.0.0.1]) by hipster.bestpractical.com (Postfix) with ESMTP id ABC82240490 for <cpan-bug+Want [...] hipster.bestpractical.com>; Fri, 21 Mar 2014 10:30:07 -0400 (EDT)
Received: from hipster.bestpractical.com ([127.0.0.1]) by localhost (hipster.bestpractical.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hqcYjen2UrKN for <cpan-bug+Want [...] hipster.bestpractical.com>; Fri, 21 Mar 2014 10:30:06 -0400 (EDT)
Received: from la.mx.develooper.com (x1.develooper.com [207.171.7.70]) by hipster.bestpractical.com (Postfix) with SMTP id 1611C2403FE for <bug-Want [...] rt.cpan.org>; Fri, 21 Mar 2014 10:30:05 -0400 (EDT)
Received: (qmail 31401 invoked by alias); 21 Mar 2014 14:30:04 -0000
Received: from river.fysh.org (HELO river.fysh.org) (5.135.154.127) by la.mx.develooper.com (qpsmtpd/0.28) with ESMTP; Fri, 21 Mar 2014 07:30:02 -0700
Received: from zefram by river.fysh.org with local (Exim 4.80 #2 (Debian)) id 1WR0SE-0000Ly-Kf; Fri, 21 Mar 2014 14:29:50 +0000
Delivered-To: cpan-bug+Want [...] hipster.bestpractical.com
Subject: panic on 5.19.10
Return-Path: <zefram [...] fysh.org>
X-RT-Mail-Extension: want
X-Original-To: cpan-bug+Want [...] hipster.bestpractical.com
X-Spam-Check-BY: la.mx.develooper.com
Date: Fri, 21 Mar 2014 14:29:50 +0000
X-Spam-Level:
To: bug-Want [...] rt.cpan.org
From: Zefram <zefram [...] fysh.org>
X-RT-Original-Encoding: ascii
X-RT-Interface: Email
Content-Length: 528
Download (untitled) / with headers
text/plain 528b
On Perl 5.19.10: $ make test PERL_DL_NONLAZY=1 /opt/perl-5.19.10/bin/perl "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/all.t ....... 1/70 Want panicked: Unexpected op in slice (null) t/all.t ....... Dubious, test returned 255 (wstat 65280, 0xff00) Failed 22/70 subtests t/assign.t .... ok t/boolean.t ... ok t/damian.t .... ok t/err.t ....... ok t/methcall.t .. ok t/object.t .... ok t/threads.t ... ok -zefram
MIME-Version: 1.0
In-Reply-To: <20140321142950.GR18071 [...] fysh.org>
X-Mailer: MIME-tools 5.504 (Entity 5.504)
Content-Disposition: inline
X-RT-Interface: Web
References: <20140321142950.GR18071 [...] fysh.org>
Content-Type: text/plain; charset="utf-8"
Message-ID: <rt-4.0.18-19630-1395417527-1457.94086-0-0 [...] rt.cpan.org>
Content-Transfer-Encoding: binary
X-RT-Original-Encoding: utf-8
X-RT-Encrypt: 0
X-RT-Sign: 0
Content-Length: 2243
Download (untitled) / with headers
text/plain 2.1k
On 2014-03-21 14:30:09, zefram@fysh.org wrote: Show quoted text
> On Perl 5.19.10:
I've bisected this between 5.19.9 and 5.19.10, identifying this commit as the cause: 7d3c8a6837b55fff0e6294ebf8c94a1601367c76 is the first bad commit commit 7d3c8a6837b55fff0e6294ebf8c94a1601367c76 Author: Steffen Mueller <smueller@cpan.org> Date: Sat Feb 22 10:08:25 2014 +0100 Optimization: Remove needless list/pushmark pairs from the OP execution This is an optimization for OP trees that involve list OPs in list context. In list context, the list OP's first child, a pushmark, will do what its name claims and push a mark to the mark stack, indicating the start of a list of parameters to another OP. Then the list's other child OPs will do their stack pushing. Finally, the list OP will be executed and do nothing but undo what the pushmark has done. This is because the main effect of the list OP only really kicks in if it's not in array context (actually, it should probably only kick in if it's in scalar context, but I don't know of any valid examples of list OPs in void contexts). This optimization is quite a measurable speed-up for array or hash slicing and some other situations. Another (contrived) example is that (1,2,(3,4)) now actually is the same, performance-wise as (1,2,3,4), albeit that's rarely relevant. The price to pay for this is a slightly convoluted (by standards other than the perl core) bit of optimization logic that has to do minor look-ahead on certain OPs in the peephole optimizer. A number of tests failed after the first attack on this problem. The failures were in two categories: a) Tests that are sensitive to details of the OP tree structure and did verbatim text comparisons of B::Concise output (ouch). These are just patched according to the new red in this commit. b) Test that validly failed because certain conditions in op.c were expecting OP_LISTs where there are now OP_NULLs (with op_targ=OP_LIST). For these, the respective conditions in op.c were adjusted. The change includes modifying B::Deparse to handle the new OP tree structure in the face of nulled OP_LISTs.
MIME-Version: 1.0
In-Reply-To: <rt-4.0.18-19630-1395417527-1457.94086-0-0 [...] rt.cpan.org>
X-Mailer: MIME-tools 5.504 (Entity 5.504)
Content-Disposition: inline
X-RT-Interface: Web
References: <20140321142950.GR18071 [...] fysh.org> <rt-4.0.18-19630-1395417527-1457.94086-0-0 [...] rt.cpan.org>
Content-Type: text/plain; charset="utf-8"
Message-ID: <rt-4.0.18-30559-1395420478-1097.94086-0-0 [...] rt.cpan.org>
Content-Transfer-Encoding: binary
X-RT-Original-Encoding: utf-8
X-RT-Encrypt: 0
X-RT-Sign: 0
Content-Length: 159
Download (untitled) / with headers
text/plain 159b
There's an identical ticket against the perl5 core for this issue at https://rt.perl.org/Ticket/Display.html?id=121342&results=bddbbc3ac2e9e758e8c7b8ff712a4dfd
MIME-Version: 1.0
In-Reply-To: <rt-4.0.18-30559-1395420478-1097.94086-0-0 [...] rt.cpan.org>
X-Mailer: MIME-tools 5.504 (Entity 5.504)
Content-Disposition: inline
X-RT-Interface: Web
References: <20140321142950.GR18071 [...] fysh.org> <rt-4.0.18-19630-1395417527-1457.94086-0-0 [...] rt.cpan.org> <rt-4.0.18-30559-1395420478-1097.94086-0-0 [...] rt.cpan.org>
Content-Type: text/plain; charset="utf-8"
Message-ID: <rt-4.0.18-23215-1395621221-590.94086-0-0 [...] rt.cpan.org>
Content-Transfer-Encoding: binary
X-RT-Original-Encoding: utf-8
X-RT-Encrypt: 0
X-RT-Sign: 0
Content-Length: 182
Download (untitled) / with headers
text/plain 182b
This looks easy to fix. The test (l->op_type == OP_LIST) can just be changed to (l->op_type == OP_LIST || (l->op_type == OP_NULL && l->op_targ == OP_LIST)) Fix coming up.


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.