Skip to content

Commit 1dc6e39

Browse files
authored
bpo-34170: Add _Py_InitializeFromConfig() (pythonGH-8454)
* If _Py_InitializeCore() is called twice, the second call now copies and apply (partially) the new configuration. * Rename _Py_CommandLineDetails to _PyCmdline * Move more code into pymain_init(). The core configuration created by Py_Main() is new destroyed before running Python to reduce the memory footprint. * _Py_InitializeCore() now returns the created interpreter. _Py_InitializeMainInterpreter() now expects an interpreter. * Remove _Py_InitializeEx_Private(): _freeze_importlib now uses _Py_InitializeFromConfig() * _PyCoreConfig_InitPathConfig() now only computes the path configuration if needed.
1 parent 6cf8255 commit 1dc6e39

File tree

6 files changed

+297
-200
lines changed

6 files changed

+297
-200
lines changed

Include/pylifecycle.h

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,9 @@ PyAPI_FUNC(int) Py_SetStandardStreamEncoding(const char *encoding,
5151
const char *errors);
5252

5353
/* PEP 432 Multi-phase initialization API (Private while provisional!) */
54-
PyAPI_FUNC(_PyInitError) _Py_InitializeCore(const _PyCoreConfig *);
54+
PyAPI_FUNC(_PyInitError) _Py_InitializeCore(
55+
PyInterpreterState **interp,
56+
const _PyCoreConfig *);
5557
PyAPI_FUNC(int) _Py_IsCoreInitialized(void);
5658

5759
PyAPI_FUNC(_PyInitError) _PyCoreConfig_Read(_PyCoreConfig *config);
@@ -73,14 +75,17 @@ PyAPI_FUNC(int) _PyMainInterpreterConfig_Copy(
7375
_PyMainInterpreterConfig *config,
7476
const _PyMainInterpreterConfig *config2);
7577

76-
PyAPI_FUNC(_PyInitError) _Py_InitializeMainInterpreter(const _PyMainInterpreterConfig *);
78+
PyAPI_FUNC(_PyInitError) _Py_InitializeMainInterpreter(
79+
PyInterpreterState *interp,
80+
const _PyMainInterpreterConfig *);
7781
#endif
7882

7983
/* Initialization and finalization */
8084
PyAPI_FUNC(void) Py_Initialize(void);
8185
PyAPI_FUNC(void) Py_InitializeEx(int);
8286
#ifndef Py_LIMITED_API
83-
PyAPI_FUNC(_PyInitError) _Py_InitializeEx_Private(int, int);
87+
PyAPI_FUNC(_PyInitError) _Py_InitializeFromConfig(
88+
const _PyCoreConfig *config);
8489
PyAPI_FUNC(void) _Py_FatalInitError(_PyInitError err) _Py_NO_RETURN;
8590
#endif
8691
PyAPI_FUNC(void) Py_Finalize(void);

Include/pystate.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -200,8 +200,7 @@ typedef struct {
200200
/* --- Private fields -------- */
201201

202202
/* Install importlib? If set to 0, importlib is not initialized at all.
203-
Needed by freeze_importlib: see install_importlib argument of
204-
_Py_InitializeEx_Private(). */
203+
Needed by freeze_importlib. */
205204
int _install_importlib;
206205

207206
/* Value of the --check-hash-based-pycs configure option. Valid values:

0 commit comments

Comments
 (0)