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