[issue42002] Clean up initialization of the sys module
Serhiy Storchaka
report at bugs.python.org
Sat Oct 10 17:01:19 EDT 2020
New submission from Serhiy Storchaka <storchaka+cpython at gmail.com>:
_PySys_InitCore() and _PySys_InitMain() in Python/sysmodule.c contains many invocations of macros for setting attributes of the sys module. The proposed PR changes these macros.
1. SET_SYS_FROM_STRING was renamed to just SET_SYS. It is much shorter and allow to write many invocations in one line. Also SET_SYS_FROM_STRING was not consistent with SET_SYS_FROM_WSTR.
2. Added new SET_SYS_FROM_STRING which sets attribute specified as C char string (similarly to SET_SYS_FROM_WSTR which sets attribute specified as C wchar_t string).
3. Added COPY_SYS_ATTR for making a copy of the attribute. It uses PyMapping_GetItemString() instead of PyDict_GetItemString() which silences all expressions.
4. Removed SET_SYS_FROM_STRING_BORROW. It no longer used, and it was used improperly.
5. SET_SYS_FROM_STRING_INT_RESULT replaced with SET_SYS.
6. All macros have been rewritten in term of SET_SYS that significantly simplifies the code.
All this makes the code clearer and makes errors handling more correct.
----------
components: Interpreter Core
messages: 378415
nosy: serhiy.storchaka
priority: normal
severity: normal
status: open
title: Clean up initialization of the sys module
versions: Python 3.10
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue42002>
_______________________________________
More information about the Python-bugs-list
mailing list