blob: 1ff242aaf7a4abbcd628484cb88f540551879c13 [file] [log] [blame]
Skip Montanaroe5d7f7f2002-09-20 14:16:59 +00001+++++++++++
2Python News
3+++++++++++
4
Anthony Baxterb0c66302004-11-04 05:23:17 +00005(editors: check NEWS.help for information about editing NEWS using ReST.)
6
Barry Warsaw66079cd2008-04-04 01:36:36 +00007What's New in Python 3.0a5?
8===========================
9
10*Release date: XX-XXX-2008*
11
12Core and Builtins
13-----------------
14
Martin v. Löwis250ad612008-04-07 05:43:42 +000015- Bug #2565: The repr() of type objects now calls them 'class',
16 not 'type' - whether they are builtin types or not.
17
Martin v. Löwis790465f2008-04-05 20:41:37 +000018- The command line processing was converted to pass Unicode strings
19 through as unmodified as possible; as a consequence, the C API
20 related to command line arguments was changed to use wchar_t.
21
Barry Warsaw66079cd2008-04-04 01:36:36 +000022Extension Modules
23-----------------
24
25Library
26-------
27
Thomas Hellerbff533b2008-04-04 19:53:14 +000028- The bundled libffi copy is now in sync with the recently released
29 libffi3.0.5 version, apart from some small changes to
30 Modules/_ctypes/libffi/configure.ac.
31
Thomas Hellerf44b9a12008-04-04 10:18:23 +000032Build
33-----
34
Guido van Rossumdc21db32008-04-07 18:37:41 +000035- "make install" is now an alias for "make altinstall", to prevent
36 accidentally overwriting a Python 2.x installation.
37 Use "make fullinstall" to force Python 3.0 to be installed as
38 "python".
39
Thomas Hellerf44b9a12008-04-04 10:18:23 +000040- Issue #2544: On HP-UX systems, use 'gcc -shared' for linking when
41 gcc is used as compiler.
Barry Warsaw66079cd2008-04-04 01:36:36 +000042
Barry Warsawa9d499d2008-03-01 18:38:07 +000043What's New in Python 3.0a4?
44===========================
45
Barry Warsawbb5cd082008-04-02 23:33:27 +000046*Release date: 02-Apr-2008*
Barry Warsawa9d499d2008-03-01 18:38:07 +000047
Martin v. Löwis25931462008-03-17 20:43:42 +000048Core and Builtins
49-----------------
50
51- Bug #2301: Don't try decoding the source code into the original
52 encoding for syntax errors.
53
Martin v. Löwis92fab752008-03-08 10:40:41 +000054Extension Modules
55-----------------
56
Neal Norwitz6cf49cf2008-03-24 06:22:57 +000057- The dl module was removed, use the ctypes module instead.
58
Martin v. Löwis92fab752008-03-08 10:40:41 +000059- Use wchar_t functions in _locale module.
Barry Warsawa9d499d2008-03-01 18:38:07 +000060
Martin v. Löwis071ef772008-03-08 11:24:24 +000061Library
62-------
63
Martin v. Löwis73a22f02008-03-22 00:35:10 +000064- The class distutils.commands.build_py.build_py_2to3 can be used
65 as a build_py replacement to automatically run 2to3 on modules
66 that are going to be installed.
67
Guido van Rossumf4169812008-03-17 22:56:06 +000068- A new pickle protocol (protocol 3) is added with explicit support
69 for bytes. This is the default protocol. It intentionally cannot
70 be unpickled by Python 2.x.
71
72- When a pickle written by Python 2.x contains an (8-bit) str
73 instance, this is now decoded to a (Unicode) str instance. The
74 encoding used to do this defaults to ASCII, but can be overridden
75 via two new keyword arguments to the Unpickler class. Previously
76 this would create bytes instances, which is usually wrong: str
77 instances are often used to pickle attribute names etc., and text is
78 more common than binary data anyway.
79
Martin v. Löwis071ef772008-03-08 11:24:24 +000080- Default to ASCII as the locale.getpreferredencoding, if the POSIX
81 system doesn't support CODESET and LANG isn't set or doesn't
82 allow deduction of an encoding.
83
Gregory P. Smith425136b2008-03-17 20:45:21 +000084- Issue #1202: zlib.crc32 and zlib.adler32 now return an unsigned value.
85
Trent Nelson428de652008-03-18 22:41:35 +000086- Issue #719888: Updated tokenize to use a bytes API. generate_tokens has been
87 renamed tokenize and now works with bytes rather than strings. A new
88 detect_encoding function has been added for determining source file encoding
89 according to PEP-0263. Token sequences returned by tokenize always start
90 with an ENCODING token which specifies the encoding used to decode the file.
91 This token is used to encode the output of untokenize back to bytes.
Barry Warsawa9d499d2008-03-01 18:38:07 +000092
Christian Heimesbc873412007-12-08 22:11:32 +000093What's New in Python 3.0a3?
94===========================
95
Barry Warsaw659fc422008-03-01 17:45:23 +000096*Release date: 29-Feb-2008*
Christian Heimesbc873412007-12-08 22:11:32 +000097
98Core and Builtins
99-----------------
100
Ka-Ping Yeeddaa7062008-03-17 20:35:15 +0000101- Issue #2282: io.TextIOWrapper was not overriding seekable() from io.IOBase.
102
Benjamin Petersonec79aad2008-04-02 22:44:10 +0000103- Issue #2115: Important speedup in setting __slot__ attributes. Also
104 prevent a possible crash: an Abstract Base Class would try to access a slot
Christian Heimesa156e092008-02-16 07:38:31 +0000105 on a registered virtual subclass.
106
107- Fixed repr() and str() of complex numbers with infinity or nan as real or
108 imaginary part.
109
110- Clear all free list during a gc.collect() of the highest generation in order
111 to allow pymalloc to free more arenas. Python may give back memory to the
112 OS earlier.
113
114- Issue #2045: Fix an infinite recursion triggered when printing a subclass of
115 collections.defaultdict, if its default_factory is set to a bound method.
116
117- Fixed a minor memory leak in dictobject.c. The content of the free
118 list was not freed on interpreter shutdown.
119
120- Limit free list of method and builtin function objects to 256 entries
121 each.
122
123- Patch #1953: Added ``sys._compact_freelists()`` and the C API functions
124 ``PyInt_CompactFreeList`` and ``PyFloat_CompactFreeList``
125 to compact the internal free lists of pre-allocted ints and floats.
126
127- Bug #1983: Fixed return type of fork(), fork1() and forkpty() calls.
128 Python expected the return type int but the fork familie returns pi_t.
129
130- Issue #1678380: Fix a bug that identifies 0j and -0j when they appear
131 in the same code unit.
132
Raymond Hettinger65baa342008-02-07 00:41:02 +0000133- Issue #2025 : Add tuple.count() and tuple.index() methods to comply with
134 the collections.Sequence API.
135
Christian Heimesdfc12ed2008-01-31 15:16:38 +0000136- Fixed multiple reinitialization of the Python interpreter. The small int
137 list in longobject.c has caused a seg fault during the third finalization.
138
Christian Heimesc04dac02008-01-30 11:27:57 +0000139- Issue #1973: bytes.fromhex('') raises SystemError
140
Raymond Hettinger70b64fc2008-01-30 20:15:17 +0000141- Issue #1771: remove cmp parameter from sorted() and list.sort()
142
Christian Heimes7b876152008-01-30 09:51:48 +0000143- Issue #1969: split and rsplit in bytearray are inconsistent
144
Raymond Hettinger736c0ab2008-03-13 02:09:15 +0000145- map() and no longer accepts None for the first argument.
Raymond Hettinger1dfde1d2008-01-22 23:25:35 +0000146 Use zip() instead.
147
Facundo Batista2336bdd2008-01-19 19:12:01 +0000148- Issue #1769: Now int("- 1") is not allowed any more.
149
Christian Heimes386cd1e2008-01-15 02:01:20 +0000150- Object/longobject.c: long(float('nan')) raises an OverflowError instead
151 of returning 0.
152
Christian Heimes3b06e532008-01-07 20:12:44 +0000153- Issue #1762972: __file__ points to the source file instead of the pyc/pyo
154 file if the py file exists.
155
Guido van Rossumab078dd2008-01-06 00:09:11 +0000156- Issue #1393: object_richcompare() returns NotImplemented instead of
157 False if the objects aren't equal, to give the other side a chance.
158
Guido van Rossume239b002008-01-06 00:44:20 +0000159- Issue #1692: Interpreter was not displaying location of SyntaxError.
Kurt B. Kaiser43b15092008-01-05 04:32:22 +0000160
Amaury Forgeot d'Arcbccd63c2008-01-04 01:21:27 +0000161- Improve some exception messages when Windows fails to load an extension
162 module. Now we get for example '%1 is not a valid Win32 application' instead
163 of 'error code 193'. Also use Unicode strings to deal with non-English
164 locales.
165
Christian Heimesa3534a62007-12-11 19:56:40 +0000166- Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
167 has gained a new type *PyInstanceMethod_Type* and the functions
168 *PyInstanceMethod_Check(o)*, *PyInstanceMethod_New(func)* and
169 *PyInstanceMethod_Function(im)*.
170
Amaury Forgeot d'Arcad8dcd52007-12-10 23:58:35 +0000171- Constants gc.DEBUG_OBJECT and gc.DEBUG_INSTANCE have been removed from the
172 gc module; gc.DEBUG_COLLECTABLE or gc.DEBUG_UNCOLLECTABLE are now enough to
173 print the corresponding list of objects considered by the garbage collector.
174
Guido van Rossume239b002008-01-06 00:44:20 +0000175- Issue #1573: Improper use of the keyword-only syntax makes the parser crash.
Christian Heimesbc873412007-12-08 22:11:32 +0000176
Christian Heimes0ded5b52007-12-10 15:50:56 +0000177- Issue #1564: The set implementation should special-case PyUnicode instead
Guido van Rossume239b002008-01-06 00:44:20 +0000178 of PyString.
Christian Heimes0ded5b52007-12-10 15:50:56 +0000179
Guido van Rossumea6775b2008-02-21 20:16:31 +0000180- Patch #1031213: Decode source line in SyntaxErrors back to its
181 original source encoding.
Christian Heimes7131fd92008-02-19 14:21:46 +0000182
Christian Heimes09aaa882008-02-23 15:01:06 +0000183- inspect.getsource() includes the decorators again.
184
Guido van Rossumea6775b2008-02-21 20:16:31 +0000185- Bug #1713: posixpath.ismount() claims symlink to a mountpoint is a
186 mountpoint.
Christian Heimes7131fd92008-02-19 14:21:46 +0000187
Christian Heimes7131fd92008-02-19 14:21:46 +0000188- Fix utf-8-sig incremental decoder, which didn't recognise a BOM when the
Guido van Rossumea6775b2008-02-21 20:16:31 +0000189 first chunk fed to the decoder started with a BOM, but was longer than 3
190 bytes.
Christian Heimes7131fd92008-02-19 14:21:46 +0000191
Christian Heimes7131fd92008-02-19 14:21:46 +0000192
Christian Heimesbc873412007-12-08 22:11:32 +0000193Extension Modules
194-----------------
195
Raymond Hettinger736c0ab2008-03-13 02:09:15 +0000196- Code for itertools ifilter(), imap(), and izip() moved to bultins and
197 renamed to filter(), map(), and zip(). Also, renamed izip_longest()
198 to zip_longest() and ifilterfalse() to filterfalse().
199
Christian Heimes043d6f62008-01-07 17:19:16 +0000200- Issue #1762972: Readded the reload() function as imp.reload()
Guido van Rossumea6775b2008-02-21 20:16:31 +0000201
Christian Heimesa156e092008-02-16 07:38:31 +0000202- Bug #2111: mmap segfaults when trying to write a block opened with PROT_READ
203
204- #2063: correct order of utime and stime in os.times() result on Windows.
Christian Heimesbc873412007-12-08 22:11:32 +0000205
Christian Heimes7131fd92008-02-19 14:21:46 +0000206
Christian Heimesbc873412007-12-08 22:11:32 +0000207Library
208-------
209
Raymond Hettinger48b8b662008-02-05 01:53:00 +0000210- Weakref dictionaries now inherit from MutableMapping.
211 XXX their API still needs to be modernized (i.e. eliminate the iter methods).
212
213- Created new UserDict class in collections module. This one inherits from and
Raymond Hettingerb3a65f82008-02-21 22:11:37 +0000214 complies with the MutableMapping ABC. Also, moved UserString and UserList
215 to the collections module. The MutableUserString class was removed.
Raymond Hettinger48b8b662008-02-05 01:53:00 +0000216
Guido van Rossumea6775b2008-02-21 20:16:31 +0000217- Removed UserDict.DictMixin. Replaced all its uses with
218 collections.MutableMapping.
Raymond Hettingeredf3b732008-02-04 22:07:15 +0000219
Guido van Rossume239b002008-01-06 00:44:20 +0000220- Issue #1703: getpass() should flush after writing prompt.
Christian Heimesfc5aa9d2007-12-11 09:00:01 +0000221
Guido van Rossume239b002008-01-06 00:44:20 +0000222- Issue #1585: IDLE uses non-existent xrange() function.
223
224- Issue #1578: Problems in win_getpass.
225
Georg Brandl52d168a2008-01-07 18:10:24 +0000226Build
227-----
228
229- Renamed --enable-unicode configure flag to --with-wide-unicode, since
230 Unicode strings can't be disabled anymore.
231
232
Guido van Rossume239b002008-01-06 00:44:20 +0000233C API
234-----
235
236- Issue #1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE,
237 Py_TYPE and Py_REFCNT.
238
239- New API PyImport_ImportModuleNoBlock(), works like PyImport_ImportModule()
240 but won't block on the import lock (returning an error instead).
Christian Heimes0ec88b32007-12-10 17:02:00 +0000241
Christian Heimesbc873412007-12-08 22:11:32 +0000242
Fred Drake0e474a82007-10-11 18:01:43 +0000243What's New in Python 3.0a2?
Christian Heimesbc873412007-12-08 22:11:32 +0000244===========================
Fred Drake0e474a82007-10-11 18:01:43 +0000245
Guido van Rossum99533a92007-12-06 05:07:41 +0000246*Release date: 07-Dec-2007*
247
248(Note: this list is incomplete.)
Fred Drake0e474a82007-10-11 18:01:43 +0000249
Guido van Rossum40d20bc2007-10-22 00:09:51 +0000250Core and Builtins
251-----------------
252
Brett Cannon37f7e6e2007-10-26 05:42:09 +0000253- str8 now has the same construction signature as bytes.
254
Brett Cannon40430012007-10-22 20:24:51 +0000255- Comparisons between str and str8 now return False/True for ==/!=. sqlite3
256 returns str8 when recreating on object from it's __conform__ value. The
257 struct module returns str8 for all string-related formats. This was true
258 before this change, but becomes more apparent thanks to string comparisons
259 always being False.
260
Guido van Rossum40d20bc2007-10-22 00:09:51 +0000261- Replaced `PyFile_FromFile()` with `PyFile_FromFd(fd, name. mode, buffer,
262 encoding, newline)`
263
264- Fixed `imp.find_module()` to obey the -*- coding: -*- header.
265
266- Changed `__file__` and `co_filename` to unicode. The path names are decoded
267 with `Py_FileSystemDefaultEncoding` and a new API method
268 `PyUnicode_DecodeFSDefault(char*)` was added.
269
Guido van Rossum2dced8b2007-10-30 17:27:30 +0000270- io.open() and _fileio.FileIO have grown a new argument closefd. A false
271 value disables the closing of the file descriptor.
272
Guido van Rossum98297ee2007-11-06 21:34:58 +0000273- Added a new option -b to issues warnings (-bb for errors) about certain
274 operations between bytes/buffer and str like str(b'') and comparsion.
275
Christian Heimes58cb1b82007-11-13 02:19:40 +0000276- The standards streams sys.stdin, stdout and stderr may be None when the
277 when the C runtime library returns an invalid file descriptor for the
278 streams (fileno(stdin) < 0). For now this happens only for Windows GUI
279 apps and scripts started with `pythonw.exe`.
280
Christian Heimesbce52be2007-11-17 19:08:41 +0000281- Added PCbuild9 directory for VS 2008.
282
283- Renamed structmember.h WRITE_RESTRICTED to PY_WRITE_RESTRICTED to work
284 around a name clash with VS 2008 on Windows.
285
Christian Heimesff737952007-11-27 10:40:20 +0000286- Unbound methods are gone for good. ClassObject.method returns an ordinary
287 function object, instance.method still returns a bound method object.
288 The API of bound methods is cleaned up, too. The im_class attribute is
289 removed and im_func + im_self are renamed to __func__ and __self__. The
290 factory PyMethod_New takes only func and instance as argument.
291
Christian Heimesf78b1c62007-12-02 16:52:32 +0000292- intobject.h is no longer included by Python.h. The remains were moved
293 to longobject.h. It still exists to define several aliases from PyInt_
294 to PyLong_ functions.
295
Christian Heimesa37d4c62007-12-04 23:02:19 +0000296- Removed sys.maxint, use sys.maxsize instead.
297
Christian Heimesbce52be2007-11-17 19:08:41 +0000298
Fred Drake0e474a82007-10-11 18:01:43 +0000299Extension Modules
300-----------------
301
302- The `hotshot` profiler has been removed; use `cProfile` instead.
303
304
Brett Cannone9fd2312007-10-12 19:18:19 +0000305Library
306-------
307
308- When loading an external file using testfile(), the passed-in encoding
309 argument was being ignored if __loader__ is defined and forcing the source to
310 be UTF-8.
311
Guido van Rossum687b9c02007-10-25 23:18:51 +0000312- The methods `os.tmpnam()`, `os.tempnam()` and `os.tmpfile()` have been
313 removed in favor of the tempfile module.
314
Christian Heimesc9543e42007-11-28 08:28:28 +0000315- Removed the 'new' module.
316
317- Removed all types from the 'types' module that are easily accessable through
318 builtins.
Brett Cannone9fd2312007-10-12 19:18:19 +0000319
Georg Brandl52d168a2008-01-07 18:10:24 +0000320
Guido van Rossum4405cf32007-08-30 17:16:55 +0000321What's New in Python 3.0a1?
Guido van Rossum45aecf42006-03-15 04:58:47 +0000322==========================
Thomas Wouters4d70c3d2006-06-08 14:42:34 +0000323
Guido van Rossum4405cf32007-08-30 17:16:55 +0000324*Release date: 31-Aug-2007*
Neal Norwitz4886cc32006-08-21 17:06:07 +0000325
326Core and Builtins
327-----------------
328
Martin v. Löwis47383402007-08-15 07:32:56 +0000329- PEP 3131: Support non-ASCII identifiers.
330
Martin v. Löwis447d33e2007-07-29 18:10:01 +0000331- PEP 3120: Change default encoding to UTF-8.
332
Martin v. Löwis9f2e3462007-07-21 17:22:18 +0000333- PEP 3123: Use proper C inheritance for PyObject.
334
Guido van Rossumcd16bf62007-06-13 18:07:49 +0000335- Removed the __oct__ and __hex__ special methods and added a bin()
336 builtin function.
337
338- PEP 3127: octal literals now start with "0o". Old-style octal literals
339 are invalid. There are binary literals with a prefix of "0b".
340 This also affects int(x, 0).
341
Guido van Rossume7ba4952007-06-06 23:52:48 +0000342- None, True, False are now keywords.
343
Guido van Rossum29478ef2007-05-29 00:39:44 +0000344- PEP 3119: isinstance() and issubclass() can be overridden.
345
Guido van Rossumebe3e162007-05-17 18:20:34 +0000346- Remove BaseException.message.
347
Guido van Rossum1bc535d2007-05-15 18:46:22 +0000348- Remove tuple parameter unpacking (PEP 3113).
349
Kurt B. Kaiser2c7f3142007-08-30 21:52:19 +0000350- Remove the f_restricted attribute from frames. This naturally leads to the
Guido van Rossuma8add0e2007-05-14 22:03:55 +0000351 removal of PyEval_GetRestricted() and PyFrame_IsRestricted().
352
Guido van Rossum0368b722007-05-11 16:50:42 +0000353- PEP 3132 was accepted. That means that you can do ``a, *b = range(5)``
354 to assign 0 to a and [1, 2, 3, 4] to b.
355
Guido van Rossum805365e2007-05-07 22:24:25 +0000356- range() now returns an iterator rather than a list. Floats are not allowed.
357 xrange() is no longer defined.
358
Nick Coghlan650f0d02007-04-15 12:05:43 +0000359- Patch #1660500: hide iteration variable in list comps, add set comps
360 and use common code to handle compilation of iterative expressions
361
Guido van Rossume27dc722007-03-27 22:37:34 +0000362- By default, != returns the opposite of ==, unless the latter returns
363 NotImplemented.
364
Collin Winter670e6922007-03-21 02:57:17 +0000365- Patch #1680961: sys.exitfunc has been removed and replaced with a private
366 C-level API.
367
Georg Brandl801dd732007-03-18 20:18:31 +0000368- PEP 3115: new metaclasses: the metaclass is now specified as a
369 keyword arg in the class statement, which can now use the full syntax of
370 a parameter list. Also, the metaclass can implement a __prepare__ function
371 which will be called to create the dictionary for the new class namespace.
372
Georg Brandl428f0642007-03-18 18:35:15 +0000373- The long-deprecated argument "pend" of PyFloat_FromString() has been
374 removed.
375
Georg Brandle32b4222007-03-10 22:13:27 +0000376- The dir() function has been extended to call the __dir__() method on
377 its argument, if it exists. If not, it will work like before. This allows
378 customizing the output of dir() in the presence of a __getattr__().
Brett Cannonba7bf492007-02-27 00:15:55 +0000379
Neal Norwitz8dfc4a92007-08-11 06:39:53 +0000380- Removed support for __members__ and __methods__.
381
Georg Brandle32b4222007-03-10 22:13:27 +0000382- Removed indexing/slicing on BaseException.
Neal Norwitz2633c692007-02-26 22:22:47 +0000383
Georg Brandle32b4222007-03-10 22:13:27 +0000384- input() became raw_input(): the name input() now implements the
Guido van Rossum0240b922007-02-26 21:23:50 +0000385 functionality formerly known as raw_input(); the name raw_input()
386 is no longer defined.
387
Brett Cannon39590462007-02-26 22:01:14 +0000388- Classes listed in an 'except' clause must inherit from BaseException.
Brett Cannonf74225d2007-02-26 21:10:16 +0000389
Guido van Rossumcc2b0162007-02-11 06:12:03 +0000390- PEP 3106: dict.iterkeys(), .iteritems(), .itervalues() are now gone;
Guido van Rossumcf1be882007-08-30 22:07:17 +0000391 and .keys(), .items(), .values() return dict views, which behave
392 like sets.
Guido van Rossumcc2b0162007-02-11 06:12:03 +0000393
Guido van Rossum8b545362007-02-09 23:52:14 +0000394- PEP 3105: print is now a function. Also (not in the PEP) the
395 'softspace' attribute of files is now gone (since print() doesn't use
396 it). A side effect of this change is that you can get incomplete
397 output lines in interactive sessions:
398
399 >>> print(42, end="")
Kurt B. Kaiser2c7f3142007-08-30 21:52:19 +0000400 42>>>
Guido van Rossum8b545362007-02-09 23:52:14 +0000401
402 We may be able to fix this after the I/O library rewrite.
Guido van Rossum4502c802007-02-09 05:42:38 +0000403
Brett Cannon398db8b2007-01-29 23:44:37 +0000404- PEP 3102: keyword-only arguments.
405
Guido van Rossumd4588c12007-02-13 19:55:23 +0000406- Int/Long unification is complete. The 'long' built-in type
Guido van Rossumec7027f2007-01-30 00:00:40 +0000407 and literals with trailing 'L' or 'l' have been removed.
408 Performance may be sub-optimal (haven't really benchmarked).
Guido van Rossumab186842007-01-14 03:42:30 +0000409
410- 'except E, V' must now be spelled as 'except E as V' and deletes V
411 at the end of the except clause; V must be a simple name.
412
Neal Norwitzc1505362006-12-28 06:47:50 +0000413- Added function annotations per PEP 3107.
414
Jeremy Hyltona4f9fc62007-02-27 15:53:28 +0000415- Added nonlocal declaration from PEP 3104
416
417 >>> def f(x):
418 ... def inc():
419 ... nonlocal x
420 ... x += 1
421 ... return x
422 ... return inc
423 ...
424 >>> inc = f(0)
425 >>> inc()
426 1
427 >>> inc()
428 2
429
Georg Brandl66a796e2006-12-19 20:50:34 +0000430- Moved intern() to sys.intern().
431
432- exec is now a function.
433
434- Renamed nb_nonzero to nb_bool and __nonzero__ to __bool__.
Jack Diederich4dafcc42006-11-28 19:15:13 +0000435
Neal Norwitz4886cc32006-08-21 17:06:07 +0000436- Classic classes are a thing of the past. All classes are new style.
437
438- Exceptions *must* derive from BaseException.
439
440- Integer division always returns a float. The -Q option is no more.
441 All the following are gone:
442 * PyNumber_Divide and PyNumber_InPlaceDivide
443 * __div__, __rdiv__, and __idiv__
444 * nb_divide, nb_inplace_divide
445 * operator.div, operator.idiv, operator.__div__, operator.__idiv__
446 (Only __truediv__ and __floordiv__ remain, not sure how to handle them
447 if we want to re-use __div__ and friends. If we do, it will make
448 it harder to write code for both 2.x and 3.x.)
449
450- 'as' and 'with' are keywords.
451
452- Absolute import is the default behavior for 'import foo' etc.
453
Neal Norwitz378b2c92006-08-29 07:57:22 +0000454- Removed support for syntax:
Guido van Rossumd59da4b2007-05-22 18:11:13 +0000455 backticks (ie, `x`), <>
Neal Norwitz378b2c92006-08-29 07:57:22 +0000456
Neal Norwitz4886cc32006-08-21 17:06:07 +0000457- Removed these Python builtins:
Neal Norwitz01688022007-08-12 00:43:29 +0000458 apply(), callable(), coerce(), execfile(), file(), reduce(), reload()
Neal Norwitz4886cc32006-08-21 17:06:07 +0000459
Neal Norwitz378b2c92006-08-29 07:57:22 +0000460- Removed these Python methods:
461 {}.has_key
462
Guido van Rossumd59da4b2007-05-22 18:11:13 +0000463- Removed these opcodes:
464 BINARY_DIVIDE, INPLACE_DIVIDE, UNARY_CONVERT
465
466- Remove C API support for restricted execution.
467
Guido van Rossumcf1be882007-08-30 22:07:17 +0000468- zip(), map() and filter() now return iterators, behaving like their
469 itertools counterparts. This also affect map()'s behavior on
470 sequences of unequal length -- it now stops after the shortest one
471 is exhausted.
Guido van Rossumd59da4b2007-05-22 18:11:13 +0000472
473- Additions:
Guido van Rossumcf1be882007-08-30 22:07:17 +0000474 set literals, set comprehensions, ellipsis literal.
Guido van Rossumd59da4b2007-05-22 18:11:13 +0000475
476- Added class decorators per PEP 3129.
477
478
479Extension Modules
480-----------------
481
482- Remove the imageop module. Obsolete long with its unit tests becoming
483 useless from the removal of rgbimg and imgfile.
Neal Norwitz4886cc32006-08-21 17:06:07 +0000484
485- Removed these attributes from Python modules:
Guido van Rossumd59da4b2007-05-22 18:11:13 +0000486 * operator module: div, idiv, __div__, __idiv__, isCallable, sequenceIncludes
Guido van Rossume7ba4952007-06-06 23:52:48 +0000487 * sys module: exc_clear(), exc_type, exc_value, exc_traceback
Guido van Rossumd59da4b2007-05-22 18:11:13 +0000488
489
490Library
491-------
492
493- Remove the compiler package. Use of the _ast module and (an eventual)
494 AST -> bytecode mechanism.
495
496- Removed these modules:
Guido van Rossum33d26892007-08-05 15:29:28 +0000497 * audiodev, Bastion, bsddb185, exceptions, linuxaudiodev,
498 md5, MimeWriter, mimify, popen2,
499 rexec, sets, sha, stringold, strop, sunaudiodev, timing, xmllib.
500
501- Moved these modules to Tools/Demos:
502 * toaiff
Guido van Rossumd59da4b2007-05-22 18:11:13 +0000503
504- Remove obsolete IRIX modules: al/AL, cd/CD, cddb, cdplayer, cl/CL, DEVICE,
505 ERRNO, FILE, fl/FL, flp, fm, GET, gl/GL, GLWS, IN, imgfile, IOCTL, jpeg,
506 panel, panelparser, readcd, sgi, sv/SV, torgb, WAIT.
507
508- Remove obsolete functions:
509 * commands.getstatus(), os.popen*,
510
Martin v. Löwis967f1e32007-08-14 09:23:10 +0000511- Remove functions in the string module that are also string methods;
512 Remove string.{letters, lowercase, uppercase}.
Guido van Rossumd59da4b2007-05-22 18:11:13 +0000513
514- Remove support for long obsolete platforms: plat-aix3, plat-irix5.
515
516- Remove xmlrpclib.SlowParser. It was based on xmllib.
517
518- Patch #1680961: atexit has been reimplemented in C.
519
Walter Dörwald41980ca2007-08-16 21:55:45 +0000520- Add new codecs for UTF-32, UTF-32-LE and UTF-32-BE.
521
Guido van Rossumd59da4b2007-05-22 18:11:13 +0000522
523Build
524-----
525
526C API
527-----
528
529- Removed these Python slots:
530 __coerce__, __div__, __idiv__, __rdiv__
Neal Norwitz4886cc32006-08-21 17:06:07 +0000531
Neal Norwitz4886cc32006-08-21 17:06:07 +0000532- Removed these C APIs:
Neal Norwitz8dfc4a92007-08-11 06:39:53 +0000533 PyNumber_Coerce(), PyNumber_CoerceEx(), PyMember_Get, PyMember_Set
Neal Norwitz4886cc32006-08-21 17:06:07 +0000534
535- Removed these C slots/fields:
536 nb_divide, nb_inplace_divide
537
538- Removed these macros:
Neal Norwitz30d1c512007-08-19 22:48:23 +0000539 staticforward, statichere, PyArg_GetInt, PyArg_NoArgs, _PyObject_Del
Neal Norwitz4886cc32006-08-21 17:06:07 +0000540
541- Removed these typedefs:
542 intargfunc, intintargfunc, intobjargproc, intintobjargproc,
Neal Norwitz8dfc4a92007-08-11 06:39:53 +0000543 getreadbufferproc, getwritebufferproc, getsegcountproc, getcharbufferproc,
544 memberlist
Neal Norwitz4886cc32006-08-21 17:06:07 +0000545
Raymond Hettinger4901a1f2004-12-02 08:59:14 +0000546
Raymond Hettinger4901a1f2004-12-02 08:59:14 +0000547Tests
548-----
549
Brett Cannone7a30f72008-03-03 03:36:27 +0000550- Removed test.testall as test.regrtest replaces it.
551
552
Brett Cannonced04e02005-02-13 22:53:22 +0000553Documentation
554-------------
555
Raymond Hettinger4901a1f2004-12-02 08:59:14 +0000556Mac
557---
558
Guido van Rossume7ba4952007-06-06 23:52:48 +0000559- The cfmfile was removed.
560
561
Guido van Rossum845702c2007-08-30 18:44:53 +0000562Platforms
563---------
564
565- Support for BeOS and AtheOS was removed (according to PEP 11).
566
567- Support for RiscOS, Irix, Tru64 was removed (alledgedly).
568
Hye-Shik Chang4e422812005-07-17 02:36:59 +0000569
Raymond Hettinger4901a1f2004-12-02 08:59:14 +0000570Tools/Demos
571-----------
572
Skip Montanaroe5d7f7f2002-09-20 14:16:59 +0000573**(For information about older versions, consult the HISTORY file.)**