diff options
author | Eric Snow <ericsnowcurrently@gmail.com> | 2017-05-24 06:00:52 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-24 06:00:52 (GMT) |
commit | c7ec9985bbdbb2b073f2c37febd18268817da29a (patch) | |
tree | 4e3c90c24c8ec2aa0143949ab129d3d98258f9ef /Modules/main.c | |
parent | 9e98cd0383d9e7f06c0537038a32459bf5efa97a (diff) | |
download | cpython-c7ec9985bbdbb2b073f2c37febd18268817da29a.zip cpython-c7ec9985bbdbb2b073f2c37febd18268817da29a.tar.gz cpython-c7ec9985bbdbb2b073f2c37febd18268817da29a.tar.bz2 |
bpo-22257: Private C-API for main interpreter initialization (PEP 432). (#1729)
(patch by Nick Coghlan)
Diffstat (limited to 'Modules/main.c')
-rw-r--r-- | Modules/main.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/Modules/main.c b/Modules/main.c index c41bd96..438cb2c 100644 --- a/Modules/main.c +++ b/Modules/main.c @@ -768,8 +768,21 @@ Py_Main(int argc, wchar_t **argv) #else Py_SetProgramName(argv[0]); #endif - if (_Py_InitializeMainInterpreter(1)) - Py_FatalError("Py_Main: Py_InitializeMainInterpreter failed"); + /* Replaces previous call to Py_Initialize() + * + * TODO: Move environment queries (etc) into Py_ReadConfig + */ + { + _PyMainInterpreterConfig config = _PyMainInterpreterConfig_INIT; + + /* TODO: Moar config options! */ + config.install_signal_handlers = 1; + /* TODO: Print any exceptions raised by these operations */ + if (_Py_ReadMainInterpreterConfig(&config)) + Py_FatalError("Py_Main: Py_ReadMainInterpreterConfig failed"); + if (_Py_InitializeMainInterpreter(&config)) + Py_FatalError("Py_Main: Py_InitializeMainInterpreter failed"); + } /* TODO: Move this to _PyRun_PrepareMain */ if (!Py_QuietFlag && (Py_VerboseFlag || |