Title: Clean up initialization of the sys module
Type: Stage: resolved
Components: Interpreter Core Versions: Python 3.10
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: serhiy.storchaka, vstinner
Priority: normal Keywords: patch

Created on 2020-10-10 21:01 by serhiy.storchaka, last changed 2020-10-11 14:06 by serhiy.storchaka. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 22642 merged serhiy.storchaka, 2020-10-10 21:03
Messages (2)
msg378415 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2020-10-10 21:01
_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.


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.
msg378430 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2020-10-11 12:30
New changeset fa1d83db62a545580d9a1a585b2c1fb55961a5c3 by Serhiy Storchaka in branch 'master':
bpo-42002: Clean up initialization of the sys module. (GH-22642)
Date User Action Args
2020-10-11 14:06:22serhiy.storchakasetstatus: open -> closed
resolution: fixed
stage: patch review -> resolved
2020-10-11 12:30:47serhiy.storchakasetmessages: + msg378430
2020-10-10 21:03:05serhiy.storchakasetkeywords: + patch
stage: patch review
pull_requests: + pull_request21616
2020-10-10 21:01:30serhiy.storchakasetnosy: + vstinner
2020-10-10 21:01:19serhiy.storchakacreate