Re: Integer operations are implementation-defined

From: Date: Fri, 08 Aug 2014 21:57:13 +0000
Subject: Re: Integer operations are implementation-defined
References: 1  Groups: php.standards 
Request: Send a blank email to standards-+get-373@lists.php.net to get a copy of this message
On 8 Aug 2014, at 23:33, Drew Paroski <drewparoski@gmail.com> wrote: > Thanks for taking the time to further elaborate your position. If I'm hearing > you correctly, the main points you're putting forth seem to be (1) int->float > promotion is not as crappy as int wraparound for users, (2) there are a good > number of use cases where the int->float promotion is what users want or what > causes the least surprise for users, (3) the performance hit of having to > support int->float promotion is minor, (4) this behavior has been around for a > long time and while most apps don't depend on it, there are a small percentage > that do, (5) the bigint RFC might never land, or it might not land for a while, > and so in the meantime the spec should specify the existing php.net behavior > that some apps in the wild currently rely on, and (6) given all the points > above, it seems like a win to avoid making integer overflow an issue where > users have to worry about different implementations doing different things. Yep. That’s actually a much better and more succinct summary of my own argument than I could have possibly written. :) > I think your argument makes a lot of sense. Thinking about the issue more, it > seems like requiring int->float promotion on integer overflow is not > unreasonable. My main concern was avoiding the slippery slope of arguing that > the spec should always require the exact behavior of php.net PHP down to the > last detail. It sounds like there are some good reasons for requiring > int->float promotion aside from "this is how php.net PHP does it" :) > > Thanks again for entertaining my feedback and questions. Ah, I see. While I do have a certain bias towards what php.net PHP does, I wouldn’t say I’m necessarily in favour of always doing what php.net does, I just feel that way on this specific issue. Generally I want us to standardise on just one way to do most things unless there’s a particularly good reason. For example, float to int conversion is an unfortunate one as php.net PHP doesn’t consistently cast things like NaN and Infinity to the same integer values. :/ Thanks! -- Andrea Faulds http://ajf.me/

« previous php.standards (#373) next »