Argh. Can we please accelerate this somehow? This patch is necessary for the HTTP request decoding work in PHP 6 and we really should get it done sooner than later.

-Andrei

On Jan 23, 2007, at 10:01 AM, Dmitry Stogov wrote:

OK. Now your patch will work, but I would like to think about more elegant
solution.
The problem that I am busy with other work.
Could you please wait a week and then commit it if I won't return (on the
next Tuesday).

Thanks. Dmitry.

-----Original Message-----
From: Sara Golemon [mailto:[EMAIL PROTECTED]
Sent: Tuesday, January 23, 2007 12:34 PM
To: Dmitry Stogov
Cc: internals@lists.php.net; 'Andrei Zmievski'; 'Andi Gutmans'
Subject: Re: [PHP-DEV] Giving Globals the CV treatment [WAS:
Runtime JIT Proposals]


At first I don't understand why you are trying to
deallocate variable.

+               if (CG(active_op_array)->T == (parent->u.var - 1)) {
+                       CG(active_op_array)->T--;
+               }

Isn't the same variable reused as result of ZEND_FETCH_DIM?

Yeah, I hastily recanted that about three minutes after my post... It
was accidentally left in from a prior attempt.  You're
absolutely right
that it doesn't belong there.  Just my sloppiness in
preparing the patch
for posting.

The rest of patch seems proper, but I am not sure about
place. Why we
optimize @$a['b'] but not @$a->b and @$a->b()?

I would prefer to find more general solution.

Well, we could do it in the end_variable_parse, but at that point we
actually *do* have to erase an op and a temp var.  Doing it at this
stage prevents the extra op/tempvar from being allocated at all.

Looking at do_fetch_property, I notice that we're already doing this
(after a fashion) for turning $this->prop into an immediate FETCH_OBJ
(setting op1 to UNUSED to indicate $this).  This approach really just
builds on that existing solution.

I've updated the patch (adding FETCH_OBJ support and applying some
concepts from do_fetch_property's implementation for $this
optimization
to the FETCH_DIM/OBJ CV implementations).

I suppose the one alternate approach we could take would be to make a
macro/inline func out of this rewriting step so that the
DIM/OBJ parsers
can use the same code-base.  I might even suggest we look at
supporting
op1->IS_UNUSED for $this when used with array access on objects (but
that would require an update so that the opcode handler
supports it as
well).

-Sara


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