Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:89727 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 90857 invoked from network); 7 Dec 2015 21:18:50 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 7 Dec 2015 21:18:50 -0000 Authentication-Results: pb1.pair.com smtp.mail=php_lists@realplain.com; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=php_lists@realplain.com; sender-id=unknown Received-SPF: error (pb1.pair.com: domain realplain.com from 68.114.190.31 cause and error) X-PHP-List-Original-Sender: php_lists@realplain.com X-Host-Fingerprint: 68.114.190.31 mtaout006-public.msg.strl.va.charter.net Received: from [68.114.190.31] ([68.114.190.31:17878] helo=mtaout006-public.msg.strl.va.charter.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 6C/99-28320-7B7F5665 for ; Mon, 07 Dec 2015 16:18:48 -0500 Received: from impout005 ([68.114.189.20]) by mtaout006.msg.strl.va.charter.net (InterMail vM.9.00.021.00 201-2473-182) with ESMTP id <20151207211844.LIZT28537.mtaout006.msg.strl.va.charter.net@impout005>; Mon, 7 Dec 2015 15:18:44 -0600 Received: from pc1 ([97.87.188.16]) by impout005 with charter.net id qlJk1r00D0Mfu3D01lJkCC; Mon, 07 Dec 2015 15:18:44 -0600 X-Authority-Analysis: v=2.1 cv=S7lXwecP c=1 sm=1 tr=0 a=Ay788ph35uAhBIV2K373vw==:117 a=Ay788ph35uAhBIV2K373vw==:17 a=hOpmn2quAAAA:8 a=BCPeO_TGAAAA:8 a=8nJEP1OIZ-IA:10 a=67BIL_jfAAAA:8 a=gv2BdBVdgDyVcKBk1NYA:9 a=wPNLvfGTeEIA:10 Message-ID: To: , "Andrea Faulds" References: <5F562492D25B4650AD21E7B51AD3C6E5@pc1> <77.28.28320.361E5665@pb1.pair.com> Date: Mon, 7 Dec 2015 15:18:44 -0600 MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset="iso-8859-1"; reply-type=response Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2900.5931 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 Subject: Re: [PHP-DEV] Re: Compilation fails without FAST_ZPP From: php_lists@realplain.com ("Matt Wilmas") Hi, ----- Original Message ---- From: "Andrea Faulds" Sent: Monday, December 07, 2015 > Hi Matt, > > Matt Wilmas wrote: >> Hi Bob, all, >> >> After this commit: >> http://git.php.net/?p=php-src.git;a=commitdiff;h=509712c7d9056b4ceb50134bfeea1a1115720744 >> >> >> In streamsfuncs.c, line 996 has an extra comma; and line 1511 has #ifdef >> instead of #ifndef ... >> >> >> BTW, maybe with the changes I'll propose, all this extra FAST_ZPP stuff >> can be cleaned up, for 7.1 at least. > > Is it worth keeping these FAST_ZPP #ifdefs around, still? FAST_ZPP is > probably here to stay, and what was the core (not the entirety) of > FAST_ZPP is now always built regardless of whether the macro is defined, > because it shares parameter-handling code with zend_parse_parameters and > scalar type declarations. Hold up on changes to the FAST_ZPP parts at this point! :-) Like I [have] said, my changes are related and address that. Sadly, the patch was supposed to be ready 3 months ago. It's in the middle of beneficial refinement for the umpteenth time (first since summer, really :-D), and maybe it'll show up in a week or so *this* time. Anyway, I was under the impression that the 2 #ifdef'd versions were for comparing the 2 methods (which is what I was doing), or if, even now, the inline parameter parsing wanted to be disabled, for smaller code size... Besides the call sites, there's still stuff in zend_API.[ch] that's conditionally compiled... My inline (FAST_ZPP alternative) solution can have the inline parsing part (which I'm trying to make as small as possible) disabled, and use a new zend_fast_parse_parameters(), or whatever it's called (also used with inlining if param type is wrong). So, inlining or smallest [generated] code can be chosen with the same source. A set of always_inline helper functions will also convert the old zend_parse_parameters functions to use the new FAST method (with all common compilers), without runtime string specifier parsing... Generate code size <= current calls. Since at least one new function is needed, not sure what could be changed in 7.0 (I have some ideas), although there's also a faster function with runtime string parsing that IS fully compatible with 7.0. > One problem with keeping the #ifdefs is that the FAST_ZPP and > zend_parse_parameters versions of argument handling can and do go out of > sync. Also, I don't think it's even an actual compile-time option to > disable FAST_ZPP anyway. You have to modify the source code and comment > out the #define. Yep and yep and yep. > So, would there be any objection to getting rid of the #else branches in > such #ifdefs? > > Thanks! - Matt