Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:65165 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 50643 invoked from network); 25 Jan 2013 12:30:20 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 25 Jan 2013 12:30:20 -0000 Authentication-Results: pb1.pair.com smtp.mail=cpriest@zerocue.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=cpriest@zerocue.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zerocue.com designates 67.200.53.250 as permitted sender) X-PHP-List-Original-Sender: cpriest@zerocue.com X-Host-Fingerprint: 67.200.53.250 mail.zerocue.com Received: from [67.200.53.250] ([67.200.53.250:53103] helo=mail.zerocue.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id E9/C4-03402-BDA72015 for ; Fri, 25 Jan 2013 07:30:20 -0500 Received: from [172.17.0.122] (unknown [70.112.216.188]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mail.zerocue.com (Postfix) with ESMTPSA id 14E7D12034E; Fri, 25 Jan 2013 12:30:16 +0000 (UTC) Message-ID: <51027ACC.5020308@zerocue.com> Date: Fri, 25 Jan 2013 06:30:04 -0600 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130107 Thunderbird/17.0.2 MIME-Version: 1.0 To: Julien Pauli CC: Rasmus Lerdorf , Ralf Lang , internals@lists.php.net References: <51023AB1.2010607@b1-systems.de> <51024016.4010005@lerdorf.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] HEADS UP: Upcoming Feature Freeze for PHP 5.5.0 From: cpriest@zerocue.com (Clint Priest) On 1/25/2013 4:37 AM, Julien Pauli wrote: > On Fri, Jan 25, 2013 at 9:19 AM, Rasmus Lerdorf wrote: > >> And I can understand the lack of help. It is probably the most >> complicated piece of the entire stack. It is a an op_array juggler doing >> a complex dance on a tight rope backwards and blindfolded. It is >> essentially multi-threaded in that there are multiple processes all >> reading and writing the same chunk of memory while dealing with a >> compiler that spits out context-sensitive op_arrays that were never >> designed to be cached and executed this way. I'm not sure if anyone has a deep understanding of APC and the problems the existing compiler design causes for it, perhaps another great place to start on this project is to get a list of the high-level problems the compiler does or doesn't do that could be changed. Then we can break those down and identify the parts of the engine that will require some re-work. >> I firmly believe that we need opcode caching in core. I'm rather >> skeptical that simply moving pecl/apc to ext/apc is going to help users >> in any way. People have no trouble finding and installing APC today. The >> real issue here is robustness and lag time between a PHP release and and >> solid APC release and that has to do with resources which are scarce due >> to the code complexity. This is the real problem we need to solve. >> Either by a number of people stepping up to help with the existing APC >> code, or perhaps more realistically making it a priority in PHP 5.6 to >> streamline the engine and the executor for opcode caching and either >> including a heavily simplified version of APC or writing a new one. >> > That feels like a safe idea. I'm convinced that having more internals > documentation will help > developpers understand at least the engine (that's what interest us here). I agree that bringing some more documentation can only help; people with less experience or who have missing areas of expertise in the core will more easily be able to step up and help with the problem. > I know it's a hard task, but we all here have blogs where sometimes we > write great articles > about a part of internals, I think we should focus on working alltogether > writing a real technical doc for the engine, > that will help people (like me for example), understand some dark parts of > it, and then find ideas or solutions for it to > evolve the right way. This may only be my perception, but in having to learn what I did for the failed accessors project I felt like there were 2 or 3 more or less identical ways the compiler and/or executor was doing the same thing. Without further understanding I presumed it was because as time went by a new "way" was added because the old way just wasn't enough. In essence adding to the technical debt. Possibly/probably just a misconception of my own but that's the way it felt. I'd be happy to jump in and help fix this in any way I can but I don't even know where the string starts or what it looks like to unravel the problem at this point. -- -Clint