XuehaiPan · GitHub

Follow the discussion at #131799 (comment).

Currently, the Windows-related C code is mixed using the Python-specific Py_DEBUG macro and non-Python-specific _DEBUG macro.

The documentation said _DEBUG implies Py_DEBUG.

Py_DEBUG

Compiling the interpreter with the Py_DEBUG macro defined produces what is generally meant by a debug build of Python. Py_DEBUG is enabled in the Unix build by adding --with-pydebug to the ./configure command. It is also implied by the presence of the not-Python-specific _DEBUG macro. When Py_DEBUG is enabled in the Unix build, compiler optimization is disabled.

And it is guaranteed by the following code on Windows.

#ifdef _DEBUG
# define Py_DEBUG
#endif

All platform-non-specific code and Unix-specific code is using the Python-specific Py_DEBUG macro. It would be nice to use Py_DEBUG in Windows-related C code either. It could improve the code readability and maintainability.

Linked PRs

Read the original on github.com ↗