comparison Python/pythonrun.c @ 47580:94f64f11fdd0

Implement PEP 3121: new module initialization and finalization API.
author Martin v. Löwis <martin@v.loewis.de>
date Wed, 11 Jun 2008 05:26:20 +0000
parents 2284fa89ab08
children e2eb70235392
comparison
equal deleted inserted replaced
47579:e81deccb17c6 47580:94f64f11fdd0
191 _PyUnicode_Init(); 191 _PyUnicode_Init();
192 192
193 bimod = _PyBuiltin_Init(); 193 bimod = _PyBuiltin_Init();
194 if (bimod == NULL) 194 if (bimod == NULL)
195 Py_FatalError("Py_Initialize: can't initialize builtins modules"); 195 Py_FatalError("Py_Initialize: can't initialize builtins modules");
196 _PyImport_FixupExtension(bimod, "builtins", "builtins");
196 interp->builtins = PyModule_GetDict(bimod); 197 interp->builtins = PyModule_GetDict(bimod);
197 if (interp->builtins == NULL) 198 if (interp->builtins == NULL)
198 Py_FatalError("Py_Initialize: can't initialize builtins dict"); 199 Py_FatalError("Py_Initialize: can't initialize builtins dict");
199 Py_INCREF(interp->builtins); 200 Py_INCREF(interp->builtins);
200 201
206 Py_FatalError("Py_Initialize: can't initialize sys"); 207 Py_FatalError("Py_Initialize: can't initialize sys");
207 interp->sysdict = PyModule_GetDict(sysmod); 208 interp->sysdict = PyModule_GetDict(sysmod);
208 if (interp->sysdict == NULL) 209 if (interp->sysdict == NULL)
209 Py_FatalError("Py_Initialize: can't initialize sys dict"); 210 Py_FatalError("Py_Initialize: can't initialize sys dict");
210 Py_INCREF(interp->sysdict); 211 Py_INCREF(interp->sysdict);
211 _PyImport_FixupExtension("sys", "sys"); 212 _PyImport_FixupExtension(sysmod, "sys", "sys");
212 PySys_SetPath(Py_GetPath()); 213 PySys_SetPath(Py_GetPath());
213 PyDict_SetItemString(interp->sysdict, "modules", 214 PyDict_SetItemString(interp->sysdict, "modules",
214 interp->modules); 215 interp->modules);
215 216
216 /* Set up a preliminary stderr printer until we have enough 217 /* Set up a preliminary stderr printer until we have enough
220 Py_FatalError("Py_Initialize: can't set preliminary stderr"); 221 Py_FatalError("Py_Initialize: can't set preliminary stderr");
221 PySys_SetObject("stderr", pstderr); 222 PySys_SetObject("stderr", pstderr);
222 PySys_SetObject("__stderr__", pstderr); 223 PySys_SetObject("__stderr__", pstderr);
223 224
224 _PyImport_Init(); 225 _PyImport_Init();
225
226 /* phase 2 of builtins */
227 _PyImport_FixupExtension("builtins", "builtins");
228 226
229 _PyImportHooks_Init(); 227 _PyImportHooks_Init();
230 228
231 if (install_sigs) 229 if (install_sigs)
232 initsigs(); /* Signal handling stuff, including initintr() */ 230 initsigs(); /* Signal handling stuff, including initintr() */