[issue28858] Fastcall uses more C stack
STINNER Victor
report at bugs.python.org
Sun Dec 4 17:13:53 EST 2016
STINNER Victor added the comment:
> Serhiy Storchaka reported that Python 3.6 crashs earlier than Python 3.5 on calling json.dumps() when sys.setrecursionlimit() is increased.
Reference: http://bugs.python.org/issue23507#msg282190 (issue #23507).
Serhiy Storchaka: "Yes, that is why I asked you to revert your changes."
Sorry, I misunderstood your comments. So yes, my change b9c9691c72c5 introduced a regression. Sorry, I didn't have time before now to revert my change. I just pushed the change d35fc6e58a70 which reverts b9c9691c72c5.
The question is how replacing PyObject_CallFunctionObjArgs() with _PyObject_CallArg1() increases the usage of the C stack. I wrote my change to reduce the usage of the C stack.
PyObject_CallFunctionObjArgs() allocates 5 "PyObject *", so 40 bytes, on the C stack. Maybe using _PyObject_CallArg1() increases the usage of C stack in the *caller*.
> In additional, they introduced compiler warnings.
This one was fixed by Benjamin Peterson in the issue #28855 (change 96245d4af0ca).
----------
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue28858>
_______________________________________
More information about the Python-bugs-list
mailing list