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