New submission from Serhiy Storchaka <storchaka+cpyt...@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 <rep...@bugs.python.org> <https://bugs.python.org/issue42002> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com