Hi all,

----- Original Message -----
From: "Sara Golemon"
Sent: Monday, May 11, 2015

On Mon, May 11, 2015 at 5:12 PM, Matt Wilmas <php_li...@realplain.com> wrote:
----- Original Message -----
From: "Stanislav Malyshev" <smalys...@gmail.com>
Sent: Monday, May 11, 2015

argument. I'd like to propose making the order of evaluation defined
by splitting this into separate statements:

What is the purpose of this? I.e. why is it important that these notices
would be produced in certain order?

Logic, consistency, "polish," etc. :-)

Exactly this. :)

It's just my CDO kicking in.  It's not necessary for the language to
function. Heck, HHVM already matches PHP 5.1-7.0's out-of-order
behavior, so fixing PHP only creates double work for me.  I just look
at these error messages and twitch uncomfortably.

Hah, looks like this just changed last week after barely 3 weeks. :-P I didn't verify, just noticed the code change: http://git.php.net/?p=php-src.git;a=commitdiff;h=c09698753e7d1d95299dca54c8ca888c885fd45b

Andi hasn't objected, yet. :-O And ironically it was part of an optimization...

Now CONCAT is consistent, but not others. Which places need changing anyway? Just binary ops in VM?

A couple/few extra instructions are unavoidable, I guess on any architecture, for the intermediate save of op1, but can anyone show that it makes ANY measurable difference (other than instruction count)?

For ADD, MUL, IS_[NOT_]IDENTICAL, IS_[NOT_]EQUAL, BW_*, and BOOL_XOR, ops can be passed as

... result, op2, op1);

with no ill effects (I think) and still have the same (fewest) instructions as now! That is, if anyone thinks, or can show, that it matters. :-)

Whoops, didn't check first -- I see ADD, MUL, and IS_[NOT_]EQUAL (among others) are already consistent/fixed (but extra instructions :-D).

-Sara

- Matt

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to