blob: ecc0bea559e84c202a8801ad62ee836e71a87d99 [file] [log] [blame]
Barry Warsaw659fc422008-03-01 17:45:23 +00001This is Python version 3.0 alpha 3
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
Guido van Rossum1c896e32007-08-29 23:03:30 +000024The release plan is to have a series of alpha releases in 2007, beta
25releases in 2008, and a final release in August 2008. The alpha
26releases are primarily aimed at developers who want a sneak peek at
27the new langauge, especially those folks who plan to port their code
28to Python 3000. The hope is that by the time of the final release,
29many 3rd party packages will already be available in a 3.0-compatible
30form.
Guido van Rossum8d90f9d1997-05-22 20:13:25 +000031
Guido van Rossumf501b4e1996-10-25 14:32:48 +000032
Guido van Rossumc07d5fa2000-09-01 22:50:02 +000033Documentation
34-------------
Guido van Rossum91cb9d21995-04-10 11:47:38 +000035
Guido van Rossum1c896e32007-08-29 23:03:30 +000036Documentation for Python 3000 is online, updated twice a day:
Guido van Rossum91cb9d21995-04-10 11:47:38 +000037
Guido van Rossum1c896e32007-08-29 23:03:30 +000038 http://docs.python.org/dev/3.0/
Guido van Rossumc07d5fa2000-09-01 22:50:02 +000039
Guido van Rossum1c896e32007-08-29 23:03:30 +000040This is a work in progress; please help improve it!
Barry Warsaw06557452001-12-14 20:47:12 +000041
Guido van Rossum1c896e32007-08-29 23:03:30 +000042The design documents for Python 3000 are also online. While the
43reference documentation is being updated, the PEPs are often the best
44source of information about new features. Start by reading PEP 3000:
Barry Warsaw06557452001-12-14 20:47:12 +000045
Guido van Rossum1c896e32007-08-29 23:03:30 +000046 http://python.org/dev/peps/pep-3000/
Guido van Rossumc07d5fa2000-09-01 22:50:02 +000047
Guido van Rossumc07d5fa2000-09-01 22:50:02 +000048
Guido van Rossum1c896e32007-08-29 23:03:30 +000049What's New
Guido van Rossum91cb9d21995-04-10 11:47:38 +000050----------
51
Guido van Rossum1c896e32007-08-29 23:03:30 +000052For an overview of what's new in Python 3000, see Guido van Rossum's
53blog at artima.com:
Guido van Rossum64773801997-11-26 17:07:02 +000054
Guido van Rossum1c896e32007-08-29 23:03:30 +000055 http://www.artima.com/weblogs/index.jsp?blogger=guido
Guido van Rossum64773801997-11-26 17:07:02 +000056
Georg Brandlf3f67f22008-02-22 14:22:51 +000057We try to eventually have a comprehensive overview of the changes in
58the "What's New in Python 3.0" document, found at
59
60 http://docs.python.org/dev/3.0/whatsnew/3.0
61
62Please help write it!
Jack Jansena39ef862001-08-19 21:17:03 +000063
Christian Heimesdd15f6c2008-03-16 00:07:10 +000064If you want to install multiple versions of Python see the section below
65entitled "Installing multiple versions".
66
Guido van Rossum91cb9d21995-04-10 11:47:38 +000067
Guido van Rossum99533a92007-12-06 05:07:41 +000068What's New Since 3.0a1
69----------------------
70
71Undoubtedly the biggest change is in the bytes type: 'bytes' is now
72immutable, and there is a new mutable bytes type 'bytearray'. These
73two types are interoperable in every way. For more info on this
74issue, read PEP 3137.
75
76For a more detailed change log, read Misc/NEWS (though this file, too,
77is incomplete, and also doesn't list anything merged in from the 2.6
78release under development).
79
80
Guido van Rossum1c896e32007-08-29 23:03:30 +000081Converting From Python 2.x to 3.0
82---------------------------------
Guido van Rossum433c8ad1994-08-01 12:07:07 +000083
Guido van Rossum1c896e32007-08-29 23:03:30 +000084Python 2.6 (not yet released) will contain features to help locating
85code that needs to be changed, such as optional warnings when
86deprecated features are used, and backported versions of certain key
87Python 3000 features.
Guido van Rossum433c8ad1994-08-01 12:07:07 +000088
Christian Heimesdd15f6c2008-03-16 00:07:10 +000089
90Installing multiple versions
91----------------------------
92
93On Unix and Mac systems if you intend to install multiple versions of Python
94using the same installation prefix (--prefix argument to the configure
95script) you must take care that your primary python executable is not
96overwritten by the installation of a different versio. All files and
97directories installed using "make altinstall" contain the major and minor
98version and can thus live side-by-side. "make install" also creates
99${prefix}/bin/python which refers to ${prefix}/bin/pythonX.Y. If you intend
100to install multiple versions using the same prefix you must decide which
101version (if any) is your "primary" version. Install that version using
102"make install". Install all other versions using "make altinstall".
103
104For example, if you want to install Python 2.5, 2.6 and 3.0 with 2.6 being
105the primary version, you would execute "make install" in your 2.6 build
106directory and "make altinstall" in the others.
107
108
109Configuration options and variables
110-----------------------------------
111
Guido van Rossum1c896e32007-08-29 23:03:30 +0000112A source-to-source translation tool, "2to3", can take care of the
113mundane task of converting large amounts of source code. It is not a
114complete solution but is complemented by the deprecation warnings in
1152.6. This tool is currently available via the Subversion sandbox:
Guido van Rossum433c8ad1994-08-01 12:07:07 +0000116
Guido van Rossum1c896e32007-08-29 23:03:30 +0000117 http://svn.python.org/view/sandbox/trunk/2to3/
Martin v. Löwis2df66942000-12-13 14:14:32 +0000118
119
Guido van Rossum1c896e32007-08-29 23:03:30 +0000120Issue Tracker and Mailing List
121------------------------------
Michael W. Hudson71dcc3e2005-02-22 15:33:26 +0000122
Guido van Rossum1c896e32007-08-29 23:03:30 +0000123We're soliciting bug reports about all aspects of the language. Fixes
124are also welcome, preferable in unified diff format. Please use the
125issue tracker:
Fred Drake6caae142000-10-25 17:51:02 +0000126
Guido van Rossum1c896e32007-08-29 23:03:30 +0000127 http://bugs.python.org/
Guido van Rossum76be6ed1995-01-02 18:33:54 +0000128
Guido van Rossum1c896e32007-08-29 23:03:30 +0000129If you're not sure whether you're dealing with a bug or a feature, use
130the mailing list:
131
132 python-3000@python.org
133
134To subscribe to the list, use the mailman form:
135
136 http://mail.python.org/mailman/listinfo/python-3000/
Georg Brandl81299ad2006-02-20 10:24:06 +0000137
Michael W. Hudson71dcc3e2005-02-22 15:33:26 +0000138
Guido van Rossum1c896e32007-08-29 23:03:30 +0000139Build Instructions
Guido van Rossumc07d5fa2000-09-01 22:50:02 +0000140------------------
Guido van Rossum433c8ad1994-08-01 12:07:07 +0000141
Neal Norwitzbf2604c2007-08-30 17:22:44 +0000142On Unix, Linux, BSD, OSX, and Cygwin:
Guido van Rossum433c8ad1994-08-01 12:07:07 +0000143
Guido van Rossum1c896e32007-08-29 23:03:30 +0000144 ./configure
145 make
146 make test
147 sudo make install # or "make altinstall"
148
149You can pass many options to the configure script; run "./configure
150--help" to find out more. On OSX and Cygwin, the executable is called
151python.exe; elsewhere it's just python.
152
153On Mac OS X, if you have configured Python with --enable-framework,
154you should use "make frameworkinstall" to do the installation. Note
155that this installs the Python executable in a place that is not
156normally on your PATH, you may want to set up a symlink in
157/usr/local/bin.
158
Martin v. Löwis0c3842f2007-08-30 05:34:10 +0000159On Windows, see PCbuild/readme.txt.
160
Guido van Rossum1c896e32007-08-29 23:03:30 +0000161If you wish, you can create a subdirectory and invoke configure from
162there. For example:
163
164 mkdir debug
165 cd debug
166 ../configure --with-pydebug
167 make
168 make test
169
170(This will fail if you *also* built at the top-level directory. You
171should do a "make clean" at the toplevel first.)
Guido van Rossumef0f1292007-08-30 14:51:05 +0000172
173
174Copyright and License Information
175---------------------------------
176
Barry Warsaw659fc422008-03-01 17:45:23 +0000177Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
Guido van Rossumef0f1292007-08-30 14:51:05 +0000178Python Software Foundation.
179All rights reserved.
180
181Copyright (c) 2000 BeOpen.com.
182All rights reserved.
183
184Copyright (c) 1995-2001 Corporation for National Research Initiatives.
185All rights reserved.
186
187Copyright (c) 1991-1995 Stichting Mathematisch Centrum.
188All rights reserved.
189
190See the file "LICENSE" for information on the history of this
191software, terms & conditions for usage, and a DISCLAIMER OF ALL
192WARRANTIES.
193
194This Python distribution contains *no* GNU General Public License
195(GPL) code, so it may be used in proprietary projects. There are
196interfaces to some GNU code but these are entirely optional.
197
198All trademarks referenced herein are property of their respective
199holders.