Hi,

>> On Sun, Jun 30, 2024, at 13:05, Saki Takamachi wrote:
>> 
>> Hi,
>> 
>>>> I'm not sure. Does this mean that such "hack" is unavoidable?
>>>> 
>>>> And I don't really understand what "pointless hack" means. This would make 
>>>> sense if operator overloading was already allowed, but it isn't.
>>> 
>>> Not unavoidable, but pointless. For example, I attempted to create a String 
>>> class that used + for concatenation. This kinda works, but if you pass it 
>>> to something that takes a string, you get the underlying number and not the 
>>> string you were trying to store. This is because GMP takes over casting 
>>> forcing you to stick to numerical constructs.
>> 
>> I don't understand why you only consider the casting case. You can simply 
>> convert it to a string via a method. As long as don't use any casting at the 
>> end, users can implement it however they like. I don't think this is a 
>> pointless hack.
>> 
>> Also, allowing "hack" just because they're not useful is not a good idea.
> 
> We could just delete php-src, grab a beer, and watch the sunset. I don’t 
> think you’ll ever be able to stop some programmers from hacking things 
> together to solve business problems though. I’ve “hacked” weakmaps in 
> userland to make Hour(1) === (yes, there are three! Equals there) Minute(60).
> 
>> 
>> Again, if such functionality is provided, it should be exposed as formal 
>> support for operator overloading.
> 
> Thank you for your opinion, this RFC doesn’t stop that from happening and is 
> completely orthogonal.
> 
>> 
>>>> This is very confusing me. Why does this need to be a child class of GMP?
>>> 
>>> This is addressed in the current RFC text, if I missed something, please 
>>> ask!
>> 
>> I don't understand why the GMP RFC mentions environments where GMP is not 
>> used.
>> 
>> There are a few other points worth mentioning, but the existence of 
>> polyfills makes this especially confusing.
>> 
>> > To be usable, the developer must override the desired operations and make 
>> > them public
>> 
>> Is this referring to a polyfill? Or is this just a necessary step to 
>> override the overload?
> 
> I recommend reading up on what a polyfill is, and why they are useful, if you 
> are confused. But to answer your question, no, it has nothing to do with the 
> polyfill, it’s just a necessary step. The polyfill is just provided for 
> completeness. 
> 
>> 
>> Regards,
>> 
>> Saki
> 
> — Rob

I understand your point, and any further comment from me would probably be of 
little value to you. This will be my last post on this thread.

I will definitely vote against this RFC unless the issues I have pointed out 
are addressed. No matter how innocuous they may seem, I would rather not expose 
operator overloading in the form of such "hack".

Regards,

Saki

Reply via email to