blob: b9ae274f91613425374d14c9664a12b5983c3db5 [file] [log] [blame]
Benjamin Peterson88f14352009-04-04 21:06:52 +00001This is Python version 3.1 alpha 2
Barry Warsaw97f005d2008-12-03 16:46:14 +00002==================================
Guido van Rossum91447632000-04-11 17:11:09 +00003
Guido van Rossum4405cf32007-08-30 17:16:55 +00004For notes specific to this release, see RELNOTES in this directory.
Georg Brandlb1441c72009-01-03 22:33:39 +00005Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Christian Heimesb558a2e2008-03-02 22:46:37 +00006Python Software Foundation.
7All rights reserved.
Guido van Rossum4405cf32007-08-30 17:16:55 +00008
Barry Warsaw97f005d2008-12-03 16:46:14 +00009Python 3.x is a new version of the language, which is incompatible with the
102.x line of releases. The language is mostly the same, but many details,
11especially how built-in objects like dictionaries and strings work, have
12changed considerably, and a lot of deprecated features have finally been
13removed.
Guido van Rossum1c896e32007-08-29 23:03:30 +000014
Guido van Rossum50e9fb92006-08-17 05:42:55 +000015
Guido van Rossum1c896e32007-08-29 23:03:30 +000016Release Schedule
17----------------
Guido van Rossum3ff96dd1996-07-30 18:05:04 +000018
Benjamin Petersona58a6262009-03-07 16:34:40 +000019See PEP 375 for release details: http://www.python.org/dev/peps/pep-0375/
Guido van Rossum8d90f9d1997-05-22 20:13:25 +000020
Guido van Rossumf501b4e1996-10-25 14:32:48 +000021
Guido van Rossumc07d5fa2000-09-01 22:50:02 +000022Documentation
23-------------
Guido van Rossum91cb9d21995-04-10 11:47:38 +000024
Barry Warsaw97f005d2008-12-03 16:46:14 +000025Documentation for Python 3.1 is online, updated twice a day:
Guido van Rossum91cb9d21995-04-10 11:47:38 +000026
Barry Warsaw97f005d2008-12-03 16:46:14 +000027 http://docs.python.org/dev/3.1/
Guido van Rossumc07d5fa2000-09-01 22:50:02 +000028
Benjamin Peterson2a691a82008-03-31 01:51:45 +000029All documentation is also available online at the Python web site
Barry Warsawbb5cd082008-04-02 23:33:27 +000030(http://docs.python.org/, see below). It is available online for
31occasional reference, or can be downloaded in many formats for faster
32access. The documentation is downloadable in HTML, PostScript, PDF,
33LaTeX (through 2.5), and reStructuredText (2.6+) formats; the LaTeX and
34reStructuredText versions are primarily for documentation authors,
35translators, and people with special formatting requirements.
Benjamin Peterson2a691a82008-03-31 01:51:45 +000036
Guido van Rossum1c896e32007-08-29 23:03:30 +000037This is a work in progress; please help improve it!
Barry Warsaw06557452001-12-14 20:47:12 +000038
Barry Warsaw97f005d2008-12-03 16:46:14 +000039The design documents for Python 3 are also online. While the reference
40documentation is being updated, the PEPs are often the best source of
41information about new features. Start by reading PEP 3000:
Barry Warsaw06557452001-12-14 20:47:12 +000042
Guido van Rossum1c896e32007-08-29 23:03:30 +000043 http://python.org/dev/peps/pep-3000/
Guido van Rossumc07d5fa2000-09-01 22:50:02 +000044
Guido van Rossumc07d5fa2000-09-01 22:50:02 +000045
Guido van Rossum1c896e32007-08-29 23:03:30 +000046What's New
Guido van Rossum91cb9d21995-04-10 11:47:38 +000047----------
48
Barry Warsaw97f005d2008-12-03 16:46:14 +000049For an overview of what's new in Python 3, see Guido van Rossum's blog at
50artima.com:
Guido van Rossum64773801997-11-26 17:07:02 +000051
Guido van Rossum1c896e32007-08-29 23:03:30 +000052 http://www.artima.com/weblogs/index.jsp?blogger=guido
Guido van Rossum64773801997-11-26 17:07:02 +000053
Georg Brandlf3f67f22008-02-22 14:22:51 +000054We try to eventually have a comprehensive overview of the changes in
Barry Warsaw97f005d2008-12-03 16:46:14 +000055the "What's New in Python 3.1" document, found at
Georg Brandlf3f67f22008-02-22 14:22:51 +000056
Barry Warsaw97f005d2008-12-03 16:46:14 +000057 http://docs.python.org/dev/3.1/whatsnew/3.1
Georg Brandlf3f67f22008-02-22 14:22:51 +000058
59Please help write it!
Jack Jansena39ef862001-08-19 21:17:03 +000060
Guido van Rossum99533a92007-12-06 05:07:41 +000061For a more detailed change log, read Misc/NEWS (though this file, too,
62is incomplete, and also doesn't list anything merged in from the 2.6
63release under development).
64
Barry Warsaw160b9a32008-05-08 11:54:13 +000065If you want to install multiple versions of Python see the section below
66entitled "Installing multiple versions".
67
68
Benjamin Peterson2a691a82008-03-31 01:51:45 +000069Proposals for enhancement
Barry Warsawbb5cd082008-04-02 23:33:27 +000070-------------------------
Benjamin Peterson2a691a82008-03-31 01:51:45 +000071
Benjamin Petersonad9d48d2008-04-02 21:49:44 +000072If you have a proposal to change Python, you may want to send an email to the
73comp.lang.python or python-ideas mailing lists for inital feedback. A Python
74Enhancement Proposal (PEP) may be submitted if your idea gains ground. All
75current PEPs, as well as guidelines for submitting a new PEP, are listed at
76http://www.python.org/dev/peps/.
Guido van Rossum99533a92007-12-06 05:07:41 +000077
Barry Warsaw160b9a32008-05-08 11:54:13 +000078
Barry Warsaw97f005d2008-12-03 16:46:14 +000079Converting From Python 2.x to 3.x
Guido van Rossum1c896e32007-08-29 23:03:30 +000080---------------------------------
Guido van Rossum433c8ad1994-08-01 12:07:07 +000081
Barry Warsaw97f005d2008-12-03 16:46:14 +000082Python starting with 2.6 will contain features to help locating code that
83needs to be changed, such as optional warnings when deprecated features are
84used, and backported versions of certain key Python 3.x features.
Guido van Rossum433c8ad1994-08-01 12:07:07 +000085
Christian Heimesdd15f6c2008-03-16 00:07:10 +000086
Benjamin Petersonad3d5c22009-02-26 03:38:59 +000087Testing
88-------
89
90To test the interpreter, type "make test" in the top-level directory.
91This runs the test set twice (once with no compiled files, once with
92the compiled files left by the previous test run). The test set
93produces some output. You can generally ignore the messages about
94skipped tests due to optional features which can't be imported.
95If a message is printed about a failed test or a traceback or core
96dump is produced, something is wrong. On some Linux systems (those
97that are not yet using glibc 6), test_strftime fails due to a
98non-standard implementation of strftime() in the C library. Please
99ignore this, or upgrade to glibc version 6.
100
101By default, tests are prevented from overusing resources like disk space and
102memory. To enable these tests, run "make testall".
103
104IMPORTANT: If the tests fail and you decide to mail a bug report,
105*don't* include the output of "make test". It is useless. Run the
106failing test manually, as follows:
107
108 ./python Lib/test/regrtest.py -v test_whatever
109
110(substituting the top of the source tree for '.' if you built in a
111different directory). This runs the test in verbose mode.
112
113
Christian Heimesdd15f6c2008-03-16 00:07:10 +0000114Installing multiple versions
115----------------------------
116
117On Unix and Mac systems if you intend to install multiple versions of Python
118using the same installation prefix (--prefix argument to the configure
119script) you must take care that your primary python executable is not
120overwritten by the installation of a different versio. All files and
121directories installed using "make altinstall" contain the major and minor
122version and can thus live side-by-side. "make install" also creates
123${prefix}/bin/python which refers to ${prefix}/bin/pythonX.Y. If you intend
124to install multiple versions using the same prefix you must decide which
125version (if any) is your "primary" version. Install that version using
126"make install". Install all other versions using "make altinstall".
127
128For example, if you want to install Python 2.5, 2.6 and 3.0 with 2.6 being
129the primary version, you would execute "make install" in your 2.6 build
130directory and "make altinstall" in the others.
131
132
133Configuration options and variables
134-----------------------------------
135
Guido van Rossum1c896e32007-08-29 23:03:30 +0000136A source-to-source translation tool, "2to3", can take care of the
137mundane task of converting large amounts of source code. It is not a
138complete solution but is complemented by the deprecation warnings in
1392.6. This tool is currently available via the Subversion sandbox:
Guido van Rossum433c8ad1994-08-01 12:07:07 +0000140
Guido van Rossum1c896e32007-08-29 23:03:30 +0000141 http://svn.python.org/view/sandbox/trunk/2to3/
Martin v. Löwis2df66942000-12-13 14:14:32 +0000142
143
Guido van Rossum1c896e32007-08-29 23:03:30 +0000144Issue Tracker and Mailing List
145------------------------------
Michael W. Hudson71dcc3e2005-02-22 15:33:26 +0000146
Guido van Rossum1c896e32007-08-29 23:03:30 +0000147We're soliciting bug reports about all aspects of the language. Fixes
148are also welcome, preferable in unified diff format. Please use the
149issue tracker:
Fred Drake6caae142000-10-25 17:51:02 +0000150
Guido van Rossum1c896e32007-08-29 23:03:30 +0000151 http://bugs.python.org/
Guido van Rossum76be6ed1995-01-02 18:33:54 +0000152
Guido van Rossum1c896e32007-08-29 23:03:30 +0000153If you're not sure whether you're dealing with a bug or a feature, use
154the mailing list:
155
Mark Dickinsonb9ebd042009-02-06 16:39:11 +0000156 python-dev@python.org
Guido van Rossum1c896e32007-08-29 23:03:30 +0000157
158To subscribe to the list, use the mailman form:
159
Mark Dickinsonb9ebd042009-02-06 16:39:11 +0000160 http://mail.python.org/mailman/listinfo/python-dev/
Georg Brandl81299ad2006-02-20 10:24:06 +0000161
Michael W. Hudson71dcc3e2005-02-22 15:33:26 +0000162
Guido van Rossum1c896e32007-08-29 23:03:30 +0000163Build Instructions
Guido van Rossumc07d5fa2000-09-01 22:50:02 +0000164------------------
Guido van Rossum433c8ad1994-08-01 12:07:07 +0000165
Neal Norwitzbf2604c2007-08-30 17:22:44 +0000166On Unix, Linux, BSD, OSX, and Cygwin:
Guido van Rossum433c8ad1994-08-01 12:07:07 +0000167
Guido van Rossum1c896e32007-08-29 23:03:30 +0000168 ./configure
169 make
170 make test
171 sudo make install # or "make altinstall"
172
173You can pass many options to the configure script; run "./configure
174--help" to find out more. On OSX and Cygwin, the executable is called
175python.exe; elsewhere it's just python.
176
177On Mac OS X, if you have configured Python with --enable-framework,
178you should use "make frameworkinstall" to do the installation. Note
179that this installs the Python executable in a place that is not
180normally on your PATH, you may want to set up a symlink in
181/usr/local/bin.
182
Martin v. Löwis0c3842f2007-08-30 05:34:10 +0000183On Windows, see PCbuild/readme.txt.
184
Guido van Rossum1c896e32007-08-29 23:03:30 +0000185If you wish, you can create a subdirectory and invoke configure from
186there. For example:
187
188 mkdir debug
189 cd debug
190 ../configure --with-pydebug
191 make
192 make test
193
194(This will fail if you *also* built at the top-level directory. You
195should do a "make clean" at the toplevel first.)
Guido van Rossumef0f1292007-08-30 14:51:05 +0000196
197
198Copyright and License Information
199---------------------------------
200
Barry Warsaw659fc422008-03-01 17:45:23 +0000201Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
Guido van Rossumef0f1292007-08-30 14:51:05 +0000202Python Software Foundation.
203All rights reserved.
204
205Copyright (c) 2000 BeOpen.com.
206All rights reserved.
207
208Copyright (c) 1995-2001 Corporation for National Research Initiatives.
209All rights reserved.
210
211Copyright (c) 1991-1995 Stichting Mathematisch Centrum.
212All rights reserved.
213
214See the file "LICENSE" for information on the history of this
215software, terms & conditions for usage, and a DISCLAIMER OF ALL
216WARRANTIES.
217
218This Python distribution contains *no* GNU General Public License
219(GPL) code, so it may be used in proprietary projects. There are
220interfaces to some GNU code but these are entirely optional.
221
222All trademarks referenced herein are property of their respective
223holders.