On Tue, 20 Apr 2010, Dmitry Stogov wrote: > Derick Rethans wrote: > > On Tue, 13 Apr 2010, Dmitry Stogov wrote: > > > > > I've published all the patches, their description and performance > > > evaluation > > > at http://wiki.php.net/rfc/performanceimprovements > > > > I've a few questions and comments: > > > > http://wiki.php.net/rfc/performanceimprovements#zend_engine_vm_tuning > > > > You're writing that the ZEND_CATCH opcode has to be used with a constant > > class name, so how would "catch ( self $e )" be represented in op-codes now? > > I dropped such possibility. Does someone use it? > For me it looks useless. If it's really necessary I can try not to drop it.
You have a point, it looks quite useless. But of course, I am sure somebody has used this :) > > Some patches seem to be changing tests; I think we should avoid that and > > instead create a new test that only runs for the new version, and add a > > qualifier to the old one (the one that you're now modifying) to *not* run > > with the new PHP version. > > It's not a problem. I can do it. > > The patch made one test to emit warning messages in different order, but on > the other hand the change made the performance better. Yeah, I don't care so much about the order... more that "changing tests" is usually a bad thing. In order to make this easier, I'll give the "skip for specific versions" phpt section a shot this week. > > 3-literals.diff.txt makes the opcode arrays again a bit more complex to > > disect. Perhaps you could add a bit of documentation describing how all the > > things work together now? Like which index in whivh fields points to which > > other structure etc? > > it's not a problem to add a few words about it: > > - each op_array has an array of literals (constant values) > - opocde operands don't contain zval directly any more but points to this > table instead > - during compilation they are accessible by index e.g. > op_array->literals[opline->op1.constant].constant > - the pass_two() changes indexes into pointers so during execution they are > accessible by opline->op1.zv > > Do you like me to add this into WiKi or some text file? I've added a new section to the wiki at http://wiki.php.net/internals/engine with this information. regards, Derick -- http://derickrethans.nl | http://xdebug.org Like Xdebug? Consider a donation: http://xdebug.org/donate.php twitter: @derickr and @xdebug -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php