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