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

Jeremy Hylton jeremy@alum.mit.edu
Wed, 21 Feb 2001 16:07:25 -0500 (EST)


>>>>> "SM" == Skip Montanaro <skip@mojam.com> writes:

  Jeremy> That makes a total of 4 fixes in almost 200,000 lines of
  Jeremy> code.  These fixes should be pretty easy.

  SM> Jeremy,

  SM> Pardon my bluntness, but I think you're missing the point.  

I don't mind if you're blunt :-).

  SM> I've rarely found it difficult to fix compatibility problems in
  SM> isolation.  It's the surrounding context that gets you.

I appreciate that there are compatibility problems, although I'm hard
pressed to quantify them to any extent.  My employer still uses Python
1.5.2 because of perceived compatibility problems, although I use Zope
with 2.1 on my machine.  Any change we make to Python that introduces
incompatibilties is going to make it hard for some people to upgrade.

When we began work on the 2.1 alpha cycle, I have the impression that
we decided that some amount of incompatibility is acceptable.  I think
PEP 227 is the chief incompatibility, but there are other changes.
For example, the warnings framework now spits out messages to stderr;
I imagine this could be unacceptable in some situtations.  The __all__
change might cause problems for some code, as we saw with the pickle
module.  The format of exceptions has changed in some cases, which
makes trouble for users of doctest.

I'll grant you that there is are differences in degree among these
various changes.  Nonetheless, any of them could be a potential
roadblock for upgrading.  There were a bunch more in 2.0.  (Sidenote:
If you haven't upgraded to 2.0 yet, then you can jump right to 2.1
when you finally do.)

The recent flurry of discussion was generated by a single complaint
about the exec problem.  It appeared to me that this was the last
straw for many people, and you, among others, suggested today that we
delay nested scopes.  This surprised me, because the problem was much
shallower than some of the other compatibility issues that had been
discussed earlier, including the one attributed to you in the PEP.

If I understand correctly, though, you are objecting to any changes
that introduce backwards compatibility.  The fact that recent
discussion prompted you to advocate this is coincidental.

The question, then, is whether some amount of incompatible change is
acceptable in the 2.1 release.  I don't think the specific import
*/exec issues have anything to do with it, because if they didn't
exist there would still be compatibility issues.

Jeremy