Issue 21011: PyArg_ParseTupleAndKeywords doesn't take const char *keywords[] (original) (raw)
Issue21011
Created on 2014-03-21 16:45 by h.venev, last changed 2022-04-11 14:58 by admin.
Messages (4) | ||
---|---|---|
msg214388 - (view) | Author: Hristo Venev (h.venev) * | Date: 2014-03-21 16:45 |
This really annoys me. I have to store the literals in char[] and then make a char*[] from them. It would be better if a simple array of string literals could be used. It would also require less data space because string literals could be merged by the compiler. I don't know why PyArg_ParseTupleAndKeywords would ever modify the keywords array so it makes absolutely no sense to me for the array not to be const char*[]. In all cases I have seen PyArg_ParseTupleAndKeywords being used string literals were converted to char* (dropping const) which is far far worse than inefficient code. | ||
msg214857 - (view) | Author: Josh Rosenberg (josh.r) * ![]() |
Date: 2014-03-25 22:02 |
This has come up before. Links to additional info: https://mail.python.org/pipermail/python-dev/2006-February/060689.html http://bugs.python.org/issue1772673 | ||
msg320945 - (view) | Author: Inada Naoki (methane) * ![]() |
Date: 2018-07-03 09:06 |
I think we can't fix this until Python 4. May I close this issue as "won't fix" for now? Or can we add "Python 4" keyword to list backward incompatible changes we want to do in the future? | ||
msg320952 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * ![]() |
Date: 2018-07-03 09:45 |
We can't change this API because this would break virtually all user code. But we can introduce a macro like PY_SSIZE_T_CLEAN. If it is defined before including Python.h, PyArg_ParseTupleAndKeywords() will take an array of const strings. This will help for compatibility with C++. |
History | |||
---|---|---|---|
Date | User | Action | Args |
2022-04-11 14:58:00 | admin | set | github: 65210 |
2021-06-12 07:02:12 | serhiy.storchaka | link | issue44401 superseder |
2018-07-03 09:45:24 | serhiy.storchaka | set | type: resource usage -> enhancementmessages: + nosy: + serhiy.storchaka |
2018-07-03 09:06:58 | methane | set | nosy: + methanemessages: + versions: + Python 3.8, - Python 3.4 |
2014-03-25 22:02:19 | josh.r | set | nosy: + josh.rmessages: + |
2014-03-21 16:45:16 | h.venev | create |