Hi Marcus,

I don't like to commit it as is.

The problem that this seldom-used feature will slowdown each PHP call.
I'll measure performance lose on next week.

Please, test this patch too.
I might forget some edge cases.

Thanks. Dmitry.


> -----Original Message-----
> From: Marcus Boerger [mailto:[EMAIL PROTECTED] 
> Sent: Friday, March 31, 2006 6:42 PM
> To: Dmitry Stogov
> Cc: 'Michael Lively Jr.'; 'Andi Gutmans'; 'PHP-DEV'
> Subject: Re: [PHP-DEV] [PATCH] Late Static Binding (Take 2)
> 
> 
> Hello Dmitry,
> 
>   can't we just commit it and when sombody finds a better 
> working keyword we
>   change it? (I'd like to use this in SPL_Types, to precise 
> my reasoning).
> 
> regards
> marcus
> 
> Friday, March 31, 2006, 8:47:42 AM, you wrote:
> 
> > Hi Michael,
> 
> >> -----Original Message-----
> >> From: Michael Lively Jr. [mailto:[EMAIL PROTECTED]
> >> Sent: Thursday, March 30, 2006 8:53 PM
> >> To: Dmitry Stogov
> >> Cc: 'Andi Gutmans'; 'PHP-DEV'; 'Marcus Boerger'
> >> Subject: Re: [PHP-DEV] [PATCH] Late Static Binding (Take 2)
> >> 
> >> 
> >> I took a quick glance through it and it mostly makes sense 
> to me. If
> >> anyone could clear up a question when time permits: I don't fully 
> >> understand why both executor_globals and and execute_data 
> are used to 
> >> store the caller_scope pointer.
> 
> > EX(caller_scope) is just a temporary value it is set in 
> > ZEND_INIT_METHOD_CALL and copied into EG(caller_scope) in 
> > ZEND_DO_FCALL_BY_NAME. It is possible situation when sequence of 
> > instructions will have several ZEND_INIT_METHOD_CALL before first 
> > ZEND_DO_FCALL_BY_NAME. For example the following PHP code 
> will produce 
> > it:
> 
> > Foo::bar(test());
> 
> > To handle this situation EX(caller_scope) stored into special stack.
> 
> > (I made EG(caller_scope) work near in the same way as 
> EG(This) works).
> 
> >> I almost had a finished another patch myself using EG() 
> but I had to
> >> take a break to pay my bills :/. Thanks for looking at 
> this Dmitry. I 
> >> will go ahead and put together a more exhaustive use case for 
> >> this over 
> >> the weekend.
> 
> > Would you like to add (modify) something to my patch?
> 
> > Thanks. Dmitry.
> >  
> >> Mike Lively
> >> 
> >> Dmitry Stogov wrote:
> >> > Hi Mike,
> >> >
> >> > I finally found a day to look into your patch and make it
> >> work in all
> >> > (may be I forgot something) cases.
> >> >
> >> > Improved patch and test cases are attached.
> >> >
> >> > I still don't like name - "static",
> >> > and I am not sure that this concept is necessary for PHP.
> >> >
> >> > Thanks. Dmitry.
> >> >
> >> >   
> >> >> -----Original Message-----
> >> >> From: Mike Lively [mailto:[EMAIL PROTECTED]
> >> >> Sent: Thursday, March 09, 2006 12:06 AM
> >> >> To: Dmitry Stogov
> >> >> Cc: Andi Gutmans; PHP-DEV; Marcus Boerger
> >> >> Subject: [PHP-DEV] [PATCH] Late Static Binding (Take 2)
> >> >>
> >> >>
> >> >> On Wed, 2006-03-01 at 17:37 +0300, Dmitry Stogov wrote:
> >> >>     
> >> >>> 1) I would very like to see some real example where 
> "static" is 
> >> >>> necessary?
> >> >>>
> >> >>> 2) "static" is really bad name. I suggest "caller", Marcus 
> >> >>> thought about "class".
> >> >>>
> >> >>> 3) I COMPLETELY DISAGREE TO ADD RUNTIME DATA INTO 
> >> >>> zend_function/zend_op_array. We can try to store
> >> "caller_scope" in
> >> >>> execute_data.
> >> >>>
> >> >>> Thanks. Dmitry.
> >> >>>
> >> >>>       
> >> >> Rewrote the patch to use execute_data to store caller_scope. I 
> >> >> have not renamed any functions or keywords (still using
> >> >> static::) as I did not see any consensus on that yet.
> >> >>
> >> >> Please review the implementation of caller_scope and I can take 
> >> >> care of the naming issues when names are decided on.
> >> >>
> >> >> patch attached and also available at 
> >> >> http://test.ft11.net/_mlively/late-static-binding.patch
> >> >>
> >> >> It would be nice if the patch in PAT could be changed 
> to reference 
> >> >> this new version if the appropriate people have time.
> >> >>
> >> >>     
> >> >> 
> >> 
> ---------------------------------------------------------------------
> >> >> ---
> >> >>
> >> >> No virus found in this incoming message.
> >> >> Checked by AVG Free Edition.
> >> >> Version: 7.1.385 / Virus Database: 268.3.3/296 - Release Date:
> >> >> 3/29/2006
> >> >>     
> >> 
> >> 
> >> 
> 
> 
> 
> 
> 
> Best regards,
>  Marcus
> 
> -- 
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
> 
> 
> 

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

Reply via email to