[Python-checkins] bpo-36763: Remove _PyCoreConfig._init_main (GH-13066)
Victor Stinner
webhook-mailer at python.org
Thu May 2 15:30:25 EDT 2019
https://github.com/python/cpython/commit/4631da1242fc96002a3c0462a87d087e567368aa
commit: 4631da1242fc96002a3c0462a87d087e567368aa
branch: master
author: Victor Stinner <vstinner at redhat.com>
committer: GitHub <noreply at github.com>
date: 2019-05-02T15:30:21-04:00
summary:
bpo-36763: Remove _PyCoreConfig._init_main (GH-13066)
files:
M Include/cpython/coreconfig.h
M Lib/test/test_embed.py
M Programs/_freeze_importlib.c
M Programs/_testembed.c
M Python/coreconfig.c
M Python/pylifecycle.c
diff --git a/Include/cpython/coreconfig.h b/Include/cpython/coreconfig.h
index 5672080b784f..47a6baa1118f 100644
--- a/Include/cpython/coreconfig.h
+++ b/Include/cpython/coreconfig.h
@@ -391,9 +391,6 @@ typedef struct {
If set to -1 (default), inherit Py_FrozenFlag value. */
int _frozen;
- /* If non-zero, use "main" Python initialization */
- int _init_main;
-
} _PyCoreConfig;
#ifdef MS_WINDOWS
@@ -428,8 +425,7 @@ typedef struct {
.buffered_stdio = -1, \
._install_importlib = 1, \
.check_hash_pycs_mode = NULL, \
- ._frozen = -1, \
- ._init_main = 1}
+ ._frozen = -1}
/* Note: _PyCoreConfig_INIT sets other fields to 0/NULL */
#ifdef __cplusplus
diff --git a/Lib/test/test_embed.py b/Lib/test/test_embed.py
index fb0051957aad..fdf5793789df 100644
--- a/Lib/test/test_embed.py
+++ b/Lib/test/test_embed.py
@@ -348,7 +348,6 @@ class InitConfigTests(EmbeddingTestsMixin, unittest.TestCase):
'_install_importlib': 1,
'check_hash_pycs_mode': 'default',
'_frozen': 0,
- '_init_main': 1,
}
if MS_WINDOWS:
DEFAULT_PRE_CONFIG.update({
@@ -443,7 +442,10 @@ def get_expected_config(self, expected, env):
raise Exception(f"failed to get the default config: "
f"stdout={proc.stdout!r} stderr={proc.stderr!r}")
stdout = proc.stdout.decode('utf-8')
- config = json.loads(stdout)
+ try:
+ config = json.loads(stdout)
+ except json.JSONDecodeError:
+ self.fail(f"fail to decode stdout: {stdout!r}")
for key, value in expected.items():
if value is self.GET_DEFAULT_CONFIG:
@@ -496,7 +498,10 @@ def check_config(self, testname, expected_config, expected_preconfig):
out, err = self.run_embedded_interpreter(testname, env=env)
# Ignore err
- config = json.loads(out)
+ try:
+ config = json.loads(out)
+ except json.JSONDecodeError:
+ self.fail(f"fail to decode stdout: {out!r}")
expected_preconfig = dict(self.DEFAULT_PRE_CONFIG, **expected_preconfig)
expected_config = self.get_expected_config(expected_config, env)
@@ -533,7 +538,6 @@ def test_init_global_config(self):
'filesystem_encoding': 'utf-8',
'filesystem_errors': self.UTF8_MODE_ERRORS,
'user_site_directory': 0,
- '_frozen': 1,
}
self.check_config("init_global_config", config, preconfig)
@@ -578,7 +582,6 @@ def test_init_from_config(self):
'faulthandler': 1,
'check_hash_pycs_mode': 'always',
- '_frozen': 1,
}
self.check_config("init_from_config", config, preconfig)
diff --git a/Programs/_freeze_importlib.c b/Programs/_freeze_importlib.c
index 6f77e86a9e66..0818012d8c5a 100644
--- a/Programs/_freeze_importlib.c
+++ b/Programs/_freeze_importlib.c
@@ -84,7 +84,6 @@ main(int argc, char *argv[])
/* Don't install importlib, since it could execute outdated bytecode. */
config._install_importlib = 0;
config._frozen = 1;
- config._init_main = 0;
_PyInitError err = _Py_InitializeFromConfig(&config);
/* No need to call _PyCoreConfig_Clear() since we didn't allocate any
diff --git a/Programs/_testembed.c b/Programs/_testembed.c
index 2cadf82cb17f..b12594799bfc 100644
--- a/Programs/_testembed.c
+++ b/Programs/_testembed.c
@@ -354,8 +354,6 @@ static int test_init_global_config(void)
putenv("PYTHONUNBUFFERED=");
Py_UnbufferedStdioFlag = 1;
- Py_FrozenFlag = 1;
-
/* FIXME: test Py_LegacyWindowsFSEncodingFlag */
/* FIXME: test Py_LegacyWindowsStdioFlag */
@@ -497,9 +495,6 @@ static int test_init_from_config(void)
config.check_hash_pycs_mode = L"always";
- Py_FrozenFlag = 0;
- config._frozen = 1;
-
err = _Py_InitializeFromConfig(&config);
if (_Py_INIT_FAILED(err)) {
_Py_ExitInitError(err);
diff --git a/Python/coreconfig.c b/Python/coreconfig.c
index 52026949e202..ac01712127ac 100644
--- a/Python/coreconfig.c
+++ b/Python/coreconfig.c
@@ -667,7 +667,6 @@ _PyCoreConfig_Copy(_PyCoreConfig *config, const _PyCoreConfig *config2)
COPY_WSTR_ATTR(run_filename);
COPY_WSTR_ATTR(check_hash_pycs_mode);
COPY_ATTR(_frozen);
- COPY_ATTR(_init_main);
#undef COPY_ATTR
#undef COPY_WSTR_ATTR
@@ -766,7 +765,6 @@ _PyCoreConfig_AsDict(const _PyCoreConfig *config)
SET_ITEM_INT(_install_importlib);
SET_ITEM_WSTR(check_hash_pycs_mode);
SET_ITEM_INT(_frozen);
- SET_ITEM_INT(_init_main);
return dict;
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index 2ba43b99cf3a..bd4d1d92662a 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -988,7 +988,7 @@ init_python(const _PyCoreConfig *config, const _PyArgv *args)
}
config = &interp->core_config;
- if (config->_init_main) {
+ if (!config->_frozen) {
err = _Py_InitializeMainInterpreter(runtime, interp);
if (_Py_INIT_FAILED(err)) {
return err;
More information about the Python-checkins
mailing list