bpo-38997: Revert commits 6e157fa and 5df5dbe by pablogsal · Pull Request #17509 · python/cpython
PyObject *bimod = _PyBuiltin_Init(tstate); if (bimod == NULL) { goto error;
assert(!_PyErr_Occurred(tstate));
return _PyStatus_OK();
error:
PyStatus status = _PyImportHooks_Init(tstate); if (_PyStatus_EXCEPTION(status)) { return status; }
const PyConfig *config = &tstate->interp->config; if (_Py_IsMainInterpreter(tstate)) { /* Initialize _warnings. */ if (_PyWarnings_Init() == NULL) {
assert(!_PyErr_Occurred(tstate));
return _PyStatus_OK(); }
static PyStatus pycore_interp_init(PyThreadState *tstate) pyinit_config(_PyRuntimeState *runtime, PyThreadState **tstate_p, const PyConfig *config) { PyStatus status; _PyConfig_Write(config, runtime);
status = pycore_init_types(tstate); PyStatus status = pycore_init_runtime(runtime, config); if (_PyStatus_EXCEPTION(status)) { return status; }
PyObject *sysmod; status = _PySys_Create(tstate, &sysmod); PyThreadState *tstate; status = pycore_create_interpreter(runtime, config, &tstate); if (_PyStatus_EXCEPTION(status)) { return status; } config = &tstate->interp->config; *tstate_p = tstate;
status = pycore_init_builtins(tstate); status = pycore_init_types(tstate); if (_PyStatus_EXCEPTION(status)) { return status; }
return pycore_init_import_warnings(tstate, sysmod); }
static PyStatus pyinit_config(_PyRuntimeState *runtime, PyThreadState **tstate_p, const PyConfig *config) { _PyConfig_Write(config, runtime);
PyStatus status = pycore_init_runtime(runtime, config); PyObject *sysmod; status = _PySys_Create(tstate, &sysmod); if (_PyStatus_EXCEPTION(status)) { return status; }
PyThreadState *tstate; status = pycore_create_interpreter(runtime, config, &tstate); status = pycore_init_builtins(tstate); if (_PyStatus_EXCEPTION(status)) { return status; } config = &tstate->interp->config; *tstate_p = tstate;
status = pycore_interp_init(tstate); status = pycore_init_import_warnings(tstate, sysmod); if (_PyStatus_EXCEPTION(status)) { return status; }
PyStatus status; int is_main_interp = _Py_IsMainInterpreter(tstate); PyInterpreterState *interp = tstate->interp;
if (_PySys_InitMain(tstate) < 0) { return _PyStatus_ERR("can't finish initializing sys"); if (_PySys_InitMain(tstate) < 0) { return _PyStatus_ERR("can't finish initializing sys"); } }
status = init_importlib_external(tstate);
assert(!_PyErr_Occurred(tstate));
return _PyStatus_OK(); }
status = _PyConfig_Copy(&interp->config, config); if (_PyStatus_EXCEPTION(status)) { goto error; goto done; } config = &interp->config;
status = pycore_interp_init(tstate); if (_PyStatus_EXCEPTION(status)) { goto error; status = pycore_init_types(tstate);
/* XXX The following is lax in error checking */ PyObject *modules = PyDict_New(); if (modules == NULL) { status = _PyStatus_ERR("can't make modules dictionary"); goto done; } interp->modules = modules;
PyObject *sysmod = _PyImport_FindBuiltin(tstate, "sys"); if (sysmod != NULL) { interp->sysdict = PyModule_GetDict(sysmod); if (interp->sysdict == NULL) { goto handle_exc; } Py_INCREF(interp->sysdict); PyDict_SetItemString(interp->sysdict, "modules", modules); if (_PySys_InitMain(tstate) < 0) { status = _PyStatus_ERR("can't finish initializing sys"); goto done; } } else if (_PyErr_Occurred(tstate)) { goto handle_exc; }
status = init_interp_main(tstate); status = pycore_init_builtins(tstate); if (_PyStatus_EXCEPTION(status)) { goto error; goto done; }
if (sysmod != NULL) { status = _PySys_SetPreliminaryStderr(interp->sysdict); if (_PyStatus_EXCEPTION(status)) { goto done; }
status = pycore_init_import_warnings(tstate, sysmod); if (_PyStatus_EXCEPTION(status)) { goto done; }
status = init_interp_main(tstate); if (_PyStatus_EXCEPTION(status)) { goto done; } }
if (_PyErr_Occurred(tstate)) { goto handle_exc; }
*tstate_p = tstate; return _PyStatus_OK();
error: handle_exc: status = _PyStatus_OK();
done: *tstate_p = NULL;
/* Oops, it didn't work. Undo it all. */