◐ Shell
clean mode source ↗

WIP: bpo-36465: Remove Py_TRACE_REFS special build by vstinner · Pull Request #12614 · python/cpython

Conversation

@vstinner

Remove _ob_prev and _ob_next fields of PyObject when Python is
compiled in debug mode to make debug ABI closer to the release ABI.

Remove:

  • sys.getobjects()
  • PYTHONDUMPREFS environment variable
  • _PyCoreConfig.dump_refs
  • PyObject._ob_prev and PyObject._ob_next fields
  • _PyObject_HEAD_EXTRA and _PyObject_EXTRA_INIT macros
  • _Py_AddToAllObjects()
  • _Py_PrintReferenceAddresses()
  • _Py_PrintReferences()
  • _Py_ForgetReference(op) is replaced with _Py_INC_TPFREES(op

https://bugs.python.org/issue36465

Remove _ob_prev and _ob_next fields of PyObject when Python is
compiled in debug mode to make debug ABI closer to the release ABI.

Remove:

* sys.getobjects()
* PYTHONDUMPREFS environment variable
* _PyCoreConfig.dump_refs
* PyObject._ob_prev and PyObject._ob_next fields
* _PyObject_HEAD_EXTRA and _PyObject_EXTRA_INIT macros
* _Py_AddToAllObjects()
* _Py_PrintReferenceAddresses()
* _Py_PrintReferences()
* _Py_ForgetReference(op) is replaced with _Py_INC_TPFREES(op

@vstinner

IMHO it's not the right approach. I prefer to first disable Py_TRACE_REFS in debug build, and one or two releases later, decide if Py_TRACE_REFS build should be removed or not.

Labels