[Python-Dev] Stabilizing the C API of 2.6 and 3.0

Christian Heimes lists at cheimes.de
Mon May 26 15:40:31 CEST 2008


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

(moved down)
> 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?

Christian


More information about the Python-Dev mailing list