[Python-Dev] Use C extensions compiled in release mode on a Python compiled in debug mode
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 Py_DEBUG define imply the Py_TRACE_REFS define (...):
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.
* Add ./configure --with-trace-refs
* Py_DEBUG no longer implies Py_TRACE_REFS
* The "d" flag of SOABI (sys.implementation.cache_tag) is now
only added by --with-trace-refs. It is no longer added by
> 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:
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
Night gathers, and now my watch begins. It shall not end until my death.
More information about the Python-Dev