This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author vstinner
Recipients Aaron Hall, benjamin.peterson, eric.snow, mark.dickinson, miss-islington, pablogsal, serhiy.storchaka, thatiparthy, vstinner
Date 2018-11-23.15:26:57
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <>
I close the issue, it seems like all subtasks have been completed.

Summary of the issue:

* The following macros have been converted to static inline functions:

  - Py_INCREF(), Py_DECREF()
  - PyObject_INIT(), PyObject_INIT_VAR()
  - _Py_NewReference(), _Py_ForgetReference()
  - _Py_Dealloc()
  - _PyObject_GC_TRACK(), _PyObject_GC_UNTRACK()

* There is no significant impact on performance:

  * I ran performance benchmark on Python compiled in release mode
  * I ran the Python test suite on Python compiled in debug mode
  * I measured the compilation time in release an debug mode

* It has been decided to use "static inline" to declare inline function (write directly "static inline", no macro).
* It has been decided to no use __attribute__((always_inline)) nor __forceinline (ask the compiler to always inline).


Benjamin Peterson would "like to see Py_LOCAL_INLINE removed, too, fwiw", but it's part of the public C API. It would require a deprecation period. I'm not interested to touch the public C API.

Benjamin: please open a new issue if you still want to remove it :-)
Date User Action Args
2018-11-23 15:26:57vstinnersetrecipients: + vstinner, mark.dickinson, benjamin.peterson, eric.snow, serhiy.storchaka, thatiparthy, Aaron Hall, pablogsal, miss-islington
2018-11-23 15:26:57vstinnersetmessageid: <>
2018-11-23 15:26:57vstinnerlinkissue35059 messages
2018-11-23 15:26:57vstinnercreate