| > dict.keys() returning something different from what it used to isn't a syntactic change; it's a change in function behavior. Since macros handle syntax, they aren't applicable to a function semantics change. Now you are telling me something I told you in the first place. > What we might do here is to use two different keys symbols in different packages. We can have a ver2:keys and ver3:keys and control which of these dict.keys() uses in some scope. But that's not macros. Right. So like I said, macros won't have helped, at all. > Old syntax can be supported side by side with new syntax. Creating a Frankenstein's monster was never the goal. And besides, they already had tools for code which can run both on 2 and 3. https://pypi.python.org/pypi/future > So then since we have a way to have old syntax and old API semantics, which is pretty much everything, we can have a nice migration path. No, it's not a good migration path. 2to3 was a good migration path. Supporting n different versions of apis and syntax isn't a good migration path. This has gone way too long. You made this claim: "If Python had macros, Python 2 to 3 migration would be a non-issue." That is patently false. I don't know why you can't simply accept you were wrong but I must check out now. |