PEP 741: Add Multi-phase section (#3706)
Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
This commit is contained in:
parent
7e7296bfdc
commit
c4a5976ff3
|
@ -1053,6 +1053,36 @@ implemented in Python 3.8.
|
|||
Disallow setting the ``"configure_locale"`` option has similar issues.
|
||||
|
||||
|
||||
Multi-phase initialization (similar to PEP 432)
|
||||
-----------------------------------------------
|
||||
|
||||
`Eric Snow expressed concerns <https://discuss.python.org/t/pep-741-python-configuration-c-api-second-version/45403/27>`_
|
||||
that this proposal might reinforce with embedders the idea that
|
||||
initialization is a single monolithic step. He argued that initialization
|
||||
involves 5 distinct phases and even suggested that the API should
|
||||
reflect this explicitly. Eric proposed that, at the very least, the
|
||||
implementation of initialization should reflect the phases, in part
|
||||
for improved code health. Overall, his explanation has some
|
||||
similarities with :pep:`432` and :pep:`587`.
|
||||
|
||||
Another of Eric's key points relevant to this PEP was that, ideally,
|
||||
the config passed to ``Py_InitializeFromConfig()`` should be complete
|
||||
before that function is called, whereas currently initialization
|
||||
actually modifies the config.
|
||||
|
||||
While Eric wasn't necessarily suggesting an alternative to PEP 741,
|
||||
any proposal to add a granular initialization API around phases is
|
||||
effectively the opposite of what this PEP is trying to accomplish.
|
||||
Such API is more complicated, it requires adding new public structures
|
||||
and new public functions. It makes the Python initialization more
|
||||
complicated, rather than this PEP tries to unifiy existing APIs and make
|
||||
them simpler (the opposite). Having multiple structures for similar
|
||||
purpose can lead to duplicate members, similar issue than duplicated
|
||||
members between existing ``PyPreConfig`` and ``PyConfig`` structures.
|
||||
|
||||
.. XXX Are the concerns still valid about the config currently not
|
||||
being complete before ``Py_InitializeFromConfig()`` is called?
|
||||
|
||||
|
||||
Discussions
|
||||
===========
|
||||
|
|
Loading…
Reference in New Issue