develooper Front page | perl.perl5.porters | Postings from July 2012

Re: [perl #114008] Bleadperl around v5.16.0-150-g5f9f83b breaks LESPEA/Project-Euler-0.20.tar.gz

Thread Previous | Thread Next
From:
Rafael Garcia-Suarez
Date:
July 14, 2012 06:05
Subject:
Re: [perl #114008] Bleadperl around v5.16.0-150-g5f9f83b breaks LESPEA/Project-Euler-0.20.tar.gz
Message ID:
CAMoYMM-eNcfKVWj2VVW-DBC375-wS3JSROQ7oMfmP3Yj1ngNxQ@mail.gmail.com
On 6 July 2012 16:38, Jesse Luehrs <doy@tozt.net> wrote:
> On Fri, Jul 06, 2012 at 01:28:49PM +0100, Nicholas Clark wrote:
>> On Thu, Jul 05, 2012 at 10:46:26PM -0700, Andreas J. Koenig via RT wrote:
>>
>> > f041cf0f9c6469c41de8b73d5f7b426710c3ff8b
>> > 5f9f83be9cdcd54449f7f40db078fe367d780475
>> > We cannot bisect more!
>>
>> For information:
>>
>> $ git log f041cf0f9c6469c41de8b73d5f7b426710c3ff8b^! 5f9f83be9cdcd54449f7f40db078fe367d780475
>> commit 5f9f83be9cdcd54449f7f40db078fe367d780475
>> Author: Rafael Garcia-Suarez <rgs@consttype.org>
>> Date:   Tue May 22 17:23:20 2012 +0200
>>
>>     Fix mktables bug due to the previous overload fix
>>
>>     Due to the previous patch, perl can't generate the operator for .= in
>>     package Property anymore (because fallback is '0' in that package), so
>>     we need to work around that; this patch implements the least intrusive
>>     workaround possible.
>>
>> commit f041cf0f9c6469c41de8b73d5f7b426710c3ff8b
>> Author: Rafael Garcia-Suarez <rgs@consttype.org>
>> Date:   Tue Mar 20 09:17:02 2012 +0100
>>
>>     Lookup overloaded assignment operators when trying to swap the arguments
>>
>>     This is in the case where we search for an overloaded operator when
>>     passing the AMGf_assign flag (we're executing an assignment operator
>>     like +=).
>>
>>     At the very beginning of Perl_amagic_call, if the flag AMGf_noleft is
>>     not passed, we first try to look up the overload method corresponding
>>     to the assignment operator, then the normal one if fallback is
>>     authorized. However, if this fails, when trying later to find
>>     overload magic with the arguments swapped (if AMGf_noright is not
>>     passed), this procedure was not used and we looked up directly the base
>>     operation from which the assignment operator might be derived.
>>     As a consequence of what an operator like += might have looked
>>     autogenerated even when fallback=>0 was passed.
>>
>>     This change only necessitates a minor adjustment in lib/overload.t,
>>     where an overloaded += method wasn't corresponding semantically to the
>>     overloaded + method of the same class, which can be seen as a
>>     pathological case.
>
> One more reason that I think we should revert this change.
>

Do you think the fix is incorrect ? It actually cleans up a part of
the overload code that was not symmetrical and sanitizes the semantics
of overload generation.

Thread Previous | Thread Next


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