Backward compatibility environments (was Future division patch available)

Erik Max Francis max at alcyone.com
Tue Jul 24 19:09:47 EDT 2001


Chris Barker wrote:

> Python is an evolving language. I, for one, am very happy about that
> (I
> was ecstatic about the addition of rich comparisons, among other
> things). It does mean that code written with 2.1 in mind will not run
> on
> 1.5.2, but that's not too bad. What is bad is that code written for
> 1.5.2 might not run on a version 2.4 interpreter. A lot of folks have
> made it very clear that that could cause a LOT of problems. I agree,
> and
> I think we really can evolve the language without causing that kind of
> code breakage.

Agreed.  Let's try categorizing the Python environments which will have
different ramifications for a backward-incompatible change:

1.  First and easiest is code that is in active use which can be changed
in place after an upgrade to Python 238 (what I'll use to refer to a
version of Python which implements PEP 238 and/or requires PEP 238's
semantics).

2.  Code that is established and in long-term use which is not in active
use but which still has resources that can be thrown at it to update it.

3.  Code that is established and in longer-term use but which is not in
a position to be fixed by the original engineers, either because it has
been passed around repeatedly or because it is, say, at a client side
that no longer has any contact with the original company (presumably
because pre-238 Python has been so reliable that there was no need :-).

4.  Code which may be in use and up to date but which is not trivially
available in editable source form and/or from which compatibility
warnings may not be easily found, such as stowed in a database or in

5.  Code running in very special environments in which the ramifications
of PEP 238 may not even make sense.  What does always-float division
mean on an architecture that does not support floats of any kind (say,
on an architecture with no FPU and with limited space so that software
emulation was deemed wasteful)?

-- 
 Erik Max Francis / max at alcyone.com / http://www.alcyone.com/max/
 __ San Jose, CA, US / 37 20 N 121 53 W / ICQ16063900 / &tSftDotIotE
/  \ All the people in my neighborhood turn around and get mad and sing
\__/ Public Enemy
    Rules for Buh / http://www.alcyone.com/max/projects/cards/buh.html
 The official rules to the betting card game, Buh.



More information about the Python-list mailing list