On 5/24/2016 10:49 AM, Paul Moore wrote:
On 24 May 2016 at 15:11, Koos Zevenhoven <k7ho...@gmail.com> wrote:
Please, no.  We learned that lesson in Python 2.2.1 with True/False.

What happened? True was included in 2.2.1 but not False?-). Anyway, I
guess you are probably right, and "3.6->" is the way to go. Besides,
Guido already wrote that in the first response.

He did so because our policy rightly forbids changing os.

The history is at
http://python-history.blogspot.co.uk/2013/11/the-history-of-bool-true-and-false.html
but basically we added new *constants* for True/False in a point
release. Some people used them, and their code only worked on 2.2.1
and above but not 2.2.0. Others were using variables called True and
False, and the 2.2.1 change broke their code (you could no longer
assign to those names).

So essentially it ended up that people couldn't say "works on 2.2" and
had to distinguish between 2.2.0 and 2.2.1+.

Python's strict backward compatibility rules basically stem from the
grief caused by that change.

The policy was reinforced by its violation in changing the behavior of a StringIO method in 3.1.2 or something like that. For people affected (like me), the change resulted in a subtle bug that only manifested later.

--
Terry Jan Reedy

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to