Hi Matt,

Now I know. :)
Anyway, I don't think this optimization will work often.

Send me the patch after Alpha1 release.

Thanks. Dmitry.


Matt Wilmas wrote:
> Hi Dmitry,
> 
> Do you know that with your changes, no substitution will happen in a
> namespace even when using :: prefix? :-/  (That's what I would do when I
> know it's global, for optimization.)  Or is that what you meant by "not so
> optimal?"
> 
> 
> - Matt
> 
> 
> ----- Original Message -----
> From: "Dmitry Stogov"
> Sent: Thursday, July 31, 2008
> 
>> Thanks Matt. I committed near the same patch.
>> It's not so optimal, but little bit more clear.
>>
>> Thanks. Dmitry.
>>
>> Matt Wilmas wrote:
>>> Hi Dmitry,
>>>
>>> For the behavior change that I mentioned in the other thread, with this
>>> code:
>>>
>>> function foo() {
>>>     static $a = -PHP_INT_MAX;
>>> }
>>>
>>> Which could work sometimes, and sometimes not (if in a namespace or
>>> ZEND_COMPILE_NO_CONSTANT_SUBSTITUTION is set).  I changed things so that
>>> there is no substitution of constants (except with CT_SUBST flag, like
>>> always) for compile time constants (ZEND_CT mode).  They don't create a
>>> FETCH_CONSTANT opcode anyway. :-)
>>>
>>> Another thing I realized wasn't getting optimized (runtime constants),
> which
>>> can be, is with:
>>>
>>> namespace foo;
>>> $a = ::PHP_INT_MAX;  // :: for global scope
>>>
>>> So the patch allows substitution there as well.
>>>
>>> http://realplain.com/php/ct_const_fixes.diff
>>> http://realplain.com/php/ct_const_fixes_5_3.diff
> 

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

Reply via email to