worse performances (due to increased code size for example). The compiler is
usually smarter than the developer for the cost/benefit analysis.
- If Python is :ref:`built in debug mode <debug-build>` (if the ``Py_DEBUG``
+ If Python is :ref:`built in debug mode <debug-build>` (if the :c:macro:`Py_DEBUG`
macro is defined), the :c:macro:`Py_ALWAYS_INLINE` macro does nothing.
It must be specified before the function return type. Usage::
allocator, or low-level profiling of the main interpreter loop. Only the most
frequently used builds will be described in the remainder of this section.
-Compiling the interpreter with the :c:macro:`Py_DEBUG` macro defined produces
+.. c:macro:: Py_DEBUG
+
+Compiling the interpreter with the :c:macro:`!Py_DEBUG` macro defined produces
what is generally meant by :ref:`a debug build of Python <debug-build>`.
-:c:macro:`Py_DEBUG` is enabled in the Unix build by adding
+:c:macro:`!Py_DEBUG` is enabled in the Unix build by adding
:option:`--with-pydebug` to the :file:`./configure` command.
It is also implied by the presence of the
-not-Python-specific :c:macro:`_DEBUG` macro. When :c:macro:`Py_DEBUG` is enabled
+not-Python-specific :c:macro:`!_DEBUG` macro. When :c:macro:`!Py_DEBUG` is enabled
in the Unix build, compiler optimization is disabled.
In addition to the reference count debugging described below, extra checks are
Please refer to :file:`Misc/SpecialBuilds.txt` in the Python source distribution
for more detailed information.
-
.. data:: Py_DEBUG
- True if Python is built with the :c:macro:`Py_DEBUG` macro defined: if
- Python is :ref:`built in debug mode <debug-build>`
- (:option:`./configure --with-pydebug <--with-pydebug>`).
+ True if Python was built with the :c:macro:`Py_DEBUG` macro
+ defined, that is, if
+ Python was :ref:`built in debug mode <debug-build>`.
.. versionadded:: 3.12