
On Wed, 20 Oct 2021 02:55:52 +0200 Victor Stinner <vstinner@python.org> wrote:
Debug build -----------
When Python is built in debug mode, most compiler optimizations are disabled. For example, Visual Studio disables inlining. Benchmarks must not be run on a Python debug build, only on release build: using LTO and PGO is recommended for reliable benchmarks. PGO helps the compiler to decide if function should be inlined or not.
So what is the performance impact on debug builds? The numbers should be given in the PEP.
Rejected Ideas ==============
Keep macros, but fix some macro issues --------------------------------------
Converting macros to functions is not needed to `remove the return value`_: casting a macro return value to ``void`` also fix the issue. For example, the ``PyList_SET_ITEM()`` macro was already fixed like that.
Macros are always "inlined" with any C compiler.
The duplication of side effects can be worked around in the caller of the macro.
People using macros should be considered "consenting adults". People who feel unsafe with macros should simply not use them.
This says that the idea is rejected, but it does not say *why* it was rejected. Can you add that? Regards Antoine.