On Sat, Apr 9, 2016 at 10:07 AM, Ian Kelly <ian.g.kelly@gmail.com> wrote:
On Sat, Apr 9, 2016 at 9:25 AM, Steven D'Aprano <steve@pearwood.info> wrote:
On Sat, Apr 09, 2016 at 08:28:10AM -0600, Ian Kelly wrote:
It seems unusual to deprecate something without also providing a means of using the new thing in the same release. "Don't use this feature because we're going to change what it does in the future. Oh, you want to use the new version? Psych! We haven't actually done anything yet. Use not instead." It creates a weird void in Python 3.6 where the operator still exists but absolutely nobody has a legitimate reason to be using it.
Not really. This is quite similar to what happened in Python 2.3 during int/long unification. The behaviour of certain integer operations changed, including the meaning of some literals, and warnings were displayed.
Pointing out that this has been done once before, 11 minor releases prior, does not dissuade me from continuing to characterize it as "unusual". The int/long unification was also a much more visible change overall.
Also, in that case there was a way to start using long literals immediately: 0xffffffffL