M.-A. Lemburg schrieb:
Most imports will fail anyway at the link stage, since PyString_* APIs are probably the most used C APIs in Python extensions.
I think you have missed an important point. In Python 2.6 the names stay the same for the linker. Although the functions are now called PyBytes_Egg, they are redefined to PyString_Egg by a second header file.
In Python 2.6 the renaming of PyString are purely for consistence with the new Python 3.0 names. The names for PyString stay the same for external code like the library and extension modules.
PyBytes -> PyByteArray is a different story, though.
One detail, I'm worried about is the change of the type name, since that is sometimes used in object serialization or proxy implementations.
The type names aren't changed, too They are still "str" and "bytearray" in Python 2.6
Since this is major break in the Python C API, please make sure that you bump the Python C API level used for module imports.
Do you still think it's necessary to bump up the C API version level?