Thank you for submitting PEP 670 (Convert macros to functions in the
Python C API)!
The steering council is still discussing it. We're not ready to accept
the PEP as a whole, but there are parts on which we agree unanimously.
To unblock the work, we're making the following pronouncements:
*All other things being equal, static inline functions are better than
macros.*
Specifically, inline static functions should be preferred over
function-like macros in new code. Please add a note about this to PEP 7.
*The performance impact of changing macros to static inline functions is
negligible.*
The performance changes are indistinguishable from noise caused by other
factors, such as layout changes and specific compiler optimizations.
It's possible that this isn't true in all cases. If any are found, they
should be kept as macros and added to the benchmark suite to avoid
regressions.
More generally, if there is a non-obvious reason for a conscious design
decision, it should be explained (e.g. in a comment) to help future
developers.
*When there is no backwards compatibility issue, macros can be changed
to static inline functions.*
In effect, the SC accepts the first part of the PEP, except cases where:
a macro is converted to macro and function ("Cast to PyObject*"), and
where the return value is removed.
Please do the changes in several smaller pull requests, don't skip
reviews, and be prepared to revert if any issues are found.
The straightforward macros should be converted first. When they are, we
hope that it will become easier to evaluate the remaining ones.
- Petr, on behalf of the Steering Council
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at
https://mail.python.org/archives/list/python-dev@python.org/message/IJ3IBVY3JDPROKX55YNDT6XZTVTTPGOP/
Code of Conduct: http://python.org/psf/codeofconduct/