Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:96073 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 72586 invoked from network); 21 Sep 2016 18:17:45 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 21 Sep 2016 18:17:45 -0000 Authentication-Results: pb1.pair.com header.from=morrison.levi@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=morrison.levi@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.213.182 as permitted sender) X-PHP-List-Original-Sender: morrison.levi@gmail.com X-Host-Fingerprint: 209.85.213.182 mail-yb0-f182.google.com Received: from [209.85.213.182] ([209.85.213.182:36829] helo=mail-yb0-f182.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 8D/5B-04117-8CEC2E75 for ; Wed, 21 Sep 2016 14:17:44 -0400 Received: by mail-yb0-f182.google.com with SMTP id u125so38978499ybg.3 for ; Wed, 21 Sep 2016 11:17:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=KD7hwEA7XxIO9liTPkWEbKJijU7YLK9DvPlUqQZhpuM=; b=edebE+kw6JBKht98M+8SfPHn36N/XfW/Mf7dGXP7NYd9HdHbQVsCpvgg/UQMboIpyI xZPbID2pNFj5+f7/qaxSBMAary6WXjsgmlP9+iFX5xtQtNqQMAgtUUKE4U+bFC9AQH9c y6oCAsmm83Jw/a9KE9fXcVUsVHeWxoMtyfHpdsQJLCAy9FvUltr+gGldImiyF+XLpcck RRmFdn39zc6GxlIFDFTpVNaukyG9WJzTJmXidJIe2TSuKiTM6S/Oms6WLlPVnc+oY3td 3+cnv59GgaibRafA7prM2idpM5ZNoCRTTkjAHPJ1aaG6Ew0/7b2smfkZ0mZIJLqFXa9v TM9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=KD7hwEA7XxIO9liTPkWEbKJijU7YLK9DvPlUqQZhpuM=; b=VNjPcLpLiUcAAHDy6wg8ZqAYVU9inr5/FsHTcb4miwL0/sBrEHHxemBCQVMfgPwIlK 6joUd5yDZzn59uhz2wqtxKgu5G9SAPi6IvWXISKjc8iDYTC7idECB3Uf6eV0DOpj0/wy R6fgT8Anvwn3CD9dUYjbDatDAZrHydP4QsJCTOEDdPkiAZl//RttAYkMQ5DV3EtRDmMR kHVsFozJ4kgkc8/Rkpljp5CK7Kgqn5C1Nc0EkzAuZRi7aH6q1juqJaG3iRxHQL9Fr6EN jt9eOf7DCybdAQrre+GrPGHoAlnEa7aV4zDxBw1FpLJ/zDo93lEMersRGpJxUxGhxM+M HTQA== X-Gm-Message-State: AE9vXwP3G5hTwnaZTIpLnAAfDQMj2qYygkq1zAJODAzPZX0rEzrsFUVGrGUE9Gl5LKRuJ7lTQrVkl+nL1Zn6OA== X-Received: by 10.37.47.144 with SMTP id v138mr300115ybv.102.1474481861437; Wed, 21 Sep 2016 11:17:41 -0700 (PDT) MIME-Version: 1.0 Sender: morrison.levi@gmail.com Received: by 10.13.193.66 with HTTP; Wed, 21 Sep 2016 11:17:40 -0700 (PDT) In-Reply-To: References: Date: Wed, 21 Sep 2016 12:17:40 -0600 X-Google-Sender-Auth: MRtFa1siI_B53JydO1N6fqQzpx8 Message-ID: To: Nicolas Grekas Cc: Ryan Pallas , internals Content-Type: text/plain; charset=UTF-8 Subject: Re: [PHP-DEV] Fix ReflectionType::__toString() BC break From: levim@php.net (Levi Morrison) On Wed, Sep 21, 2016 at 12:07 PM, Levi Morrison wrote: > On Wed, Sep 21, 2016 at 11:13 AM, Nicolas Grekas > wrote: >>> To handle this in code written around current __toString seems pretty >> simple >> >> Yes it is, but that's not what we're talking about: >> BC is about having perfectly fine code working in e.g. 7.0 be still working >> fine on 7.1 *without any change*. >> >> Right now, we have red test suites on php7.1rc2. >> This is the symptom of a BC break, by definition. >> And the issue is not the existing code we have, but the new one that is >> changing the behavior of the engine. > > This was understood when the decision was made. You seem to not be > understanding the bigger issue and instead focusing on the BC break > for a *single minor release, and a dot zero at that*. If we keep the > BC compat this method is redundant and useless forever. If we fix it > we break your code for *one single minor release, and a dot zero at > that*. Which is the bigger disruption? > > This is why the decision was made. It is better to have the useful > functionality from here on out than to preserve BC with a single minor > release, and a dot-zero at that. I should also add that the dot-zero is the same version it was released. Having backwards compatibility breaks in the version after its release in some cases is not that uncommon (though unfortunate). Essentially I understand the frustration and empathize with having your code broken. However, I still think it is better for the overall language health to prepend the question mark, which is why it is there in the RC releases despite the previous discussion thread.