[Python-Dev] Those import related syntax errors again...

Fredrik Lundh fredrik@effbot.org
Thu, 22 Feb 2001 15:55:33 +0100


Guido wrote:
> Hm, I disagree.  Remember, back in the days of Python 1.x, we
> introduced new stuff even with micro releases (1.5.2 had a lot of
> stuff that 1.5.1 didn't).

Last year, we upgraded a complex system from 1.2 to 1.5.2.  Two
modules broke; one didn't expect exceptions to be instances, and
one messed up under the improved module cleanup model.

We recently upgraded another major system from 1.5.2 to 2.0.
It was a much larger undertaking; about 50 modules were affected.

And six months after 2.0, we'll end up with yet another incompatible
version...

As a result, we end up with a lot more versions in active use, more
support overhead, maintenance hell for extension writers (tried
shipping a binary extension lately?), training headaches ("it works
this way in 1.5.2 and 2.0 but this way in 2.1, but this works this
way in 1.5.2 but this way in 2.0 and 2.1, and this works..."), and
all our base are belong to cats.

> 2.x versions can introduce new things.  We'll do our best to keep
> old code from breaking unnecessarily, but I don't want our success
> to stand in the way of progress, and I will allow some things to
> break occasionally if it serves a valid purpose.

But nested scopes breaks everything: books (2.1 will appear at
about the same time as the first batch of 2.0 books), training
materials, gurus, tools, and as we've seen, some code.

> I don't want to slide into version number inflation.  There's not
> enough new in 2.1 to call it 3.0.

Besides nested scopes, that is.

I'm just an FL, but I'd leave them out of a release that follows only
6 months after a major release, no matter what version number we're
talking about.  Leave the new compiler in, and use it to warn about
import/exec (can it detect shadowing too?), but don't make the
switch until everyone's ready.

Cheers /F