Hi Marcus, SPL code with this patch looks great, but ZE overloaded with helpers those are useful only for iterators. I wondered that ZE hasn't any helper for IS_ARRAY to arguments array conversion (may be I missed it).
I suggest reimplement zend_fcall_info_args() into zval *** zend_create_parameters_array(zval *args); and remove zend_fcall_info_call() Thanks. Dmitry. > -----Original Message----- > From: Marcus Boerger [mailto:[EMAIL PROTECTED] > Sent: Sunday, June 04, 2006 4:14 PM > To: Dmitry Stogov > Cc: internals@lists.php.net; [EMAIL PROTECTED]; 'Andi Gutmans'; > 'Zeev Suraski' > Subject: Re: MFHing zend_fcall_info_*() to 5.2 > > > Hello Dmitry, > > the 'f' requires at least the first helper, so it makes > sense to have all three of them in the engine. Attached you > will find the patch for the helpers and the 'f' thingie for > 5.2 and an additional patch for SPL to introduce > iterator_apply() which uses the stuff. > > marcus > > Wednesday, May 31, 2006, 12:46:59 PM, you wrote: > > > Hmm, > > > Seems 'f' really make sense for simplification. > > I am not sure about other helpers. > > I'll need to review patch once again. > > Could you include some use-cases (SPL patch that uses this one)? > > > Thanks. Dmitry. > > >> -----Original Message----- > >> From: Marcus Boerger [mailto:[EMAIL PROTECTED] > >> Sent: Wednesday, May 31, 2006 12:19 PM > >> To: Dmitry Stogov; internals@lists.php.net > >> Cc: [EMAIL PROTECTED]; 'Andi Gutmans'; Zeev Suraski > >> Subject: Re: MFHing zend_fcall_info_*() to 5.2 > >> > >> > >> Hello Dmitry, > >> > >> my patch doesn't change anything. If just adds stuff that > >> deals with defined functions only. If now you want to support > >> all functions that can be defined later it wouldn't work this > >> way (1). Actually it would require parsing the zval and > >> checking whether it might get callable in some future. While > >> this is the right solution for error handlers it is not the > >> right way for stuff like callback in array and SPL functions. > >> Once those are called the callback is used hence there is no > >> way it can suddenly come out of nowhere. My patch now > >> adresses this in a way that is much more efficient than doing > >> a two phase approach. > >> > >> best regards > >> marcus > >> > >> (1) I experiemened with 'F' parsing that only verified if > >> something might get callable at some point. Though that > >> worked it was unneccessary slow for the intended purpose. > >> > >> Wednesday, May 31, 2006, 8:29:01 AM, you wrote: > >> > >> > Hi Marcus, > >> > >> > We discussed the patch. > >> > >> > Several notes: > >> > PHP allowed pass callback function or method that is not > >> defined yet. > >> > Your patch disallows this. > >> > >> > <?php > >> > some_internal_func("foo"); > >> > eval("function foo() {}"); > >> ?>> > >> > >> > Usage of default values for functions will be problematic > >> with it. I > >> > don't think that we really need special case for 'callback' > >> afguments. > >> > (It would be good for strong-typed language). > >> > >> > According to helpers, I would like suggest to add them into SPL > >> > itself and don't overload ZE. > >> > >> I can do so but don't see sense in doing so. > >> > >> best regards > >> marcus > >> > >> >> >Date: Sat, 27 May 2006 22:32:13 +0200 > >> >> >From: Marcus Boerger <[EMAIL PROTECTED]> > >> >> >Reply-To: Marcus Boerger <[EMAIL PROTECTED]> > >> >> >To: Andi Gutmans <[EMAIL PROTECTED]>, Zeev Suraski <[EMAIL PROTECTED]>, > >> >> > Ilia Alshanetsky <[EMAIL PROTECTED]> > >> >> >Cc: internals@lists.php.net > >> >> >Subject: MFHing zend_fcall_info_*() to 5.2 > >> >> >X-Bogosity: No, tests=bogofilter, spamicity=0.000475, > >> version=0.92.8 > >> >> > > >> >> >Hello Andi, Zeev, Ilia, > >> >> > > >> >> > the attached patch adds three new functions that > make calling > >> >> >functions a lot easier - at least for me in SPL. And it also > >> >> does a few > >> >> >things correct which are probably overseen easily. The > >> >> addition works > >> >> >in HEAD already and paases all memcheck tests idid so far. > >> > >> > >> > >> > > > > > > Best regards, > Marcus > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php