On 11/11/16 9:02 AM, Dicebot wrote:
On 11/11/2016 03:46 PM, Steven Schveighoffer wrote:
... or one can spend one extra hour to implement deprecation path and
the issue disappears completely.
There is a misunderstanding that the new cycle detection is an "upgrade"
of some kind. It's a bug fix.
There is no difference between a bug fix and "upgrade" in context of
deprecation path expectations. It affects robustness of package
ecosystem in the same way.
There is a subtle difference -- you weren't exactly "depending" on the
buggy behavior, you didn't actually notice that the bug was there. In
fact, you were depending on the cycle detection to find the cycles for
you, and it was failing.
It would be like finding a flaw in the AA hashing behavior that allowed
2 identical keys to get stored. Fix that bug, and it necessarily changes
behavior, it may even break some code. Should we go through deprecation
cycle for that?
I am still going to look into keeping both algorithms for this release
but don't view it as blocking regression.
It's not going to be easy. The code had to be completely rewritten,
since the flaw in the original code was a design problem. You will
likely have to run both algorithms separately, and only fail if both do.
You can probably use the same cycle printing code, as I separated that
out (and now use a shortest-path algorithm to minimize the cycle size).