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

Reply via email to