[Python-Dev] Use C extensions compiled in release mode on a Python compiled in debug mode (original) (raw)

Victor Stinner vstinner at redhat.com
Tue Apr 23 21:04:49 EDT 2019


Le mer. 24 avr. 2019 à 01:44, Victor Stinner <vstinner at redhat.com> a écrit :

The current blocker issue is that the PyDEBUG define imply the PyTRACEREFS define (...):

https://bugs.python.org/issue36465 https://github.com/python/cpython/pull/12615

I updated my PR:

""" Release build and debug build are now ABI compatible: the Py_DEBUG define no longer implies Py_TRACE_REFS define which introduces the only ABI incompatibility.

A new "./configure --with-trace-refs" build option is now required to get Py_TRACE_REFS define which adds sys.getobjects() function and PYTHONDUMPREFS environment variable.

Changes:

Maybe pip could be enhanced to support installing C extensions compiled in release mode when using a debug mode.

In fact, pip doesn't have to be modified. I "fixed" sys.implementation.cache_tag by removing "d" in debug mode instead ;-)

By the way, the "m" ABI flag for pymalloc is outdated. I proposed the following change to simply remove it:

https://bugs.python.org/issue36707 https://github.com/python/cpython/pull/12931/files

With my PR 12931 and my PR 12615, the only remaining ABI flag which be "d" which would only be enabled by ./configure --with-trace-refs, whereas ./configure --with-pydebug has no more effect on SOABI (sys.implementation.cache_tag).

Victor

Night gathers, and now my watch begins. It shall not end until my death.



More information about the Python-Dev mailing list