Re: [VOTE][RFC] Integer Semantics
| From: | Dmitry Stogov | Date: | Tue, 16 Sep 2014 10:05:43 +0000 |
| Subject: | Re: [VOTE][RFC] Integer Semantics | ||
| References: | 1 2 3 4 5 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-77241@lists.php.net to get a copy of this message | ||
you already made silent break for N << 64 and N >> 64, but it may be
explained as more consistent behaviour.
I don't see a big difference with negative shifts.
The real thing that I don't like - is a "boolean" result. Warning is not a
big problem.
Thanks. Dmitry.
On Tue, Sep 16, 2014 at 1:23 PM, Andrea Faulds <ajf@ajf.me> wrote:
>
> On 16 Sep 2014, at 10:16, Dmitry Stogov <dmitry@zend.com> wrote:
>
> > Shifts by negative number may make sense. (N << -1) => (N >> 1)
> > At least receiving "false" from shift is not very pleasant.
>
> The problem is that changing from the current behaviour (undefined in C,
> but typically a shift by (PHP_INT_MAX - $bits)) to do what you’d expect
> (shift in the opposite direction) would be a silent BC break. I think it’s
> better to just stop it altogether and raise an E_WARNING, where it’s at
> least obvious something went wrong, than change this behaviour silently.
>
> > In the patch you use SIZEOF_LONG. It probably should be changed to
> > SIZEOF_ZEND_LONG.
>
> Will fix, thanks for spotting that.
>
> --
> Andrea Faulds
> http://ajf.me/
>
>
>
>
>