From 4fffc3fd7f69c02826ac73baa48c452f33808661 Mon Sep 17 00:00:00 2001 From: Zachary Ware Date: Fri, 10 Feb 2017 23:04:56 -0600 Subject: [PATCH 1/5] Various updates to README.rst These include spelling/grammar fixes, removing some outdated prose, updating some superceded prose, and adding/cleaning up some links. --- README.rst | 56 +++++++++++++++++++++++------------------------------- 1 file changed, 24 insertions(+), 32 deletions(-) diff --git a/README.rst b/README.rst index f25b2eea8a532a..8dc11ab66a59a4 100644 --- a/README.rst +++ b/README.rst @@ -13,11 +13,7 @@ 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 ------------ @@ -49,7 +45,8 @@ use ``make frameworkinstall`` to do the installation. Note that this installs t 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 +`_. If you wish, you can create a subdirectory and invoke configure from there. For example:: @@ -66,7 +63,7 @@ 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. +on some platforms. For more details, see the sections below. Profile Guided Optimization @@ -97,7 +94,7 @@ 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 +compiler toolchains' ability to optimize across the otherwise arbitrary ``.o`` file boundary when building final executables or shared libraries for additional performance gains. @@ -106,11 +103,11 @@ What's New ---------- We have a comprehensive overview of the changes in the `What's New in -Python 3.7 `_ 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). +Python 3.7 `_ document. For a +more detailed change log, read `Misc/NEWS +`_, but a full +accounting of changes can only be gleaned from the `commit history +`_. If you want to install multiple versions of Python see the section below entitled "Installing multiple versions". @@ -128,24 +125,20 @@ 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 `_. -For information about building Python's documentation, refer to Doc/README.txt. +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 -`2to3 documentation `_ 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 `_. Testing @@ -160,14 +153,14 @@ 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* +IMPORTANT: If the tests fail and you decide to file 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. +directory). This runs only the failing test in verbose mode. Installing multiple versions @@ -192,13 +185,12 @@ 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 `_. +Bug reports are welcome! You can use the `issue tracker +`_ to report bugs, and/or submit pull requests `on +Github `_. -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 `_ +You can also follow development discussion on the `python-dev mailing list +`_. Proposals for enhancement From ca7c4f6c560de56e0d4c741b21808978321cc869 Mon Sep 17 00:00:00 2001 From: Zachary Ware Date: Fri, 10 Feb 2017 23:22:18 -0600 Subject: [PATCH 2/5] Rewrap at 80 columns [skip ci] --- README.rst | 103 +++++++++++++++++++++++++++-------------------------- 1 file changed, 53 insertions(+), 50 deletions(-) diff --git a/README.rst b/README.rst index 8dc11ab66a59a4..aeb89f07f566d3 100644 --- a/README.rst +++ b/README.rst @@ -15,6 +15,7 @@ reserved. See the end of this file for further copyright and license information. + Using Python ------------ @@ -36,14 +37,14 @@ 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 `_. @@ -57,54 +58,55 @@ 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 below. +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. +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.7 `_ document. For a -more detailed change log, read `Misc/NEWS +We have a comprehensive overview of the changes in the `What's New in Python +3.7 `_ document. For a more +detailed change log, read `Misc/NEWS `_, but a full accounting of changes can only be gleaned from the `commit history `_. @@ -144,11 +146,11 @@ the `Porting HOWTO `_. 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``. @@ -167,15 +169,15 @@ 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 @@ -197,13 +199,14 @@ 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/ `_. .. _python-ideas: https://mail.python.org/mailman/listinfo/python-ideas/ + Release Schedule ---------------- @@ -223,8 +226,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 From a5ebe4b7aaf1cad40c35c7501c74a8269eb089a9 Mon Sep 17 00:00:00 2001 From: Zachary Ware Date: Sat, 11 Feb 2017 00:40:54 -0600 Subject: [PATCH 3/5] Capitalize the 'H' in GitHub --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index aeb89f07f566d3..960078063b6811 100644 --- a/README.rst +++ b/README.rst @@ -189,7 +189,7 @@ Issue Tracker and Mailing List Bug reports are welcome! You can use the `issue tracker `_ to report bugs, and/or submit pull requests `on -Github `_. +GitHub `_. You can also follow development discussion on the `python-dev mailing list `_. From 5bbcd3a8c4bb3691ff3a8ecb3f28cc65212fe73d Mon Sep 17 00:00:00 2001 From: Zachary Ware Date: Sat, 11 Feb 2017 00:54:08 -0600 Subject: [PATCH 4/5] Soften verbose testing section --- README.rst | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/README.rst b/README.rst index 960078063b6811..3a1884e5e0f991 100644 --- a/README.rst +++ b/README.rst @@ -155,14 +155,13 @@ 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 file 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 only the failing 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 `_ and +include relevant output from that command to show the issue. Installing multiple versions From 5a208148133bfbb77ff593415612eb282623dee8 Mon Sep 17 00:00:00 2001 From: Zachary Ware Date: Sat, 11 Feb 2017 22:33:08 -0600 Subject: [PATCH 5/5] Fix awkward construction in LTO section [skip ci] --- README.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.rst b/README.rst index 3a1884e5e0f991..c6cca80b41273a 100644 --- a/README.rst +++ b/README.rst @@ -95,10 +95,10 @@ 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