Re: Fix ReflectionType::__toString() BC break
| From: | Levi Morrison | Date: | Wed, 21 Sep 2016 18:17:40 +0000 |
| Subject: | Re: Fix ReflectionType::__toString() BC break | ||
| References: | 1 2 3 4 5 6 7 8 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-96073@lists.php.net to get a copy of this message | ||
On Wed, Sep 21, 2016 at 12:07 PM, Levi Morrison <levim@php.net> wrote:
> On Wed, Sep 21, 2016 at 11:13 AM, Nicolas Grekas
> <nicolas.grekas@gmail.com> 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.