Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:93940 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 22421 invoked from network); 13 Jun 2016 15:23:12 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 13 Jun 2016 15:23:12 -0000 Authentication-Results: pb1.pair.com header.from=tyra3l@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=tyra3l@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 74.125.82.53 as permitted sender) X-PHP-List-Original-Sender: tyra3l@gmail.com X-Host-Fingerprint: 74.125.82.53 mail-wm0-f53.google.com Received: from [74.125.82.53] ([74.125.82.53:37617] helo=mail-wm0-f53.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 79/8E-12403-EDFCE575 for ; Mon, 13 Jun 2016 11:23:11 -0400 Received: by mail-wm0-f53.google.com with SMTP id k204so84700123wmk.0 for ; Mon, 13 Jun 2016 08:23:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=N/Ih/XipcrSBFbWFOP1ZejAYztIgRXN4c5duAtfL8C0=; b=hS63+F4POx6CMYwPd35U2R2M8junniq4d1/VV0IFpV9yPbvVlhFYGzaZ/2R1iFlx5C r3yRb46zRxX7ITCr1pWuROTqyotGMyfDeRSnENVj79GekZY+EwDMHDocDWP4D1qVEWvA 1SzQREHUaTdhn9jVuAcYmZbdPQ6eLAvxh0Zs+9ajOMEw1/ag7y/PfaPBgnBkLjcJ2Y7O LO4KcQQsYGaAdor8p7xxFwY/6J7REZPb4lMyUHYceNpj7pyAYz/aawrUxuJuVdZGwZZe VPmerum70wGPqQUwZqM+DSHuyCuZSMR/Vxqit6ck3K9eY/AovANX2m51A8F7nAcjkvIx jiPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=N/Ih/XipcrSBFbWFOP1ZejAYztIgRXN4c5duAtfL8C0=; b=Zg2tDKWb001gah2j7xsyGCl14K0hBF03BJQ3IHLHVLvulmhfZZNsfxUIcFC27X8Kss tSe9CKbuaooDNBKT2kiaukGFfqUwwwh7AictTg550p5vl9isEmoZUSsuqw7+Vo7BJD+v fmoD3l8dNmrZnnbaiYYFRzNZYBBhiopntQiE1oAVwg+YFySg/FLo2lm9+4jpcvNwz316 zMdrrv6VDlHPB2xM77C+6xR4pw2g7qlgs1hMeWs970D/cByz//DdKYyql9QSEC0DG5QM lwAbRoGf92z35nMtVUSi1IO4NkDxkKrdTpA++05tBfh9tQbLSALEQ3zy0/aHLUq41mGS 6qzQ== X-Gm-Message-State: ALyK8tJ3AYW+caXo/hTbRZ8p6/mWxj+Ew7lGMhJPo4xgSueNVrk4F/Idwb+RE26AxSxZb/Id3aoBcHkAWlQagw== X-Received: by 10.28.85.3 with SMTP id j3mr192830wmb.0.1465831387337; Mon, 13 Jun 2016 08:23:07 -0700 (PDT) MIME-Version: 1.0 Received: by 10.194.20.7 with HTTP; Mon, 13 Jun 2016 08:23:06 -0700 (PDT) In-Reply-To: References: <6c03dafd-093a-0087-6312-96fede93c5f0@gmail.com> <020a01d1c501$3d3d9420$b7b8bc60$@php.net> Date: Mon, 13 Jun 2016 17:23:06 +0200 Message-ID: To: Joe Watkins Cc: Rowan Collins , Anatol Belski , Joe Watkins , Davey Shafik , PHP Internals Content-Type: multipart/alternative; boundary=001a1141f04224995d05352a773f Subject: Re: [PHP-DEV] Is the "No BC Breaks in Minor Releases" policy enforceable? From: tyra3l@gmail.com (Ferenc Kovacs) --001a1141f04224995d05352a773f Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Mon, Jun 13, 2016 at 4:32 PM, Joe Watkins wrote: > Afternoon internals, > > > Is there a roadmap somewhere that describes this, or any background > discussion of doing this within the 7.x series, rather than planning for > 8.0? > > We have no such sensible thing as a plan :) > > The reason for the existence of PHP 7 (ng) is efficiency of the kind I > described, this is surely well understood by everyone. > > What may not be well understood is that the job is nothing like complete. > Vigilant observers will have noticed that Dmitry does indeed have a JIT f= or > NG, which is very useful research, but it sucks so hard that we can't > deploy it. > > The reason for this is that, in part, generated code doesn't look so much > different to code executed by the VM, though details differ considerably; > It needs to do at least the same job, it may need to do more (because of > guarding and other boring things). > > Without knowing anything about generating instructions anyone can tell > that a complicated Zend, with all kinds of edge cases and inconsistencies > (specifically regarding ZE) is going to necessitate the generation of > complicated code, to accommodate those edge cases and inconsistencies. > > A lot of effort is being put in to finding and resolving inconsistencies > in the engine such as this, a lot of effort has been expended and will be > expended on 7 in the pursuit of efficiency. A lot of this is of no > consequence to BC. > > You can count the number of people putting in the majority of this effort > on your fingers ... erecting a road block in front of them in the name of > unobtainable BC is harmful to the apparent goals of the project at this > time. > > The kinds of changes that must be delayed until 8.0 are surely going to b= e > proposed, and we will surely delay them by consensus. > > > This is my main concern, also > > I will update the RFC, if Dmitry doesn't, when voting is closed. > > I will ensure the change is properly documented in the manual also. > > > Ideally, this could lead to a revised policy > > I think our policy has always been to consider each proposal on a > case-by-case basis. That's all I have done, and all I am suggesting other= s > do. > > I know it's very strange to hear someone talking about "goals" ... > > We can waste a bunch of time trying to define them, voting on them, and s= o > on ... or, we can look at what is going on, and what has gone on, and com= e > to sensible conclusions. > > Cheers > Joe > > > On the other hand lack of release process and constant BC breaks also hindered the adoption of past PHP versions. With 7.0 we were in a good spot as we were able to package the BC breaks with major performance improvements which makes it attractive for people to upgrade(and still, with a successful 7.0 release we voted to delay the eol date for 5.6). While I don't want to impede progress we have to be careful about BC breaks, and especially when from the outside it can be seen as some people are above the rules/processes while others get gated by it. From the user POV I really liked what we were doing in the past: mark stuff first with E_DEPRECATED and then remove the feature later on. I think that our main problem is that we don't have a roadmap for major versions and historically our major release cycle was pretty slow (4.0.0: 2000, 5.0.0: 2004, 5.3 was basically a major version in 2009 and 7.0.0: 2015 dec), so now that a major just shipped people will try to squeeze in BC breaks regardless of our release process (and yes, it doesn't not help that the releaseprocess rfc was lacking clear definitions on some terms). As I mentioned before I don't wanna impede progress so not trying to block this specific rfc seeing how well the votes went, but I think it would be useful for the future governance if we could: 1, update/expand our releaseprocess rfc so that it reflects the actual/desired process and can spare us from the bureaucracy and word twisting to suite one's current position. 2, figure out how can we do BC breaks in a more timely manner (either via changing the releaseprocess, reclassifying what BC break means or having more frequent major versions). --=20 Ferenc Kov=C3=A1cs @Tyr43l - http://tyrael.hu --001a1141f04224995d05352a773f--