Issue31862
Created on 2017-10-24 15:08 by Dormouse759, last changed 2020-09-07 13:55 by vstinner. This issue is now closed.
| Pull Requests | |||
|---|---|---|---|
| URL | Status | Linked | Edit |
| PR 4108 | merged | Dormouse759, 2017-10-24 15:18 | |
| Messages (6) | |||
|---|---|---|---|
| msg304914 - (view) | Author: Marcel Plch (Dormouse759) * | Date: 2017-10-24 15:08 | |
PEP 489 introduced multiphase initialization of extension and built-in modules. Now, almost no module in the standard library supports this feature. This should be improved to prepare Python for better testing of subinterpreters. Many benefits of PEP 489 don't apply to stdlib modules. However, the PEP effectively says that by using multi-phase init, the module author "promises" that the module is "subinterpreter-friendly" [0]. So, when porting, each module should be checked that it e.g. doesn't use mutable process-global state. I'd like to port stdlib to multi-phase init, starting with the easier modules, to: - get familiar with contributing to CPython, - check and track which modules are already "subinterpreter-friendly", and - figure out how and where PEP 489 is lacking (beyond what is discussed in the PEP itself). [0]: https://www.python.org/dev/peps/pep-0489/#subinterpreters-and-interpreter-reloading |
|||
| msg304916 - (view) | Author: Petr Viktorin (petr.viktorin) * | Date: 2017-10-24 15:15 | |
FWIW, Marcel is an intern in my team, tasked to learn CPython internals by trying to improve subinterpreter support. If I don't comment on his issues it's because we discussed privately beforehand. |
|||
| msg343182 - (view) | Author: Petr Viktorin (petr.viktorin) * | Date: 2019-05-22 11:51 | |
New changeset 33e71e01e95506cf8d93fd68251fc56352bc7b39 by Petr Viktorin (Marcel Plch) in branch 'master': bpo-31862: Port binascii to PEP 489 multiphase initialization (GH-4108) https://github.com/python/cpython/commit/33e71e01e95506cf8d93fd68251fc56352bc7b39 |
|||
| msg376487 - (view) | Author: STINNER Victor (vstinner) * | Date: 2020-09-07 13:53 | |
I marked bpo-15681 "PEP 3121 refactoring applied to binascii module" as a duplicate of this issue. |
|||
| msg376488 - (view) | Author: STINNER Victor (vstinner) * | Date: 2020-09-07 13:53 | |
See also bpo-1635741 "Py_Finalize() doesn't clear all Python objects at exit": many extension modules have been ported to multi-phase initialization API (PEP 489) there. |
|||
| msg376489 - (view) | Author: STINNER Victor (vstinner) * | Date: 2020-09-07 13:55 | |
I prefer to track the work in a single issue. Even if bpo-1635741 contains many unrelated changes, I prefer to continue to use bpo-1635741 to track the work on "porting the standard library to PEP 489 multiphase initialization". |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2020-09-07 13:55:42 | vstinner | unlink | issue15681 superseder |
| 2020-09-07 13:55:38 | vstinner | set | status: open -> closed superseder: Py_Finalize() doesn't clear all Python objects at exit messages: + msg376489 resolution: duplicate |
| 2020-09-07 13:53:52 | vstinner | set | messages: + msg376488 |
| 2020-09-07 13:53:05 | vstinner | set | nosy:
+ vstinner messages: + msg376487 |
| 2020-09-07 13:52:38 | vstinner | link | issue15681 superseder |
| 2020-01-16 16:39:59 | Mariatta | set | pull_requests: - pull_request13420 |
| 2019-05-22 19:47:12 | sir-sigurd | set | pull_requests: + pull_request13420 |
| 2019-05-22 11:51:36 | petr.viktorin | set | messages: + msg343182 |
| 2017-10-24 15:18:34 | Dormouse759 | set | keywords:
+ patch stage: patch review pull_requests: + pull_request4078 |
| 2017-10-24 15:15:52 | petr.viktorin | set | messages: + msg304916 |
| 2017-10-24 15:08:56 | Dormouse759 | create | |