mirror of
https://github.com/python/cpython.git
synced 2025-09-30 12:21:51 +00:00
Backport master's README.rst to 3.6 (GH-86)
Includes GH-2, GH-70, GH-73 (GH-79), and GH-21.
This commit is contained in:
parent
7d5587e687
commit
1e8cc88a48
2 changed files with 235 additions and 242 deletions
242
README
242
README
|
@ -1,242 +0,0 @@
|
||||||
This is Python version 3.6.1 release candidate 1
|
|
||||||
================================================
|
|
||||||
|
|
||||||
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
|
|
||||||
2012, 2013, 2014, 2015, 2016, 2017 Python Software Foundation. All rights
|
|
||||||
reserved.
|
|
||||||
|
|
||||||
Python 3.x is a new version of the language, which is incompatible with the
|
|
||||||
2.x line of releases. The language is mostly the same, but many details,
|
|
||||||
especially how built-in objects like dictionaries and strings work,
|
|
||||||
have changed considerably, and a lot of deprecated features have finally
|
|
||||||
been removed.
|
|
||||||
|
|
||||||
Using Python
|
|
||||||
------------
|
|
||||||
|
|
||||||
Installable Python kits, and information about using Python, are available at
|
|
||||||
`python.org`_.
|
|
||||||
|
|
||||||
.. _python.org: https://www.python.org/
|
|
||||||
|
|
||||||
|
|
||||||
Build Instructions
|
|
||||||
------------------
|
|
||||||
|
|
||||||
On Unix, Linux, BSD, OSX, and Cygwin:
|
|
||||||
|
|
||||||
./configure
|
|
||||||
make
|
|
||||||
make test
|
|
||||||
sudo make install
|
|
||||||
|
|
||||||
This will install Python as python3.
|
|
||||||
|
|
||||||
You can pass many options to the configure script; run "./configure --help" to
|
|
||||||
find out more. On OSX and Cygwin, the executable is called python.exe;
|
|
||||||
elsewhere it's just python.
|
|
||||||
|
|
||||||
On Mac OS X, if you have configured Python with --enable-framework, you should
|
|
||||||
use "make frameworkinstall" to do the installation. Note that this installs the
|
|
||||||
Python executable in a place that is not normally on your PATH, you may want to
|
|
||||||
set up a symlink in /usr/local/bin.
|
|
||||||
|
|
||||||
On Windows, see PCbuild/readme.txt.
|
|
||||||
|
|
||||||
If you wish, you can create a subdirectory and invoke configure from there.
|
|
||||||
For example:
|
|
||||||
|
|
||||||
mkdir debug
|
|
||||||
cd debug
|
|
||||||
../configure --with-pydebug
|
|
||||||
make
|
|
||||||
make test
|
|
||||||
|
|
||||||
(This will fail if you *also* built at the top-level directory.
|
|
||||||
You should do a "make clean" at the toplevel first.)
|
|
||||||
|
|
||||||
To get an optimized build of Python, "configure --enable-optimizations" before
|
|
||||||
you run make. This sets the default make targets up to enable Profile Guided
|
|
||||||
Optimization (PGO) and may be used to auto-enable Link Time Optimization (LTO)
|
|
||||||
on some platforms. For more details, see the sections bellow.
|
|
||||||
|
|
||||||
|
|
||||||
Profile Guided Optimization
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
PGO takes advantage of recent versions of the GCC or Clang compilers.
|
|
||||||
If ran, "make profile-opt" will do several steps.
|
|
||||||
|
|
||||||
First, the entire Python directory is cleaned of temporary files that
|
|
||||||
may have resulted in a previous compilation.
|
|
||||||
|
|
||||||
Then, an instrumented version of the interpreter is built, using suitable
|
|
||||||
compiler flags for each flavour. Note that this is just an intermediary
|
|
||||||
step and the binary resulted after this step is not good for real life
|
|
||||||
workloads, as it has profiling instructions embedded inside.
|
|
||||||
|
|
||||||
After this instrumented version of the interpreter is built, the Makefile
|
|
||||||
will automatically run a training workload. This is necessary in order to
|
|
||||||
profile the interpreter execution. Note also that any output, both stdout
|
|
||||||
and stderr, that may appear at this step is suppressed.
|
|
||||||
|
|
||||||
Finally, the last step is to rebuild the interpreter, using the information
|
|
||||||
collected in the previous one. The end result will be a Python binary
|
|
||||||
that is optimized and suitable for distribution or production installation.
|
|
||||||
|
|
||||||
|
|
||||||
Link Time Optimization
|
|
||||||
----------------------
|
|
||||||
|
|
||||||
Enabled via configure's --with-lto flag. LTO takes advantages of recent
|
|
||||||
compiler toolchains ability to optimize across the otherwise arbitrary .o file
|
|
||||||
boundary when building final executables or shared libraries for additional
|
|
||||||
performance gains.
|
|
||||||
|
|
||||||
|
|
||||||
What's New
|
|
||||||
----------
|
|
||||||
|
|
||||||
We have a comprehensive overview of the changes in the "What's New in
|
|
||||||
Python 3.6" document, found at
|
|
||||||
|
|
||||||
https://docs.python.org/3.6/whatsnew/3.6.html
|
|
||||||
|
|
||||||
For a more detailed change log, read Misc/NEWS (though this file, too,
|
|
||||||
is incomplete, and also doesn't list anything merged in from the 2.7
|
|
||||||
release under development).
|
|
||||||
|
|
||||||
If you want to install multiple versions of Python see the section below
|
|
||||||
entitled "Installing multiple versions".
|
|
||||||
|
|
||||||
|
|
||||||
Documentation
|
|
||||||
-------------
|
|
||||||
|
|
||||||
Documentation for Python 3.6 is online, updated daily:
|
|
||||||
|
|
||||||
https://docs.python.org/3.6/
|
|
||||||
|
|
||||||
It can also be downloaded in many formats for faster access. The documentation
|
|
||||||
is downloadable in HTML, PDF, and reStructuredText formats; the latter version
|
|
||||||
is primarily for documentation authors, translators, and people with special
|
|
||||||
formatting requirements.
|
|
||||||
|
|
||||||
If you would like to contribute to the development of Python, relevant
|
|
||||||
documentation is available at:
|
|
||||||
|
|
||||||
https://docs.python.org/devguide/
|
|
||||||
|
|
||||||
For information about building Python's documentation, refer to Doc/README.txt.
|
|
||||||
|
|
||||||
|
|
||||||
Converting From Python 2.x to 3.x
|
|
||||||
---------------------------------
|
|
||||||
|
|
||||||
Python starting with 2.6 contains features to help locating code that needs to
|
|
||||||
be changed, such as optional warnings when deprecated features are used, and
|
|
||||||
backported versions of certain key Python 3.x features.
|
|
||||||
|
|
||||||
A source-to-source translation tool, "2to3", can take care of the mundane task
|
|
||||||
of converting large amounts of source code. It is not a complete solution but
|
|
||||||
is complemented by the deprecation warnings in 2.6. See
|
|
||||||
https://docs.python.org/3.6/library/2to3.html for more information.
|
|
||||||
|
|
||||||
|
|
||||||
Testing
|
|
||||||
-------
|
|
||||||
|
|
||||||
To test the interpreter, type "make test" in the top-level directory.
|
|
||||||
The test set produces some output. You can generally ignore the messages
|
|
||||||
about skipped tests due to optional features which can't be imported.
|
|
||||||
If a message is printed about a failed test or a traceback or core dump
|
|
||||||
is produced, something is wrong.
|
|
||||||
|
|
||||||
By default, tests are prevented from overusing resources like disk space and
|
|
||||||
memory. To enable these tests, run "make testall".
|
|
||||||
|
|
||||||
IMPORTANT: If the tests fail and you decide to mail a bug report, *don't*
|
|
||||||
include the output of "make test". It is useless. Run the failing test
|
|
||||||
manually, as follows:
|
|
||||||
|
|
||||||
./python -m test -v test_whatever
|
|
||||||
|
|
||||||
(substituting the top of the source tree for '.' if you built in a different
|
|
||||||
directory). This runs the test in verbose mode.
|
|
||||||
|
|
||||||
|
|
||||||
Installing multiple versions
|
|
||||||
----------------------------
|
|
||||||
|
|
||||||
On Unix and Mac systems if you intend to install multiple versions of Python
|
|
||||||
using the same installation prefix (--prefix argument to the configure script)
|
|
||||||
you must take care that your primary python executable is not overwritten by the
|
|
||||||
installation of a different version. All files and directories installed using
|
|
||||||
"make altinstall" contain the major and minor version and can thus live
|
|
||||||
side-by-side. "make install" also creates ${prefix}/bin/python3 which refers to
|
|
||||||
${prefix}/bin/pythonX.Y. If you intend to install multiple versions using the
|
|
||||||
same prefix you must decide which version (if any) is your "primary" version.
|
|
||||||
Install that version using "make install". Install all other versions using
|
|
||||||
"make altinstall".
|
|
||||||
|
|
||||||
For example, if you want to install Python 2.7, 3.5, and 3.6 with 3.6 being the
|
|
||||||
primary version, you would execute "make install" in your 3.6 build directory
|
|
||||||
and "make altinstall" in the others.
|
|
||||||
|
|
||||||
|
|
||||||
Issue Tracker and Mailing List
|
|
||||||
------------------------------
|
|
||||||
|
|
||||||
We're soliciting bug reports about all aspects of the language. Fixes are also
|
|
||||||
welcome, preferably in unified diff format. Please use the issue tracker:
|
|
||||||
|
|
||||||
https://bugs.python.org/
|
|
||||||
|
|
||||||
If you're not sure whether you're dealing with a bug or a feature, use the
|
|
||||||
mailing list:
|
|
||||||
|
|
||||||
python-dev@python.org
|
|
||||||
|
|
||||||
To subscribe to the list, use the mailman form:
|
|
||||||
|
|
||||||
https://mail.python.org/mailman/listinfo/python-dev/
|
|
||||||
|
|
||||||
|
|
||||||
Proposals for enhancement
|
|
||||||
-------------------------
|
|
||||||
|
|
||||||
If you have a proposal to change Python, you may want to send an email to the
|
|
||||||
comp.lang.python or `python-ideas`_ mailing lists for initial feedback. A Python
|
|
||||||
Enhancement Proposal (PEP) may be submitted if your idea gains ground. All
|
|
||||||
current PEPs, as well as guidelines for submitting a new PEP, are listed at
|
|
||||||
https://www.python.org/dev/peps/.
|
|
||||||
|
|
||||||
.. _python-ideas: https://mail.python.org/mailman/listinfo/python-ideas/
|
|
||||||
|
|
||||||
Release Schedule
|
|
||||||
----------------
|
|
||||||
|
|
||||||
See PEP 494 for release details: https://www.python.org/dev/peps/pep-0494/
|
|
||||||
|
|
||||||
|
|
||||||
Copyright and License Information
|
|
||||||
---------------------------------
|
|
||||||
|
|
||||||
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
|
|
||||||
2012, 2013, 2014, 2015, 2016 Python Software Foundation. All rights reserved.
|
|
||||||
|
|
||||||
Copyright (c) 2000 BeOpen.com. All rights reserved.
|
|
||||||
|
|
||||||
Copyright (c) 1995-2001 Corporation for National Research Initiatives. All
|
|
||||||
rights reserved.
|
|
||||||
|
|
||||||
Copyright (c) 1991-1995 Stichting Mathematisch Centrum. All rights reserved.
|
|
||||||
|
|
||||||
See the file "LICENSE" for information on the history of this software,
|
|
||||||
terms & conditions for usage, and a DISCLAIMER OF ALL WARRANTIES.
|
|
||||||
|
|
||||||
This Python distribution contains *no* GNU General Public License (GPL) code,
|
|
||||||
so it may be used in proprietary projects. There are interfaces to some GNU
|
|
||||||
code but these are entirely optional.
|
|
||||||
|
|
||||||
All trademarks referenced herein are property of their respective holders.
|
|
235
README.rst
Normal file
235
README.rst
Normal file
|
@ -0,0 +1,235 @@
|
||||||
|
This is Python version 3.6.1 release candidate 1
|
||||||
|
================================================
|
||||||
|
|
||||||
|
.. image:: https://travis-ci.org/python/cpython.svg?branch=3.6
|
||||||
|
:alt: CPython build status on Travis CI
|
||||||
|
:target: https://travis-ci.org/python/cpython
|
||||||
|
|
||||||
|
.. image:: https://codecov.io/gh/python/cpython/branch/3.6/graph/badge.svg
|
||||||
|
:alt: CPython code coverage on Codecov
|
||||||
|
:target: https://codecov.io/gh/python/cpython
|
||||||
|
|
||||||
|
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
|
||||||
|
2012, 2013, 2014, 2015, 2016, 2017 Python Software Foundation. All rights
|
||||||
|
reserved.
|
||||||
|
|
||||||
|
See the end of this file for further copyright and license information.
|
||||||
|
|
||||||
|
|
||||||
|
Using Python
|
||||||
|
------------
|
||||||
|
|
||||||
|
Installable Python kits, and information about using Python, are available at
|
||||||
|
`python.org`_.
|
||||||
|
|
||||||
|
.. _python.org: https://www.python.org/
|
||||||
|
|
||||||
|
|
||||||
|
Build Instructions
|
||||||
|
------------------
|
||||||
|
|
||||||
|
On Unix, Linux, BSD, OSX, and Cygwin::
|
||||||
|
|
||||||
|
./configure
|
||||||
|
make
|
||||||
|
make test
|
||||||
|
sudo make install
|
||||||
|
|
||||||
|
This will install Python as python3.
|
||||||
|
|
||||||
|
You can pass many options to the configure script; run ``./configure --help``
|
||||||
|
to find out more. On OSX and Cygwin, the executable is called ``python.exe``;
|
||||||
|
elsewhere it's just ``python``.
|
||||||
|
|
||||||
|
On Mac OS X, if you have configured Python with ``--enable-framework``, you
|
||||||
|
should use ``make frameworkinstall`` to do the installation. Note that this
|
||||||
|
installs the Python executable in a place that is not normally on your PATH,
|
||||||
|
you may want to set up a symlink in ``/usr/local/bin``.
|
||||||
|
|
||||||
|
On Windows, see `PCbuild/readme.txt
|
||||||
|
<https://github.com/python/cpython/blob/3.6/PCbuild/readme.txt>`_.
|
||||||
|
|
||||||
|
If you wish, you can create a subdirectory and invoke configure from there.
|
||||||
|
For example::
|
||||||
|
|
||||||
|
mkdir debug
|
||||||
|
cd debug
|
||||||
|
../configure --with-pydebug
|
||||||
|
make
|
||||||
|
make test
|
||||||
|
|
||||||
|
(This will fail if you *also* built at the top-level directory. You should do
|
||||||
|
a ``make clean`` at the toplevel first.)
|
||||||
|
|
||||||
|
To get an optimized build of Python, ``configure --enable-optimizations``
|
||||||
|
before you run ``make``. This sets the default make targets up to enable
|
||||||
|
Profile Guided Optimization (PGO) and may be used to auto-enable Link Time
|
||||||
|
Optimization (LTO) on some platforms. For more details, see the sections
|
||||||
|
below.
|
||||||
|
|
||||||
|
|
||||||
|
Profile Guided Optimization
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
PGO takes advantage of recent versions of the GCC or Clang compilers. If ran,
|
||||||
|
``make profile-opt`` will do several steps.
|
||||||
|
|
||||||
|
First, the entire Python directory is cleaned of temporary files that may have
|
||||||
|
resulted in a previous compilation.
|
||||||
|
|
||||||
|
Then, an instrumented version of the interpreter is built, using suitable
|
||||||
|
compiler flags for each flavour. Note that this is just an intermediary step
|
||||||
|
and the binary resulted after this step is not good for real life workloads, as
|
||||||
|
it has profiling instructions embedded inside.
|
||||||
|
|
||||||
|
After this instrumented version of the interpreter is built, the Makefile will
|
||||||
|
automatically run a training workload. This is necessary in order to profile
|
||||||
|
the interpreter execution. Note also that any output, both stdout and stderr,
|
||||||
|
that may appear at this step is suppressed.
|
||||||
|
|
||||||
|
Finally, the last step is to rebuild the interpreter, using the information
|
||||||
|
collected in the previous one. The end result will be a Python binary that is
|
||||||
|
optimized and suitable for distribution or production installation.
|
||||||
|
|
||||||
|
|
||||||
|
Link Time Optimization
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
Enabled via configure's ``--with-lto`` flag. LTO takes advantage of the
|
||||||
|
ability of recent compiler toolchains to optimize across the otherwise
|
||||||
|
arbitrary ``.o`` file boundary when building final executables or shared
|
||||||
|
libraries for additional performance gains.
|
||||||
|
|
||||||
|
|
||||||
|
What's New
|
||||||
|
----------
|
||||||
|
|
||||||
|
We have a comprehensive overview of the changes in the `What's New in Python
|
||||||
|
3.6 <https://docs.python.org/3.6/whatsnew/3.6.html>`_ document. For a more
|
||||||
|
detailed change log, read `Misc/NEWS
|
||||||
|
<https://github.com/python/cpython/blob/3.6/Misc/NEWS>`_, but a full
|
||||||
|
accounting of changes can only be gleaned from the `commit history
|
||||||
|
<https://github.com/python/cpython/commits/3.6>`_.
|
||||||
|
|
||||||
|
If you want to install multiple versions of Python see the section below
|
||||||
|
entitled "Installing multiple versions".
|
||||||
|
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
-------------
|
||||||
|
|
||||||
|
`Documentation for Python 3.6 <https://docs.python.org/3.6/>`_ is online,
|
||||||
|
updated daily.
|
||||||
|
|
||||||
|
It can also be downloaded in many formats for faster access. The documentation
|
||||||
|
is downloadable in HTML, PDF, and reStructuredText formats; the latter version
|
||||||
|
is primarily for documentation authors, translators, and people with special
|
||||||
|
formatting requirements.
|
||||||
|
|
||||||
|
If you would like to contribute to the development of Python, relevant
|
||||||
|
documentation is available in the `Python Developer's Guide
|
||||||
|
<https://docs.python.org/devguide/>`_.
|
||||||
|
|
||||||
|
For information about building Python's documentation, refer to `Doc/README.txt
|
||||||
|
<https://github.com/python/cpython/blob/3.6/Doc/README.txt>`_.
|
||||||
|
|
||||||
|
|
||||||
|
Converting From Python 2.x to 3.x
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
|
Significant backward incompatible changes were made for the release of Python
|
||||||
|
3.0, which may cause programs written for Python 2 to fail when run with Python
|
||||||
|
3. For more information about porting your code from Python 2 to Python 3, see
|
||||||
|
the `Porting HOWTO <https://docs.python.org/3/howto/pyporting.html>`_.
|
||||||
|
|
||||||
|
|
||||||
|
Testing
|
||||||
|
-------
|
||||||
|
|
||||||
|
To test the interpreter, type ``make test`` in the top-level directory. The
|
||||||
|
test set produces some output. You can generally ignore the messages about
|
||||||
|
skipped tests due to optional features which can't be imported. If a message
|
||||||
|
is printed about a failed test or a traceback or core dump is produced,
|
||||||
|
something is wrong.
|
||||||
|
|
||||||
|
By default, tests are prevented from overusing resources like disk space and
|
||||||
|
memory. To enable these tests, run ``make testall``.
|
||||||
|
|
||||||
|
If any tests fail, you can re-run the failing test(s) in verbose mode::
|
||||||
|
|
||||||
|
make test TESTOPTS="-v test_that_failed"
|
||||||
|
|
||||||
|
If the failure persists and appears to be a problem with Python rather than
|
||||||
|
your environment, you can `file a bug report <https://bugs.python.org>`_ and
|
||||||
|
include relevant output from that command to show the issue.
|
||||||
|
|
||||||
|
|
||||||
|
Installing multiple versions
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
On Unix and Mac systems if you intend to install multiple versions of Python
|
||||||
|
using the same installation prefix (``--prefix`` argument to the configure
|
||||||
|
script) you must take care that your primary python executable is not
|
||||||
|
overwritten by the installation of a different version. All files and
|
||||||
|
directories installed using ``make altinstall`` contain the major and minor
|
||||||
|
version and can thus live side-by-side. ``make install`` also creates
|
||||||
|
``${prefix}/bin/python3`` which refers to ``${prefix}/bin/pythonX.Y``. If you
|
||||||
|
intend to install multiple versions using the same prefix you must decide which
|
||||||
|
version (if any) is your "primary" version. Install that version using ``make
|
||||||
|
install``. Install all other versions using ``make altinstall``.
|
||||||
|
|
||||||
|
For example, if you want to install Python 2.7, 3.5, and 3.6 with 3.6 being the
|
||||||
|
primary version, you would execute ``make install`` in your 3.6 build directory
|
||||||
|
and ``make altinstall`` in the others.
|
||||||
|
|
||||||
|
|
||||||
|
Issue Tracker and Mailing List
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
Bug reports are welcome! You can use the `issue tracker
|
||||||
|
<https://bugs.python.org>`_ to report bugs, and/or submit pull requests `on
|
||||||
|
GitHub <https://github.com/python/cpython>`_.
|
||||||
|
|
||||||
|
You can also follow development discussion on the `python-dev mailing list
|
||||||
|
<https://mail.python.org/mailman/listinfo/python-dev/>`_.
|
||||||
|
|
||||||
|
|
||||||
|
Proposals for enhancement
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
If you have a proposal to change Python, you may want to send an email to the
|
||||||
|
comp.lang.python or `python-ideas`_ mailing lists for initial feedback. A
|
||||||
|
Python Enhancement Proposal (PEP) may be submitted if your idea gains ground.
|
||||||
|
All current PEPs, as well as guidelines for submitting a new PEP, are listed at
|
||||||
|
`python.org/dev/peps/ <https://www.python.org/dev/peps/>`_.
|
||||||
|
|
||||||
|
.. _python-ideas: https://mail.python.org/mailman/listinfo/python-ideas/
|
||||||
|
|
||||||
|
|
||||||
|
Release Schedule
|
||||||
|
----------------
|
||||||
|
|
||||||
|
See :pep:`494` for Python 3.6 release details.
|
||||||
|
|
||||||
|
|
||||||
|
Copyright and License Information
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
|
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
|
||||||
|
2012, 2013, 2014, 2015, 2016 Python Software Foundation. All rights reserved.
|
||||||
|
|
||||||
|
Copyright (c) 2000 BeOpen.com. All rights reserved.
|
||||||
|
|
||||||
|
Copyright (c) 1995-2001 Corporation for National Research Initiatives. All
|
||||||
|
rights reserved.
|
||||||
|
|
||||||
|
Copyright (c) 1991-1995 Stichting Mathematisch Centrum. All rights reserved.
|
||||||
|
|
||||||
|
See the file "LICENSE" for information on the history of this software, terms &
|
||||||
|
conditions for usage, and a DISCLAIMER OF ALL WARRANTIES.
|
||||||
|
|
||||||
|
This Python distribution contains *no* GNU General Public License (GPL) code,
|
||||||
|
so it may be used in proprietary projects. There are interfaces to some GNU
|
||||||
|
code but these are entirely optional.
|
||||||
|
|
||||||
|
All trademarks referenced herein are property of their respective holders.
|
Loading…
Add table
Add a link
Reference in a new issue