Kaydet (Commit) 16416c22 authored tarafından Xiang Zhang's avatar Xiang Zhang Kaydeden (comit) GitHub

bpo-29770: remove outdated PYO related info (GH-590) (GH-612)

üst 701f13ab
...@@ -155,7 +155,7 @@ Glossary ...@@ -155,7 +155,7 @@ Glossary
bytecode bytecode
Python source code is compiled into bytecode, the internal representation Python source code is compiled into bytecode, the internal representation
of a Python program in the CPython interpreter. The bytecode is also of a Python program in the CPython interpreter. The bytecode is also
cached in ``.pyc`` and ``.pyo`` files so that executing the same file is cached in ``.pyc`` files so that executing the same file is
faster the second time (recompilation from source to bytecode can be faster the second time (recompilation from source to bytecode can be
avoided). This "intermediate language" is said to run on a avoided). This "intermediate language" is said to run on a
:term:`virtual machine` that executes the machine code corresponding to :term:`virtual machine` that executes the machine code corresponding to
......
...@@ -464,12 +464,12 @@ The :class:`PyZipFile` constructor takes the same parameters as the ...@@ -464,12 +464,12 @@ The :class:`PyZipFile` constructor takes the same parameters as the
added to the archive, compiling if necessary. added to the archive, compiling if necessary.
If *pathname* is a file, the filename must end with :file:`.py`, and If *pathname* is a file, the filename must end with :file:`.py`, and
just the (corresponding :file:`\*.py[co]`) file is added at the top level just the (corresponding :file:`\*.pyc`) file is added at the top level
(no path information). If *pathname* is a file that does not end with (no path information). If *pathname* is a file that does not end with
:file:`.py`, a :exc:`RuntimeError` will be raised. If it is a directory, :file:`.py`, a :exc:`RuntimeError` will be raised. If it is a directory,
and the directory is not a package directory, then all the files and the directory is not a package directory, then all the files
:file:`\*.py[co]` are added at the top level. If the directory is a :file:`\*.pyc` are added at the top level. If the directory is a
package directory, then all :file:`\*.py[co]` are added under the package package directory, then all :file:`\*.pyc` are added under the package
name as a file path, and if any subdirectories are package directories, name as a file path, and if any subdirectories are package directories,
all of these are added recursively. all of these are added recursively.
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
-------------- --------------
This module adds the ability to import Python modules (:file:`\*.py`, This module adds the ability to import Python modules (:file:`\*.py`,
:file:`\*.py[co]`) and packages from ZIP-format archives. It is usually not :file:`\*.pyc`) and packages from ZIP-format archives. It is usually not
needed to use the :mod:`zipimport` module explicitly; it is automatically used needed to use the :mod:`zipimport` module explicitly; it is automatically used
by the built-in :keyword:`import` mechanism for :data:`sys.path` items that are paths by the built-in :keyword:`import` mechanism for :data:`sys.path` items that are paths
to ZIP archives. to ZIP archives.
......
...@@ -532,8 +532,8 @@ conflict. ...@@ -532,8 +532,8 @@ conflict.
.. envvar:: PYTHONDONTWRITEBYTECODE .. envvar:: PYTHONDONTWRITEBYTECODE
If this is set to a non-empty string, Python won't try to write ``.pyc`` or If this is set to a non-empty string, Python won't try to write ``.pyc``
``.pyo`` files on the import of source modules. This is equivalent to files on the import of source modules. This is equivalent to
specifying the :option:`-B` option. specifying the :option:`-B` option.
......
...@@ -53,7 +53,7 @@ static const char usage_1[] = "\ ...@@ -53,7 +53,7 @@ static const char usage_1[] = "\
Options and arguments (and corresponding environment variables):\n\ Options and arguments (and corresponding environment variables):\n\
-b : issue warnings about str(bytes_instance), str(bytearray_instance)\n\ -b : issue warnings about str(bytes_instance), str(bytearray_instance)\n\
and comparing bytes/bytearray with str. (-bb: issue errors)\n\ and comparing bytes/bytearray with str. (-bb: issue errors)\n\
-B : don't write .py[co] files on import; also PYTHONDONTWRITEBYTECODE=x\n\ -B : don't write .pyc files on import; also PYTHONDONTWRITEBYTECODE=x\n\
-c cmd : program passed in as string (terminates option list)\n\ -c cmd : program passed in as string (terminates option list)\n\
-d : debug output from parser; also PYTHONDEBUG=x\n\ -d : debug output from parser; also PYTHONDEBUG=x\n\
-E : ignore PYTHON* environment variables (such as PYTHONPATH)\n\ -E : ignore PYTHON* environment variables (such as PYTHONPATH)\n\
......
...@@ -1102,7 +1102,7 @@ get_decompress_func(void) ...@@ -1102,7 +1102,7 @@ get_decompress_func(void)
_Py_IDENTIFIER(decompress); _Py_IDENTIFIER(decompress);
if (importing_zlib != 0) if (importing_zlib != 0)
/* Someone has a zlib.py[co] in their Zip file; /* Someone has a zlib.pyc in their Zip file;
let's avoid a stack overflow. */ let's avoid a stack overflow. */
return NULL; return NULL;
importing_zlib = 1; importing_zlib = 1;
...@@ -1261,7 +1261,7 @@ eq_mtime(time_t t1, time_t t2) ...@@ -1261,7 +1261,7 @@ eq_mtime(time_t t1, time_t t2)
return d <= 1; return d <= 1;
} }
/* Given the contents of a .py[co] file in a buffer, unmarshal the data /* Given the contents of a .pyc file in a buffer, unmarshal the data
and return the code object. Return None if it the magic word doesn't and return the code object. Return None if it the magic word doesn't
match (we do this instead of raising an exception as we fall back match (we do this instead of raising an exception as we fall back
to .py if available and we don't want to mask other errors). to .py if available and we don't want to mask other errors).
...@@ -1403,7 +1403,7 @@ get_mtime_of_source(ZipImporter *self, PyObject *path) ...@@ -1403,7 +1403,7 @@ get_mtime_of_source(ZipImporter *self, PyObject *path)
PyObject *toc_entry, *stripped; PyObject *toc_entry, *stripped;
time_t mtime; time_t mtime;
/* strip 'c' or 'o' from *.py[co] */ /* strip 'c' from *.pyc */
if (PyUnicode_READY(path) == -1) if (PyUnicode_READY(path) == -1)
return (time_t)-1; return (time_t)-1;
stripped = PyUnicode_FromKindAndData(PyUnicode_KIND(path), stripped = PyUnicode_FromKindAndData(PyUnicode_KIND(path),
......
...@@ -185,7 +185,7 @@ exists(wchar_t *filename) ...@@ -185,7 +185,7 @@ exists(wchar_t *filename)
may extend 'filename' by one character. may extend 'filename' by one character.
*/ */
static int static int
ismodule(wchar_t *filename, int update_filename) /* Is module -- check for .pyc/.pyo too */ ismodule(wchar_t *filename, int update_filename) /* Is module -- check for .pyc too */
{ {
size_t n; size_t n;
...@@ -196,7 +196,7 @@ ismodule(wchar_t *filename, int update_filename) /* Is module -- check for .pyc/ ...@@ -196,7 +196,7 @@ ismodule(wchar_t *filename, int update_filename) /* Is module -- check for .pyc/
n = wcsnlen_s(filename, MAXPATHLEN+1); n = wcsnlen_s(filename, MAXPATHLEN+1);
if (n < MAXPATHLEN) { if (n < MAXPATHLEN) {
int exist = 0; int exist = 0;
filename[n] = Py_OptimizeFlag ? L'o' : L'c'; filename[n] = L'c';
filename[n + 1] = L'\0'; filename[n + 1] = L'\0';
exist = exists(filename); exist = exists(filename);
if (!update_filename) if (!update_filename)
......
# Remove all the .pyc and .pyo files under ../Lib. # Remove all the .pyc files under ../Lib.
def deltree(root): def deltree(root):
import os import os
from os.path import join from os.path import join
npyc = npyo = 0 npyc = 0
for root, dirs, files in os.walk(root): for root, dirs, files in os.walk(root):
for name in files: for name in files:
delete = False # to be thorough
if name.endswith('.pyc'): if name.endswith(('.pyc', '.pyo')):
delete = True
npyc += 1 npyc += 1
elif name.endswith('.pyo'):
delete = True
npyo += 1
if delete:
os.remove(join(root, name)) os.remove(join(root, name))
return npyc, npyo return npyc
npyc, npyo = deltree("../Lib") npyc = deltree("../Lib")
print(npyc, ".pyc deleted,", npyo, ".pyo deleted") print(npyc, ".pyc deleted")
...@@ -4,8 +4,8 @@ rem Usage: rt [-d] [-O] [-q] [-x64] regrtest_args ...@@ -4,8 +4,8 @@ rem Usage: rt [-d] [-O] [-q] [-x64] regrtest_args
rem -d Run Debug build (python_d.exe). Else release build. rem -d Run Debug build (python_d.exe). Else release build.
rem -O Run python.exe or python_d.exe (see -d) with -O. rem -O Run python.exe or python_d.exe (see -d) with -O.
rem -q "quick" -- normally the tests are run twice, the first time rem -q "quick" -- normally the tests are run twice, the first time
rem after deleting all the .py[co] files reachable from Lib/. rem after deleting all the .pyc files reachable from Lib/.
rem -q runs the tests just once, and without deleting .py[co] files. rem -q runs the tests just once, and without deleting .pyc files.
rem -x64 Run the 64-bit build of python (or python_d if -d was specified) rem -x64 Run the 64-bit build of python (or python_d if -d was specified)
rem from the 'amd64' dir instead of the 32-bit build in this dir. rem from the 'amd64' dir instead of the 32-bit build in this dir.
rem All leading instances of these switches are shifted off, and rem All leading instances of these switches are shifted off, and
...@@ -45,7 +45,7 @@ set exe=%prefix%python%suffix%.exe ...@@ -45,7 +45,7 @@ set exe=%prefix%python%suffix%.exe
set cmd="%exe%" %dashO% -Wd -E -bb -m test %regrtestargs% set cmd="%exe%" %dashO% -Wd -E -bb -m test %regrtestargs%
if defined qmode goto Qmode if defined qmode goto Qmode
echo Deleting .pyc/.pyo files ... echo Deleting .pyc files ...
"%exe%" "%pcbuild%rmpyc.py" "%exe%" "%pcbuild%rmpyc.py"
echo Cleaning _pth files ... echo Cleaning _pth files ...
...@@ -55,7 +55,7 @@ echo on ...@@ -55,7 +55,7 @@ echo on
%cmd% %cmd%
@echo off @echo off
echo About to run again without deleting .pyc/.pyo first: echo About to run again without deleting .pyc first:
pause pause
:Qmode :Qmode
......
...@@ -88,7 +88,7 @@ int Py_BytesWarningFlag; /* Warn on str(bytes) and str(buffer) */ ...@@ -88,7 +88,7 @@ int Py_BytesWarningFlag; /* Warn on str(bytes) and str(buffer) */
int Py_UseClassExceptionsFlag = 1; /* Needed by bltinmodule.c: deprecated */ int Py_UseClassExceptionsFlag = 1; /* Needed by bltinmodule.c: deprecated */
int Py_FrozenFlag; /* Needed by getpath.c */ int Py_FrozenFlag; /* Needed by getpath.c */
int Py_IgnoreEnvironmentFlag; /* e.g. PYTHONPATH, PYTHONHOME */ int Py_IgnoreEnvironmentFlag; /* e.g. PYTHONPATH, PYTHONHOME */
int Py_DontWriteBytecodeFlag; /* Suppress writing bytecode files (*.py[co]) */ int Py_DontWriteBytecodeFlag; /* Suppress writing bytecode files (*.pyc) */
int Py_NoUserSiteDirectory = 0; /* for -s and site.py */ int Py_NoUserSiteDirectory = 0; /* for -s and site.py */
int Py_UnbufferedStdioFlag = 0; /* Unbuffered binary std{in,out,err} */ int Py_UnbufferedStdioFlag = 0; /* Unbuffered binary std{in,out,err} */
int Py_HashRandomizationFlag = 0; /* for -R and PYTHONHASHSEED */ int Py_HashRandomizationFlag = 0; /* for -R and PYTHONHASHSEED */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment