Message336693
Victor/vstinner: Isn't PR 12032 reintroducing the issue fixed in #29234? _PyStack_AsTuple was explicitly marked as _Py_NO_INLINE because inlining was creating excessive stack consumption in the callers (which were the bytecode interpreter loop), but the new _PyTuple_FromArray isn't marked as _Py_NO_INLINE, so the swap reintroduces the problem.
Seems like either:
1. _PyTuple_FromArray should also be marked _Py_NO_INLINE
or
2. _PyStack_AsTuple should continue to exist as the non-inlined version of _PyTuple_FromArray
It's possible this isn't as much of an issue because _PyTuple_FromArray is in tupleobject.c (where it's only called in one place), while _PyStack_AsTuple was in call.c and was called from within call.c in four places, but only if link-time optimization isn't involved (and in practice, most public distributions of CPython are built with link-time optimization now, correct?); if LTO is enabled, the same stack bloat issues are possible. |
|
Date |
User |
Action |
Args |
2019-02-26 16:42:10 | josh.r | set | recipients:
+ josh.r, rhettinger, vstinner, serhiy.storchaka, sir-sigurd |
2019-02-26 16:42:10 | josh.r | set | messageid: <1551199330.94.0.661866716114.issue36030@roundup.psfhosted.org> |
2019-02-26 16:42:10 | josh.r | link | issue36030 messages |
2019-02-26 16:42:10 | josh.r | create | |
|