Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:62930 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 96460 invoked from network); 10 Sep 2012 19:00:42 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 10 Sep 2012 19:00:42 -0000 Authentication-Results: pb1.pair.com header.from=ircmaxell@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=ircmaxell@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.215.42 as permitted sender) X-PHP-List-Original-Sender: ircmaxell@gmail.com X-Host-Fingerprint: 209.85.215.42 mail-lpp01m010-f42.google.com Received: from [209.85.215.42] ([209.85.215.42:44274] helo=mail-lpp01m010-f42.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id D6/B0-26944-9D83E405 for ; Mon, 10 Sep 2012 15:00:42 -0400 Received: by lahl5 with SMTP id l5so1404761lah.29 for ; Mon, 10 Sep 2012 12:00:38 -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=MFPq9GX3w3ybJayPWLdH1l/4KYVfRs6j99B9gcuaufM=; b=HBl+23RJkpmsbnd2IeqlnCOqj0fRyS8NTFDUau9AGYkd9pDCJttahD4L9LCTU/Csx6 nJP5t7Cs74Wpk+fUn+USpISrc3wChE3T6fUJ6Q3oQPz6O8McyzbKlZusSEJdGd/DqG9C QCP0vVC5wTseD7ApgK4+SO8OWK3Fu69fSxG6XzcCUwrY9ZeAE30oMwxgo5wS8FVOhpOk PKOi9tZ/z25LyUBQyfOHWvJL7EblQSFGmD0cTP5WYz9Ca4/2OWYApqgpdPje+e7+eliJ jmi/csPz09GRRPUA7T54/e2pKwLM+6AfO17XcPR6ogANvZQsXVQaqANMYIIR9OtswMS9 X6cw== MIME-Version: 1.0 Received: by 10.112.46.10 with SMTP id r10mr5189293lbm.13.1347303638655; Mon, 10 Sep 2012 12:00:38 -0700 (PDT) Received: by 10.114.22.1 with HTTP; Mon, 10 Sep 2012 12:00:38 -0700 (PDT) In-Reply-To: References: Date: Mon, 10 Sep 2012 15:00:38 -0400 Message-ID: To: Pierre Joye Cc: jpauli , PHP Internals Content-Type: multipart/alternative; boundary=f46d040122e9c964aa04c95d9292 Subject: Re: [PHP-DEV] What is our definition of a "Backward Compatibility Break" From: ircmaxell@gmail.com (Anthony Ferrara) --f46d040122e9c964aa04c95d9292 Content-Type: text/plain; charset=ISO-8859-1 Pierre, it does not break code, also that happens only and only from 5.x to > 5.x+1 and should not happen from 5.x.y to 5.x.y+1 for example (or on > very rare cases). I agree it should not happen from 5.x.y to 5.x.y+1. But it definitely does break code... Not all, but at least some... > > > I guess my point is that the line between a BCB and a minor BCB is a lot > > finer and a lot more subjective that it seems on the surface. Is adding a > > new language feature with a new keyword a BCB (since existing > functionality > > using that keyword is now a parse error), > > We add new features, that's no BC break as the feature did not exist > before. Keyword is a problem, but we have to live with for now. Well, for a very limited subset of features possible sure... > > My take on it is this: > > > > If you can solve the "break" using nothing but static analysis and a > static > > conversion "script", then it's a minor break. So new keywords would be > fine > > (you could find/replace function yield() with function yield2() really > > easily). But changing the semantics of code (returning an array instead > of > > an int, changing how references are passed, etc) would require developer > > interaction to fix, and as such would not be minor. > > > > And one point on what classifies as a BC break: Everything. Any change > will > > break BC in some way. Even adding a function is a BC break since existing > > code may use the same function names. > > Why we added namespace, no issue (well for 5.3+ :). > > > Fixing a segfault is a BC break as > > well, as it's changing the way it works. > > That's really a totally wrong example. I chose it for that specific reason. The line is blurry if taken literally (which many do)... Anthony --f46d040122e9c964aa04c95d9292--