Skip Menu |
Report information
Id: 132385
Status: open
Priority: 0/
Queue: perl5

Owner: Nobody
Requestors: jkeenan [at] pobox.com
Cc:
AdminCc:

Operating System: (no value)
PatchStatus: (no value)
Severity: low
Type:
Perl Version: 5.27.6
Fixed In: (no value)



Date: Wed, 1 Nov 2017 11:52:52 -0400
From: James E Keenan <jkeenan [...] pobox.com>
Subject: BBC: Commit e839e6ed99c6b25aee589f56bb58de2f8fa00f41 breaks Bit-Vector-7.4
To: perlbug [...] perl.org
Download (untitled) / with headers
text/plain 795b
This recent commit ... ##### commit e839e6ed99c6b25aee589f56bb58de2f8fa00f41 Author: David Mitchell <davem@iabyn.com> AuthorDate: Tue Aug 8 18:42:14 2017 +0100 Commit: David Mitchell <davem@iabyn.com> CommitDate: Tue Oct 31 15:31:26 2017 +0000 Add OP_MULTICONCAT op Allow multiple OP_CONCAT, OP_CONST ops, plus optionally an OP_SASSIGN or OP_STRINGIFY, to be combined into a single OP_MULTICONCAT op, which can make things a *lot* faster: 4x or more. ... ##### ... appears to have broken CPAN distribution Bit-Vector, version 7.4. 5 unit tests in t/30__overloaded.t start failing at the commit cited. The tests in that test file are not very debugging-friendly. I will attach a reduced test script once I have an RT number. Thank you very much. Jim Keenan
Download e839e6e.perl.V.txt
text/plain 3.3k

Message body is not shown because sender requested not to inline it.

RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 1.1k
On Wed, 01 Nov 2017 15:53:12 GMT, jkeenan@pobox.com wrote: Show quoted text
> > This recent commit ... > > ##### > commit e839e6ed99c6b25aee589f56bb58de2f8fa00f41 > Author: David Mitchell <davem@iabyn.com> > AuthorDate: Tue Aug 8 18:42:14 2017 +0100 > Commit: David Mitchell <davem@iabyn.com> > CommitDate: Tue Oct 31 15:31:26 2017 +0000 > > Add OP_MULTICONCAT op > > Allow multiple OP_CONCAT, OP_CONST ops, plus optionally an OP_SASSIGN > or OP_STRINGIFY, to be combined into a single OP_MULTICONCAT op, > which can > make things a *lot* faster: 4x or more. > ... > ##### > > ... appears to have broken CPAN distribution Bit-Vector, version 7.4. 5 > unit tests in t/30__overloaded.t start failing at the commit cited. > > The tests in that test file are not very debugging-friendly. I will > attach a reduced test script once I have an RT number. > > Thank you very much. > Jim Keenan
Attaching 132385-bit-vector-overload.t. This is a couple of hours work reducing t/30__overload.t from the Bit-Vector CPAN distribution. The 'zzz' tests pass with perl-5.26.0 and start to fail at the commit cited. Thank you very much. -- James E Keenan (jkeenan@cpan.org)
Subject: 132385-bit-vector-overload.t
#!perl -w use strict; no strict "vars"; use Bit::Vector::Overload; $Bit::Vector::CONFIG[2] = 3; use Test::More (tests => 15); # wrong parameter checks: no warnings 'once'; $set = Bit::Vector->new(500); $operator = '.'; %operator_list = ( $operator => 2 ); $parms = $operator_list{$operator}; $obj = 0x000E9CE0; $fake = \$obj; ok(ref($fake) eq 'SCALAR', 'SCALAR reference'); test_fake($parms); $fake = [ ]; ok(ref($fake) eq 'ARRAY', 'ARRAY reference'); test_fake($parms); $fake = { }; ok(ref($fake) eq 'HASH', 'HASH reference'); test_fake($parms); $fake = sub { }; ok(ref($fake) eq 'CODE', 'CODE reference'); test_fake($parms); $obj = { }; $fake = \$obj; ok(ref($fake) eq 'REF', 'REF reference'); test_fake($parms); sub test_fake { my($parms) = @_; my($op,$message); $op = $operator; $op =~ s/^[a-wyz]+$/cmp/; $message = quotemeta("illegal operand type in overloaded '$op' operator"); $action = "\$temp = \$set $operator \$fake"; eval "$action"; ok($@ =~ $message, "yyy"); $action = "\$temp = \$fake $operator \$set"; eval "$action"; ok($@ =~ $message, "zzz"); }
Download (untitled) / with headers
text/plain 226b
Bit::Vector has extensive dependencies: http://deps.cpantesters.org/depended-on-by.pl?dist=Bit-Vector So we should prioritize investigation of these test failures. Thank you very much. -- James E Keenan (jkeenan@cpan.org)
Date: Fri, 03 Nov 2017 21:23:03 +0100
From: Andreas Koenig <andreas.koenig.7os6VVqR [...] franz.ak.mind.de>
Subject: Re: [perl #132385] BBC: Commit e839e6ed99c6b25aee589f56bb58de2f8fa00f41 breaks Bit-Vector-7.4
To: perl5-porters [...] perl.org
Also affected: BRUMMETT/Devel-Chitin-0.11.tar.gz -- andreas
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 607b
On Fri, 03 Nov 2017 20:23:20 GMT, andreas.koenig.7os6VVqR@franz.ak.mind.de wrote: Show quoted text
> Also affected: BRUMMETT/Devel-Chitin-0.11.tar.gz
Here is the output from the failing test. This may be more easily diagnosable than the Bit-Vector problem, as the output has language which points to the part of the code recently changed. Since this is a module that pokes down into the Perl (debugging) internals, it may be a case where the expectations expressed in the failing tests need to be updated to reflect (presumably sound) changes in the internals. Thank you very much. -- James E Keenan (jkeenan@cpan.org)
Subject: 132385-devel-chitin-t-20-optree-t.output.txt.gz

Message body not shown because it is not plain text.

Date: Sat, 4 Nov 2017 11:26:37 +0000
CC: perl5-porters [...] perl.org
To: James E Keenan via RT <perlbug-followup [...] perl.org>
From: Dave Mitchell <davem [...] iabyn.com>
Subject: Re: [perl #132385] BBC: Commit e839e6ed99c6b25aee589f56bb58de2f8fa00f41 breaks Bit-Vector-7.4
Download (untitled) / with headers
text/plain 1.8k
On Wed, Nov 01, 2017 at 09:01:38AM -0700, James E Keenan via RT wrote: Show quoted text
> On Wed, 01 Nov 2017 15:53:12 GMT, jkeenan@pobox.com wrote:
> > > > This recent commit ... > > > > ##### > > commit e839e6ed99c6b25aee589f56bb58de2f8fa00f41 > > Author: David Mitchell <davem@iabyn.com> > > AuthorDate: Tue Aug 8 18:42:14 2017 +0100 > > Commit: David Mitchell <davem@iabyn.com> > > CommitDate: Tue Oct 31 15:31:26 2017 +0000 > > > > Add OP_MULTICONCAT op > > > > Allow multiple OP_CONCAT, OP_CONST ops, plus optionally an OP_SASSIGN > > or OP_STRINGIFY, to be combined into a single OP_MULTICONCAT op, > > which can > > make things a *lot* faster: 4x or more. > > ... > > ##### > > > > ... appears to have broken CPAN distribution Bit-Vector, version 7.4. 5 > > unit tests in t/30__overloaded.t start failing at the commit cited. > > > > The tests in that test file are not very debugging-friendly. I will > > attach a reduced test script once I have an RT number. > > > > Thank you very much. > > Jim Keenan
>
Thanks for the reduction. I've pushed pushed this fix: commit b3ab0375cbf2dd5732e06233d36e4d80d37cf211 Author: David Mitchell <davem@iabyn.com> AuthorDate: Sat Nov 4 10:30:00 2017 +0000 Commit: David Mitchell <davem@iabyn.com> CommitDate: Sat Nov 4 10:33:51 2017 +0000 pp_multiconcat: don't stringify LHS overload arg RT #132385 In something like $a1 . $a2 where $a2 is overloaded, the concat overload method was being called like concat($a2, "$a1", 1); (The 1 indicated that the args are reversed). This commit changes it so that it's called as concat($a2, $a1, 1); i.e. that the original arg is passed in rather than a stringified copy of it. This is important if for example $a1 is a ref. -- That he said that that that that is is is debatable, is debatable.
Subject: Re: [perl #132385] BBC: Commit e839e6ed breaks Bit-Vector-7.4
From: Dave Mitchell <davem [...] iabyn.com>
Date: Sat, 4 Nov 2017 11:29:05 +0000
To: James E Keenan via RT <perlbug-followup [...] perl.org>
CC: perl5-porters [...] perl.org
On Fri, Nov 03, 2017 at 05:28:56PM -0700, James E Keenan via RT wrote: Show quoted text
> On Fri, 03 Nov 2017 20:23:20 GMT, andreas.koenig.7os6VVqR@franz.ak.mind.de wrote:
> > Also affected: BRUMMETT/Devel-Chitin-0.11.tar.gz
> > Here is the output from the failing test. This may be more easily > diagnosable than the Bit-Vector problem, as the output has language > which points to the part of the code recently changed. > > Since this is a module that pokes down into the Perl (debugging) > internals, it may be a case where the expectations expressed in the > failing tests need to be updated to reflect (presumably sound) changes > in the internals.
I haven't looked closely, but this does indeed seem to be the case. The module needs to be updated to know about the OP_MULITCONCAT op. -- Music lesson: a symbiotic relationship whereby a pupil's embellishments concerning the amount of practice performed since the last lesson are rewarded with embellishments from the teacher concerning the pupil's progress over the corresponding period.
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 1.1k
On Sat, 04 Nov 2017 11:29:24 GMT, davem wrote: Show quoted text
> On Fri, Nov 03, 2017 at 05:28:56PM -0700, James E Keenan via RT wrote:
> > On Fri, 03 Nov 2017 20:23:20 GMT, > > andreas.koenig.7os6VVqR@franz.ak.mind.de wrote:
> > > Also affected: BRUMMETT/Devel-Chitin-0.11.tar.gz
> > > > Here is the output from the failing test. This may be more easily > > diagnosable than the Bit-Vector problem, as the output has language > > which points to the part of the code recently changed. > > > > Since this is a module that pokes down into the Perl (debugging) > > internals, it may be a case where the expectations expressed in the > > failing tests need to be updated to reflect (presumably sound) > > changes > > in the internals.
> > I haven't looked closely, but this does indeed seem to be the case. > The module needs to be updated to know about the OP_MULITCONCAT op.
I have opened this ticket in Devel-Chitin's issue tracker: https://rt.cpan.org/Ticket/Display.html?id=123510 I am taking this ticket for the purpose of closing it within 7 days unless new problems are reported. Thank you very much. -- James E Keenan (jkeenan@cpan.org)
Date: Sat, 04 Nov 2017 23:05:34 +0100
Subject: Re: [perl #132385] BBC: Commit e839e6ed breaks Bit-Vector-7.4
From: Andreas Koenig <andreas.koenig.7os6VVqR [...] franz.ak.mind.de>
To: "James E Keenan via RT" <perlbug-followup [...] perl.org>
CC: perl5-porters [...] perl.org
Also affected: VPIT/Lexical-Types-0.16.tar.gz -- andreas
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 1.2k
On Sat, 04 Nov 2017 22:05:55 GMT, andreas.koenig.7os6VVqR@franz.ak.mind.de wrote: Show quoted text
> Also affected: VPIT/Lexical-Types-0.16.tar.gz >
Here is the failure output for this library at commit 83a320f: ##### [Lexical-Types-0.16] 876 $ bleadprove t/24-scalar-tie.t t/24-scalar-tie.t .. 1..12 ok 1 - $x ok 2 - $x contains the right thing ok 3 - $x . "foo" ok 4 - $x . "foo" contains the right thing not ok 5 - $y # Failed test '$y' # at t/24-scalar-tie.t line 49. # got: '' # expected: 'Lexical::Types::Test::Str' ok 6 - $y contains the right thing ok 7 - $x ok 8 - $x contains the right thing ok 9 - $x . "foo" ok 10 - $x . "foo" contains the right thing not ok 11 - $y # Failed test '$y' # at t/24-scalar-tie.t line 49. # got: '' # expected: 'Lexical::Types::Test::Str' ok 12 - $y contains the right thing # Looks like you failed 2 tests of 12. Dubious, test returned 2 (wstat 512, 0x200) Failed 2/12 subtests Test Summary Report ------------------- t/24-scalar-tie.t (Wstat: 512 Tests: 12 Failed: 2) Failed tests: 5, 11 Non-zero exit status: 2 Files=1, Tests=12, 0 wallclock secs ( 0.03 usr 0.00 sys + 0.04 cusr 0.00 csys = 0.07 CPU) Result: FAIL ##### -- James E Keenan (jkeenan@cpan.org)
Date: Sun, 5 Nov 2017 14:04:41 +0000
Subject: Re: [perl #132385] BBC: Commit e839e6ed breaks Bit-Vector-7.4
To: Andreas Koenig <andreas.koenig.7os6VVqR [...] franz.ak.mind.de>
From: Dave Mitchell <davem [...] iabyn.com>
CC: James E Keenan via RT <perlbug-followup [...] perl.org>, perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 669b
On Sat, Nov 04, 2017 at 11:05:34PM +0100, Andreas Koenig wrote: Show quoted text
> Also affected: VPIT/Lexical-Types-0.16.tar.gz
The first test which fails is using this code my Str $y = "bar" . $x; and the OP_MULTICONCAT optimisation optimises away the padsv($y) and sassign. Vincent either needs to fix Lexical-Types to cope with this new reality, or come up with a good reason why concatenation to typed lexicals shouldn't be optimised, or should be optimised in a different way. -- A power surge on the Bridge is rapidly and correctly diagnosed as a faulty capacitor by the highly-trained and competent engineering staff. -- Things That Never Happen in "Star Trek" #9
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 910b
On Sun, 05 Nov 2017 14:05:01 GMT, davem wrote: Show quoted text
> On Sat, Nov 04, 2017 at 11:05:34PM +0100, Andreas Koenig wrote:
> > Also affected: VPIT/Lexical-Types-0.16.tar.gz
> > The first test which fails is using this code > > my Str $y = "bar" . $x; > > and the OP_MULTICONCAT optimisation optimises away the padsv($y) and > sassign. > > Vincent either needs to fix Lexical-Types to cope with this new reality, > or come up with a good reason why concatenation to typed lexicals > shouldn't be optimised, or should be optimised in a different way. >
Dave, that makes it seems as if this code change is a fait accompli. While I think the change is probably beneficial, I suspect I'm not alone in having been unaware of the change until it actually happened. Since the change probably breaks previously legitimate code, can you provide more context? Thank you very much. -- James E Keenan (jkeenan@cpan.org)
To: perl5-porters [...] perl.org
From: "Vincent Pit (VPIT)" <perl [...] profvince.com>
Date: Sun, 5 Nov 2017 16:33:56 +0100
Subject: Re: [perl #132385] BBC: Commit e839e6ed breaks Bit-Vector-7.4
Download (untitled) / with headers
text/plain 698b
Le 05/11/2017 à 15:04, Dave Mitchell a écrit : Show quoted text
> On Sat, Nov 04, 2017 at 11:05:34PM +0100, Andreas Koenig wrote:
>> Also affected: VPIT/Lexical-Types-0.16.tar.gz
> > The first test which fails is using this code > > my Str $y = "bar" . $x; > > and the OP_MULTICONCAT optimisation optimises away the padsv($y) and > sassign. > > Vincent either needs to fix Lexical-Types to cope with this new reality, > or come up with a good reason why concatenation to typed lexicals > shouldn't be optimised, or should be optimised in a different way. >
Vincent might end up fixing this, but for the time being he doesn't feel like he "needs" to do anything. This is volunteer work, after all.
To: Dave Mitchell <davem [...] iabyn.com>, Andreas Koenig <andreas.koenig.7os6VVqR [...] franz.ak.mind.de>
From: Sawyer X <xsawyerx [...] gmail.com>
CC: James E Keenan via RT <perlbug-followup [...] perl.org>, perl5-porters [...] perl.org
Date: Sun, 5 Nov 2017 22:39:55 +0100
Subject: Re: [perl #132385] BBC: Commit e839e6ed breaks Bit-Vector-7.4
Download (untitled) / with headers
text/plain 369b
On 11/05/2017 03:04 PM, Dave Mitchell wrote: Show quoted text
> On Sat, Nov 04, 2017 at 11:05:34PM +0100, Andreas Koenig wrote:
>> Also affected: VPIT/Lexical-Types-0.16.tar.gz
> The first test which fails is using this code > > my Str $y = "bar" . $x; > > and the OP_MULTICONCAT optimisation optimises away the padsv($y) and > sassign.
What is the difference in ops afterwards?
CC: Andreas Koenig <andreas.koenig.7os6VVqR [...] franz.ak.mind.de>, James E Keenan via RT <perlbug-followup [...] perl.org>, perl5-porters [...] perl.org
From: Dave Mitchell <davem [...] iabyn.com>
To: Sawyer X <xsawyerx [...] gmail.com>
Subject: Re: [perl #132385] BBC: Commit e839e6ed breaks Bit-Vector-7.4
Date: Sun, 5 Nov 2017 22:25:20 +0000
On Sun, Nov 05, 2017 at 10:39:55PM +0100, Sawyer X wrote: Show quoted text
> > > On 11/05/2017 03:04 PM, Dave Mitchell wrote:
> > On Sat, Nov 04, 2017 at 11:05:34PM +0100, Andreas Koenig wrote:
> >> Also affected: VPIT/Lexical-Types-0.16.tar.gz
> > The first test which fails is using this code > > > > my Str $y = "bar" . $x; > > > > and the OP_MULTICONCAT optimisation optimises away the padsv($y) and > > sassign.
> > What is the difference in ops afterwards?
Previously: $ perl5260t -MO=Concise,-exec -e' {package Str} my Str $y = "bar" . $x;' ... 7 <$> const[PV "bar"] s 8 <#> gvsv[*x] s 9 <2> concat[t3] sK/2 a <0> padsv[$y:3,4] sRM*/LVINTRO b <2> sassign vKS/2 now: $ ./perl -Ilib -MO=Concise,-exec -e' {package Str} my Str $y = "bar" . $x;' ... 7 <#> gvsv[*x] s 8 <+> multiconcat("bar",3,-1)[$y:3,4] vK/LVINTRO,TARGMY Note that normally, making the lexical var typed makes no difference to the generated optree, or the runtime execution. -- Red sky at night - gerroff my land! Red sky at morning - gerroff my land! -- old farmers' sayings #14
Date: Mon, 13 Nov 2017 16:12:16 +0000
Subject: Re: [perl #132385] BBC: Commit e839e6ed breaks Bit-Vector-7.4
CC: perl5-porters [...] perl.org, "Vincent Pit (VPIT)" <perl [...] profvince.com>
To: James E Keenan via RT <perlbug-followup [...] perl.org>
From: Dave Mitchell <davem [...] iabyn.com>
Download (untitled) / with headers
text/plain 1.9k
On Sun, Nov 05, 2017 at 08:43:12AM -0800, James E Keenan via RT wrote: Show quoted text
> On Sun, 05 Nov 2017 14:05:01 GMT, davem wrote:
> > On Sat, Nov 04, 2017 at 11:05:34PM +0100, Andreas Koenig wrote:
> > > Also affected: VPIT/Lexical-Types-0.16.tar.gz
> > > > The first test which fails is using this code > > > > my Str $y = "bar" . $x; > > > > and the OP_MULTICONCAT optimisation optimises away the padsv($y) and > > sassign. > > > > Vincent either needs to fix Lexical-Types to cope with this new reality, > > or come up with a good reason why concatenation to typed lexicals > > shouldn't be optimised, or should be optimised in a different way. > >
> > Dave, that makes it seems as if this code change is a fait accompli. > While I think the change is probably beneficial, I suspect I'm not alone > in having been unaware of the change until it actually happened. Since > the change probably breaks previously legitimate code, can you provide > more context?
Nothing has changed in normal perl code as far as I'm aware. All 'my Foo $foo' does is, at compile time, mark in the name slot of the pad, that the lexical has type 'Foo'. This normally has no runtime effect, apart from some extra checks in hash ref lookups to implement fields.pm functionality. Lexical-Types is doing something weird to achieve its effect. I had a quick look at the code, but couldn't tell what it was doing to achieve it. Which is why I batted it back into Vincent's court with my badly-phrased "needs to" email. A better phrasing might have been: My very provisional analysis is that perl is not at fault here. I'm happy for someone to convince me otherwise, but in the meantime I'm not imminently planning on investigating this breakage further. -- Spock (or Data) is fired from his high-ranking position for not being able to understand the most basic nuances of about one in three sentences that anyone says to him. -- Things That Never Happen in "Star Trek" #19
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 925b
On Sat, 04 Nov 2017 14:14:47 GMT, jkeenan wrote: Show quoted text
> > > On Fri, 03 Nov 2017 20:23:20 GMT, > > > andreas.koenig.7os6VVqR@franz.ak.mind.de wrote:
> > > > Also affected: BRUMMETT/Devel-Chitin-0.11.tar.gz
> > > > > > Here is the output from the failing test. This may be more easily > > > diagnosable than the Bit-Vector problem, as the output has language > > > which points to the part of the code recently changed. > > > > > > Since this is a module that pokes down into the Perl (debugging) > > > internals, it may be a case where the expectations expressed in the > > > failing tests need to be updated to reflect (presumably sound) > > > changes > > > in the internals.
> >
> I have opened this ticket in Devel-Chitin's issue tracker: > https://rt.cpan.org/Ticket/Display.html?id=123510 >
The author of Devel-Chitin has adjusted that module's code and it now installs against blead. -- James E Keenan (jkeenan@cpan.org)
Date: Thu, 16 Nov 2017 11:42:48 +0100
Subject: Re: [perl #132385] BBC: Commit e839e6ed breaks Bit-Vector-7.4
CC: perl5-porters [...] perl.org, "Vincent Pit (VPIT)" <perl [...] profvince.com>
To: Dave Mitchell <davem [...] iabyn.com>, James E Keenan via RT <perlbug-followup [...] perl.org>
From: Sawyer X <xsawyerx [...] gmail.com>
Download (untitled) / with headers
text/plain 1.9k
On 11/13/2017 05:12 PM, Dave Mitchell wrote: Show quoted text
> On Sun, Nov 05, 2017 at 08:43:12AM -0800, James E Keenan via RT wrote:
>> On Sun, 05 Nov 2017 14:05:01 GMT, davem wrote:
>>> On Sat, Nov 04, 2017 at 11:05:34PM +0100, Andreas Koenig wrote:
>>>> Also affected: VPIT/Lexical-Types-0.16.tar.gz
>>> The first test which fails is using this code >>> >>> my Str $y = "bar" . $x; >>> >>> and the OP_MULTICONCAT optimisation optimises away the padsv($y) and >>> sassign. >>> >>> Vincent either needs to fix Lexical-Types to cope with this new reality, >>> or come up with a good reason why concatenation to typed lexicals >>> shouldn't be optimised, or should be optimised in a different way. >>>
>> Dave, that makes it seems as if this code change is a fait accompli. >> While I think the change is probably beneficial, I suspect I'm not alone >> in having been unaware of the change until it actually happened. Since >> the change probably breaks previously legitimate code, can you provide >> more context?
> Nothing has changed in normal perl code as far as I'm aware. All 'my Foo > $foo' does is, at compile time, mark in the name slot of the pad, that the > lexical has type 'Foo'. This normally has no runtime effect, apart from > some extra checks in hash ref lookups to implement fields.pm > functionality. > > Lexical-Types is doing something weird to achieve its effect. I had a > quick look at the code, but couldn't tell what it was doing to achieve it. > Which is why I batted it back into Vincent's court with my badly-phrased > "needs to" email. > > A better phrasing might have been: > > My very provisional analysis is that perl is not at fault here. I'm > happy for someone to convince me otherwise, but in the meantime I'm > not imminently planning on investigating this breakage further.
This is fine by me, but I would like to keep the ticket open. Once CPAN sees a new release (or, alternatively, if Dave is provided a convincing argument why the change in core should be undone), we could resolve this issue.
From: Andreas Koenig <andreas.koenig.7os6VVqR [...] franz.ak.mind.de>
To: Sawyer X <xsawyerx [...] gmail.com>
Subject: Re: [perl #132385] BBC: Commit e839e6ed breaks Bit-Vector-7.4
Date: Fri, 17 Nov 2017 16:21:19 +0100
CC: Dave Mitchell <davem [...] iabyn.com>, James E Keenan via RT <perlbug-followup [...] perl.org>, perl5-porters [...] perl.org, "Vincent Pit \(VPIT\)" <perl [...] profvince.com>
Als affected: ASG/Whatever-0.23.tar.gz -- andreas
To: Andreas Koenig <andreas.koenig.7os6VVqR [...] franz.ak.mind.de>
Date: Mon, 20 Nov 2017 15:38:55 +0000
Subject: Re: [perl #132385] BBC: Commit e839e6ed breaks Bit-Vector-7.4
CC: Sawyer X <xsawyerx [...] gmail.com>, James E Keenan via RT <perlbug-followup [...] perl.org>, perl5-porters [...] perl.org, "Vincent Pit (VPIT)" <perl [...] profvince.com>
From: Dave Mitchell <davem [...] iabyn.com>
Download (untitled) / with headers
text/plain 1.2k
On Fri, Nov 17, 2017 at 04:21:19PM +0100, Andreas Koenig wrote: Show quoted text
> Als affected: ASG/Whatever-0.23.tar.gz
Fixed with the below: commit 1a98acd9b14cfb3953d2b14eee2394454f92f0c8 Author: David Mitchell <davem@iabyn.com> AuthorDate: Mon Nov 20 15:19:59 2017 +0000 Commit: David Mitchell <davem@iabyn.com> CommitDate: Mon Nov 20 15:26:47 2017 +0000 MULTICONCAT - use distinct TMPS for const overload Because OP_MULTICONCAT optimises away any const SVs, they have to be recreated if a concat overload method is called. Up until now (for efficiency) the same SvTEMP was used to create each const TEMP. This caused problems if an overload method saved a ref to the argument. This is easily fixed by not reusing the TEMP (and the extra inefficiency is small compared to the overall burden of calling out to an overloaded method). With this patch, the following test code changes from getting "BB" to getting "AB": my @a; use overload '.' => sub { push @a, \$_[1]; $_[0] }; my $o = bless []; my $x = $o . "A" . $o . 'B'; is "${$a[0]}${$a[2]}", "AB", "RT #132385"; -- "Emacs isn't a bad OS once you get used to it. It just lacks a decent editor."


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

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at perl.org