summaryrefslogtreecommitdiffstats
path: root/README.rst
diff options
context:
space:
mode:
authorZachary Ware <zachary.ware@gmail.com>2017-02-14 04:01:03 (GMT)
committerGitHub <noreply@github.com>2017-02-14 04:01:03 (GMT)
commitd50f188b1bdf69377364f4a9db33af11cc704a70 (patch)
tree7a66552707316e780246750a3450f9463d658711 /README.rst
parentb692dc8475a032740576129d0990ddc3edccab2b (diff)
downloadcpython-d50f188b1bdf69377364f4a9db33af11cc704a70.zip
cpython-d50f188b1bdf69377364f4a9db33af11cc704a70.tar.gz
cpython-d50f188b1bdf69377364f4a9db33af11cc704a70.tar.bz2
Various updates to README.rst (#21)
These include spelling/grammar fixes, removing some outdated prose, updating some superseded prose, and adding/cleaning up some links. Also rewraps the entire file at 79 columns.
Diffstat (limited to 'README.rst')
-rw-r--r--README.rst160
1 files changed, 77 insertions, 83 deletions
diff --git a/README.rst b/README.rst
index f25b2ee..c6cca80 100644
--- a/README.rst
+++ b/README.rst
@@ -13,11 +13,8 @@ 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.
+See the end of this file for further copyright and license information.
+
Using Python
------------
@@ -40,16 +37,17 @@ On Unix, Linux, BSD, OSX, and Cygwin::
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``;
+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 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.
+On Windows, see `PCbuild/readme.txt
+<https://github.com/python/cpython/blob/master/PCbuild/readme.txt>`_.
If you wish, you can create a subdirectory and invoke configure from there.
For example::
@@ -60,57 +58,58 @@ For example::
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.)
+(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.
+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.
+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.
+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.
+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.
+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.
+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.
+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.7 <https://docs.python.org/3.7/whatsnew/3.7.html>`_ document.
-
-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).
+We have a comprehensive overview of the changes in the `What's New in Python
+3.7 <https://docs.python.org/3.7/whatsnew/3.7.html>`_ document. For a more
+detailed change log, read `Misc/NEWS
+<https://github.com/python/cpython/blob/master/Misc/NEWS>`_, but a full
+accounting of changes can only be gleaned from the `commit history
+<https://github.com/python/cpython/commits/master>`_.
If you want to install multiple versions of Python see the section below
entitled "Installing multiple versions".
@@ -128,61 +127,56 @@ 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: `Python Developer's Guide
+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.
+For information about building Python's documentation, refer to `Doc/README.txt
+<https://github.com/python/cpython/blob/master/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
-`2to3 documentation <https://docs.python.org/3.7/library/2to3.html>`_ for more
-information.
+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.
+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::
+If any tests fail, you can re-run the failing test(s) in verbose mode::
- ./python -m test -v test_whatever
+ make test TESTOPTS="-v test_that_failed"
-(substituting the top of the source tree for '.' if you built in a different
-directory). This runs the test in verbose mode.
+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``.
+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.6, and 3.7 with 3.7 being the
primary version, you would execute ``make install`` in your 3.7 build directory
@@ -192,26 +186,26 @@ 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:
-`bugs.python.org <https://bugs.python.org/>`_.
+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>`_.
-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: `python-dev <https://mail.python.org/mailman/listinfo/python-dev/>`_
+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
+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
----------------
@@ -231,8 +225,8 @@ 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.
+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