[Biopython-dev] Changed in C API

Dragoslav Zaric zaricdragoslav at gmail.com
Tue Oct 26 07:34:31 UTC 2010

Dear Peter,

The list of changes in Python 3 is not complete. This is current list:
Due to time constraints, here is a very incomplete list of changes to the C API.

Support for several platforms was dropped, including but not limited
to Mac OS 9, BeOS, RISCOS, Irix, and Tru64.
PEP 3118: New Buffer API.
PEP 3121: Extension Module Initialization & Finalization.
PEP 3123: Making PyObject_HEAD conform to standard C.
No more C API support for restricted execution.
PyNumber_Coerce, PyNumber_CoerceEx, PyMember_Get, and PyMember_Set C
APIs are removed.
New C API PyImport_ImportModuleNoBlock, works like
PyImport_ImportModule but won’t block on the import lock (returning an
error instead).
Renamed the boolean conversion C-level slot and method: nb_nonzero is
now nb_bool.
Removed METH_OLDARGS and WITH_CYCLE_GC from the C API.

Can you tell me what are exactly versions that we are converting, from
2.7 to 3.0.1 ??

This is also what I have read on python 3 web site:
The net result of the 3.0 generalizations is that Python 3.0 runs the
pystone benchmark around 10% slower than Python 2.5. Most likely the
biggest cause is the removal of special-casing for small integers.
There’s room for improvement, but it will happen after 3.0 is

This means that python 3 is still no optimized or like all software
start to be worse with new versions :)

Kind regards
Dragoslav Zaric

Professional Programmer
MSc Astrophysics

More information about the Biopython-dev mailing list