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. > 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