On Sun, Aug 12, 2018 at 6:43 PM, Sara Golemon <poll...@php.net> wrote:

> On Sun, Aug 12, 2018 at 12:47 AM, Stanislav Malyshev
> <smalys...@gmail.com> wrote:
> > Undefined behavior is undefined :)
> >
> (Ignoring your followup for a moment)
> Even for undefined behavior, we should *try* to make the behavior
> repeatable.  I know we wouldn't need to, but we should always go for
> least surprise.
> It's the side-effect hiding in the array cast from print_r/var_dump or
> certain other presumable "read-only" actions causing the
> interpretation of of the object compare that's maximum surprise.
>
> >> <https://github.com/php/php-langspec/blob/master/spec/10-
> expressions.md#user-content-relational-operators>
> >
> > So looks like this part of the spec is violated, and I stand corrected -
> > it's actually defined in this case, and should be fixed to follow the
> > spec. I still think it makes little sense, but we have the spec, so we
> > have to follow the spec.
> >
> > In this case, it's ok to fix it in all active versions - the spec wins I
> > think. Or, we have to change the spec :)
> >
> Personally, I vote for fix on active branches, but it's not an urgent
> bug, so I'll give some more time for feedback before pushing the PR
> below.
>

I'd recommend against fixing active branches -- this is quite likely to
break some tests using sort() somewhere (even if there is no resulting
functional change), while the fix itself is probably very niche.

Nikita


> > Depends on what the "fix" is, I assume.
> >
> I went with https://github.com/php/php-src/pull/3434 which has the
> same overall complexity, though several more operations per element so
> it'll be nominally less performant.  Alternate implementations
> welcome.
>
> -Sara
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

Reply via email to