1 | +++++++++++
|
---|
2 | Python News
|
---|
3 | +++++++++++
|
---|
4 |
|
---|
5 | (editors: check NEWS.help for information about editing NEWS using ReST.)
|
---|
6 |
|
---|
7 | What's New in Python 2.5 (final)
|
---|
8 | ================================
|
---|
9 |
|
---|
10 | *Release date: 19-SEP-2006*
|
---|
11 |
|
---|
12 | No changes since release candidate 2.
|
---|
13 |
|
---|
14 | What's New in Python 2.5 release candidate 2?
|
---|
15 | =============================================
|
---|
16 |
|
---|
17 | *Release date: 12-SEP-2006*
|
---|
18 |
|
---|
19 | Core and builtins
|
---|
20 | -----------------
|
---|
21 |
|
---|
22 | - Make _PyGILState_NoteThreadState() static, it was not used anywhere
|
---|
23 | outside of pystate.c and should not be necessary.
|
---|
24 |
|
---|
25 | - Bug #1551432: Exceptions do not define an explicit __unicode__ method. This
|
---|
26 | allows calling unicode() on exceptions classes directly to succeed.
|
---|
27 |
|
---|
28 | - Bug #1542051: Exceptions now correctly call PyObject_GC_UnTrack.
|
---|
29 | Also make sure that every exception class has __module__ set to
|
---|
30 | 'exceptions'.
|
---|
31 |
|
---|
32 | - Bug #1550983: emit better error messages for erroneous relative
|
---|
33 | imports (if not in package and if beyond toplevel package).
|
---|
34 |
|
---|
35 | - Overflow checking code in integer division ran afoul of new gcc
|
---|
36 | optimizations. Changed to be more standard-conforming.
|
---|
37 |
|
---|
38 | - Patch #1541585: fix buffer overrun when performing repr() on
|
---|
39 | a unicode string in a build with wide unicode (UCS-4) support.
|
---|
40 |
|
---|
41 | - Patch #1546288: fix seg fault in dict_equal due to ref counting bug.
|
---|
42 |
|
---|
43 | - The return tuple from str.rpartition(sep) is (tail, sep, head) where
|
---|
44 | head is the original string if sep was not found.
|
---|
45 |
|
---|
46 | - Bug #1520864: unpacking singleton tuples in list comprehensions and
|
---|
47 | generator expressions (x for x, in ... ) works again. Fixing this problem
|
---|
48 | required changing the .pyc magic number. This means that .pyc files
|
---|
49 | generated before 2.5c2 will be regenerated.
|
---|
50 |
|
---|
51 |
|
---|
52 | Library
|
---|
53 | -------
|
---|
54 |
|
---|
55 | - Reverted patch #1504333 because it introduced an infinite loop.
|
---|
56 |
|
---|
57 | - Patch #1553314: Fix the inspect.py slowdown that was hurting IPython & SAGE
|
---|
58 | by adding smarter caching in inspect.getmodule().
|
---|
59 |
|
---|
60 | - Fix missing import of the types module in logging.config.
|
---|
61 |
|
---|
62 | - Patch #1550886: Fix decimal module context management implementation
|
---|
63 | to match the localcontext() example from PEP 343.
|
---|
64 |
|
---|
65 | - Bug #1541863: uuid.uuid1 failed to generate unique identifiers
|
---|
66 | on systems with low clock resolution.
|
---|
67 |
|
---|
68 | - Bug #1543303, patch #1543897: remove NUL padding from tarfiles.
|
---|
69 |
|
---|
70 | - Bug #1531862: Do not close standard file descriptors in subprocess.
|
---|
71 |
|
---|
72 |
|
---|
73 | Extension Modules
|
---|
74 | -----------------
|
---|
75 |
|
---|
76 | - Fix bugs in ctypes:
|
---|
77 | - anonymous structure fields that have a bit-width specified did not work
|
---|
78 | - cast function did not accept c_char_p or c_wchar_p instances as first arg
|
---|
79 |
|
---|
80 | - Bug #1551427: fix a wrong NULL pointer check in the win32 version
|
---|
81 | of os.urandom().
|
---|
82 |
|
---|
83 | - Bug #1548092: fix curses.tparm seg fault on invalid input.
|
---|
84 |
|
---|
85 | - Bug #1550714: fix SystemError from itertools.tee on negative value for n.
|
---|
86 |
|
---|
87 | - Fixed a few bugs on cjkcodecs:
|
---|
88 | - gbk and gb18030 codec now handle U+30FB KATAKANA MIDDLE DOT correctly.
|
---|
89 | - iso2022_jp_2 codec now encodes into G0 for KS X 1001, GB2312
|
---|
90 | codepoints to conform the standard.
|
---|
91 | - iso2022_jp_3 and iso2022_jp_2004 codec can encode JIS X 0213:2
|
---|
92 | codepoints now.
|
---|
93 |
|
---|
94 | Tests
|
---|
95 | -----
|
---|
96 |
|
---|
97 | - Fix bsddb test_basics.test06_Transactions to check the version
|
---|
98 | number properly.
|
---|
99 |
|
---|
100 |
|
---|
101 | Documentation
|
---|
102 | -------------
|
---|
103 |
|
---|
104 | - Bug #1541682: Fix example in the "Refcount details" API docs.
|
---|
105 | Additionally, remove a faulty example showing PySequence_SetItem applied
|
---|
106 | to a newly created list object and add notes that this isn't a good idea.
|
---|
107 |
|
---|
108 |
|
---|
109 | Tools
|
---|
110 | -----
|
---|
111 |
|
---|
112 | - Bug #1546372: Fixed small bugglet in pybench that caused a missing
|
---|
113 | file not to get reported properly.
|
---|
114 |
|
---|
115 |
|
---|
116 | Build
|
---|
117 | -----
|
---|
118 |
|
---|
119 | - Patch #1540470, for OpenBSD 4.0.
|
---|
120 |
|
---|
121 | - Patch #1545507: Exclude ctypes package in Win64 MSI file.
|
---|
122 |
|
---|
123 | - Fix OpenSSL debug build process.
|
---|
124 |
|
---|
125 |
|
---|
126 | C API
|
---|
127 | -----
|
---|
128 |
|
---|
129 | - Bug #1542693: remove semi-colon at end of PyImport_ImportModuleEx macro
|
---|
130 | so it can be used as an expression.
|
---|
131 |
|
---|
132 |
|
---|
133 | What's New in Python 2.5 release candidate 1?
|
---|
134 | =============================================
|
---|
135 |
|
---|
136 | *Release date: 17-AUG-2006*
|
---|
137 |
|
---|
138 | Core and builtins
|
---|
139 | -----------------
|
---|
140 |
|
---|
141 | - Fix infinite recursion when subclassing long and overriding __hash__.
|
---|
142 |
|
---|
143 | - Fix concatenation (+=) of long strings.
|
---|
144 |
|
---|
145 | - Unicode objects will no longer raise an exception when being
|
---|
146 | compared equal or unequal to a string and a UnicodeDecodeError
|
---|
147 | exception occurs, e.g. as result of a decoding failure.
|
---|
148 |
|
---|
149 | Instead, the equal (==) and unequal (!=) comparison operators will
|
---|
150 | now issue a UnicodeWarning and interpret the two objects as
|
---|
151 | unequal. The UnicodeWarning can be filtered as desired using
|
---|
152 | the warning framework, e.g. silenced completely, turned into an
|
---|
153 | exception, logged, etc.
|
---|
154 |
|
---|
155 | Note that compare operators other than equal and unequal will still
|
---|
156 | raise UnicodeDecodeError exceptions as they've always done.
|
---|
157 |
|
---|
158 | - Fix segfault when doing string formatting on subclasses of long.
|
---|
159 |
|
---|
160 | - Fix bug related to __len__ functions using values > 2**32 on 64-bit machines
|
---|
161 | with new-style classes.
|
---|
162 |
|
---|
163 | - Fix bug related to __len__ functions returning negative values with
|
---|
164 | classic classes.
|
---|
165 |
|
---|
166 | - Patch #1538606, Fix __index__() clipping. There were some problems
|
---|
167 | discovered with the API and how integers that didn't fit into Py_ssize_t
|
---|
168 | were handled. This patch attempts to provide enough alternatives
|
---|
169 | to effectively use __index__.
|
---|
170 |
|
---|
171 | - Bug #1536021: __hash__ may now return long int; the final hash
|
---|
172 | value is obtained by invoking hash on the long int.
|
---|
173 |
|
---|
174 | - Bug #1536786: buffer comparison could emit a RuntimeWarning.
|
---|
175 |
|
---|
176 | - Bug #1535165: fixed a segfault in input() and raw_input() when
|
---|
177 | sys.stdin is closed.
|
---|
178 |
|
---|
179 | - On Windows, the PyErr_Warn function is now exported from
|
---|
180 | the Python dll again.
|
---|
181 |
|
---|
182 | - Bug #1191458: tracing over for loops now produces a line event
|
---|
183 | on each iteration. Fixing this problem required changing the .pyc
|
---|
184 | magic number. This means that .pyc files generated before 2.5c1
|
---|
185 | will be regenerated.
|
---|
186 |
|
---|
187 | - Bug #1333982: string/number constants were inappropriately stored
|
---|
188 | in the byte code and co_consts even if they were not used, ie
|
---|
189 | immediately popped off the stack.
|
---|
190 |
|
---|
191 | - Fixed a reference-counting problem in property().
|
---|
192 |
|
---|
193 |
|
---|
194 | Library
|
---|
195 | -------
|
---|
196 |
|
---|
197 | - Fix a bug in the ``compiler`` package that caused invalid code to be
|
---|
198 | generated for generator expressions.
|
---|
199 |
|
---|
200 | - The distutils version has been changed to 2.5.0. The change to
|
---|
201 | keep it programmatically in sync with the Python version running
|
---|
202 | the code (introduced in 2.5b3) has been reverted. It will continue
|
---|
203 | to be maintained manually as static string literal.
|
---|
204 |
|
---|
205 | - If the Python part of a ctypes callback function returns None,
|
---|
206 | and this cannot be converted to the required C type, an exception is
|
---|
207 | printed with PyErr_WriteUnraisable. Before this change, the C
|
---|
208 | callback returned arbitrary values to the calling code.
|
---|
209 |
|
---|
210 | - The __repr__ method of a NULL ctypes.py_object() no longer raises
|
---|
211 | an exception.
|
---|
212 |
|
---|
213 | - uuid.UUID now has a bytes_le attribute. This returns the UUID in
|
---|
214 | little-endian byte order for Windows. In addition, uuid.py gained some
|
---|
215 | workarounds for clocks with low resolution, to stop the code yielding
|
---|
216 | duplicate UUIDs.
|
---|
217 |
|
---|
218 | - Patch #1540892: site.py Quitter() class attempts to close sys.stdin
|
---|
219 | before raising SystemExit, allowing IDLE to honor quit() and exit().
|
---|
220 |
|
---|
221 | - Bug #1224621: make tabnanny recognize IndentationErrors raised by tokenize.
|
---|
222 |
|
---|
223 | - Patch #1536071: trace.py should now find the full module name of a
|
---|
224 | file correctly even on Windows.
|
---|
225 |
|
---|
226 | - logging's atexit hook now runs even if the rest of the module has
|
---|
227 | already been cleaned up.
|
---|
228 |
|
---|
229 | - Bug #1112549, fix DoS attack on cgi.FieldStorage.
|
---|
230 |
|
---|
231 | - Bug #1531405, format_exception no longer raises an exception if
|
---|
232 | str(exception) raised an exception.
|
---|
233 |
|
---|
234 | - Fix a bug in the ``compiler`` package that caused invalid code to be
|
---|
235 | generated for nested functions.
|
---|
236 |
|
---|
237 |
|
---|
238 | Extension Modules
|
---|
239 | -----------------
|
---|
240 |
|
---|
241 | - Ignore data that arrives before the opening start tag in C etree.
|
---|
242 |
|
---|
243 | - Patch #1511317: don't crash on invalid hostname (alias) info.
|
---|
244 |
|
---|
245 | - Patch #1535500: fix segfault in BZ2File.writelines and make sure it
|
---|
246 | raises the correct exceptions.
|
---|
247 |
|
---|
248 | - Patch # 1536908: enable building ctypes on OpenBSD/AMD64. The
|
---|
249 | '-no-stack-protector' compiler flag for OpenBSD has been removed.
|
---|
250 |
|
---|
251 | - Patch #1532975 was applied, which fixes Bug #1533481: ctypes now
|
---|
252 | uses the _as_parameter_ attribute when objects are passed to foreign
|
---|
253 | function calls. The ctypes version number was changed to 1.0.1.
|
---|
254 |
|
---|
255 | - Bug #1530559, struct.pack raises TypeError where it used to convert.
|
---|
256 | Passing float arguments to struct.pack when integers are expected
|
---|
257 | now triggers a DeprecationWarning.
|
---|
258 |
|
---|
259 |
|
---|
260 | Tests
|
---|
261 | -----
|
---|
262 |
|
---|
263 | - test_socketserver should now work on cygwin and not fail sporadically
|
---|
264 | on other platforms.
|
---|
265 |
|
---|
266 | - test_mailbox should now work on cygwin versions 2006-08-10 and later.
|
---|
267 |
|
---|
268 | - Bug #1535182: really test the xreadlines() method of bz2 objects.
|
---|
269 |
|
---|
270 | - test_threading now skips testing alternate thread stack sizes on
|
---|
271 | platforms that don't support changing thread stack size.
|
---|
272 |
|
---|
273 |
|
---|
274 | Documentation
|
---|
275 | -------------
|
---|
276 |
|
---|
277 | - Patch #1534922: unittest docs were corrected and enhanced.
|
---|
278 |
|
---|
279 |
|
---|
280 | Build
|
---|
281 | -----
|
---|
282 |
|
---|
283 | - Bug #1535502, build _hashlib on Windows, and use masm assembler
|
---|
284 | code in OpenSSL.
|
---|
285 |
|
---|
286 | - Bug #1534738, win32 debug version of _msi should be _msi_d.pyd.
|
---|
287 |
|
---|
288 | - Bug #1530448, ctypes build failure on Solaris 10 was fixed.
|
---|
289 |
|
---|
290 |
|
---|
291 | C API
|
---|
292 | -----
|
---|
293 |
|
---|
294 | - New API for Unicode rich comparisons: PyUnicode_RichCompare()
|
---|
295 |
|
---|
296 | - Bug #1069160. Internal correctness changes were made to
|
---|
297 | ``PyThreadState_SetAsyncExc()``. A test case was added, and
|
---|
298 | the documentation was changed to state that the return value
|
---|
299 | is always 1 (normal) or 0 (if the specified thread wasn't found).
|
---|
300 |
|
---|
301 |
|
---|
302 | What's New in Python 2.5 beta 3?
|
---|
303 | ================================
|
---|
304 |
|
---|
305 | *Release date: 03-AUG-2006*
|
---|
306 |
|
---|
307 | Core and builtins
|
---|
308 | -----------------
|
---|
309 |
|
---|
310 | - _PyWeakref_GetWeakrefCount() now returns a Py_ssize_t; it previously
|
---|
311 | returned a long (see PEP 353).
|
---|
312 |
|
---|
313 | - Bug #1515471: string.replace() accepts character buffers again.
|
---|
314 |
|
---|
315 | - Add PyErr_WarnEx() so C code can pass the stacklevel to warnings.warn().
|
---|
316 | This provides the proper warning for struct.pack().
|
---|
317 | PyErr_Warn() is now deprecated in favor of PyErr_WarnEx().
|
---|
318 |
|
---|
319 | - Patch #1531113: Fix augmented assignment with yield expressions.
|
---|
320 | Also fix a SystemError when trying to assign to yield expressions.
|
---|
321 |
|
---|
322 | - Bug #1529871: The speed enhancement patch #921466 broke Python's compliance
|
---|
323 | with PEP 302. This was fixed by adding an ``imp.NullImporter`` type that is
|
---|
324 | used in ``sys.path_importer_cache`` to cache non-directory paths and avoid
|
---|
325 | excessive filesystem operations during imports.
|
---|
326 |
|
---|
327 | - Bug #1521947: When checking for overflow, ``PyOS_strtol()`` used some
|
---|
328 | operations on signed longs that are formally undefined by C.
|
---|
329 | Unfortunately, at least one compiler now cares about that, so complicated
|
---|
330 | the code to make that compiler happy again.
|
---|
331 |
|
---|
332 | - Bug #1524310: Properly report errors from FindNextFile in os.listdir.
|
---|
333 |
|
---|
334 | - Patch #1232023: Stop including current directory in search
|
---|
335 | path on Windows.
|
---|
336 |
|
---|
337 | - Fix some potential crashes found with failmalloc.
|
---|
338 |
|
---|
339 | - Fix warnings reported by Klocwork's static analysis tool.
|
---|
340 |
|
---|
341 | - Bug #1512814, Fix incorrect lineno's when code within a function
|
---|
342 | had more than 255 blank lines.
|
---|
343 |
|
---|
344 | - Patch #1521179: Python now accepts the standard options ``--help`` and
|
---|
345 | ``--version`` as well as ``/?`` on Windows.
|
---|
346 |
|
---|
347 | - Bug #1520864: unpacking singleton tuples in a 'for' loop (for x, in) works
|
---|
348 | again. Fixing this problem required changing the .pyc magic number.
|
---|
349 | This means that .pyc files generated before 2.5b3 will be regenerated.
|
---|
350 |
|
---|
351 | - Bug #1524317: Compiling Python ``--without-threads`` failed.
|
---|
352 | The Python core compiles again, and, in a build without threads, the
|
---|
353 | new ``sys._current_frames()`` returns a dictionary with one entry,
|
---|
354 | mapping the faux "thread id" 0 to the current frame.
|
---|
355 |
|
---|
356 | - Bug #1525447: build on MacOS X on a case-sensitive filesystem.
|
---|
357 |
|
---|
358 |
|
---|
359 | Library
|
---|
360 | -------
|
---|
361 |
|
---|
362 | - Correction of patch #1455898: In the mbcs decoder, set final=False
|
---|
363 | for stream decoder, but final=True for the decode function.
|
---|
364 |
|
---|
365 | - os.urandom no longer masks unrelated exceptions like SystemExit or
|
---|
366 | KeyboardInterrupt.
|
---|
367 |
|
---|
368 | - Bug #1525866: Don't copy directory stat times in
|
---|
369 | shutil.copytree on Windows
|
---|
370 |
|
---|
371 | - Bug #1002398: The documentation for os.path.sameopenfile now correctly
|
---|
372 | refers to file descriptors, not file objects.
|
---|
373 |
|
---|
374 | - The renaming of the xml package to xmlcore, and the import hackery done
|
---|
375 | to make it appear at both names, has been removed. Bug #1511497,
|
---|
376 | #1513611, and probably others.
|
---|
377 |
|
---|
378 | - Bug #1441397: The compiler module now recognizes module and function
|
---|
379 | docstrings correctly as it did in Python 2.4.
|
---|
380 |
|
---|
381 | - Bug #1529297: The rewrite of doctest for Python 2.4 unintentionally
|
---|
382 | lost that tests are sorted by name before being run. This rarely
|
---|
383 | matters for well-written tests, but can create baffling symptoms if
|
---|
384 | side effects from one test to the next affect outcomes. ``DocTestFinder``
|
---|
385 | has been changed to sort the list of tests it returns.
|
---|
386 |
|
---|
387 | - The distutils version has been changed to 2.5.0, and is now kept
|
---|
388 | in sync with sys.version_info[:3].
|
---|
389 |
|
---|
390 | - Bug #978833: Really close underlying socket in _socketobject.close.
|
---|
391 |
|
---|
392 | - Bug #1459963: urllib and urllib2 now normalize HTTP header names with
|
---|
393 | title().
|
---|
394 |
|
---|
395 | - Patch #1525766: In pkgutil.walk_packages, correctly pass the onerror callback
|
---|
396 | to recursive calls and call it with the failing package name.
|
---|
397 |
|
---|
398 | - Bug #1525817: Don't truncate short lines in IDLE's tool tips.
|
---|
399 |
|
---|
400 | - Patch #1515343: Fix printing of deprecated string exceptions with a
|
---|
401 | value in the traceback module.
|
---|
402 |
|
---|
403 | - Resync optparse with Optik 1.5.3: minor tweaks for/to tests.
|
---|
404 |
|
---|
405 | - Patch #1524429: Use repr() instead of backticks in Tkinter again.
|
---|
406 |
|
---|
407 | - Bug #1520914: Change time.strftime() to accept a zero for any position in its
|
---|
408 | argument tuple. For arguments where zero is illegal, the value is forced to
|
---|
409 | the minimum value that is correct. This is to support an undocumented but
|
---|
410 | common way people used to fill in inconsequential information in the time
|
---|
411 | tuple pre-2.4.
|
---|
412 |
|
---|
413 | - Patch #1220874: Update the binhex module for Mach-O.
|
---|
414 |
|
---|
415 | - The email package has improved RFC 2231 support, specifically for
|
---|
416 | recognizing the difference between encoded (name*0*=<blah>) and non-encoded
|
---|
417 | (name*0=<blah>) parameter continuations. This may change the types of
|
---|
418 | values returned from email.message.Message.get_param() and friends.
|
---|
419 | Specifically in some cases where non-encoded continuations were used,
|
---|
420 | get_param() used to return a 3-tuple of (None, None, string) whereas now it
|
---|
421 | will just return the string (since non-encoded continuations don't have
|
---|
422 | charset and language parts).
|
---|
423 |
|
---|
424 | Also, whereas % values were decoded in all parameter continuations, they are
|
---|
425 | now only decoded in encoded parameter parts.
|
---|
426 |
|
---|
427 | - Bug #1517990: IDLE keybindings on MacOS X now work correctly
|
---|
428 |
|
---|
429 | - Bug #1517996: IDLE now longer shows the default Tk menu when a
|
---|
430 | path browser, class browser or debugger is the frontmost window on MacOS X
|
---|
431 |
|
---|
432 | - Patch #1520294: Support for getset and member descriptors in types.py,
|
---|
433 | inspect.py, and pydoc.py. Specifically, this allows for querying the type
|
---|
434 | of an object against these built-in types and more importantly, for getting
|
---|
435 | their docstrings printed in the interactive interpreter's help() function.
|
---|
436 |
|
---|
437 |
|
---|
438 | Extension Modules
|
---|
439 | -----------------
|
---|
440 |
|
---|
441 | - Patch #1519025 and bug #926423: If a KeyboardInterrupt occurs during
|
---|
442 | a socket operation on a socket with a timeout, the exception will be
|
---|
443 | caught correctly. Previously, the exception was not caught.
|
---|
444 |
|
---|
445 | - Patch #1529514: The _ctypes extension is now compiled on more
|
---|
446 | openbsd target platforms.
|
---|
447 |
|
---|
448 | - The ``__reduce__()`` method of the new ``collections.defaultdict`` had
|
---|
449 | a memory leak, affecting pickles and deep copies.
|
---|
450 |
|
---|
451 | - Bug #1471938: Fix curses module build problem on Solaris 8; patch by
|
---|
452 | Paul Eggert.
|
---|
453 |
|
---|
454 | - Patch #1448199: Release interpreter lock in _winreg.ConnectRegistry.
|
---|
455 |
|
---|
456 | - Patch #1521817: Index range checking on ctypes arrays containing
|
---|
457 | exactly one element enabled again. This allows iterating over these
|
---|
458 | arrays, without the need to check the array size before.
|
---|
459 |
|
---|
460 | - Bug #1521375: When the code in ctypes.util.find_library was
|
---|
461 | run with root privileges, it could overwrite or delete
|
---|
462 | /dev/null in certain cases; this is now fixed.
|
---|
463 |
|
---|
464 | - Bug #1467450: On Mac OS X 10.3, RTLD_GLOBAL is now used as the
|
---|
465 | default mode for loading shared libraries in ctypes.
|
---|
466 |
|
---|
467 | - Because of a misspelled preprocessor symbol, ctypes was always
|
---|
468 | compiled without thread support; this is now fixed.
|
---|
469 |
|
---|
470 | - pybsddb Bug #1527939: bsddb module DBEnv dbremove and dbrename
|
---|
471 | methods now allow their database parameter to be None as the
|
---|
472 | sleepycat API allows.
|
---|
473 |
|
---|
474 | - Bug #1526460: Fix socketmodule compile on NetBSD as it has a different
|
---|
475 | bluetooth API compared with Linux and FreeBSD.
|
---|
476 |
|
---|
477 | Tests
|
---|
478 | -----
|
---|
479 |
|
---|
480 | - Bug #1501330: Change test_ossaudiodev to be much more tolerant in terms of
|
---|
481 | how long the test file should take to play. Now accepts taking 2.93 secs
|
---|
482 | (exact time) +/- 10% instead of the hard-coded 3.1 sec.
|
---|
483 |
|
---|
484 | - Patch #1529686: The standard tests ``test_defaultdict``, ``test_iterlen``,
|
---|
485 | ``test_uuid`` and ``test_email_codecs`` didn't actually run any tests when
|
---|
486 | run via ``regrtest.py``. Now they do.
|
---|
487 |
|
---|
488 | Build
|
---|
489 | -----
|
---|
490 |
|
---|
491 | - Bug #1439538: Drop usage of test -e in configure as it is not portable.
|
---|
492 |
|
---|
493 | Mac
|
---|
494 | ---
|
---|
495 |
|
---|
496 | - PythonLauncher now works correctly when the path to the script contains
|
---|
497 | characters that are treated specially by the shell (such as quotes).
|
---|
498 |
|
---|
499 | - Bug #1527397: PythonLauncher now launches scripts with the working directory
|
---|
500 | set to the directory that contains the script instead of the user home
|
---|
501 | directory. That latter was an implementation accident and not what users
|
---|
502 | expect.
|
---|
503 |
|
---|
504 |
|
---|
505 | What's New in Python 2.5 beta 2?
|
---|
506 | ================================
|
---|
507 |
|
---|
508 | *Release date: 11-JUL-2006*
|
---|
509 |
|
---|
510 | Core and builtins
|
---|
511 | -----------------
|
---|
512 |
|
---|
513 | - Bug #1441486: The literal representation of -(sys.maxint - 1)
|
---|
514 | again evaluates to a int object, not a long.
|
---|
515 |
|
---|
516 | - Bug #1501934: The scope of global variables that are locally assigned
|
---|
517 | using augmented assignment is now correctly determined.
|
---|
518 |
|
---|
519 | - Bug #927248: Recursive method-wrapper objects can now safely
|
---|
520 | be released.
|
---|
521 |
|
---|
522 | - Bug #1417699: Reject locale-specific decimal point in float()
|
---|
523 | and atof().
|
---|
524 |
|
---|
525 | - Bug #1511381: codec_getstreamcodec() in codec.c is corrected to
|
---|
526 | omit a default "error" argument for NULL pointer. This allows
|
---|
527 | the parser to take a codec from cjkcodecs again.
|
---|
528 |
|
---|
529 | - Bug #1519018: 'as' is now validated properly in import statements.
|
---|
530 |
|
---|
531 | - On 64 bit systems, int literals that use less than 64 bits are
|
---|
532 | now ints rather than longs.
|
---|
533 |
|
---|
534 | - Bug #1512814, Fix incorrect lineno's when code at module scope
|
---|
535 | started after line 256.
|
---|
536 |
|
---|
537 | - New function ``sys._current_frames()`` returns a dict mapping thread
|
---|
538 | id to topmost thread stack frame. This is for expert use, and is
|
---|
539 | especially useful for debugging application deadlocks. The functionality
|
---|
540 | was previously available in Fazal Majid's ``threadframe`` extension
|
---|
541 | module, but it wasn't possible to do this in a wholly threadsafe way from
|
---|
542 | an extension.
|
---|
543 |
|
---|
544 | Library
|
---|
545 | -------
|
---|
546 |
|
---|
547 | - Bug #1257728: Mention Cygwin in distutils error message about a missing
|
---|
548 | VS 2003.
|
---|
549 |
|
---|
550 | - Patch #1519566: Update turtle demo, make begin_fill idempotent.
|
---|
551 |
|
---|
552 | - Bug #1508010: msvccompiler now requires the DISTUTILS_USE_SDK
|
---|
553 | environment variable to be set in order to the SDK environment
|
---|
554 | for finding the compiler, include files, etc.
|
---|
555 |
|
---|
556 | - Bug #1515998: Properly generate logical ids for files in bdist_msi.
|
---|
557 |
|
---|
558 | - warnings.py now ignores ImportWarning by default
|
---|
559 |
|
---|
560 | - string.Template() now correctly handles tuple-values. Previously,
|
---|
561 | multi-value tuples would raise an exception and single-value tuples would
|
---|
562 | be treated as the value they contain, instead.
|
---|
563 |
|
---|
564 | - Bug #822974: Honor timeout in telnetlib.{expect,read_until}
|
---|
565 | even if some data are received.
|
---|
566 |
|
---|
567 | - Bug #1267547: Put proper recursive setup.py call into the
|
---|
568 | spec file generated by bdist_rpm.
|
---|
569 |
|
---|
570 | - Bug #1514693: Update turtle's heading when switching between
|
---|
571 | degrees and radians.
|
---|
572 |
|
---|
573 | - Reimplement turtle.circle using a polyline, to allow correct
|
---|
574 | filling of arcs.
|
---|
575 |
|
---|
576 | - Bug #1514703: Only setup canvas window in turtle when the canvas
|
---|
577 | is created.
|
---|
578 |
|
---|
579 | - Bug #1513223: .close() of a _socketobj now releases the underlying
|
---|
580 | socket again, which then gets closed as it becomes unreferenced.
|
---|
581 |
|
---|
582 | - Bug #1504333: Make sgmllib support angle brackets in quoted
|
---|
583 | attribute values.
|
---|
584 |
|
---|
585 | - Bug #853506: Fix IPv6 address parsing in unquoted attributes in
|
---|
586 | sgmllib ('[' and ']' were not accepted).
|
---|
587 |
|
---|
588 | - Fix a bug in the turtle module's end_fill function.
|
---|
589 |
|
---|
590 | - Bug #1510580: The 'warnings' module improperly required that a Warning
|
---|
591 | category be either a types.ClassType and a subclass of Warning. The proper
|
---|
592 | check is just that it is a subclass with Warning as the documentation states.
|
---|
593 |
|
---|
594 | - The compiler module now correctly compiles the new try-except-finally
|
---|
595 | statement (bug #1509132).
|
---|
596 |
|
---|
597 | - The wsgiref package is now installed properly on Unix.
|
---|
598 |
|
---|
599 | - A bug was fixed in logging.config.fileConfig() which caused a crash on
|
---|
600 | shutdown when fileConfig() was called multiple times.
|
---|
601 |
|
---|
602 | - The sqlite3 module did cut off data from the SQLite database at the first
|
---|
603 | null character before sending it to a custom converter. This has been fixed
|
---|
604 | now.
|
---|
605 |
|
---|
606 | Extension Modules
|
---|
607 | -----------------
|
---|
608 |
|
---|
609 | - #1494314: Fix a regression with high-numbered sockets in 2.4.3. This
|
---|
610 | means that select() on sockets > FD_SETSIZE (typically 1024) work again.
|
---|
611 | The patch makes sockets use poll() internally where available.
|
---|
612 |
|
---|
613 | - Assigning None to pointer type fields in ctypes structures possible
|
---|
614 | overwrote the wrong fields, this is fixed now.
|
---|
615 |
|
---|
616 | - Fixed a segfault in _ctypes when ctypes.wintypes were imported
|
---|
617 | on non-Windows platforms.
|
---|
618 |
|
---|
619 | - Bug #1518190: The ctypes.c_void_p constructor now accepts any
|
---|
620 | integer or long, without range checking.
|
---|
621 |
|
---|
622 | - Patch #1517790: It is now possible to use custom objects in the ctypes
|
---|
623 | foreign function argtypes sequence as long as they provide a from_param
|
---|
624 | method, no longer is it required that the object is a ctypes type.
|
---|
625 |
|
---|
626 | - The '_ctypes' extension module now works when Python is configured
|
---|
627 | with the --without-threads option.
|
---|
628 |
|
---|
629 | - Bug #1513646: os.access on Windows now correctly determines write
|
---|
630 | access, again.
|
---|
631 |
|
---|
632 | - Bug #1512695: cPickle.loads could crash if it was interrupted with
|
---|
633 | a KeyboardInterrupt.
|
---|
634 |
|
---|
635 | - Bug #1296433: parsing XML with a non-default encoding and
|
---|
636 | a CharacterDataHandler could crash the interpreter in pyexpat.
|
---|
637 |
|
---|
638 | - Patch #1516912: improve Modules support for OpenVMS.
|
---|
639 |
|
---|
640 | Build
|
---|
641 | -----
|
---|
642 |
|
---|
643 | - Automate Windows build process for the Win64 SSL module.
|
---|
644 |
|
---|
645 | - 'configure' now detects the zlib library the same way as distutils.
|
---|
646 | Previously, the slight difference could cause compilation errors of the
|
---|
647 | 'zlib' module on systems with more than one version of zlib.
|
---|
648 |
|
---|
649 | - The MSI compileall step was fixed to also support a TARGETDIR
|
---|
650 | with spaces in it.
|
---|
651 |
|
---|
652 | - Bug #1517388: sqlite3.dll is now installed on Windows independent
|
---|
653 | of Tcl/Tk.
|
---|
654 |
|
---|
655 | - Bug #1513032: 'make install' failed on FreeBSD 5.3 due to lib-old
|
---|
656 | trying to be installed even though it's empty.
|
---|
657 |
|
---|
658 | Tests
|
---|
659 | -----
|
---|
660 |
|
---|
661 | - Call os.waitpid() at the end of tests that spawn child processes in order
|
---|
662 | to minimize resources (zombies).
|
---|
663 |
|
---|
664 | Documentation
|
---|
665 | -------------
|
---|
666 |
|
---|
667 | - Cover ImportWarning, PendingDeprecationWarning and simplefilter() in the
|
---|
668 | documentation for the warnings module.
|
---|
669 |
|
---|
670 | - Patch #1509163: MS Toolkit Compiler no longer available.
|
---|
671 |
|
---|
672 | - Patch #1504046: Add documentation for xml.etree.
|
---|
673 |
|
---|
674 |
|
---|
675 | What's New in Python 2.5 beta 1?
|
---|
676 | ================================
|
---|
677 |
|
---|
678 | *Release date: 20-JUN-2006*
|
---|
679 |
|
---|
680 | Core and builtins
|
---|
681 | -----------------
|
---|
682 |
|
---|
683 | - Patch #1507676: Error messages returned by invalid abstract object operations
|
---|
684 | (such as iterating over an integer) have been improved and now include the
|
---|
685 | type of the offending object to help with debugging.
|
---|
686 |
|
---|
687 | - Bug #992017: A classic class that defined a __coerce__() method that returned
|
---|
688 | its arguments swapped would infinitely recurse and segfault the interpreter.
|
---|
689 |
|
---|
690 | - Fix the socket tests so they can be run concurrently.
|
---|
691 |
|
---|
692 | - Removed 5 integers from C frame objects (PyFrameObject).
|
---|
693 | f_nlocals, f_ncells, f_nfreevars, f_stack_size, f_restricted.
|
---|
694 |
|
---|
695 | - Bug #532646: object.__call__() will continue looking for the __call__
|
---|
696 | attribute on objects until one without one is found. This leads to recursion
|
---|
697 | when you take a class and set its __call__ attribute to an instance of the
|
---|
698 | class. Originally fixed for classic classes, but this fix is for new-style.
|
---|
699 | Removes the infinite_rec_3 crasher.
|
---|
700 |
|
---|
701 | - The string and unicode methods startswith() and endswith() now accept
|
---|
702 | a tuple of prefixes/suffixes to look for. Implements RFE #1491485.
|
---|
703 |
|
---|
704 | - Buffer objects, at the C level, never used the char buffer
|
---|
705 | implementation even when the char buffer for the wrapped object was
|
---|
706 | explicitly requested (originally returned the read or write buffer).
|
---|
707 | Now a TypeError is raised if the char buffer is not present but is
|
---|
708 | requested.
|
---|
709 |
|
---|
710 | - Patch #1346214: Statements like "if 0: suite" are now again optimized
|
---|
711 | away like they were in Python 2.4.
|
---|
712 |
|
---|
713 | - Builtin exceptions are now full-blown new-style classes instead of
|
---|
714 | instances pretending to be classes, which speeds up exception handling
|
---|
715 | by about 80% in comparison to 2.5a2.
|
---|
716 |
|
---|
717 | - Patch #1494554: Update unicodedata.numeric and unicode.isnumeric to
|
---|
718 | Unicode 4.1.
|
---|
719 |
|
---|
720 | - Patch #921466: sys.path_importer_cache is now used to cache valid and
|
---|
721 | invalid file paths for the built-in import machinery which leads to
|
---|
722 | fewer open calls on startup.
|
---|
723 |
|
---|
724 | - Patch #1442927: ``long(str, base)`` is now up to 6x faster for non-power-
|
---|
725 | of-2 bases. The largest speedup is for inputs with about 1000 decimal
|
---|
726 | digits. Conversion from non-power-of-2 bases remains quadratic-time in
|
---|
727 | the number of input digits (it was and remains linear-time for bases
|
---|
728 | 2, 4, 8, 16 and 32).
|
---|
729 |
|
---|
730 | - Bug #1334662: ``int(string, base)`` could deliver a wrong answer
|
---|
731 | when ``base`` was not 2, 4, 8, 10, 16 or 32, and ``string`` represented
|
---|
732 | an integer close to ``sys.maxint``. This was repaired by patch
|
---|
733 | #1335972, which also gives a nice speedup.
|
---|
734 |
|
---|
735 | - Patch #1337051: reduced size of frame objects.
|
---|
736 |
|
---|
737 | - PyErr_NewException now accepts a tuple of base classes as its
|
---|
738 | "base" parameter.
|
---|
739 |
|
---|
740 | - Patch #876206: function call speedup by retaining allocated frame
|
---|
741 | objects.
|
---|
742 |
|
---|
743 | - Bug #1462152: file() now checks more thoroughly for invalid mode
|
---|
744 | strings and removes a possible "U" before passing the mode to the
|
---|
745 | C library function.
|
---|
746 |
|
---|
747 | - Patch #1488312, Fix memory alignment problem on SPARC in unicode
|
---|
748 |
|
---|
749 | - Bug #1487966: Fix SystemError with conditional expression in assignment
|
---|
750 |
|
---|
751 | - WindowsError now has two error code attributes: errno, which carries
|
---|
752 | the error values from errno.h, and winerror, which carries the error
|
---|
753 | values from winerror.h. Previous versions put the winerror.h values
|
---|
754 | (from GetLastError()) into the errno attribute.
|
---|
755 |
|
---|
756 | - Patch #1475845: Raise IndentationError for unexpected indent.
|
---|
757 |
|
---|
758 | - Patch #1479181: split open() and file() from being aliases for each other.
|
---|
759 |
|
---|
760 | - Patch #1497053 & bug #1275608: Exceptions occurring in ``__eq__()``
|
---|
761 | methods were always silently ignored by dictionaries when comparing keys.
|
---|
762 | They are now passed through (except when using the C API function
|
---|
763 | ``PyDict_GetItem()``, whose semantics did not change).
|
---|
764 |
|
---|
765 | - Bug #1456209: In some obscure cases it was possible for a class with a
|
---|
766 | custom ``__eq__()`` method to confuse dict internals when class instances
|
---|
767 | were used as a dict's keys and the ``__eq__()`` method mutated the dict.
|
---|
768 | No, you don't have any code that did this ;-)
|
---|
769 |
|
---|
770 | Extension Modules
|
---|
771 | -----------------
|
---|
772 |
|
---|
773 | - Bug #1295808: expat symbols should be namespaced in pyexpat
|
---|
774 |
|
---|
775 | - Patch #1462338: Upgrade pyexpat to expat 2.0.0
|
---|
776 |
|
---|
777 | - Change binascii.hexlify to accept a read-only buffer instead of only a char
|
---|
778 | buffer and actually follow its documentation.
|
---|
779 |
|
---|
780 | - Fixed a potentially invalid memory access of CJKCodecs' shift-jis decoder.
|
---|
781 |
|
---|
782 | - Patch #1478788 (modified version): The functional extension module has
|
---|
783 | been renamed to _functools and a functools Python wrapper module added.
|
---|
784 | This provides a home for additional function related utilities that are
|
---|
785 | not specifically about functional programming. See PEP 309.
|
---|
786 |
|
---|
787 | - Patch #1493701: performance enhancements for struct module.
|
---|
788 |
|
---|
789 | - Patch #1490224: time.altzone is now set correctly on Cygwin.
|
---|
790 |
|
---|
791 | - Patch #1435422: zlib's compress and decompress objects now have a
|
---|
792 | copy() method.
|
---|
793 |
|
---|
794 | - Patch #1454481: thread stack size is now tunable at runtime for thread
|
---|
795 | enabled builds on Windows and systems with Posix threads support.
|
---|
796 |
|
---|
797 | - On Win32, os.listdir now supports arbitrarily-long Unicode path names
|
---|
798 | (up to the system limit of 32K characters).
|
---|
799 |
|
---|
800 | - Use Win32 API to implement os.{access,chdir,chmod,mkdir,remove,rename,rmdir,utime}.
|
---|
801 | As a result, these functions now raise WindowsError instead of OSError.
|
---|
802 |
|
---|
803 | - ``time.clock()`` on Win64 should use the high-performance Windows
|
---|
804 | ``QueryPerformanceCounter()`` now (as was already the case on 32-bit
|
---|
805 | Windows platforms).
|
---|
806 |
|
---|
807 | - Calling Tk_Init twice is refused if the first call failed as that
|
---|
808 | may deadlock.
|
---|
809 |
|
---|
810 | - bsddb: added the DB_ARCH_REMOVE flag and fixed db.DBEnv.log_archive() to
|
---|
811 | accept it without potentially using an uninitialized pointer.
|
---|
812 |
|
---|
813 | - bsddb: added support for the DBEnv.log_stat() and DBEnv.lsn_reset() methods
|
---|
814 | assuming BerkeleyDB >= 4.0 and 4.4 respectively. [pybsddb project SF
|
---|
815 | patch numbers 1494885 and 1494902]
|
---|
816 |
|
---|
817 | - bsddb: added an interface for the BerkeleyDB >= 4.3 DBSequence class.
|
---|
818 | [pybsddb project SF patch number 1466734]
|
---|
819 |
|
---|
820 | - bsddb: fix DBCursor.pget() bug with keyword argument names when no data
|
---|
821 | parameter is supplied. [SF pybsddb bug #1477863]
|
---|
822 |
|
---|
823 | - bsddb: the __len__ method of a DB object has been fixed to return correct
|
---|
824 | results. It could previously incorrectly return 0 in some cases.
|
---|
825 | Fixes SF bug 1493322 (pybsddb bug 1184012).
|
---|
826 |
|
---|
827 | - bsddb: the bsddb.dbtables Modify method now raises the proper error and
|
---|
828 | aborts the db transaction safely when a modifier callback fails.
|
---|
829 | Fixes SF python patch/bug #1408584.
|
---|
830 |
|
---|
831 | - bsddb: multithreaded DB access using the simple bsddb module interface
|
---|
832 | now works reliably. It has been updated to use automatic BerkeleyDB
|
---|
833 | deadlock detection and the bsddb.dbutils.DeadlockWrap wrapper to retry
|
---|
834 | database calls that would previously deadlock. [SF python bug #775414]
|
---|
835 |
|
---|
836 | - Patch #1446489: add support for the ZIP64 extensions to zipfile.
|
---|
837 |
|
---|
838 | - Patch #1506645: add Python wrappers for the curses functions
|
---|
839 | is_term_resized, resize_term and resizeterm.
|
---|
840 |
|
---|
841 | Library
|
---|
842 | -------
|
---|
843 |
|
---|
844 | - Patch #815924: Restore ability to pass type= and icon= in tkMessageBox
|
---|
845 | functions.
|
---|
846 |
|
---|
847 | - Patch #812986: Update turtle output even if not tracing.
|
---|
848 |
|
---|
849 | - Patch #1494750: Destroy master after deleting children in
|
---|
850 | Tkinter.BaseWidget.
|
---|
851 |
|
---|
852 | - Patch #1096231: Add ``default`` argument to Tkinter.Wm.wm_iconbitmap.
|
---|
853 |
|
---|
854 | - Patch #763580: Add name and value arguments to Tkinter variable
|
---|
855 | classes.
|
---|
856 |
|
---|
857 | - Bug #1117556: SimpleHTTPServer now tries to find and use the system's
|
---|
858 | mime.types file for determining MIME types.
|
---|
859 |
|
---|
860 | - Bug #1339007: Shelf objects now don't raise an exception in their
|
---|
861 | __del__ method when initialization failed.
|
---|
862 |
|
---|
863 | - Patch #1455898: The MBCS codec now supports the incremental mode for
|
---|
864 | double-byte encodings.
|
---|
865 |
|
---|
866 | - ``difflib``'s ``SequenceMatcher.get_matching_blocks()`` was changed to
|
---|
867 | guarantee that adjacent triples in the return list always describe
|
---|
868 | non-adjacent blocks. Previously, a pair of matching blocks could end
|
---|
869 | up being described by multiple adjacent triples that formed a partition
|
---|
870 | of the matching pair.
|
---|
871 |
|
---|
872 | - Bug #1498146: fix optparse to handle Unicode strings in option help,
|
---|
873 | description, and epilog.
|
---|
874 |
|
---|
875 | - Bug #1366250: minor optparse documentation error.
|
---|
876 |
|
---|
877 | - Bug #1361643: fix textwrap.dedent() so it handles tabs appropriately;
|
---|
878 | clarify docs.
|
---|
879 |
|
---|
880 | - The wsgiref package has been added to the standard library.
|
---|
881 |
|
---|
882 | - The functions update_wrapper() and wraps() have been added to the functools
|
---|
883 | module. These make it easier to copy relevant metadata from the original
|
---|
884 | function when writing wrapper functions.
|
---|
885 |
|
---|
886 | - The optional ``isprivate`` argument to ``doctest.testmod()``, and the
|
---|
887 | ``doctest.is_private()`` function, both deprecated in 2.4, were removed.
|
---|
888 |
|
---|
889 | - Patch #1359618: Speed up charmap encoder by using a trie structure
|
---|
890 | for lookup.
|
---|
891 |
|
---|
892 | - The functions in the ``pprint`` module now sort dictionaries by key
|
---|
893 | before computing the display. Before 2.5, ``pprint`` sorted a dictionary
|
---|
894 | if and only if its display required more than one line, although that
|
---|
895 | wasn't documented. The new behavior increases predictability; e.g.,
|
---|
896 | using ``pprint.pprint(a_dict)`` in a doctest is now reliable.
|
---|
897 |
|
---|
898 | - Patch #1497027: try HTTP digest auth before basic auth in urllib2
|
---|
899 | (thanks for J. J. Lee).
|
---|
900 |
|
---|
901 | - Patch #1496206: improve urllib2 handling of passwords with respect to
|
---|
902 | default HTTP and HTTPS ports.
|
---|
903 |
|
---|
904 | - Patch #1080727: add "encoding" parameter to doctest.DocFileSuite.
|
---|
905 |
|
---|
906 | - Patch #1281707: speed up gzip.readline.
|
---|
907 |
|
---|
908 | - Patch #1180296: Two new functions were added to the locale module:
|
---|
909 | format_string() to get the effect of "format % items" but locale-aware,
|
---|
910 | and currency() to format a monetary number with currency sign.
|
---|
911 |
|
---|
912 | - Patch #1486962: Several bugs in the turtle Tk demo module were fixed
|
---|
913 | and several features added, such as speed and geometry control.
|
---|
914 |
|
---|
915 | - Patch #1488881: add support for external file objects in bz2 compressed
|
---|
916 | tarfiles.
|
---|
917 |
|
---|
918 | - Patch #721464: pdb.Pdb instances can now be given explicit stdin and
|
---|
919 | stdout arguments, making it possible to redirect input and output
|
---|
920 | for remote debugging.
|
---|
921 |
|
---|
922 | - Patch #1484695: Update the tarfile module to version 0.8. This fixes
|
---|
923 | a couple of issues, notably handling of long file names using the
|
---|
924 | GNU LONGNAME extension.
|
---|
925 |
|
---|
926 | - Patch #1478292. ``doctest.register_optionflag(name)`` shouldn't create a
|
---|
927 | new flag when ``name`` is already the name of an option flag.
|
---|
928 |
|
---|
929 | - Bug #1385040: don't allow "def foo(a=1, b): pass" in the compiler
|
---|
930 | package.
|
---|
931 |
|
---|
932 | - Patch #1472854: make the rlcompleter.Completer class usable on non-
|
---|
933 | UNIX platforms.
|
---|
934 |
|
---|
935 | - Patch #1470846: fix urllib2 ProxyBasicAuthHandler.
|
---|
936 |
|
---|
937 | - Bug #1472827: correctly escape newlines and tabs in attribute values in
|
---|
938 | the saxutils.XMLGenerator class.
|
---|
939 |
|
---|
940 |
|
---|
941 | Build
|
---|
942 | -----
|
---|
943 |
|
---|
944 | - Bug #1502728: Correctly link against librt library on HP-UX.
|
---|
945 |
|
---|
946 | - OpenBSD 3.9 is supported now.
|
---|
947 |
|
---|
948 | - Patch #1492356: Port to Windows CE.
|
---|
949 |
|
---|
950 | - Bug/Patch #1481770: Use .so extension for shared libraries on HP-UX for ia64.
|
---|
951 |
|
---|
952 | - Patch #1471883: Add --enable-universalsdk.
|
---|
953 |
|
---|
954 | C API
|
---|
955 | -----
|
---|
956 |
|
---|
957 | Tests
|
---|
958 | -----
|
---|
959 |
|
---|
960 | Tools
|
---|
961 | -----
|
---|
962 |
|
---|
963 | Documentation
|
---|
964 | -------------
|
---|
965 |
|
---|
966 |
|
---|
967 |
|
---|
968 | What's New in Python 2.5 alpha 2?
|
---|
969 | =================================
|
---|
970 |
|
---|
971 | *Release date: 27-APR-2006*
|
---|
972 |
|
---|
973 | Core and builtins
|
---|
974 | -----------------
|
---|
975 |
|
---|
976 | - Bug #1465834: 'bdist_wininst preinstall script support' was fixed
|
---|
977 | by converting these apis from macros into exported functions again:
|
---|
978 |
|
---|
979 | PyParser_SimpleParseFile PyParser_SimpleParseString PyRun_AnyFile
|
---|
980 | PyRun_AnyFileEx PyRun_AnyFileFlags PyRun_File PyRun_FileEx
|
---|
981 | PyRun_FileFlags PyRun_InteractiveLoop PyRun_InteractiveOne
|
---|
982 | PyRun_SimpleFile PyRun_SimpleFileEx PyRun_SimpleString
|
---|
983 | PyRun_String Py_CompileString
|
---|
984 |
|
---|
985 | - Under COUNT_ALLOCS, types are not necessarily immortal anymore.
|
---|
986 |
|
---|
987 | - All uses of PyStructSequence_InitType have been changed to initialize
|
---|
988 | the type objects only once, even if the interpreter is initialized
|
---|
989 | multiple times.
|
---|
990 |
|
---|
991 | - Bug #1454485, array.array('u') could crash the interpreter. This was
|
---|
992 | due to PyArgs_ParseTuple(args, 'u#', ...) trying to convert buffers (strings)
|
---|
993 | to unicode when it didn't make sense. 'u#' now requires a unicode string.
|
---|
994 |
|
---|
995 | - Py_UNICODE is unsigned. It was always documented as unsigned, but
|
---|
996 | due to a bug had a signed value in previous versions.
|
---|
997 |
|
---|
998 | - Patch #837242: ``id()`` of any Python object always gives a positive
|
---|
999 | number now, which might be a long integer. ``PyLong_FromVoidPtr`` and
|
---|
1000 | ``PyLong_AsVoidPtr`` have been changed accordingly. Note that it has
|
---|
1001 | never been correct to implement a ``__hash()__`` method that returns the
|
---|
1002 | ``id()`` of an object:
|
---|
1003 |
|
---|
1004 | def __hash__(self):
|
---|
1005 | return id(self) # WRONG
|
---|
1006 |
|
---|
1007 | because a hash result must be a (short) Python int but it was always
|
---|
1008 | possible for ``id()`` to return a Python long. However, because ``id()``
|
---|
1009 | could return negative values before, on a 32-bit box an ``id()`` result
|
---|
1010 | was always usable as a hash value before this patch. That's no longer
|
---|
1011 | necessarily so.
|
---|
1012 |
|
---|
1013 | - Python on OS X 10.3 and above now uses dlopen() (via dynload_shlib.c)
|
---|
1014 | to load extension modules and now provides the dl module. As a result,
|
---|
1015 | sys.setdlopenflags() now works correctly on these systems. (SF patch
|
---|
1016 | #1454844)
|
---|
1017 |
|
---|
1018 | - Patch #1463867: enhanced garbage collection to allow cleanup of cycles
|
---|
1019 | involving generators that have paused outside of any ``try`` or ``with``
|
---|
1020 | blocks. (In 2.5a1, a paused generator that was part of a reference
|
---|
1021 | cycle could not be garbage collected, regardless of whether it was
|
---|
1022 | paused in a ``try`` or ``with`` block.)
|
---|
1023 |
|
---|
1024 | Extension Modules
|
---|
1025 | -----------------
|
---|
1026 |
|
---|
1027 | - Patch #1191065: Fix preprocessor problems on systems where recvfrom
|
---|
1028 | is a macro.
|
---|
1029 |
|
---|
1030 | - Bug #1467952: os.listdir() now correctly raises an error if readdir()
|
---|
1031 | fails with an error condition.
|
---|
1032 |
|
---|
1033 | - Fixed bsddb.db.DBError derived exceptions so they can be unpickled.
|
---|
1034 |
|
---|
1035 | - Bug #1117761: bsddb.*open() no longer raises an exception when using
|
---|
1036 | the cachesize parameter.
|
---|
1037 |
|
---|
1038 | - Bug #1149413: bsddb.*open() no longer raises an exception when using
|
---|
1039 | a temporary db (file=None) with the 'n' flag to truncate on open.
|
---|
1040 |
|
---|
1041 | - Bug #1332852: bsddb module minimum BerkeleyDB version raised to 3.3
|
---|
1042 | as older versions cause excessive test failures.
|
---|
1043 |
|
---|
1044 | - Patch #1062014: AF_UNIX sockets under Linux have a special
|
---|
1045 | abstract namespace that is now fully supported.
|
---|
1046 |
|
---|
1047 | Library
|
---|
1048 | -------
|
---|
1049 |
|
---|
1050 | - Bug #1223937: subprocess.CalledProcessError reports the exit status
|
---|
1051 | of the process using the returncode attribute, instead of
|
---|
1052 | abusing errno.
|
---|
1053 |
|
---|
1054 | - Patch #1475231: ``doctest`` has a new ``SKIP`` option, which causes
|
---|
1055 | a doctest to be skipped (the code is not run, and the expected output
|
---|
1056 | or exception is ignored).
|
---|
1057 |
|
---|
1058 | - Fixed contextlib.nested to cope with exceptions being raised and
|
---|
1059 | caught inside exit handlers.
|
---|
1060 |
|
---|
1061 | - Updated optparse module to Optik 1.5.1 (allow numeric constants in
|
---|
1062 | hex, octal, or binary; add ``append_const`` action; keep going if
|
---|
1063 | gettext cannot be imported; added ``OptionParser.destroy()`` method;
|
---|
1064 | added ``epilog`` for better help generation).
|
---|
1065 |
|
---|
1066 | - Bug #1473760: ``tempfile.TemporaryFile()`` could hang on Windows, when
|
---|
1067 | called from a thread spawned as a side effect of importing a module.
|
---|
1068 |
|
---|
1069 | - The pydoc module now supports documenting packages contained in
|
---|
1070 | .zip or .egg files.
|
---|
1071 |
|
---|
1072 | - The pkgutil module now has several new utility functions, such
|
---|
1073 | as ``walk_packages()`` to support working with packages that are either
|
---|
1074 | in the filesystem or zip files.
|
---|
1075 |
|
---|
1076 | - The mailbox module can now modify and delete messages from
|
---|
1077 | mailboxes, in addition to simply reading them. Thanks to Gregory
|
---|
1078 | K. Johnson for writing the code, and to the 2005 Google Summer of
|
---|
1079 | Code for funding his work.
|
---|
1080 |
|
---|
1081 | - The ``__del__`` method of class ``local`` in module ``_threading_local``
|
---|
1082 | returned before accomplishing any of its intended cleanup.
|
---|
1083 |
|
---|
1084 | - Patch #790710: Add breakpoint command lists in pdb.
|
---|
1085 |
|
---|
1086 | - Patch #1063914: Add Tkinter.Misc.clipboard_get().
|
---|
1087 |
|
---|
1088 | - Patch #1191700: Adjust column alignment in bdb breakpoint lists.
|
---|
1089 |
|
---|
1090 | - SimpleXMLRPCServer relied on the fcntl module, which is unavailable on
|
---|
1091 | Windows. Bug #1469163.
|
---|
1092 |
|
---|
1093 | - The warnings, linecache, inspect, traceback, site, and doctest modules
|
---|
1094 | were updated to work correctly with modules imported from zipfiles or
|
---|
1095 | via other PEP 302 __loader__ objects.
|
---|
1096 |
|
---|
1097 | - Patch #1467770: Reduce usage of subprocess._active to processes which
|
---|
1098 | the application hasn't waited on.
|
---|
1099 |
|
---|
1100 | - Patch #1462222: Fix Tix.Grid.
|
---|
1101 |
|
---|
1102 | - Fix exception when doing glob.glob('anything*/')
|
---|
1103 |
|
---|
1104 | - The pstats.Stats class accepts an optional stream keyword argument to
|
---|
1105 | direct output to an alternate file-like object.
|
---|
1106 |
|
---|
1107 | Build
|
---|
1108 | -----
|
---|
1109 |
|
---|
1110 | - The Makefile now has a reindent target, which runs reindent.py on
|
---|
1111 | the library.
|
---|
1112 |
|
---|
1113 | - Patch #1470875: Building Python with MS Free Compiler
|
---|
1114 |
|
---|
1115 | - Patch #1161914: Add a python-config script.
|
---|
1116 |
|
---|
1117 | - Patch #1324762:Remove ccpython.cc; replace --with-cxx with
|
---|
1118 | --with-cxx-main. Link with C++ compiler only if --with-cxx-main was
|
---|
1119 | specified. (Can be overridden by explicitly setting LINKCC.) Decouple
|
---|
1120 | CXX from --with-cxx-main, see description in README.
|
---|
1121 |
|
---|
1122 | - Patch #1429775: Link extension modules with the shared libpython.
|
---|
1123 |
|
---|
1124 | - Fixed a libffi build problem on MIPS systems.
|
---|
1125 |
|
---|
1126 | - ``PyString_FromFormat``, ``PyErr_Format``, and ``PyString_FromFormatV``
|
---|
1127 | now accept formats "%u" for unsigned ints, "%lu" for unsigned longs,
|
---|
1128 | and "%zu" for unsigned integers of type ``size_t``.
|
---|
1129 |
|
---|
1130 | Tests
|
---|
1131 | -----
|
---|
1132 |
|
---|
1133 | - test_contextlib now checks contextlib.nested can cope with exceptions
|
---|
1134 | being raised and caught inside exit handlers.
|
---|
1135 |
|
---|
1136 | - test_cmd_line now checks operation of the -m and -c command switches
|
---|
1137 |
|
---|
1138 | - The test_contextlib test in 2.5a1 wasn't actually run unless you ran
|
---|
1139 | it separately and by hand. It also wasn't cleaning up its changes to
|
---|
1140 | the current Decimal context.
|
---|
1141 |
|
---|
1142 | - regrtest.py now has a -M option to run tests that test the new limits of
|
---|
1143 | containers, on 64-bit architectures. Running these tests is only sensible
|
---|
1144 | on 64-bit machines with more than two gigabytes of memory. The argument
|
---|
1145 | passed is the maximum amount of memory for the tests to use.
|
---|
1146 |
|
---|
1147 | Tools
|
---|
1148 | -----
|
---|
1149 |
|
---|
1150 | - Added the Python benchmark suite pybench to the Tools/ directory;
|
---|
1151 | contributed by Marc-Andre Lemburg.
|
---|
1152 |
|
---|
1153 | Documentation
|
---|
1154 | -------------
|
---|
1155 |
|
---|
1156 | - Patch #1473132: Improve docs for ``tp_clear`` and ``tp_traverse``.
|
---|
1157 |
|
---|
1158 | - PEP 343: Added Context Types section to the library reference
|
---|
1159 | and attempted to bring other PEP 343 related documentation into
|
---|
1160 | line with the implementation and/or python-dev discussions.
|
---|
1161 |
|
---|
1162 | - Bug #1337990: clarified that ``doctest`` does not support examples
|
---|
1163 | requiring both expected output and an exception.
|
---|
1164 |
|
---|
1165 |
|
---|
1166 | What's New in Python 2.5 alpha 1?
|
---|
1167 | =================================
|
---|
1168 |
|
---|
1169 | *Release date: 05-APR-2006*
|
---|
1170 |
|
---|
1171 | Core and builtins
|
---|
1172 | -----------------
|
---|
1173 |
|
---|
1174 | - PEP 338: -m command line switch now delegates to runpy.run_module
|
---|
1175 | allowing it to support modules in packages and zipfiles
|
---|
1176 |
|
---|
1177 | - On Windows, .DLL is not an accepted file name extension for
|
---|
1178 | extension modules anymore; extensions are only found if they
|
---|
1179 | end in .PYD.
|
---|
1180 |
|
---|
1181 | - Bug #1421664: sys.stderr.encoding is now set to the same value as
|
---|
1182 | sys.stdout.encoding.
|
---|
1183 |
|
---|
1184 | - __import__ accepts keyword arguments.
|
---|
1185 |
|
---|
1186 | - Patch #1460496: round() now accepts keyword arguments.
|
---|
1187 |
|
---|
1188 | - Fixed bug #1459029 - unicode reprs were double-escaped.
|
---|
1189 |
|
---|
1190 | - Patch #1396919: The system scope threads are reenabled on FreeBSD
|
---|
1191 | 5.4 and later versions.
|
---|
1192 |
|
---|
1193 | - Bug #1115379: Compiling a Unicode string with an encoding declaration
|
---|
1194 | now gives a SyntaxError.
|
---|
1195 |
|
---|
1196 | - Previously, Python code had no easy way to access the contents of a
|
---|
1197 | cell object. Now, a ``cell_contents`` attribute has been added
|
---|
1198 | (closes patch #1170323).
|
---|
1199 |
|
---|
1200 | - Patch #1123430: Python's small-object allocator now returns an arena to
|
---|
1201 | the system ``free()`` when all memory within an arena becomes unused
|
---|
1202 | again. Prior to Python 2.5, arenas (256KB chunks of memory) were never
|
---|
1203 | freed. Some applications will see a drop in virtual memory size now,
|
---|
1204 | especially long-running applications that, from time to time, temporarily
|
---|
1205 | use a large number of small objects. Note that when Python returns an
|
---|
1206 | arena to the platform C's ``free()``, there's no guarantee that the
|
---|
1207 | platform C library will in turn return that memory to the operating system.
|
---|
1208 | The effect of the patch is to stop making that impossible, and in tests it
|
---|
1209 | appears to be effective at least on Microsoft C and gcc-based systems.
|
---|
1210 | Thanks to Evan Jones for hard work and patience.
|
---|
1211 |
|
---|
1212 | - Patch #1434038: property() now uses the getter's docstring if there is
|
---|
1213 | no "doc" argument given. This makes it possible to legitimately use
|
---|
1214 | property() as a decorator to produce a read-only property.
|
---|
1215 |
|
---|
1216 | - PEP 357, patch 1436368: add an __index__ method to int/long and a matching
|
---|
1217 | nb_index slot to the PyNumberMethods struct. The slot is consulted instead
|
---|
1218 | of requiring an int or long in slicing and a few other contexts, enabling
|
---|
1219 | other objects (e.g. Numeric Python's integers) to be used as slice indices.
|
---|
1220 |
|
---|
1221 | - Fixed various bugs reported by Coverity's Prevent tool.
|
---|
1222 |
|
---|
1223 | - PEP 352, patch #1104669: Make exceptions new-style objects. Introduced the
|
---|
1224 | new exception base class, BaseException, which has a new message attribute.
|
---|
1225 | KeyboardInterrupt and SystemExit to directly inherit from BaseException now.
|
---|
1226 | Raising a string exception now raises a DeprecationWarning.
|
---|
1227 |
|
---|
1228 | - Patch #1438387, PEP 328: relative and absolute imports. Imports can now be
|
---|
1229 | explicitly relative, using 'from .module import name' to mean 'from the same
|
---|
1230 | package as this module is in. Imports without dots still default to the
|
---|
1231 | old relative-then-absolute, unless 'from __future__ import
|
---|
1232 | absolute_import' is used.
|
---|
1233 |
|
---|
1234 | - Properly check if 'warnings' raises an exception (usually when a filter set
|
---|
1235 | to "error" is triggered) when raising a warning for raising string
|
---|
1236 | exceptions.
|
---|
1237 |
|
---|
1238 | - CO_GENERATOR_ALLOWED is no longer defined. This behavior is the default.
|
---|
1239 | The name was removed from Include/code.h.
|
---|
1240 |
|
---|
1241 | - PEP 308: conditional expressions were added: (x if cond else y).
|
---|
1242 |
|
---|
1243 | - Patch 1433928:
|
---|
1244 | - The copy module now "copies" function objects (as atomic objects).
|
---|
1245 | - dict.__getitem__ now looks for a __missing__ hook before raising
|
---|
1246 | KeyError.
|
---|
1247 |
|
---|
1248 | - PEP 343: with statement implemented. Needs ``from __future__ import
|
---|
1249 | with_statement``. Use of 'with' as a variable will generate a warning.
|
---|
1250 | Use of 'as' as a variable will also generate a warning (unless it's
|
---|
1251 | part of an import statement).
|
---|
1252 | The following objects have __context__ methods:
|
---|
1253 | - The built-in file type.
|
---|
1254 | - The thread.LockType type.
|
---|
1255 | - The following types defined by the threading module:
|
---|
1256 | Lock, RLock, Condition, Semaphore, BoundedSemaphore.
|
---|
1257 | - The decimal.Context class.
|
---|
1258 |
|
---|
1259 | - Fix the encodings package codec search function to only search
|
---|
1260 | inside its own package. Fixes problem reported in patch #1433198.
|
---|
1261 |
|
---|
1262 | Note: Codec packages should implement and register their own
|
---|
1263 | codec search function. PEP 100 has the details.
|
---|
1264 |
|
---|
1265 | - PEP 353: Using ``Py_ssize_t`` as the index type.
|
---|
1266 |
|
---|
1267 | - ``PYMALLOC_DEBUG`` builds now add ``4*sizeof(size_t)`` bytes of debugging
|
---|
1268 | info to each allocated block, since the ``Py_ssize_t`` changes (PEP 353)
|
---|
1269 | now allow Python to make use of memory blocks exceeding 2**32 bytes for
|
---|
1270 | some purposes on 64-bit boxes. A ``PYMALLOC_DEBUG`` build was limited
|
---|
1271 | to 4-byte allocations before.
|
---|
1272 |
|
---|
1273 | - Patch #1400181, fix unicode string formatting to not use the locale.
|
---|
1274 | This is how string objects work. u'%f' could use , instead of .
|
---|
1275 | for the decimal point. Now both strings and unicode always use periods.
|
---|
1276 |
|
---|
1277 | - Bug #1244610, #1392915, fix build problem on OpenBSD 3.7 and 3.8.
|
---|
1278 | configure would break checking curses.h.
|
---|
1279 |
|
---|
1280 | - Bug #959576: The pwd module is now builtin. This allows Python to be
|
---|
1281 | built on UNIX platforms without $HOME set.
|
---|
1282 |
|
---|
1283 | - Bug #1072182, fix some potential problems if characters are signed.
|
---|
1284 |
|
---|
1285 | - Bug #889500, fix line number on SyntaxWarning for global declarations.
|
---|
1286 |
|
---|
1287 | - Bug #1378022, UTF-8 files with a leading BOM crashed the interpreter.
|
---|
1288 |
|
---|
1289 | - Support for converting hex strings to floats no longer works.
|
---|
1290 | This was not portable. float('0x3') now raises a ValueError.
|
---|
1291 |
|
---|
1292 | - Patch #1382163: Expose Subversion revision number to Python. New C API
|
---|
1293 | function Py_GetBuildNumber(). New attribute sys.subversion. Build number
|
---|
1294 | is now displayed in interactive prompt banner.
|
---|
1295 |
|
---|
1296 | - Implementation of PEP 341 - Unification of try/except and try/finally.
|
---|
1297 | "except" clauses can now be written together with a "finally" clause in
|
---|
1298 | one try statement instead of two nested ones. Patch #1355913.
|
---|
1299 |
|
---|
1300 | - Bug #1379994: Builtin unicode_escape and raw_unicode_escape codec
|
---|
1301 | now encodes backslash correctly.
|
---|
1302 |
|
---|
1303 | - Patch #1350409: Work around signal handling bug in Visual Studio 2005.
|
---|
1304 |
|
---|
1305 | - Bug #1281408: Py_BuildValue now works correctly even with unsigned longs
|
---|
1306 | and long longs.
|
---|
1307 |
|
---|
1308 | - SF Bug #1350188, "setdlopenflags" leads to crash upon "import"
|
---|
1309 | It was possible for dlerror() to return a NULL pointer, so
|
---|
1310 | it will now use a default error message in this case.
|
---|
1311 |
|
---|
1312 | - Replaced most Unicode charmap codecs with new ones using the
|
---|
1313 | new Unicode translate string feature in the builtin charmap
|
---|
1314 | codec; the codecs were created from the mapping tables available
|
---|
1315 | at ftp.unicode.org and contain a few updates (e.g. the Mac OS
|
---|
1316 | encodings now include a mapping for the Apple logo)
|
---|
1317 |
|
---|
1318 | - Added a few more codecs for Mac OS encodings
|
---|
1319 |
|
---|
1320 | - Sped up some Unicode operations.
|
---|
1321 |
|
---|
1322 | - A new AST parser implementation was completed. The abstract
|
---|
1323 | syntax tree is available for read-only (non-compile) access
|
---|
1324 | to Python code; an _ast module was added.
|
---|
1325 |
|
---|
1326 | - SF bug #1167751: fix incorrect code being produced for generator expressions.
|
---|
1327 | The following code now raises a SyntaxError: foo(a = i for i in range(10))
|
---|
1328 |
|
---|
1329 | - SF Bug #976608: fix SystemError when mtime of an imported file is -1.
|
---|
1330 |
|
---|
1331 | - SF Bug #887946: fix segfault when redirecting stdin from a directory.
|
---|
1332 | Provide a warning when a directory is passed on the command line.
|
---|
1333 |
|
---|
1334 | - Fix segfault with invalid coding.
|
---|
1335 |
|
---|
1336 | - SF bug #772896: unknown encoding results in MemoryError.
|
---|
1337 |
|
---|
1338 | - All iterators now have a Boolean value of True. Formerly, some iterators
|
---|
1339 | supported a __len__() method which evaluated to False when the iterator
|
---|
1340 | was empty.
|
---|
1341 |
|
---|
1342 | - On 64-bit platforms, when __len__() returns a value that cannot be
|
---|
1343 | represented as a C int, raise OverflowError.
|
---|
1344 |
|
---|
1345 | - test__locale is skipped on OS X < 10.4 (only partial locale support is
|
---|
1346 | present).
|
---|
1347 |
|
---|
1348 | - SF bug #893549: parsing keyword arguments was broken with a few format
|
---|
1349 | codes.
|
---|
1350 |
|
---|
1351 | - Changes donated by Elemental Security to make it work on AIX 5.3
|
---|
1352 | with IBM's 64-bit compiler (SF patch #1284289). This also closes SF
|
---|
1353 | bug #105470: test_pwd fails on 64bit system (Opteron).
|
---|
1354 |
|
---|
1355 | - Changes donated by Elemental Security to make it work on HP-UX 11 on
|
---|
1356 | Itanium2 with HP's 64-bit compiler (SF patch #1225212).
|
---|
1357 |
|
---|
1358 | - Disallow keyword arguments for type constructors that don't use them
|
---|
1359 | (fixes bug #1119418).
|
---|
1360 |
|
---|
1361 | - Forward UnicodeDecodeError into SyntaxError for source encoding errors.
|
---|
1362 |
|
---|
1363 | - SF bug #900092: When tracing (e.g. for hotshot), restore 'return' events for
|
---|
1364 | exceptions that cause a function to exit.
|
---|
1365 |
|
---|
1366 | - The implementation of set() and frozenset() was revised to use its
|
---|
1367 | own internal data structure. Memory consumption is reduced by 1/3
|
---|
1368 | and there are modest speed-ups as well. The API is unchanged.
|
---|
1369 |
|
---|
1370 | - SF bug #1238681: freed pointer is used in longobject.c:long_pow().
|
---|
1371 |
|
---|
1372 | - SF bug #1229429: PyObject_CallMethod failed to decrement some
|
---|
1373 | reference counts in some error exit cases.
|
---|
1374 |
|
---|
1375 | - SF bug #1185883: Python's small-object memory allocator took over
|
---|
1376 | a block managed by the platform C library whenever a realloc specified
|
---|
1377 | a small new size. However, there's no portable way to know then how
|
---|
1378 | much of the address space following the pointer is valid, so there's no
|
---|
1379 | portable way to copy data from the C-managed block into Python's
|
---|
1380 | small-object space without risking a memory fault. Python's small-object
|
---|
1381 | realloc now leaves such blocks under the control of the platform C
|
---|
1382 | realloc.
|
---|
1383 |
|
---|
1384 | - SF bug #1232517: An overflow error was not detected properly when
|
---|
1385 | attempting to convert a large float to an int in os.utime().
|
---|
1386 |
|
---|
1387 | - SF bug #1224347: hex longs now print with lowercase letters just
|
---|
1388 | like their int counterparts.
|
---|
1389 |
|
---|
1390 | - SF bug #1163563: the original fix for bug #1010677 ("thread Module
|
---|
1391 | Breaks PyGILState_Ensure()") broke badly in the case of multiple
|
---|
1392 | interpreter states; back out that fix and do a better job (see
|
---|
1393 | http://mail.python.org/pipermail/python-dev/2005-June/054258.html
|
---|
1394 | for a longer write-up of the problem).
|
---|
1395 |
|
---|
1396 | - SF patch #1180995: marshal now uses a binary format by default when
|
---|
1397 | serializing floats.
|
---|
1398 |
|
---|
1399 | - SF patch #1181301: on platforms that appear to use IEEE 754 floats,
|
---|
1400 | the routines that promise to produce IEEE 754 binary representations
|
---|
1401 | of floats now simply copy bytes around.
|
---|
1402 |
|
---|
1403 | - bug #967182: disallow opening files with 'wU' or 'aU' as specified by PEP
|
---|
1404 | 278.
|
---|
1405 |
|
---|
1406 | - patch #1109424: int, long, float, complex, and unicode now check for the
|
---|
1407 | proper magic slot for type conversions when subclassed. Previously the
|
---|
1408 | magic slot was ignored during conversion. Semantics now match the way
|
---|
1409 | subclasses of str always behaved. int/long/float, conversion of an instance
|
---|
1410 | to the base class has been moved to the proper nb_* magic slot and out of
|
---|
1411 | PyNumber_*().
|
---|
1412 | Thanks Walter Dᅵrwald.
|
---|
1413 |
|
---|
1414 | - Descriptors defined in C with a PyGetSetDef structure, where the setter is
|
---|
1415 | NULL, now raise an AttributeError when attempting to set or delete the
|
---|
1416 | attribute. Previously a TypeError was raised, but this was inconsistent
|
---|
1417 | with the equivalent pure-Python implementation.
|
---|
1418 |
|
---|
1419 | - It is now safe to call PyGILState_Release() before
|
---|
1420 | PyEval_InitThreads() (note that if there is reason to believe there
|
---|
1421 | are multiple threads around you still must call PyEval_InitThreads()
|
---|
1422 | before using the Python API; this fix is for extension modules that
|
---|
1423 | have no way of knowing if Python is multi-threaded yet).
|
---|
1424 |
|
---|
1425 | - Typing Ctrl-C whilst raw_input() was waiting in a build with threads
|
---|
1426 | disabled caused a crash.
|
---|
1427 |
|
---|
1428 | - Bug #1165306: instancemethod_new allowed the creation of a method
|
---|
1429 | with im_class == im_self == NULL, which caused a crash when called.
|
---|
1430 |
|
---|
1431 | - Move exception finalisation later in the shutdown process - this
|
---|
1432 | fixes the crash seen in bug #1165761
|
---|
1433 |
|
---|
1434 | - Added two new builtins, any() and all().
|
---|
1435 |
|
---|
1436 | - Defining a class with empty parentheses is now allowed
|
---|
1437 | (e.g., ``class C(): pass`` is no longer a syntax error).
|
---|
1438 | Patch #1176012 added support to the 'parser' module and 'compiler' package
|
---|
1439 | (thanks to logistix for that added support).
|
---|
1440 |
|
---|
1441 | - Patch #1115086: Support PY_LONGLONG in structmember.
|
---|
1442 |
|
---|
1443 | - Bug #1155938: new style classes did not check that __init__() was
|
---|
1444 | returning None.
|
---|
1445 |
|
---|
1446 | - Patch #802188: Report characters after line continuation character
|
---|
1447 | ('\') with a specific error message.
|
---|
1448 |
|
---|
1449 | - Bug #723201: Raise a TypeError for passing bad objects to 'L' format.
|
---|
1450 |
|
---|
1451 | - Bug #1124295: the __name__ attribute of file objects was
|
---|
1452 | inadvertently made inaccessible in restricted mode.
|
---|
1453 |
|
---|
1454 | - Bug #1074011: closing sys.std{out,err} now causes a flush() and
|
---|
1455 | an ferror() call.
|
---|
1456 |
|
---|
1457 | - min() and max() now support key= arguments with the same meaning as in
|
---|
1458 | list.sort().
|
---|
1459 |
|
---|
1460 | - The peephole optimizer now performs simple constant folding in expressions:
|
---|
1461 | (2+3) --> (5).
|
---|
1462 |
|
---|
1463 | - set and frozenset objects can now be marshalled. SF #1098985.
|
---|
1464 |
|
---|
1465 | - Bug #1077106: Poor argument checking could cause memory corruption
|
---|
1466 | in calls to os.read().
|
---|
1467 |
|
---|
1468 | - The parser did not complain about future statements in illegal
|
---|
1469 | positions. It once again reports a syntax error if a future
|
---|
1470 | statement occurs after anything other than a doc string.
|
---|
1471 |
|
---|
1472 | - Change the %s format specifier for str objects so that it returns a
|
---|
1473 | unicode instance if the argument is not an instance of basestring and
|
---|
1474 | calling __str__ on the argument returns a unicode instance.
|
---|
1475 |
|
---|
1476 | - Patch #1413181: changed ``PyThreadState_Delete()`` to forget about the
|
---|
1477 | current thread state when the auto-GIL-state machinery knows about
|
---|
1478 | it (since the thread state is being deleted, continuing to remember it
|
---|
1479 | can't help, but can hurt if another thread happens to get created with
|
---|
1480 | the same thread id).
|
---|
1481 |
|
---|
1482 | Extension Modules
|
---|
1483 | -----------------
|
---|
1484 |
|
---|
1485 | - Patch #1380952: fix SSL objects timing out on consecutive read()s
|
---|
1486 |
|
---|
1487 | - Patch #1309579: wait3 and wait4 were added to the posix module.
|
---|
1488 |
|
---|
1489 | - Patch #1231053: The audioop module now supports encoding/decoding of alaw.
|
---|
1490 | In addition, the existing ulaw code was updated.
|
---|
1491 |
|
---|
1492 | - RFE #567972: Socket objects' family, type and proto properties are
|
---|
1493 | now exposed via new attributes.
|
---|
1494 |
|
---|
1495 | - Everything under lib-old was removed. This includes the following modules:
|
---|
1496 | Para, addpack, cmp, cmpcache, codehack, dircmp, dump, find, fmt, grep,
|
---|
1497 | lockfile, newdir, ni, packmail, poly, rand, statcache, tb, tzparse,
|
---|
1498 | util, whatsound, whrandom, zmod
|
---|
1499 |
|
---|
1500 | - The following modules were removed: regsub, reconvert, regex, regex_syntax.
|
---|
1501 |
|
---|
1502 | - re and sre were swapped, so help(re) provides full help. importing sre
|
---|
1503 | is deprecated. The undocumented re.engine variable no longer exists.
|
---|
1504 |
|
---|
1505 | - Bug #1448490: Fixed a bug that ISO-2022 codecs could not handle
|
---|
1506 | SS2 (single-shift 2) escape sequences correctly.
|
---|
1507 |
|
---|
1508 | - The unicodedata module was updated to the 4.1 version of the Unicode
|
---|
1509 | database. The 3.2 version is still available as unicodedata.db_3_2_0
|
---|
1510 | for applications that require this specific version (such as IDNA).
|
---|
1511 |
|
---|
1512 | - The timing module is no longer built by default. It was deprecated
|
---|
1513 | in PEP 4 in Python 2.0 or earlier.
|
---|
1514 |
|
---|
1515 | - Patch 1433928: Added a new type, defaultdict, to the collections module.
|
---|
1516 | This uses the new __missing__ hook behavior added to dict (see above).
|
---|
1517 |
|
---|
1518 | - Bug #854823: socketmodule now builds on Sun platforms even when
|
---|
1519 | INET_ADDRSTRLEN is not defined.
|
---|
1520 |
|
---|
1521 | - Patch #1393157: os.startfile() now has an optional argument to specify
|
---|
1522 | a "command verb" to invoke on the file.
|
---|
1523 |
|
---|
1524 | - Bug #876637, prevent stack corruption when socket descriptor
|
---|
1525 | is larger than FD_SETSIZE.
|
---|
1526 |
|
---|
1527 | - Patch #1407135, bug #1424041: harmonize mmap behavior of anonymous memory.
|
---|
1528 | mmap.mmap(-1, size) now returns anonymous memory in both Unix and Windows.
|
---|
1529 | mmap.mmap(0, size) should not be used on Windows for anonymous memory.
|
---|
1530 |
|
---|
1531 | - Patch #1422385: The nis module now supports access to domains other
|
---|
1532 | than the system default domain.
|
---|
1533 |
|
---|
1534 | - Use Win32 API to implement os.stat/fstat. As a result, subsecond timestamps
|
---|
1535 | are reported, the limit on path name lengths is removed, and stat reports
|
---|
1536 | WindowsError now (instead of OSError).
|
---|
1537 |
|
---|
1538 | - Add bsddb.db.DBEnv.set_tx_timestamp allowing time based database recovery.
|
---|
1539 |
|
---|
1540 | - Bug #1413192, fix seg fault in bsddb if a transaction was deleted
|
---|
1541 | before the env.
|
---|
1542 |
|
---|
1543 | - Patch #1103116: Basic AF_NETLINK support.
|
---|
1544 |
|
---|
1545 | - Bug #1402308, (possible) segfault when using mmap.mmap(-1, ...)
|
---|
1546 |
|
---|
1547 | - Bug #1400822, _curses over{lay,write} doesn't work when passing 6 ints.
|
---|
1548 | Also fix ungetmouse() which did not accept arguments properly.
|
---|
1549 | The code now conforms to the documented signature.
|
---|
1550 |
|
---|
1551 | - Bug #1400115, Fix segfault when calling curses.panel.userptr()
|
---|
1552 | without prior setting of the userptr.
|
---|
1553 |
|
---|
1554 | - Fix 64-bit problems in bsddb.
|
---|
1555 |
|
---|
1556 | - Patch #1365916: fix some unsafe 64-bit mmap methods.
|
---|
1557 |
|
---|
1558 | - Bug #1290333: Added a workaround for cjkcodecs' _codecs_cn build
|
---|
1559 | problem on AIX.
|
---|
1560 |
|
---|
1561 | - Bug #869197: os.setgroups rejects long integer arguments
|
---|
1562 |
|
---|
1563 | - Bug #1346533, select.poll() doesn't raise an error if timeout > sys.maxint
|
---|
1564 |
|
---|
1565 | - Bug #1344508, Fix UNIX mmap leaking file descriptors
|
---|
1566 |
|
---|
1567 | - Patch #1338314, Bug #1336623: fix tarfile so it can extract
|
---|
1568 | REGTYPE directories from tarfiles written by old programs.
|
---|
1569 |
|
---|
1570 | - Patch #1407992, fixes broken bsddb module db associate when using
|
---|
1571 | BerkeleyDB 3.3, 4.0 or 4.1.
|
---|
1572 |
|
---|
1573 | - Get bsddb module to build with BerkeleyDB version 4.4
|
---|
1574 |
|
---|
1575 | - Get bsddb module to build with BerkeleyDB version 3.2
|
---|
1576 |
|
---|
1577 | - Patch #1309009, Fix segfault in pyexpat when the XML document is in latin_1,
|
---|
1578 | but Python incorrectly assumes it is in UTF-8 format
|
---|
1579 |
|
---|
1580 | - Fix parse errors in the readline module when compiling without threads.
|
---|
1581 |
|
---|
1582 | - Patch #1288833: Removed thread lock from socket.getaddrinfo on
|
---|
1583 | FreeBSD 5.3 and later versions which got thread-safe getaddrinfo(3).
|
---|
1584 |
|
---|
1585 | - Patches #1298449 and #1298499: Add some missing checks for error
|
---|
1586 | returns in cStringIO.c.
|
---|
1587 |
|
---|
1588 | - Patch #1297028: fix segfault if call type on MultibyteCodec,
|
---|
1589 | MultibyteStreamReader, or MultibyteStreamWriter
|
---|
1590 |
|
---|
1591 | - Fix memory leak in posix.access().
|
---|
1592 |
|
---|
1593 | - Patch #1213831: Fix typo in unicodedata._getcode.
|
---|
1594 |
|
---|
1595 | - Bug #1007046: os.startfile() did not accept unicode strings encoded in
|
---|
1596 | the file system encoding.
|
---|
1597 |
|
---|
1598 | - Patch #756021: Special-case socket.inet_aton('255.255.255.255') for
|
---|
1599 | platforms that don't have inet_aton().
|
---|
1600 |
|
---|
1601 | - Bug #1215928: Fix bz2.BZ2File.seek() for 64-bit file offsets.
|
---|
1602 |
|
---|
1603 | - Bug #1191043: Fix bz2.BZ2File.(x)readlines for files containing one
|
---|
1604 | line without newlines.
|
---|
1605 |
|
---|
1606 | - Bug #728515: mmap.resize() now resizes the file on Unix as it did
|
---|
1607 | on Windows.
|
---|
1608 |
|
---|
1609 | - Patch #1180695: Add nanosecond stat resolution, and st_gen,
|
---|
1610 | st_birthtime for FreeBSD.
|
---|
1611 |
|
---|
1612 | - Patch #1231069: The fcntl.ioctl function now uses the 'I' code for
|
---|
1613 | the request code argument, which results in more C-like behaviour
|
---|
1614 | for large or negative values.
|
---|
1615 |
|
---|
1616 | - Bug #1234979: For the argument of thread.Lock.acquire, the Windows
|
---|
1617 | implementation treated all integer values except 1 as false.
|
---|
1618 |
|
---|
1619 | - Bug #1194181: bz2.BZ2File didn't handle mode 'U' correctly.
|
---|
1620 |
|
---|
1621 | - Patch #1212117: os.stat().st_flags is now accessible as a attribute
|
---|
1622 | if available on the platform.
|
---|
1623 |
|
---|
1624 | - Patch #1103951: Expose O_SHLOCK and O_EXLOCK in the posix module if
|
---|
1625 | available on the platform.
|
---|
1626 |
|
---|
1627 | - Bug #1166660: The readline module could segfault if hook functions
|
---|
1628 | were set in a different thread than that which called readline.
|
---|
1629 |
|
---|
1630 | - collections.deque objects now support a remove() method.
|
---|
1631 |
|
---|
1632 | - operator.itemgetter() and operator.attrgetter() now support retrieving
|
---|
1633 | multiple fields. This provides direct support for sorting on multiple
|
---|
1634 | keys (primary, secondary, etc).
|
---|
1635 |
|
---|
1636 | - os.access now supports Unicode path names on non-Win32 systems.
|
---|
1637 |
|
---|
1638 | - Patches #925152, #1118602: Avoid reading after the end of the buffer
|
---|
1639 | in pyexpat.GetInputContext.
|
---|
1640 |
|
---|
1641 | - Patches #749830, #1144555: allow UNIX mmap size to default to current
|
---|
1642 | file size.
|
---|
1643 |
|
---|
1644 | - Added functional.partial(). See PEP309.
|
---|
1645 |
|
---|
1646 | - Patch #1093585: raise a ValueError for negative history items in readline.
|
---|
1647 | {remove_history,replace_history}
|
---|
1648 |
|
---|
1649 | - The spwd module has been added, allowing access to the shadow password
|
---|
1650 | database.
|
---|
1651 |
|
---|
1652 | - stat_float_times is now True.
|
---|
1653 |
|
---|
1654 | - array.array objects are now picklable.
|
---|
1655 |
|
---|
1656 | - the cPickle module no longer accepts the deprecated None option in the
|
---|
1657 | args tuple returned by __reduce__().
|
---|
1658 |
|
---|
1659 | - itertools.islice() now accepts None for the start and step arguments.
|
---|
1660 | This allows islice() to work more readily with slices:
|
---|
1661 | islice(s.start, s.stop, s.step)
|
---|
1662 |
|
---|
1663 | - datetime.datetime() now has a strptime class method which can be used to
|
---|
1664 | create datetime object using a string and format.
|
---|
1665 |
|
---|
1666 | - Patch #1117961: Replace the MD5 implementation from RSA Data Security Inc
|
---|
1667 | with the implementation from http://sourceforge.net/projects/libmd5-rfc/.
|
---|
1668 |
|
---|
1669 | Library
|
---|
1670 | -------
|
---|
1671 |
|
---|
1672 | - Patch #1388073: Numerous __-prefixed attributes of unittest.TestCase have
|
---|
1673 | been renamed to have only a single underscore prefix. This was done to
|
---|
1674 | make subclassing easier.
|
---|
1675 |
|
---|
1676 | - PEP 338: new module runpy defines a run_module function to support
|
---|
1677 | executing modules which provide access to source code or a code object
|
---|
1678 | via the PEP 302 import mechanisms.
|
---|
1679 |
|
---|
1680 | - The email module's parsedate_tz function now sets the daylight savings
|
---|
1681 | flag to -1 (unknown) since it can't tell from the date whether it should
|
---|
1682 | be set.
|
---|
1683 |
|
---|
1684 | - Patch #624325: urlparse.urlparse() and urlparse.urlsplit() results
|
---|
1685 | now sport attributes that provide access to the parts of the result.
|
---|
1686 |
|
---|
1687 | - Patch #1462498: sgmllib now handles entity and character references
|
---|
1688 | in attribute values.
|
---|
1689 |
|
---|
1690 | - Added the sqlite3 package. This is based on pysqlite2.1.3, and provides
|
---|
1691 | a DB-API interface in the standard library. You'll need sqlite 3.0.8 or
|
---|
1692 | later to build this - if you have an earlier version, the C extension
|
---|
1693 | module will not be built.
|
---|
1694 |
|
---|
1695 | - Bug #1460340: ``random.sample(dict)`` failed in various ways. Dicts
|
---|
1696 | aren't officially supported here, and trying to use them will probably
|
---|
1697 | raise an exception some day. But dicts have been allowed, and "mostly
|
---|
1698 | worked", so support for them won't go away without warning.
|
---|
1699 |
|
---|
1700 | - Bug #1445068: getpass.getpass() can now be given an explicit stream
|
---|
1701 | argument to specify where to write the prompt.
|
---|
1702 |
|
---|
1703 | - Patch #1462313, bug #1443328: the pickle modules now can handle classes
|
---|
1704 | that have __private names in their __slots__.
|
---|
1705 |
|
---|
1706 | - Bug #1250170: mimetools now handles socket.gethostname() failures gracefully.
|
---|
1707 |
|
---|
1708 | - patch #1457316: "setup.py upload" now supports --identity to select the
|
---|
1709 | key to be used for signing the uploaded code.
|
---|
1710 |
|
---|
1711 | - Queue.Queue objects now support .task_done() and .join() methods
|
---|
1712 | to make it easier to monitor when daemon threads have completed
|
---|
1713 | processing all enqueued tasks. Patch #1455676.
|
---|
1714 |
|
---|
1715 | - popen2.Popen objects now preserve the command in a .cmd attribute.
|
---|
1716 |
|
---|
1717 | - Added the ctypes ffi package.
|
---|
1718 |
|
---|
1719 | - email 4.0 package now integrated. This is largely the same as the email 3.0
|
---|
1720 | package that was included in Python 2.3, except that PEP 8 module names are
|
---|
1721 | now used (e.g. mail.message instead of email.Message). The MIME classes
|
---|
1722 | have been moved to a subpackage (e.g. email.mime.text instead of
|
---|
1723 | email.MIMEText). The old names are still supported for now. Several
|
---|
1724 | deprecated Message methods have been removed and lots of bugs have been
|
---|
1725 | fixed. More details can be found in the email package documentation.
|
---|
1726 |
|
---|
1727 | - Patches #1436130/#1443155: codecs.lookup() now returns a CodecInfo object
|
---|
1728 | (a subclass of tuple) that provides incremental decoders and encoders
|
---|
1729 | (a way to use stateful codecs without the stream API). Python functions
|
---|
1730 | codecs.getincrementaldecoder() and codecs.getincrementalencoder() as well
|
---|
1731 | as C functions PyCodec_IncrementalEncoder() and PyCodec_IncrementalDecoder()
|
---|
1732 | have been added.
|
---|
1733 |
|
---|
1734 | - Patch #1359365: Calling next() on a closed StringIO.String object raises
|
---|
1735 | a ValueError instead of a StopIteration now (like file and cString.String do).
|
---|
1736 | cStringIO.StringIO.isatty() will raise a ValueError now if close() has been
|
---|
1737 | called before (like file and StringIO.StringIO do).
|
---|
1738 |
|
---|
1739 | - A regrtest option -w was added to re-run failed tests in verbose mode.
|
---|
1740 |
|
---|
1741 | - Patch #1446372: quit and exit can now be called from the interactive
|
---|
1742 | interpreter to exit.
|
---|
1743 |
|
---|
1744 | - The function get_count() has been added to the gc module, and gc.collect()
|
---|
1745 | grew an optional 'generation' argument.
|
---|
1746 |
|
---|
1747 | - A library msilib to generate Windows Installer files, and a distutils
|
---|
1748 | command bdist_msi have been added.
|
---|
1749 |
|
---|
1750 | - PEP 343: new module contextlib.py defines decorator @contextmanager
|
---|
1751 | and helpful context managers nested() and closing().
|
---|
1752 |
|
---|
1753 | - The compiler package now supports future imports after the module docstring.
|
---|
1754 |
|
---|
1755 | - Bug #1413790: zipfile now sanitizes absolute archive names that are
|
---|
1756 | not allowed by the specs.
|
---|
1757 |
|
---|
1758 | - Patch #1215184: FileInput now can be given an opening hook which can
|
---|
1759 | be used to control how files are opened.
|
---|
1760 |
|
---|
1761 | - Patch #1212287: fileinput.input() now has a mode parameter for
|
---|
1762 | specifying the file mode input files should be opened with.
|
---|
1763 |
|
---|
1764 | - Patch #1215184: fileinput now has a fileno() function for getting the
|
---|
1765 | current file number.
|
---|
1766 |
|
---|
1767 | - Patch #1349274: gettext.install() now optionally installs additional
|
---|
1768 | translation functions other than _() in the builtin namespace.
|
---|
1769 |
|
---|
1770 | - Patch #1337756: fileinput now accepts Unicode filenames.
|
---|
1771 |
|
---|
1772 | - Patch #1373643: The chunk module can now read chunks larger than
|
---|
1773 | two gigabytes.
|
---|
1774 |
|
---|
1775 | - Patch #1417555: SimpleHTTPServer now returns Last-Modified headers.
|
---|
1776 |
|
---|
1777 | - Bug #1430298: It is now possible to send a mail with an empty
|
---|
1778 | return address using smtplib.
|
---|
1779 |
|
---|
1780 | - Bug #1432260: The names of lambda functions are now properly displayed
|
---|
1781 | in pydoc.
|
---|
1782 |
|
---|
1783 | - Patch #1412872: zipfile now sets the creator system to 3 (Unix)
|
---|
1784 | unless the system is Win32.
|
---|
1785 |
|
---|
1786 | - Patch #1349118: urllib now supports user:pass@ style proxy
|
---|
1787 | specifications, raises IOErrors when proxies for unsupported protocols
|
---|
1788 | are defined, and uses the https proxy on https redirections.
|
---|
1789 |
|
---|
1790 | - Bug #902075: urllib2 now supports 'host:port' style proxy specifications.
|
---|
1791 |
|
---|
1792 | - Bug #1407902: Add support for sftp:// URIs to urlparse.
|
---|
1793 |
|
---|
1794 | - Bug #1371247: Update Windows locale identifiers in locale.py.
|
---|
1795 |
|
---|
1796 | - Bug #1394565: SimpleHTTPServer now doesn't choke on query parameters
|
---|
1797 | any more.
|
---|
1798 |
|
---|
1799 | - Bug #1403410: The warnings module now doesn't get confused
|
---|
1800 | when it can't find out the module name it generates a warning for.
|
---|
1801 |
|
---|
1802 | - Patch #1177307: Added a new codec utf_8_sig for UTF-8 with a BOM signature.
|
---|
1803 |
|
---|
1804 | - Patch #1157027: cookielib mishandles RFC 2109 cookies in Netscape mode
|
---|
1805 |
|
---|
1806 | - Patch #1117398: cookielib.LWPCookieJar and .MozillaCookieJar now raise
|
---|
1807 | LoadError as documented, instead of IOError. For compatibility,
|
---|
1808 | LoadError subclasses IOError.
|
---|
1809 |
|
---|
1810 | - Added the hashlib module. It provides secure hash functions for MD5 and
|
---|
1811 | SHA1, 224, 256, 384, and 512. Note that recent developments make the
|
---|
1812 | historic MD5 and SHA1 unsuitable for cryptographic-strength applications.
|
---|
1813 | In <http://mail.python.org/pipermail/python-dev/2005-December/058850.html>
|
---|
1814 | Ronald L. Rivest offered this advice for Python:
|
---|
1815 |
|
---|
1816 | "The consensus of researchers in this area (at least as
|
---|
1817 | expressed at the NIST Hash Function Workshop 10/31/05),
|
---|
1818 | is that SHA-256 is a good choice for the time being, but
|
---|
1819 | that research should continue, and other alternatives may
|
---|
1820 | arise from this research. The larger SHA's also seem OK."
|
---|
1821 |
|
---|
1822 | - Added a subset of Fredrik Lundh's ElementTree package. Available
|
---|
1823 | modules are xml.etree.ElementTree, xml.etree.ElementPath, and
|
---|
1824 | xml.etree.ElementInclude, from ElementTree 1.2.6.
|
---|
1825 |
|
---|
1826 | - Patch #1162825: Support non-ASCII characters in IDLE window titles.
|
---|
1827 |
|
---|
1828 | - Bug #1365984: urllib now opens "data:" URLs again.
|
---|
1829 |
|
---|
1830 | - Patch #1314396: prevent deadlock for threading.Thread.join() when an exception
|
---|
1831 | is raised within the method itself on a previous call (e.g., passing in an
|
---|
1832 | illegal argument)
|
---|
1833 |
|
---|
1834 | - Bug #1340337: change time.strptime() to always return ValueError when there
|
---|
1835 | is an error in the format string.
|
---|
1836 |
|
---|
1837 | - Patch #754022: Greatly enhanced webbrowser.py (by Oleg Broytmann).
|
---|
1838 |
|
---|
1839 | - Bug #729103: pydoc.py: Fix docother() method to accept additional
|
---|
1840 | "parent" argument.
|
---|
1841 |
|
---|
1842 | - Patch #1300515: xdrlib.py: Fix pack_fstring() to really use null bytes
|
---|
1843 | for padding.
|
---|
1844 |
|
---|
1845 | - Bug #1296004: httplib.py: Limit maximal amount of data read from the
|
---|
1846 | socket to avoid a MemoryError on Windows.
|
---|
1847 |
|
---|
1848 | - Patch #1166948: locale.py: Prefer LC_ALL, LC_CTYPE and LANG over LANGUAGE
|
---|
1849 | to get the correct encoding.
|
---|
1850 |
|
---|
1851 | - Patch #1166938: locale.py: Parse LANGUAGE as a colon separated list of
|
---|
1852 | languages.
|
---|
1853 |
|
---|
1854 | - Patch #1268314: Cache lines in StreamReader.readlines for performance.
|
---|
1855 |
|
---|
1856 | - Bug #1290505: Fix clearing the regex cache for time.strptime().
|
---|
1857 |
|
---|
1858 | - Bug #1167128: Fix size of a symlink in a tarfile to be 0.
|
---|
1859 |
|
---|
1860 | - Patch #810023: Fix off-by-one bug in urllib.urlretrieve reporthook
|
---|
1861 | functionality.
|
---|
1862 |
|
---|
1863 | - Bug #1163178: Make IDNA return an empty string when the input is empty.
|
---|
1864 |
|
---|
1865 | - Patch #848017: Make Cookie more RFC-compliant. Use CRLF as default output
|
---|
1866 | separator and do not output trailing semicolon.
|
---|
1867 |
|
---|
1868 | - Patch #1062060: urllib.urlretrieve() now raises a new exception, named
|
---|
1869 | ContentTooShortException, when the actually downloaded size does not
|
---|
1870 | match the Content-Length header.
|
---|
1871 |
|
---|
1872 | - Bug #1121494: distutils.dir_utils.mkpath now accepts Unicode strings.
|
---|
1873 |
|
---|
1874 | - Bug #1178484: Return complete lines from codec stream readers
|
---|
1875 | even if there is an exception in later lines, resulting in
|
---|
1876 | correct line numbers for decoding errors in source code.
|
---|
1877 |
|
---|
1878 | - Bug #1192315: Disallow negative arguments to clear() in pdb.
|
---|
1879 |
|
---|
1880 | - Patch #827386: Support absolute source paths in msvccompiler.py.
|
---|
1881 |
|
---|
1882 | - Patch #1105730: Apply the new implementation of commonprefix in posixpath
|
---|
1883 | to ntpath, macpath, os2emxpath and riscospath.
|
---|
1884 |
|
---|
1885 | - Fix a problem in Tkinter introduced by SF patch #869468: delete bogus
|
---|
1886 | __hasattr__ and __delattr__ methods on class Tk that were breaking
|
---|
1887 | Tkdnd.
|
---|
1888 |
|
---|
1889 | - Bug #1015140: disambiguated the term "article id" in nntplib docs and
|
---|
1890 | docstrings to either "article number" or "message id".
|
---|
1891 |
|
---|
1892 | - Bug #1238170: threading.Thread.__init__ no longer has "kwargs={}" as a
|
---|
1893 | parameter, but uses the usual "kwargs=None".
|
---|
1894 |
|
---|
1895 | - textwrap now processes text chunks at O(n) speed instead of O(n**2).
|
---|
1896 | Patch #1209527 (Contributed by Connelly).
|
---|
1897 |
|
---|
1898 | - urllib2 has now an attribute 'httpresponses' mapping from HTTP status code
|
---|
1899 | to W3C name (404 -> 'Not Found'). RFE #1216944.
|
---|
1900 |
|
---|
1901 | - Bug #1177468: Don't cache the /dev/urandom file descriptor for os.urandom,
|
---|
1902 | as this can cause problems with apps closing all file descriptors.
|
---|
1903 |
|
---|
1904 | - Bug #839151: Fix an attempt to access sys.argv in the warnings module;
|
---|
1905 | it can be missing in embedded interpreters
|
---|
1906 |
|
---|
1907 | - Bug #1155638: Fix a bug which affected HTTP 0.9 responses in httplib.
|
---|
1908 |
|
---|
1909 | - Bug #1100201: Cross-site scripting was possible on BaseHTTPServer via
|
---|
1910 | error messages.
|
---|
1911 |
|
---|
1912 | - Bug #1108948: Cookie.py produced invalid JavaScript code.
|
---|
1913 |
|
---|
1914 | - The tokenize module now detects and reports indentation errors.
|
---|
1915 | Bug #1224621.
|
---|
1916 |
|
---|
1917 | - The tokenize module has a new untokenize() function to support a full
|
---|
1918 | roundtrip from lexed tokens back to Python source code. In addition,
|
---|
1919 | the generate_tokens() function now accepts a callable argument that
|
---|
1920 | terminates by raising StopIteration.
|
---|
1921 |
|
---|
1922 | - Bug #1196315: fix weakref.WeakValueDictionary constructor.
|
---|
1923 |
|
---|
1924 | - Bug #1213894: os.path.realpath didn't resolve symlinks that were the first
|
---|
1925 | component of the path.
|
---|
1926 |
|
---|
1927 | - Patch #1120353: The xmlrpclib module provides better, more transparent,
|
---|
1928 | support for datetime.{datetime,date,time} objects. With use_datetime set
|
---|
1929 | to True, applications shouldn't have to fiddle with the DateTime wrapper
|
---|
1930 | class at all.
|
---|
1931 |
|
---|
1932 | - distutils.commands.upload was added to support uploading distribution
|
---|
1933 | files to PyPI.
|
---|
1934 |
|
---|
1935 | - distutils.commands.register now encodes the data as UTF-8 before posting
|
---|
1936 | them to PyPI.
|
---|
1937 |
|
---|
1938 | - decimal operator and comparison methods now return NotImplemented
|
---|
1939 | instead of raising a TypeError when interacting with other types. This
|
---|
1940 | allows other classes to implement __radd__ style methods and have them
|
---|
1941 | work as expected.
|
---|
1942 |
|
---|
1943 | - Bug #1163325: Decimal infinities failed to hash. Attempting to
|
---|
1944 | hash a NaN raised an InvalidOperation instead of a TypeError.
|
---|
1945 |
|
---|
1946 | - Patch #918101: Add tarfile open mode r|* for auto-detection of the
|
---|
1947 | stream compression; add, for symmetry reasons, r:* as a synonym of r.
|
---|
1948 |
|
---|
1949 | - Patch #1043890: Add extractall method to tarfile.
|
---|
1950 |
|
---|
1951 | - Patch #1075887: Don't require MSVC in distutils if there is nothing
|
---|
1952 | to build.
|
---|
1953 |
|
---|
1954 | - Patch #1103407: Properly deal with tarfile iterators when untarring
|
---|
1955 | symbolic links on Windows.
|
---|
1956 |
|
---|
1957 | - Patch #645894: Use getrusage for computing the time consumption in
|
---|
1958 | profile.py if available.
|
---|
1959 |
|
---|
1960 | - Patch #1046831: Use get_python_version where appropriate in sysconfig.py.
|
---|
1961 |
|
---|
1962 | - Patch #1117454: Remove code to special-case cookies without values
|
---|
1963 | in LWPCookieJar.
|
---|
1964 |
|
---|
1965 | - Patch #1117339: Add cookielib special name tests.
|
---|
1966 |
|
---|
1967 | - Patch #1112812: Make bsddb/__init__.py more friendly for modulefinder.
|
---|
1968 |
|
---|
1969 | - Patch #1110248: SYNC_FLUSH the zlib buffer for GZipFile.flush.
|
---|
1970 |
|
---|
1971 | - Patch #1107973: Allow to iterate over the lines of a tarfile.ExFileObject.
|
---|
1972 |
|
---|
1973 | - Patch #1104111: Alter setup.py --help and --help-commands.
|
---|
1974 |
|
---|
1975 | - Patch #1121234: Properly cleanup _exit and tkerror commands.
|
---|
1976 |
|
---|
1977 | - Patch #1049151: xdrlib now unpacks booleans as True or False.
|
---|
1978 |
|
---|
1979 | - Fixed bug in a NameError bug in cookielib. Patch #1116583.
|
---|
1980 |
|
---|
1981 | - Applied a security fix to SimpleXMLRPCserver (PSF-2005-001). This
|
---|
1982 | disables recursive traversal through instance attributes, which can
|
---|
1983 | be exploited in various ways.
|
---|
1984 |
|
---|
1985 | - Bug #1222790: in SimpleXMLRPCServer, set the reuse-address and close-on-exec
|
---|
1986 | flags on the HTTP listening socket.
|
---|
1987 |
|
---|
1988 | - Bug #792570: SimpleXMLRPCServer had problems if the request grew too large.
|
---|
1989 | Fixed by reading the HTTP body in chunks instead of one big socket.read().
|
---|
1990 |
|
---|
1991 | - Patches #893642, #1039083: add allow_none, encoding arguments to
|
---|
1992 | constructors of SimpleXMLRPCServer and CGIXMLRPCRequestHandler.
|
---|
1993 |
|
---|
1994 | - Bug #1110478: Revert os.environ.update to do putenv again.
|
---|
1995 |
|
---|
1996 | - Bug #1103844: fix distutils.install.dump_dirs() with negated options.
|
---|
1997 |
|
---|
1998 | - os.{SEEK_SET, SEEK_CUR, SEEK_END} have been added for convenience.
|
---|
1999 |
|
---|
2000 | - Enhancements to the csv module:
|
---|
2001 |
|
---|
2002 | + Dialects are now validated by the underlying C code, better
|
---|
2003 | reflecting its capabilities, and improving its compliance with
|
---|
2004 | PEP 305.
|
---|
2005 | + Dialect parameter parsing has been re-implemented to improve error
|
---|
2006 | reporting.
|
---|
2007 | + quotechar=None and quoting=QUOTE_NONE now work the way PEP 305
|
---|
2008 | dictates.
|
---|
2009 | + the parser now removes the escapechar prefix from escaped characters.
|
---|
2010 | + when quoting=QUOTE_NONNUMERIC, the writer now tests for numeric
|
---|
2011 | types, rather than any object that can be represented as a numeric.
|
---|
2012 | + when quoting=QUOTE_NONNUMERIC, the reader now casts unquoted fields
|
---|
2013 | to floats.
|
---|
2014 | + reader now allows \r characters to be quoted (previously it only allowed
|
---|
2015 | \n to be quoted).
|
---|
2016 | + writer doublequote handling improved.
|
---|
2017 | + Dialect classes passed to the module are no longer instantiated by
|
---|
2018 | the module before being parsed (the former validation scheme required
|
---|
2019 | this, but the mechanism was unreliable).
|
---|
2020 | + The dialect registry now contains instances of the internal
|
---|
2021 | C-coded dialect type, rather than references to python objects.
|
---|
2022 | + the internal c-coded dialect type is now immutable.
|
---|
2023 | + register_dialect now accepts the same keyword dialect specifications
|
---|
2024 | as the reader and writer, allowing the user to register dialects
|
---|
2025 | without first creating a dialect class.
|
---|
2026 | + a configurable limit to the size of parsed fields has been added -
|
---|
2027 | previously, an unmatched quote character could result in the entire
|
---|
2028 | file being read into the field buffer before an error was reported.
|
---|
2029 | + A new module method csv.field_size_limit() has been added that sets
|
---|
2030 | the parser field size limit (returning the former limit). The initial
|
---|
2031 | limit is 128kB.
|
---|
2032 | + A line_num attribute has been added to the reader object, which tracks
|
---|
2033 | the number of lines read from the source iterator. This is not
|
---|
2034 | the same as the number of records returned, as records can span
|
---|
2035 | multiple lines.
|
---|
2036 | + reader and writer objects were not being registered with the cyclic-GC.
|
---|
2037 | This has been fixed.
|
---|
2038 |
|
---|
2039 | - _DummyThread objects in the threading module now delete self.__block that is
|
---|
2040 | inherited from _Thread since it uses up a lock allocated by 'thread'. The
|
---|
2041 | lock primitives tend to be limited in number and thus should not be wasted on
|
---|
2042 | a _DummyThread object. Fixes bug #1089632.
|
---|
2043 |
|
---|
2044 | - The imghdr module now detects Exif files.
|
---|
2045 |
|
---|
2046 | - StringIO.truncate() now correctly adjusts the size attribute.
|
---|
2047 | (Bug #951915).
|
---|
2048 |
|
---|
2049 | - locale.py now uses an updated locale alias table (built using
|
---|
2050 | Tools/i18n/makelocalealias.py, a tool to parse the X11 locale
|
---|
2051 | alias file); the encoding lookup was enhanced to use Python's
|
---|
2052 | encoding alias table.
|
---|
2053 |
|
---|
2054 | - moved deprecated modules to Lib/lib-old: whrandom, tzparse, statcache.
|
---|
2055 |
|
---|
2056 | - the pickle module no longer accepts the deprecated None option in the
|
---|
2057 | args tuple returned by __reduce__().
|
---|
2058 |
|
---|
2059 | - optparse now optionally imports gettext. This allows its use in setup.py.
|
---|
2060 |
|
---|
2061 | - the pickle module no longer uses the deprecated bin parameter.
|
---|
2062 |
|
---|
2063 | - the shelve module no longer uses the deprecated binary parameter.
|
---|
2064 |
|
---|
2065 | - the pstats module no longer uses the deprecated ignore() method.
|
---|
2066 |
|
---|
2067 | - the filecmp module no longer uses the deprecated use_statcache argument.
|
---|
2068 |
|
---|
2069 | - unittest.TestCase.run() and unittest.TestSuite.run() can now be successfully
|
---|
2070 | extended or overridden by subclasses. Formerly, the subclassed method would
|
---|
2071 | be ignored by the rest of the module. (Bug #1078905).
|
---|
2072 |
|
---|
2073 | - heapq.nsmallest() and heapq.nlargest() now support key= arguments with
|
---|
2074 | the same meaning as in list.sort().
|
---|
2075 |
|
---|
2076 | - Bug #1076985: ``codecs.StreamReader.readline()`` now calls ``read()`` only
|
---|
2077 | once when a size argument is given. This prevents a buffer overflow in the
|
---|
2078 | tokenizer with very long source lines.
|
---|
2079 |
|
---|
2080 | - Bug #1083110: ``zlib.decompress.flush()`` would segfault if called
|
---|
2081 | immediately after creating the object, without any intervening
|
---|
2082 | ``.decompress()`` calls.
|
---|
2083 |
|
---|
2084 | - The reconvert.quote function can now emit triple-quoted strings. The
|
---|
2085 | reconvert module now has some simple documentation.
|
---|
2086 |
|
---|
2087 | - ``UserString.MutableString`` now supports negative indices in
|
---|
2088 | ``__setitem__`` and ``__delitem__``
|
---|
2089 |
|
---|
2090 | - Bug #1149508: ``textwrap`` now handles hyphenated numbers (eg. "2004-03-05")
|
---|
2091 | correctly.
|
---|
2092 |
|
---|
2093 | - Partial fixes for SF bugs #1163244 and #1175396: If a chunk read by
|
---|
2094 | ``codecs.StreamReader.readline()`` has a trailing "\r", read one more
|
---|
2095 | character even if the user has passed a size parameter to get a proper
|
---|
2096 | line ending. Remove the special handling of a "\r\n" that has been split
|
---|
2097 | between two lines.
|
---|
2098 |
|
---|
2099 | - Bug #1251300: On UCS-4 builds the "unicode-internal" codec will now complain
|
---|
2100 | about illegal code points. The codec now supports PEP 293 style error
|
---|
2101 | handlers.
|
---|
2102 |
|
---|
2103 | - Bug #1235646: ``codecs.StreamRecoder.next()`` now reencodes the data it reads
|
---|
2104 | from the input stream, so that the output is a byte string in the correct
|
---|
2105 | encoding instead of a unicode string.
|
---|
2106 |
|
---|
2107 | - Bug #1202493: Fixing SRE parser to handle '{}' as perl does, rather than
|
---|
2108 | considering it exactly like a '*'.
|
---|
2109 |
|
---|
2110 | - Bug #1245379: Add "unicode-1-1-utf-7" as an alias for "utf-7" to
|
---|
2111 | ``encodings.aliases``.
|
---|
2112 |
|
---|
2113 | - ` uu.encode()`` and ``uu.decode()`` now support unicode filenames.
|
---|
2114 |
|
---|
2115 | - Patch #1413711: Certain patterns of differences were making difflib
|
---|
2116 | touch the recursion limit.
|
---|
2117 |
|
---|
2118 | - Bug #947906: An object oriented interface has been added to the calendar
|
---|
2119 | module. It's possible to generate HTML calendar now and the module can be
|
---|
2120 | called as a script (e.g. via ``python -mcalendar``). Localized month and
|
---|
2121 | weekday names can be ouput (even if an exotic encoding is used) using
|
---|
2122 | special classes that use unicode.
|
---|
2123 |
|
---|
2124 | Build
|
---|
2125 | -----
|
---|
2126 |
|
---|
2127 | - Fix test_float, test_long, and test_struct failures on Tru64 with gcc
|
---|
2128 | by using -mieee gcc option.
|
---|
2129 |
|
---|
2130 | - Patch #1432345: Make python compile on DragonFly.
|
---|
2131 |
|
---|
2132 | - Build support for Win64-AMD64 was added.
|
---|
2133 |
|
---|
2134 | - Patch #1428494: Prefer linking against ncursesw over ncurses library.
|
---|
2135 |
|
---|
2136 | - Patch #881820: look for openpty and forkpty also in libbsd.
|
---|
2137 |
|
---|
2138 | - The sources of zlib are now part of the Python distribution (zlib 1.2.3).
|
---|
2139 | The zlib module is now builtin on Windows.
|
---|
2140 |
|
---|
2141 | - Use -xcode=pic32 for CCSHARED on Solaris with SunPro.
|
---|
2142 |
|
---|
2143 | - Bug #1189330: configure did not correctly determine the necessary
|
---|
2144 | value of LINKCC if python was built with GCC 4.0.
|
---|
2145 |
|
---|
2146 | - Upgrade Windows build to zlib 1.2.3 which eliminates a potential security
|
---|
2147 | vulnerability in zlib 1.2.1 and 1.2.2.
|
---|
2148 |
|
---|
2149 | - EXTRA_CFLAGS has been introduced as an environment variable to hold compiler
|
---|
2150 | flags that change binary compatibility. Changes were also made to
|
---|
2151 | distutils.sysconfig to also use the environment variable when used during
|
---|
2152 | compilation of the interpreter and of C extensions through distutils.
|
---|
2153 |
|
---|
2154 | - SF patch 1171735: Darwin 8's headers are anal about POSIX compliance,
|
---|
2155 | and linking has changed (prebinding is now deprecated, and libcc_dynamic
|
---|
2156 | no longer exists). This configure patch makes things right.
|
---|
2157 |
|
---|
2158 | - Bug #1158607: Build with --disable-unicode again.
|
---|
2159 |
|
---|
2160 | - spwdmodule.c is built only if either HAVE_GETSPNAM or HAVE_HAVE_GETSPENT is
|
---|
2161 | defined. Discovered as a result of not being able to build on OS X.
|
---|
2162 |
|
---|
2163 | - setup.py now uses the directories specified in LDFLAGS using the -L option
|
---|
2164 | and in CPPFLAGS using the -I option for adding library and include
|
---|
2165 | directories, respectively, for compiling extension modules against. This has
|
---|
2166 | led to the core being compiled using the values in CPPFLAGS. It also removes
|
---|
2167 | the need for the special-casing of both DarwinPorts and Fink for darwin since
|
---|
2168 | the proper directories can be specified in LDFLAGS (``-L/sw/lib`` for Fink,
|
---|
2169 | ``-L/opt/local/lib`` for DarwinPorts) and CPPFLAGS (``-I/sw/include`` for
|
---|
2170 | Fink, ``-I/opt/local/include`` for DarwinPorts).
|
---|
2171 |
|
---|
2172 | - Test in configure.in that checks for tzset no longer dependent on tm->tm_zone
|
---|
2173 | to exist in the struct (not required by either ISO C nor the UNIX 2 spec).
|
---|
2174 | Tests for sanity in tzname when HAVE_TZNAME defined were also defined.
|
---|
2175 | Closes bug #1096244. Thanks Gregory Bond.
|
---|
2176 |
|
---|
2177 | C API
|
---|
2178 | -----
|
---|
2179 |
|
---|
2180 | - ``PyMem_{Del, DEL}`` and ``PyMem_{Free, FREE}`` no longer map to
|
---|
2181 | ``PyObject_{Free, FREE}``. They map to the system ``free()`` now. If memory
|
---|
2182 | is obtained via the ``PyObject_`` family, it must be released via the
|
---|
2183 | ``PyObject_`` family, and likewise for the ``PyMem_`` family. This has
|
---|
2184 | always been officially true, but when Python's small-object allocator was
|
---|
2185 | introduced, an attempt was made to cater to a few extension modules
|
---|
2186 | discovered at the time that obtained memory via ``PyObject_New`` but
|
---|
2187 | released it via ``PyMem_DEL``. It's years later, and if such code still
|
---|
2188 | exists it will fail now (probably with segfaults, but calling wrong
|
---|
2189 | low-level memory management functions can yield many symptoms).
|
---|
2190 |
|
---|
2191 | - Added a C API for set and frozenset objects.
|
---|
2192 |
|
---|
2193 | - Removed PyRange_New().
|
---|
2194 |
|
---|
2195 | - Patch #1313939: PyUnicode_DecodeCharmap() accepts a unicode string as the
|
---|
2196 | mapping argument now. This string is used as a mapping table. Byte values
|
---|
2197 | greater than the length of the string and 0xFFFE are treated as undefined
|
---|
2198 | mappings.
|
---|
2199 |
|
---|
2200 |
|
---|
2201 | Tests
|
---|
2202 | -----
|
---|
2203 |
|
---|
2204 | - In test_os, st_?time is now truncated before comparing it with ST_?TIME.
|
---|
2205 |
|
---|
2206 | - Patch #1276356: New resource "urlfetch" is implemented. This enables
|
---|
2207 | even impatient people to run tests that require remote files.
|
---|
2208 |
|
---|
2209 |
|
---|
2210 | Documentation
|
---|
2211 | -------------
|
---|
2212 |
|
---|
2213 | - Bug #1402224: Add warning to dl docs about crashes.
|
---|
2214 |
|
---|
2215 | - Bug #1396471: Document that Windows' ftell() can return invalid
|
---|
2216 | values for text files with UNIX-style line endings.
|
---|
2217 |
|
---|
2218 | - Bug #1274828: Document os.path.splitunc().
|
---|
2219 |
|
---|
2220 | - Bug #1190204: Clarify which directories are searched by site.py.
|
---|
2221 |
|
---|
2222 | - Bug #1193849: Clarify os.path.expanduser() documentation.
|
---|
2223 |
|
---|
2224 | - Bug #1243192: re.UNICODE and re.LOCALE affect \d, \D, \s and \S.
|
---|
2225 |
|
---|
2226 | - Bug #755617: Document the effects of os.chown() on Windows.
|
---|
2227 |
|
---|
2228 | - Patch #1180012: The documentation for modulefinder is now in the library reference.
|
---|
2229 |
|
---|
2230 | - Patch #1213031: Document that os.chown() accepts argument values of -1.
|
---|
2231 |
|
---|
2232 | - Bug #1190563: Document os.waitpid() return value with WNOHANG flag.
|
---|
2233 |
|
---|
2234 | - Bug #1175022: Correct the example code for property().
|
---|
2235 |
|
---|
2236 | - Document the IterableUserDict class in the UserDict module.
|
---|
2237 | Closes bug #1166582.
|
---|
2238 |
|
---|
2239 | - Remove all latent references for "Macintosh" that referred to semantics for
|
---|
2240 | Mac OS 9 and change to reflect the state for OS X.
|
---|
2241 | Closes patch #1095802. Thanks Jack Jansen.
|
---|
2242 |
|
---|
2243 | Mac
|
---|
2244 | ---
|
---|
2245 |
|
---|
2246 |
|
---|
2247 | New platforms
|
---|
2248 | -------------
|
---|
2249 |
|
---|
2250 | - FreeBSD 7 support is added.
|
---|
2251 |
|
---|
2252 |
|
---|
2253 | Tools/Demos
|
---|
2254 | -----------
|
---|
2255 |
|
---|
2256 | - Created Misc/Vim/vim_syntax.py to auto-generate a python.vim file in that
|
---|
2257 | directory for syntax highlighting in Vim. Vim directory was added and placed
|
---|
2258 | vimrc to it (was previous up a level).
|
---|
2259 |
|
---|
2260 | - Added two new files to Tools/scripts: pysource.py, which recursively
|
---|
2261 | finds Python source files, and findnocoding.py, which finds Python
|
---|
2262 | source files that need an encoding declaration.
|
---|
2263 | Patch #784089, credits to Oleg Broytmann.
|
---|
2264 |
|
---|
2265 | - Bug #1072853: pindent.py used an uninitialized variable.
|
---|
2266 |
|
---|
2267 | - Patch #1177597: Correct Complex.__init__.
|
---|
2268 |
|
---|
2269 | - Fixed a display glitch in Pynche, which could cause the right arrow to
|
---|
2270 | wiggle over by a pixel.
|
---|
2271 |
|
---|
2272 | ----
|
---|
2273 |
|
---|
2274 | **(For information about older versions, consult the HISTORY file.)**
|
---|