diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2017-02-11 01:21:38 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-11 01:21:38 (GMT) |
commit | d783b01fdfb01955c1854e78ee69c731a5c035b6 (patch) | |
tree | 9c8408ae69ca54fbea049e0205f59a579dfc049f /README.rst | |
parent | 4538ddcacc8e8f00d5d36d7bc84e551a56ce6da2 (diff) | |
download | cpython-d783b01fdfb01955c1854e78ee69c731a5c035b6.zip cpython-d783b01fdfb01955c1854e78ee69c731a5c035b6.tar.gz cpython-d783b01fdfb01955c1854e78ee69c731a5c035b6.tar.bz2 |
Rename README to README.rst and enhance formatting (#2)
Update also the Release Schedule to Python 3.7.
Diffstat (limited to 'README.rst')
-rw-r--r-- | README.rst | 227 |
1 files changed, 227 insertions, 0 deletions
diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..a34373f --- /dev/null +++ b/README.rst @@ -0,0 +1,227 @@ +This is Python version 3.7.0 alpha 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. + + +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.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). + +If you want to install multiple versions of Python see the section below +entitled "Installing multiple versions". + + +Documentation +------------- + +`Documentation for Python 3.7 <https://docs.python.org/3.7/>`_ 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 at: `Python Developer's Guide +<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 +`2to3 documentation <https://docs.python.org/3.7/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.6, and 3.7 with 3.7 being the +primary version, you would execute ``make install`` in your 3.7 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: +`bugs.python.org <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: `python-dev <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 <https://mail.python.org/mailman/listinfo/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/>`_. + + +Release Schedule +---------------- + +See :pep:`537` for Python 3.7 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. + |