compile _bytesio and _stringio into the binary and initalize stdio before site fixing #3279

Reviewer: Alexandre Vassalotti
This commit is contained in:
Benjamin Peterson 2008-09-05 23:27:15 +00:00
parent a741ebf8a1
commit 791dc2f32c
4 changed files with 9 additions and 5 deletions

View File

@ -12,6 +12,9 @@ What's New in Python 3.0 release candidate 1
Core and Builtins 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 - Issue #3660: Corrected a reference leak in str.encode() when the encoder
does not return a bytes object. 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 update this code in Python 3.0 by hand. Update the 2.6 one and then
do "2to3". do "2to3".
- The _bytesio and _stringio modules are now compiled into the python binary.
Tools/Demos Tools/Demos
----------- -----------

View File

@ -113,6 +113,8 @@ _sre _sre.c # Fredrik Lundh's new regular expressions
_codecs _codecsmodule.c # access to the builtin codecs and codec registry _codecs _codecsmodule.c # access to the builtin codecs and codec registry
_fileio _fileio.c # Standard I/O baseline _fileio _fileio.c # Standard I/O baseline
_weakref _weakref.c # weak references _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 # The zipimport module is always imported at startup. Having it as a
# builtin module avoids some bootstrapping problems and reduces overhead. # builtin module avoids some bootstrapping problems and reduces overhead.

View File

@ -239,11 +239,11 @@ Py_InitializeEx(int install_sigs)
} }
initmain(); /* Module __main__ */ initmain(); /* Module __main__ */
if (!Py_NoSiteFlag)
initsite(); /* Module site */
if (initstdio() < 0) if (initstdio() < 0)
Py_FatalError( Py_FatalError(
"Py_Initialize: can't initialize sys standard streams"); "Py_Initialize: can't initialize sys standard streams");
if (!Py_NoSiteFlag)
initsite(); /* Module site */
/* auto-thread-state API, if available */ /* auto-thread-state API, if available */
#ifdef WITH_THREAD #ifdef WITH_THREAD

View File

@ -439,9 +439,6 @@ class PyBuildExt(build_ext):
exts.append( Extension('operator', ['operator.c']) ) exts.append( Extension('operator', ['operator.c']) )
# _functools # _functools
exts.append( Extension("_functools", ["_functoolsmodule.c"]) ) 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 # C-optimized pickle replacement
exts.append( Extension("_pickle", ["_pickle.c"]) ) exts.append( Extension("_pickle", ["_pickle.c"]) )
# atexit # atexit