On Sun, Jun 30, 2024, at 13:37, Saki Takamachi wrote:
> 
> 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

Thanks, I would love to address your issues but you’ve given me nothing 
actionable to work with. Thank you for your time. 

— Rob

Reply via email to