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
>
>
>