This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author ncoghlan
Recipients Drekin, Gregory.Salvan, barry, ncoghlan, sbspider, terry.reedy
Date 2014-08-31.03:08:46
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <>
As far as the specific 5 phase vs 2 steps goes, the two steps in PEP 432 terms are the "Pre-Initialized -> Initializing" transition and the "Initializing -> Initialized" transition.

What Gregory is talking about is a potentially good way to organise the second step - systemd in Linux is similarly organised around the idea of a directed acyclic graph of dependencies. For the initial implementation, we're unlikely to go that far though - we'll likely keep the existing initialisation code, and just rearrange the high level invocations.

The other phases in PEP 432 are due to the fact that "run __main__" is a separate step, distinct from interpreter initialisation. When you embed Python as the scripting engine in a larger application, the idea of having a __main__ module may not actually make any sense. In those cases, it will still be there (as the interpreter creates it automatically), it will just be empty. But for the CPython CLI, we need that extra "run main" step. (There's a strong case to be made for that being in a separate PEP, and I may still do that - this discussion is certainly pushing me in that direction)
Date User Action Args
2014-08-31 03:08:47ncoghlansetrecipients: + ncoghlan, barry, terry.reedy, Drekin, Gregory.Salvan, sbspider
2014-08-31 03:08:47ncoghlansetmessageid: <>
2014-08-31 03:08:47ncoghlanlinkissue22257 messages
2014-08-31 03:08:46ncoghlancreate