[Python-Dev] No longer enable Py_TRACE_REFS by default in debug build (original) (raw)
Victor Stinner vstinner at redhat.com
Tue Apr 9 12:25:25 EDT 2019
- Previous message (by thread): [Python-Dev] Need help to fix HTTP Header Injection vulnerability
- Next message (by thread): [Python-Dev] No longer enable Py_TRACE_REFS by default in debug build
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi,
When Python is built in debug mode, PyObject gets 2 new fields: _ob_prev and _ob_next. These fields change the offset of following fields in the PyObject structure and so breaks the ABI.
I propose to modify the debug build (Py_DEBUG) to no longer imply Py_TRACE_REFS. Antoine Pitrou proposed this idea when the C API was discussed to get a stable ABI.
https://bugs.python.org/issue36465 https://github.com/python/cpython/pull/12615
This change makes the debug build ABI closer to the release build ABI, but I am not sure how to compare these two ABI. Technically, C extensions still need to be recompiled.
What do you think?
--
I also wrote a PR to remove all code related to Py_TRACE_REFS: https://github.com/python/cpython/pull/12614
I don't think that it's right approach. I prefer to keep this special build around to see if anyone needs it, and wait one or two Python releases to decide what to do with it.
Victor
Night gathers, and now my watch begins. It shall not end until my death.
- Previous message (by thread): [Python-Dev] Need help to fix HTTP Header Injection vulnerability
- Next message (by thread): [Python-Dev] No longer enable Py_TRACE_REFS by default in debug build
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]