From: Benjamin Peterson Date: Fri, 5 Sep 2008 23:27:15 +0000 (+0000) Subject: compile _bytesio and _stringio into the binary and initalize stdio before site fixing... X-Git-Tag: v3.0rc1~87 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=791dc2f32c3fb707319d0c8d93d6cde6175d1e01;p=python compile _bytesio and _stringio into the binary and initalize stdio before site fixing #3279 Reviewer: Alexandre Vassalotti --- diff --git a/Misc/NEWS b/Misc/NEWS index f388f11a81..8cc1af0ac8 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -12,6 +12,9 @@ What's New in Python 3.0 release candidate 1 Core and Builtins ----------------- +- Issue #3279: Importing site at interpreter was failing silently because the + site module uses the open builtin which was not initialized at the time. + - Issue #3660: Corrected a reference leak in str.encode() when the encoder does not return a bytes object. @@ -125,6 +128,8 @@ Extension Modules update this code in Python 3.0 by hand. Update the 2.6 one and then do "2to3". +- The _bytesio and _stringio modules are now compiled into the python binary. + Tools/Demos ----------- diff --git a/Modules/Setup.dist b/Modules/Setup.dist index d2c89711a8..a2b20cad38 100644 --- a/Modules/Setup.dist +++ b/Modules/Setup.dist @@ -113,6 +113,8 @@ _sre _sre.c # Fredrik Lundh's new regular expressions _codecs _codecsmodule.c # access to the builtin codecs and codec registry _fileio _fileio.c # Standard I/O baseline _weakref _weakref.c # weak references +_bytesio _bytesio.c # For Lib/io.py +_stringio _stringio.c # For Lib/io.py # The zipimport module is always imported at startup. Having it as a # builtin module avoids some bootstrapping problems and reduces overhead. diff --git a/Python/pythonrun.c b/Python/pythonrun.c index 39c86e749f..3e40d51fc0 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -239,11 +239,11 @@ Py_InitializeEx(int install_sigs) } initmain(); /* Module __main__ */ - if (!Py_NoSiteFlag) - initsite(); /* Module site */ if (initstdio() < 0) Py_FatalError( "Py_Initialize: can't initialize sys standard streams"); + if (!Py_NoSiteFlag) + initsite(); /* Module site */ /* auto-thread-state API, if available */ #ifdef WITH_THREAD diff --git a/setup.py b/setup.py index 7837c8a386..bc47a8982f 100644 --- a/setup.py +++ b/setup.py @@ -439,9 +439,6 @@ class PyBuildExt(build_ext): exts.append( Extension('operator', ['operator.c']) ) # _functools exts.append( Extension("_functools", ["_functoolsmodule.c"]) ) - # Memory-based IO accelerator modules - exts.append( Extension("_bytesio", ["_bytesio.c"]) ) - exts.append( Extension("_stringio", ["_stringio.c"]) ) # C-optimized pickle replacement exts.append( Extension("_pickle", ["_pickle.c"]) ) # atexit