blob: b39f235c2197870a06205d3080e73e612434ee80 [file] [log] [blame]
Larry Hastings44719a72013-09-28 23:51:00 +01001This is Python version 3.4.0 alpha 3
Larry Hastings1f08c772013-08-03 12:58:12 -07002====================================
Guido van Rossum91447632000-04-11 17:11:09 +00003
Benjamin Petersonf606e682011-12-31 22:42:26 -06004Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
Benjamin Peterson198399d2012-12-31 21:37:21 -060052012, 2013 Python Software Foundation. All rights reserved.
Guido van Rossum4405cf32007-08-30 17:16:55 +00006
Georg Brandla02607e2010-07-31 11:00:47 +00007Python 3.x is a new version of the language, which is incompatible with the 2.x
8line of releases. The language is mostly the same, but many details, especially
9how built-in objects like dictionaries and strings work, have changed
10considerably, and a lot of deprecated features have finally been removed.
Guido van Rossum1c896e32007-08-29 23:03:30 +000011
Guido van Rossum50e9fb92006-08-17 05:42:55 +000012
Benjamin Peterson1da43e52009-06-26 13:21:52 +000013Build Instructions
14------------------
Guido van Rossum3ff96dd1996-07-30 18:05:04 +000015
Benjamin Peterson1da43e52009-06-26 13:21:52 +000016On Unix, Linux, BSD, OSX, and Cygwin:
17
Martin v. Löwisecc58772012-05-14 13:52:03 +020018New text
19
Benjamin Peterson1da43e52009-06-26 13:21:52 +000020 ./configure
21 make
22 make test
23 sudo make install
24
25This will install Python as python3.
26
Georg Brandla02607e2010-07-31 11:00:47 +000027You can pass many options to the configure script; run "./configure --help" to
28find out more. On OSX and Cygwin, the executable is called python.exe;
29elsewhere it's just python.
Benjamin Peterson1da43e52009-06-26 13:21:52 +000030
Georg Brandla02607e2010-07-31 11:00:47 +000031On Mac OS X, if you have configured Python with --enable-framework, you should
32use "make frameworkinstall" to do the installation. Note that this installs the
33Python executable in a place that is not normally on your PATH, you may want to
34set up a symlink in /usr/local/bin.
Benjamin Peterson1da43e52009-06-26 13:21:52 +000035
36On Windows, see PCbuild/readme.txt.
37
Georg Brandla02607e2010-07-31 11:00:47 +000038If you wish, you can create a subdirectory and invoke configure from there. For
39example:
Benjamin Peterson1da43e52009-06-26 13:21:52 +000040
41 mkdir debug
42 cd debug
43 ../configure --with-pydebug
44 make
45 make test
46
Georg Brandla02607e2010-07-31 11:00:47 +000047(This will fail if you *also* built at the top-level directory. You should do a
48"make clean" at the toplevel first.)
Benjamin Peterson1da43e52009-06-26 13:21:52 +000049
50
51What's New
52----------
53
54We try to have a comprehensive overview of the changes in the "What's New in
Georg Brandl08a90122012-09-29 09:34:13 +020055Python 3.4" document, found at
Benjamin Peterson1da43e52009-06-26 13:21:52 +000056
Georg Brandl08a90122012-09-29 09:34:13 +020057 http://docs.python.org/3.4/whatsnew/3.4.html
Benjamin Peterson1da43e52009-06-26 13:21:52 +000058
Georg Brandla02607e2010-07-31 11:00:47 +000059For a more detailed change log, read Misc/NEWS (though this file, too, is
60incomplete, and also doesn't list anything merged in from the 2.7 release under
61development).
Benjamin Peterson1da43e52009-06-26 13:21:52 +000062
63If you want to install multiple versions of Python see the section below
64entitled "Installing multiple versions".
Guido van Rossum8d90f9d1997-05-22 20:13:25 +000065
Guido van Rossumf501b4e1996-10-25 14:32:48 +000066
Guido van Rossumc07d5fa2000-09-01 22:50:02 +000067Documentation
68-------------
Guido van Rossum91cb9d21995-04-10 11:47:38 +000069
Georg Brandl08a90122012-09-29 09:34:13 +020070Documentation for Python 3.4 is online, updated daily:
Guido van Rossum91cb9d21995-04-10 11:47:38 +000071
Georg Brandl08a90122012-09-29 09:34:13 +020072 http://docs.python.org/3.4/
Guido van Rossumc07d5fa2000-09-01 22:50:02 +000073
Georg Brandl62069d32010-07-31 08:56:11 +000074It can also be downloaded in many formats for faster access. The documentation
75is downloadable in HTML, PDF, and reStructuredText formats; the latter version
76is primarily for documentation authors, translators, and people with special
77formatting requirements.
Benjamin Peterson2a691a82008-03-31 01:51:45 +000078
Ezio Melotti802bf8a2013-08-16 21:32:25 +030079If you would like to contribute to the development of Python, relevant
80documentation is available at:
81
82 http://docs.python.org/devguide/
83
84For information about building Python's documentation, refer to Doc/README.txt.
85
Guido van Rossumc07d5fa2000-09-01 22:50:02 +000086
Barry Warsaw97f005d2008-12-03 16:46:14 +000087Converting From Python 2.x to 3.x
Guido van Rossum1c896e32007-08-29 23:03:30 +000088---------------------------------
Guido van Rossum433c8ad1994-08-01 12:07:07 +000089
Georg Brandla02607e2010-07-31 11:00:47 +000090Python starting with 2.6 contains features to help locating code that needs to
91be changed, such as optional warnings when deprecated features are used, and
92backported versions of certain key Python 3.x features.
Guido van Rossum433c8ad1994-08-01 12:07:07 +000093
Benjamin Peterson1da43e52009-06-26 13:21:52 +000094A source-to-source translation tool, "2to3", can take care of the mundane task
95of converting large amounts of source code. It is not a complete solution but
96is complemented by the deprecation warnings in 2.6. See
Georg Brandl08a90122012-09-29 09:34:13 +020097http://docs.python.org/3.4/library/2to3.html for more information.
Benjamin Peterson1da43e52009-06-26 13:21:52 +000098
Christian Heimesdd15f6c2008-03-16 00:07:10 +000099
Benjamin Petersonad3d5c22009-02-26 03:38:59 +0000100Testing
101-------
102
Nadeem Vawda7dfb3a12011-08-21 16:48:54 +0200103To test the interpreter, type "make test" in the top-level directory. The test
104set produces some output. You can generally ignore the messages about skipped
105tests due to optional features which can't be imported. If a message is printed
106about a failed test or a traceback or core dump is produced, something is wrong.
Benjamin Petersonad3d5c22009-02-26 03:38:59 +0000107
108By default, tests are prevented from overusing resources like disk space and
109memory. To enable these tests, run "make testall".
110
Georg Brandla02607e2010-07-31 11:00:47 +0000111IMPORTANT: If the tests fail and you decide to mail a bug report, *don't*
112include the output of "make test". It is useless. Run the failing test
113manually, as follows:
Benjamin Petersonad3d5c22009-02-26 03:38:59 +0000114
Antoine Pitroue7fed672010-12-14 22:06:10 +0000115 ./python -m test -v test_whatever
Benjamin Petersonad3d5c22009-02-26 03:38:59 +0000116
Georg Brandla02607e2010-07-31 11:00:47 +0000117(substituting the top of the source tree for '.' if you built in a different
118directory). This runs the test in verbose mode.
Benjamin Petersonad3d5c22009-02-26 03:38:59 +0000119
120
Christian Heimesdd15f6c2008-03-16 00:07:10 +0000121Installing multiple versions
122----------------------------
123
124On Unix and Mac systems if you intend to install multiple versions of Python
Georg Brandla02607e2010-07-31 11:00:47 +0000125using the same installation prefix (--prefix argument to the configure script)
126you must take care that your primary python executable is not overwritten by the
127installation of a different version. All files and directories installed using
128"make altinstall" contain the major and minor version and can thus live
129side-by-side. "make install" also creates ${prefix}/bin/python3 which refers to
130${prefix}/bin/pythonX.Y. If you intend to install multiple versions using the
131same prefix you must decide which version (if any) is your "primary" version.
132Install that version using "make install". Install all other versions using
133"make altinstall".
Christian Heimesdd15f6c2008-03-16 00:07:10 +0000134
Georg Brandl08a90122012-09-29 09:34:13 +0200135For example, if you want to install Python 2.6, 2.7 and 3.4 with 2.7 being the
Georg Brandlfa2c61a2011-02-20 10:41:31 +0000136primary version, you would execute "make install" in your 2.7 build directory
Georg Brandla02607e2010-07-31 11:00:47 +0000137and "make altinstall" in the others.
Christian Heimesdd15f6c2008-03-16 00:07:10 +0000138
139
Guido van Rossum1c896e32007-08-29 23:03:30 +0000140Issue Tracker and Mailing List
141------------------------------
Michael W. Hudson71dcc3e2005-02-22 15:33:26 +0000142
Georg Brandla02607e2010-07-31 11:00:47 +0000143We're soliciting bug reports about all aspects of the language. Fixes are also
144welcome, preferable in unified diff format. Please use the issue tracker:
Fred Drake6caae142000-10-25 17:51:02 +0000145
Guido van Rossum1c896e32007-08-29 23:03:30 +0000146 http://bugs.python.org/
Guido van Rossum76be6ed1995-01-02 18:33:54 +0000147
Georg Brandla02607e2010-07-31 11:00:47 +0000148If you're not sure whether you're dealing with a bug or a feature, use the
149mailing list:
Guido van Rossum1c896e32007-08-29 23:03:30 +0000150
Mark Dickinsonb9ebd042009-02-06 16:39:11 +0000151 python-dev@python.org
Guido van Rossum1c896e32007-08-29 23:03:30 +0000152
153To subscribe to the list, use the mailman form:
154
Mark Dickinsonb9ebd042009-02-06 16:39:11 +0000155 http://mail.python.org/mailman/listinfo/python-dev/
Georg Brandl81299ad2006-02-20 10:24:06 +0000156
Michael W. Hudson71dcc3e2005-02-22 15:33:26 +0000157
Benjamin Peterson1da43e52009-06-26 13:21:52 +0000158Proposals for enhancement
159-------------------------
Guido van Rossum433c8ad1994-08-01 12:07:07 +0000160
Benjamin Peterson1da43e52009-06-26 13:21:52 +0000161If you have a proposal to change Python, you may want to send an email to the
Georg Brandl260a7882011-02-20 10:29:04 +0000162comp.lang.python or python-ideas mailing lists for inital feedback. A Python
163Enhancement Proposal (PEP) may be submitted if your idea gains ground. All
Benjamin Peterson1da43e52009-06-26 13:21:52 +0000164current PEPs, as well as guidelines for submitting a new PEP, are listed at
165http://www.python.org/dev/peps/.
Guido van Rossum433c8ad1994-08-01 12:07:07 +0000166
Guido van Rossum1c896e32007-08-29 23:03:30 +0000167
Benjamin Peterson1da43e52009-06-26 13:21:52 +0000168Release Schedule
169----------------
Guido van Rossum1c896e32007-08-29 23:03:30 +0000170
Larry Hastings44719a72013-09-28 23:51:00 +0100171See PEP 429 for release details: http://www.python.org/dev/peps/pep-0429/
Guido van Rossumef0f1292007-08-30 14:51:05 +0000172
173
174Copyright and License Information
175---------------------------------
176
Georg Brandla7d2f002013-03-23 16:06:13 +0100177Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
1782012, 2013 Python Software Foundation. All rights reserved.
Guido van Rossumef0f1292007-08-30 14:51:05 +0000179
Georg Brandl260a7882011-02-20 10:29:04 +0000180Copyright (c) 2000 BeOpen.com. All rights reserved.
Guido van Rossumef0f1292007-08-30 14:51:05 +0000181
Georg Brandl260a7882011-02-20 10:29:04 +0000182Copyright (c) 1995-2001 Corporation for National Research Initiatives. All
183rights reserved.
Guido van Rossumef0f1292007-08-30 14:51:05 +0000184
Georg Brandl260a7882011-02-20 10:29:04 +0000185Copyright (c) 1991-1995 Stichting Mathematisch Centrum. All rights reserved.
Guido van Rossumef0f1292007-08-30 14:51:05 +0000186
Georg Brandl260a7882011-02-20 10:29:04 +0000187See the file "LICENSE" for information on the history of this software, terms &
188conditions for usage, and a DISCLAIMER OF ALL WARRANTIES.
Guido van Rossumef0f1292007-08-30 14:51:05 +0000189
Georg Brandl260a7882011-02-20 10:29:04 +0000190This Python distribution contains *no* GNU General Public License (GPL) code, so
191it may be used in proprietary projects. There are interfaces to some GNU code
192but these are entirely optional.
Guido van Rossumef0f1292007-08-30 14:51:05 +0000193
Georg Brandl260a7882011-02-20 10:29:04 +0000194All trademarks referenced herein are property of their respective holders.