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
> > 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.