bpo-36301: Remove _PyCoreConfig.preconfig (GH-12546)
* Replace _PyCoreConfig.preconfig with 3 new fields in _PyCoreConfig:
isolated, use_environment, dev_mode.
* Add _PyPreCmdline.dev_mode.
* Add _Py_PreInitializeFromPreConfigInPlace().
diff --git a/Include/cpython/coreconfig.h b/Include/cpython/coreconfig.h
index 621a09f..827a19a 100644
--- a/Include/cpython/coreconfig.h
+++ b/Include/cpython/coreconfig.h
@@ -123,7 +123,9 @@
/* --- _PyCoreConfig ---------------------------------------------- */
typedef struct {
- _PyPreConfig preconfig;
+ int isolated;
+ int use_environment;
+ int dev_mode;
/* Install signal handlers? Yes by default. */
int install_signal_handlers;
@@ -375,7 +377,9 @@
#define _PyCoreConfig_INIT \
(_PyCoreConfig){ \
_PyCoreConfig_WINDOWS_INIT \
- .preconfig = _PyPreConfig_INIT, \
+ .isolated = -1, \
+ .use_environment = -1, \
+ .dev_mode = -1, \
.install_signal_handlers = 1, \
.use_hash_seed = -1, \
.faulthandler = -1, \
diff --git a/Include/cpython/pylifecycle.h b/Include/cpython/pylifecycle.h
index 5f3a522..e32e54c 100644
--- a/Include/cpython/pylifecycle.h
+++ b/Include/cpython/pylifecycle.h
@@ -16,7 +16,7 @@
PyAPI_FUNC(_PyInitError) _Py_PreInitialize(void);
PyAPI_FUNC(_PyInitError) _Py_PreInitializeFromPreConfig(
- _PyPreConfig *preconfig);
+ const _PyPreConfig *preconfig);
PyAPI_FUNC(_PyInitError) _Py_PreInitializeFromConfig(
const _PyCoreConfig *coreconfig);