Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:75781 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 5324 invoked from network); 21 Jul 2014 11:10:52 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 21 Jul 2014 11:10:52 -0000 Authentication-Results: pb1.pair.com header.from=nikita.ppv@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=nikita.ppv@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.218.49 as permitted sender) X-PHP-List-Original-Sender: nikita.ppv@gmail.com X-Host-Fingerprint: 209.85.218.49 mail-oi0-f49.google.com Received: from [209.85.218.49] ([209.85.218.49:56189] helo=mail-oi0-f49.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id E6/C0-01457-935FCC35 for ; Mon, 21 Jul 2014 07:10:50 -0400 Received: by mail-oi0-f49.google.com with SMTP id u20so3275142oif.22 for ; Mon, 21 Jul 2014 04:10:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=AzR3xoR16WdWWnzI3t8J9FHzGeclD9MEvGe+yCePmIQ=; b=DryiO0kWzQJiVcRf0gsSCoN5NCWL2X27K3njaCa9izCf3A9DOKvGyJm8TdTIFEER7G h8e+9OuI6Ea4bQnTF//e2ww9EtSKUBjxxfjW6KKyiHZdv35GlqQo6IqudHCMpgSEP/Ap Zq0w2E7UEI2ECRmzpmJ6pH3BhvRsfhaG7tu7UMDICtoUjL3x7LiQsZOlARbhnIfjGf1Z +enrpvYUVTwSysMufLrZkfbQEFIxddiZOjPS3NDyqaVqDZKeqwyg1PDiMaycPF8WCLNX oSVdp7iLBzACOiCDVBAIHUc95DjvSqWssOnB1U5MyAQZk+8jRptKerjYe1Dzb8uB8jh8 7dXA== MIME-Version: 1.0 X-Received: by 10.60.70.163 with SMTP id n3mr36399336oeu.48.1405941045394; Mon, 21 Jul 2014 04:10:45 -0700 (PDT) Received: by 10.182.132.2 with HTTP; Mon, 21 Jul 2014 04:10:45 -0700 (PDT) In-Reply-To: References: Date: Mon, 21 Jul 2014 13:10:45 +0200 Message-ID: To: Zeev Suraski Cc: PHP internals Content-Type: multipart/alternative; boundary=001a113335fa9602ca04feb22875 Subject: Re: [PHP-DEV] RFC: Move phpng to master From: nikita.ppv@gmail.com (Nikita Popov) --001a113335fa9602ca04feb22875 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Mon, Jul 21, 2014 at 9:31 AM, Zeev Suraski wrote: > All, > > As we=E2=80=99re getting closer to release 5.6.0, and given the very high= level of > interest in phpng, I think it=E2=80=99s time for us to provide some clari= ty > regarding what happens post 5.6.0. > > Dmitry and I wrote an RFC proposing that we merge phpng into master and > turn it into the basis of the next major version of PHP (name TBD). > > The RFC is available at https://wiki.php.net/rfc/phpng > There are actually two questions here: 1. Do we want to base the next major version on phpng? 2. Do we want to merge phpng into master? The latter is tied to the question whether or not we want to have a PHP 5.7 release in the meantime. I'm not really sure whether or not that would be good, I would recommend opening a separate thread about that question. Regarding the first question, I fully support basing the next major on phpng. Several people in this thread have raised concerns regarding the quality of phpng's API. As someone who has ported a number of extensions to be compatible with phpng and is currently in the process of writing a >10kloc patch based on phpng, I can without any doubt say that the new APIs are a good bit more friendly to internals developers. Some of the reasons why that is so: * The removal of one level of zval indirection in many places, as well as the need to allocate zvals. * Changing the zend_hash APIs to directly return zvals/pointers and generally integrate better with zvals. * Changing the zend_hash APIs to handle lengths like everything else does. * The introduction of zend_string. From my perspective phpng's APIs are an improvement over the current state, however there is still a lot of room for improvement. E.g. there is still a huge number of macros, which should probably be moved to inline functions, etc. I don't think anyone has a problem with doing these kinds of improvements, but I don't think they are really relevant to the question at hand (as these cleanups can happen regardless of which branch is used as the basis). I'd also love it if we could drop TSRMLS_* - iirc joe has a partial patch for better TLS handling, which couldn't be used previously due to concerns over internal API breaks. For a new majors those concerns shouldn't be a problem anymore :) Regarding the stability of the phpng branch: phpng definitely still contains bugs (which is quite obvious given the amount of code it changes) and I'm aware that it currently fails with many large testsuites. Obviously this will have to be resolved by the time we get anywhere close to a release. However we cannot wait until all bugs have been fixed before continuing other development for php next. We need a basis for php next and we need it now, so people know what they should develop against. This way stabilization of phpng will happen in parallel to other changes. Nikita --001a113335fa9602ca04feb22875--