[Python-3000] Strategy for porting to 3.0?

"Martin v. Löwis" martin at v.loewis.de
Thu Mar 20 04:11:32 CET 2008


>     >> How can this ever work?  Aren't there always going to be some
>     >> incompatibilities which aren't covered by -3 or 2to3?  Those will
>     >> require manual code changes which aren't 2.x compatible.
> 
>     Martin> Like which incompatibilities specifically? I'm not aware of any.
> 
> Nothing specifically.  I was simply under the impression that the conversion
> couldn't be 100% from my reading, perhaps incorrectly, of the mailing list.

Depends on what you mean by "100%". The conversion is *always* 100% in
the sense that it converts the complete program to a complete (perhaps
inoperable) program. It will never ever drop pieces of source code, or
refuse to convert them. (David just found a case where it did refuse
processing, but these are bugs that can be fixed).

So it converts *all* source code. It some times does that correctly,
and sometimes incorrectly. It's difficult to talk about ratios here,
I rather see "correct conversion" as a binary property: it's either
correct, or it isn't.

Talking in fractions of all Python programs in existence, along
with all possible Python programs, conversion is certainly not correct
for 100% of all programs.

However, conversion is also not 0%, i.e, there are *some* programs
for which conversion is correct. A modified SpamBayes might be one of
them.

Regards,
Martin

P.S. In case you are interested in a formal definition of "correct
conversion", here is mine:
Given a specification of a program, and a Python 2.x application
conforming to that specification, the conversion is "correct" iff
the resulting 3.x application still conforms to the specification.


More information about the Python-3000 mailing list