On Tue, Dec 12, 2023 at 1:00 PM Robert Landers <landers.rob...@gmail.com> wrote:
> > Hey Gina, > > > GMP supports operator overloading > > GMP kinda-sorta-most-of-the-time supports operator overloading. > Sometimes ... it doesn't. I implemented a field library in PHP (for > work a couple of years ago) and occasionally, overloading would cast > things back to float/int and break the math. I don't have access to > that code, so I don't have any examples readily available (and the > fact that an extension can do overloading but we can't in user-land is > a whole different can of worms which made this library ridiculously > hard to work with -- we rewrote everything in Scala and never looked > back). Needless to say, if I were to go into a project that required > GMP, I wouldn't trust the overloading. > > Just my 2¢ > I tried not to bring that up in this discussion because it would probably sound bitter/unhelpful, but the lack of userland operator overloading is definitely something that makes a native decimal scalar more necessary. Voters have repeatedly rejected userland operator overloads. The last proposal was mine, and most of the people who voted not told me that they didn't have any real problems with the design, they just don't like operator overloads. Things like ext-decimal and GMP are always going to be clunky and annoying to use without them though. It's one of the reasons I considered writing my own implementation of a decimal scalar for core after my operator overload RFC was declined. The use case for a scalar decimal type is much stronger since nothing like it can be remotely implemented in userland at all. (I know from experience, I wrote from scratch the most comprehensive arbitrary precision math library in PHP.) Jordan