On Sat, Jun 29, 2024, at 7:28 AM, Saki Takamachi wrote:
> Hi,
>
>> On Sat, Jun 29, 2024, at 02:13, Jordan LeDoux wrote:
>>>>> 4. The `static` distinction is also fairly meaningless, as in PHP there 
>>>>> is no situation possible where an operator overload can occur WITHOUT it 
>>>>> operating on objects themselves.
>>>> 
>>>> For this, that is the wrong approach. The actual behavior is on the type, 
>>>> not the instance. The object instances may not even know their value, they 
>>>> merely represent the value.
>>> 
>>> A GMP object instance that does not know its value? What are you even 
>>> talking about? Can you show me some code explaining what you mean? I had 
>>> literally months of this argument for the operator overloads RFC, and 
>>> studied the overload implementations in six other languages as part of 
>>> writing that RFC, I feel like I understand this topic fairly well. But I do 
>>> not understand what you are saying here.
>> 
>> A few minutes ago, I sent an email where I accidentally made the code 
>> non-static, and I think I see the merit in what you are saying. It felt so 
>> natural to use $this that I didn't even realize I was doing it wrong.
>> 
>> So, looking at your RFC and mine, I think this can be improved.
>> 
>> What would you suggest it look like and then we can work backwards from 
>> there?
>
> Here are my thoughts on your code.
>
> In theory, inheriting from this "improved GMP class" would allow 
> overloading of computational operators.
>
> In effect, this acts like a "calcable interface", with the constructor 
> passing in meaningless values ​​to the parent constructor and the add 
> method allowing the user to freely modify the return value.
>
> This means that virtually any userland class can use the operator 
> overloading feature via a "hack".
>
> This approach is completely wrong. Rather than proposing this as is, it 
> would be more constructive to propose support for operator overloading.
>
> Regards,
>
> Saki

For clarity (since I know from experience it's helpful to RFC authors to have a 
concrete sense of votes in advance): I will be voting No on this RFC.  As both 
Jordan and Saki have explained, it's a hideous hack that doesn't look like it 
would even work, much less be wise.  I'd much rather take a second swing at 
Jordan's original operator overloading RFC, which I supported and still 
support.  Let's do it right.

--Larry Garfield

Reply via email to