On Sep 22, 2016 1:07 AM, "Levi Morrison" <le...@php.net> wrote: > > On Wed, Sep 21, 2016 at 11:13 AM, Nicolas Grekas > <nicolas.gre...@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,
Which does not allow BC breaks but for extreme cases. I do not consider this case as extreme, at all. I share Nicolas concerns here. This is the kind of changes making the migration path harder than it should without a strong reason behind it. I agree with Nikita but it is something that can be solved using the depreciation flag and then handle in the next major. > 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? Obviously the sooner. And what is the next BC breaks for 7.2/3/4? This is exactly why we introduce the no BC break rule. In this case it is even more clear as one can use getName if desired to support 7.1+ only, which I suppose is most likely not the case for a large majority of users.