[Python-Dev] r62342 - python/branches/py3k/Objects/bytesobject.c

Neal Norwitz nnorwitz at gmail.com
Tue Apr 22 06:46:10 CEST 2008

On Tue, Apr 15, 2008 at 2:21 AM, Stefan Behnel <stefan_ml at behnel.de> wrote:
> Neal Norwitz wrote:
>  > Iteration with the dict methods (e.g., keys -> iterkeys()),
>  > map/zip/filter returning iterator rather than list.
>  That's only an optimisation, it's not functionally required. A list behaves
>  like an iterator in most use cases, so it's rather unlikely that Py3 code will
>  break in the backport because of this (and it's very unlikely that static
>  analysis can catch the cases where it breaks). There should be a rule to
>  optimise "list(map(...))" into "map(...)" and "list(x.keys())" into plain
>  "x.keys()" etc., but I don't think there is much more to do here.

It's not just an optimization if a copy won't fit in memory.  I'd like
the solution to be closer to 100% than 95%.

>  > int -> (int, long)
>  Is there any case where this might be required? I don't see any reason why
>  back-converted Py3 code should break here. What would "long()" be needed for
>  in working Py3 code that "int()" doesn't provide in Py2?
>  Although you might have been referring to "isinstance(x, int)" in Py3?

Yes, sorry, I wasn't explicit.  isinstance is specifically what I was
referring to (or other type checks such as type(x) in (int, long)).

>  > str -> basestring or (str, unicode)
>  This is an issue, although I think that Py3 is explicit enough here to make
>  this easy to handle by static renaming (and maybe optimising "isinstance(s,
>  (str, bytes))" into "..., basestring))").
>  > __bool__ -> __nonzero__
>  > exec/execfile
>  > input -> rawinput
>  Also valid issues that can be handled through renaming and static syntactic
>  adjustments.
>  > Most things that have a fixer in 2to3 would also require one in 3to2.
>  I think the more explicit syntax in Py3 will actually make it easier to
>  back-convert the code statically from 3to2 than to migrate it from 2to3.

Sure, that's the idea.

I haven't seen any action on 3to2 (although I'm very behind on email).
 Stefan, could you try to implement some of these and report back how
it works?


More information about the Python-Dev mailing list