blob: b5efc82fad58458756ec06f6ac5f8051e4af97e9 [file] [log] [blame]
Barry Warsawbb5cd082008-04-02 23:33:27 +00001This is Python version 3.0 alpha 4
Guido van Rossum1c896e32007-08-29 23:03:30 +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.
Christian Heimesb558a2e2008-03-02 22:46:37 +00005Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
6Python Software Foundation.
7All rights reserved.
Guido van Rossum4405cf32007-08-30 17:16:55 +00008
Guido van Rossum1c896e32007-08-29 23:03:30 +00009Python 3000 (a.k.a. "Py3k", and released as Python 3.0) is a new
10version of the language, which is incompatible with the 2.x line of
11releases. The language is mostly the same, but many details,
12especially how built-in objects like dictionaries and strings work,
13have changed considerably, and a lot of deprecated features have
14finally been removed.
15
16This is an ongoing project; the cleanup isn't expected to be complete
Guido van Rossum99533a92007-12-06 05:07:41 +000017until some time in 2008. In particular there are plans to reorganize
18the standard library namespace.
Guido van Rossum1c896e32007-08-29 23:03:30 +000019
Guido van Rossum50e9fb92006-08-17 05:42:55 +000020
Guido van Rossum1c896e32007-08-29 23:03:30 +000021Release Schedule
22----------------
Guido van Rossum3ff96dd1996-07-30 18:05:04 +000023
Barry Warsawbb5cd082008-04-02 23:33:27 +000024The release plan is to have a series of alpha releases in 2007 and 2008,
25beta releases in 2008, and a final release in August 2008. The alpha
26releases are primarily aimed at developers who want a sneak peek at the
27new langauge, especially those folks who plan to port their code to
28Python 3000. The hope is that by the time of the final release, many
293rd party packages will already be available in a 3.0-compatible form.
30
31See PEP 361 for release details: http://www.python.org/dev/peps/pep-0361/
Guido van Rossum8d90f9d1997-05-22 20:13:25 +000032
Guido van Rossumf501b4e1996-10-25 14:32:48 +000033
Guido van Rossumc07d5fa2000-09-01 22:50:02 +000034Documentation
35-------------
Guido van Rossum91cb9d21995-04-10 11:47:38 +000036
Guido van Rossum1c896e32007-08-29 23:03:30 +000037Documentation for Python 3000 is online, updated twice a day:
Guido van Rossum91cb9d21995-04-10 11:47:38 +000038
Guido van Rossum1c896e32007-08-29 23:03:30 +000039 http://docs.python.org/dev/3.0/
Guido van Rossumc07d5fa2000-09-01 22:50:02 +000040
Benjamin Peterson2a691a82008-03-31 01:51:45 +000041All documentation is also available online at the Python web site
Barry Warsawbb5cd082008-04-02 23:33:27 +000042(http://docs.python.org/, see below). It is available online for
43occasional reference, or can be downloaded in many formats for faster
44access. The documentation is downloadable in HTML, PostScript, PDF,
45LaTeX (through 2.5), and reStructuredText (2.6+) formats; the LaTeX and
46reStructuredText versions are primarily for documentation authors,
47translators, and people with special formatting requirements.
Benjamin Peterson2a691a82008-03-31 01:51:45 +000048
Guido van Rossum1c896e32007-08-29 23:03:30 +000049This is a work in progress; please help improve it!
Barry Warsaw06557452001-12-14 20:47:12 +000050
Guido van Rossum1c896e32007-08-29 23:03:30 +000051The design documents for Python 3000 are also online. While the
52reference documentation is being updated, the PEPs are often the best
53source of information about new features. Start by reading PEP 3000:
Barry Warsaw06557452001-12-14 20:47:12 +000054
Guido van Rossum1c896e32007-08-29 23:03:30 +000055 http://python.org/dev/peps/pep-3000/
Guido van Rossumc07d5fa2000-09-01 22:50:02 +000056
Guido van Rossumc07d5fa2000-09-01 22:50:02 +000057
Guido van Rossum1c896e32007-08-29 23:03:30 +000058What's New
Guido van Rossum91cb9d21995-04-10 11:47:38 +000059----------
60
Guido van Rossum1c896e32007-08-29 23:03:30 +000061For an overview of what's new in Python 3000, see Guido van Rossum's
62blog at artima.com:
Guido van Rossum64773801997-11-26 17:07:02 +000063
Guido van Rossum1c896e32007-08-29 23:03:30 +000064 http://www.artima.com/weblogs/index.jsp?blogger=guido
Guido van Rossum64773801997-11-26 17:07:02 +000065
Georg Brandlf3f67f22008-02-22 14:22:51 +000066We try to eventually have a comprehensive overview of the changes in
67the "What's New in Python 3.0" document, found at
68
69 http://docs.python.org/dev/3.0/whatsnew/3.0
70
71Please help write it!
Jack Jansena39ef862001-08-19 21:17:03 +000072
Christian Heimesdd15f6c2008-03-16 00:07:10 +000073If you want to install multiple versions of Python see the section below
74entitled "Installing multiple versions".
75
Guido van Rossum91cb9d21995-04-10 11:47:38 +000076
Guido van Rossum99533a92007-12-06 05:07:41 +000077What's New Since 3.0a1
78----------------------
79
80Undoubtedly the biggest change is in the bytes type: 'bytes' is now
81immutable, and there is a new mutable bytes type 'bytearray'. These
82two types are interoperable in every way. For more info on this
83issue, read PEP 3137.
84
85For a more detailed change log, read Misc/NEWS (though this file, too,
86is incomplete, and also doesn't list anything merged in from the 2.6
87release under development).
88
Benjamin Peterson2a691a82008-03-31 01:51:45 +000089Proposals for enhancement
Barry Warsawbb5cd082008-04-02 23:33:27 +000090-------------------------
Benjamin Peterson2a691a82008-03-31 01:51:45 +000091
Benjamin Petersonad9d48d2008-04-02 21:49:44 +000092If you have a proposal to change Python, you may want to send an email to the
93comp.lang.python or python-ideas mailing lists for inital feedback. A Python
94Enhancement Proposal (PEP) may be submitted if your idea gains ground. All
95current PEPs, as well as guidelines for submitting a new PEP, are listed at
96http://www.python.org/dev/peps/.
Guido van Rossum99533a92007-12-06 05:07:41 +000097
Guido van Rossum1c896e32007-08-29 23:03:30 +000098Converting From Python 2.x to 3.0
99---------------------------------
Guido van Rossum433c8ad1994-08-01 12:07:07 +0000100
Guido van Rossum1c896e32007-08-29 23:03:30 +0000101Python 2.6 (not yet released) will contain features to help locating
102code that needs to be changed, such as optional warnings when
103deprecated features are used, and backported versions of certain key
104Python 3000 features.
Guido van Rossum433c8ad1994-08-01 12:07:07 +0000105
Christian Heimesdd15f6c2008-03-16 00:07:10 +0000106
107Installing multiple versions
108----------------------------
109
110On Unix and Mac systems if you intend to install multiple versions of Python
111using the same installation prefix (--prefix argument to the configure
112script) you must take care that your primary python executable is not
113overwritten by the installation of a different versio. All files and
114directories installed using "make altinstall" contain the major and minor
115version and can thus live side-by-side. "make install" also creates
116${prefix}/bin/python which refers to ${prefix}/bin/pythonX.Y. If you intend
117to install multiple versions using the same prefix you must decide which
118version (if any) is your "primary" version. Install that version using
119"make install". Install all other versions using "make altinstall".
120
121For example, if you want to install Python 2.5, 2.6 and 3.0 with 2.6 being
122the primary version, you would execute "make install" in your 2.6 build
123directory and "make altinstall" in the others.
124
125
126Configuration options and variables
127-----------------------------------
128
Guido van Rossum1c896e32007-08-29 23:03:30 +0000129A source-to-source translation tool, "2to3", can take care of the
130mundane task of converting large amounts of source code. It is not a
131complete solution but is complemented by the deprecation warnings in
1322.6. This tool is currently available via the Subversion sandbox:
Guido van Rossum433c8ad1994-08-01 12:07:07 +0000133
Guido van Rossum1c896e32007-08-29 23:03:30 +0000134 http://svn.python.org/view/sandbox/trunk/2to3/
Martin v. Löwis2df66942000-12-13 14:14:32 +0000135
136
Guido van Rossum1c896e32007-08-29 23:03:30 +0000137Issue Tracker and Mailing List
138------------------------------
Michael W. Hudson71dcc3e2005-02-22 15:33:26 +0000139
Guido van Rossum1c896e32007-08-29 23:03:30 +0000140We're soliciting bug reports about all aspects of the language. Fixes
141are also welcome, preferable in unified diff format. Please use the
142issue tracker:
Fred Drake6caae142000-10-25 17:51:02 +0000143
Guido van Rossum1c896e32007-08-29 23:03:30 +0000144 http://bugs.python.org/
Guido van Rossum76be6ed1995-01-02 18:33:54 +0000145
Guido van Rossum1c896e32007-08-29 23:03:30 +0000146If you're not sure whether you're dealing with a bug or a feature, use
147the mailing list:
148
149 python-3000@python.org
150
151To subscribe to the list, use the mailman form:
152
153 http://mail.python.org/mailman/listinfo/python-3000/
Georg Brandl81299ad2006-02-20 10:24:06 +0000154
Michael W. Hudson71dcc3e2005-02-22 15:33:26 +0000155
Guido van Rossum1c896e32007-08-29 23:03:30 +0000156Build Instructions
Guido van Rossumc07d5fa2000-09-01 22:50:02 +0000157------------------
Guido van Rossum433c8ad1994-08-01 12:07:07 +0000158
Neal Norwitzbf2604c2007-08-30 17:22:44 +0000159On Unix, Linux, BSD, OSX, and Cygwin:
Guido van Rossum433c8ad1994-08-01 12:07:07 +0000160
Guido van Rossum1c896e32007-08-29 23:03:30 +0000161 ./configure
162 make
163 make test
164 sudo make install # or "make altinstall"
165
166You can pass many options to the configure script; run "./configure
167--help" to find out more. On OSX and Cygwin, the executable is called
168python.exe; elsewhere it's just python.
169
170On Mac OS X, if you have configured Python with --enable-framework,
171you should use "make frameworkinstall" to do the installation. Note
172that this installs the Python executable in a place that is not
173normally on your PATH, you may want to set up a symlink in
174/usr/local/bin.
175
Martin v. Löwis0c3842f2007-08-30 05:34:10 +0000176On Windows, see PCbuild/readme.txt.
177
Guido van Rossum1c896e32007-08-29 23:03:30 +0000178If you wish, you can create a subdirectory and invoke configure from
179there. For example:
180
181 mkdir debug
182 cd debug
183 ../configure --with-pydebug
184 make
185 make test
186
187(This will fail if you *also* built at the top-level directory. You
188should do a "make clean" at the toplevel first.)
Guido van Rossumef0f1292007-08-30 14:51:05 +0000189
190
191Copyright and License Information
192---------------------------------
193
Barry Warsaw659fc422008-03-01 17:45:23 +0000194Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
Guido van Rossumef0f1292007-08-30 14:51:05 +0000195Python Software Foundation.
196All rights reserved.
197
198Copyright (c) 2000 BeOpen.com.
199All rights reserved.
200
201Copyright (c) 1995-2001 Corporation for National Research Initiatives.
202All rights reserved.
203
204Copyright (c) 1991-1995 Stichting Mathematisch Centrum.
205All rights reserved.
206
207See the file "LICENSE" for information on the history of this
208software, terms & conditions for usage, and a DISCLAIMER OF ALL
209WARRANTIES.
210
211This Python distribution contains *no* GNU General Public License
212(GPL) code, so it may be used in proprietary projects. There are
213interfaces to some GNU code but these are entirely optional.
214
215All trademarks referenced herein are property of their respective
216holders.