1 +++++++++++ 2 Python News 3 +++++++++++ 4 5 What's New in Python 2.7.13 6 =========================== 7 8 *Release date: 2016-12-17* 9 10 Core and Builtins 11 ----------------- 12 13 - Revert a37cc3d926ec (Issue #5322). 14 15 16 What's New in Python 2.7.13 release candidate 1? 17 ================================================ 18 19 *Release date: 2016-12-03* 20 21 Core and Builtins 22 ----------------- 23 24 - Issue #28847: dumbdbm no longer writes the index file in when it is not 25 changed and supports reading read-only files. 26 27 - Issue #11145: Fixed miscellaneous issues with C-style formatting of types 28 with custom __oct__ and __hex__. 29 30 - Issue #24469: Fixed memory leak caused by int subclasses without overridden 31 tp_free (e.g. C-inherited Cython classes). 32 33 - Issue #19398: Extra slash no longer added to sys.path components in case of 34 empty compile-time PYTHONPATH components. 35 36 - Issue #21720: Improve exception message when the type of fromlist is unicode. 37 fromlist parameter of __import__() only accepts str in Python 2 and this 38 will help to identify the problem especially when the unicode_literals 39 future import is used. 40 41 - Issue #26906: Resolving special methods of uninitialized type now causes 42 implicit initialization of the type instead of a fail. 43 44 - Issue #18287: PyType_Ready() now checks that tp_name is not NULL. 45 Original patch by Niklas Koep. 46 47 - Issue #24098: Fixed possible crash when AST is changed in process of 48 compiling it. 49 50 - Issue #28350: String constants with null character no longer interned. 51 52 - Issue #27942: String constants now interned recursively in tuples and frozensets. 53 54 - Issue #15578: Correctly incref the parent module while importing. 55 56 - Issue #26307: The profile-opt build now applies PGO to the built-in modules. 57 58 - Issue #26020: set literal evaluation order did not match documented behaviour. 59 60 - Issue #27870: A left shift of zero by a large integer no longer attempts 61 to allocate large amounts of memory. 62 63 - Issue #25604: Fix a minor bug in integer true division; this bug could 64 potentially have caused off-by-one-ulp results on platforms with 65 unreliable ldexp implementations. 66 67 - Issue #27473: Fixed possible integer overflow in str, unicode and bytearray 68 concatenations and repetitions. Based on patch by Xiang Zhang. 69 70 - Issue #27507: Add integer overflow check in bytearray.extend(). Patch by 71 Xiang Zhang. 72 73 - Issue #27581: Don't rely on wrapping for overflow check in 74 PySequence_Tuple(). Patch by Xiang Zhang. 75 76 - Issue #23908: os functions, open() and the io.FileIO constructor now reject 77 unicode paths with embedded null character on Windows instead of silently 78 truncating them. 79 80 - Issue #27514: Make having too many statically nested blocks a SyntaxError 81 instead of SystemError. 82 83 Library 84 ------- 85 86 - Issue #25659: In ctypes, prevent a crash calling the from_buffer() and 87 from_buffer_copy() methods on abstract classes like Array. 88 89 - Issue #28563: Fixed possible DoS and arbitrary code execution when handle 90 plural form selections in the gettext module. The expression parser now 91 supports exact syntax supported by GNU gettext. 92 93 - Issue #28387: Fixed possible crash in _io.TextIOWrapper deallocator when 94 the garbage collector is invoked in other thread. Based on patch by 95 Sebastian Cufre. 96 97 - Issue #28449: tarfile.open() with mode "r" or "r:" now tries to open a tar 98 file with compression before trying to open it without compression. Otherwise 99 it had 50% chance failed with ignore_zeros=True. 100 101 - Issue #25464: Fixed HList.header_exists() in Tix module by adding 102 a workaround to Tix library bug. 103 104 - Issue #28488: shutil.make_archive() no longer adds entry "./" to ZIP archive. 105 106 - Issue #28480: Fix error building _sqlite3 module when multithreading is 107 disabled. 108 109 - Issue #24452: Make webbrowser support Chrome on Mac OS X. 110 111 - Issue #26293: Fixed writing ZIP files that starts not from the start of the 112 file. Offsets in ZIP file now are relative to the start of the archive in 113 conforming to the specification. 114 115 - Fix possible integer overflows and crashes in the mmap module with unusual 116 usage patterns. 117 118 - Issue #27897: Fixed possible crash in sqlite3.Connection.create_collation() 119 if pass invalid string-like object as a name. Original patch by Xiang Zhang. 120 121 - Issue #1703178: Fix the ability to pass the --link-objects option to the 122 distutils build_ext command. 123 124 - Issue #28253: Fixed calendar functions for extreme months: 0001-01 125 and 9999-12. 126 127 Methods itermonthdays() and itermonthdays2() are reimplemented so 128 that they don't call itermonthdates() which can cause datetime.date 129 under/overflow. 130 131 - Issue #27963: Fixed possible null pointer dereference in 132 ctypes.set_conversion_mode(). Patch by Xiang Zhang. 133 134 - Issue #28284: Strengthen resistance of ``_json.encode_basestring_ascii()`` to 135 integer overflow. 136 137 - Issue #27611: Fixed support of default root window in the Tix module. 138 139 - Issue #24363: When parsing HTTP header fields, if an invalid line is 140 encountered, skip it and continue parsing. Previously, no more header 141 fields were parsed, which could lead to fields for HTTP framing like 142 Content-Length and Transfer-Encoding being overlooked. 143 144 - Issue #27599: Fixed buffer overrun in binascii.b2a_qp() and binascii.a2b_qp(). 145 146 - Issue #25969: Update the lib2to3 grammar to handle the unpacking 147 generalizations added in 3.5. 148 149 - Issue #24594: Validates persist parameter when opening MSI database 150 151 - Issue #27570: Avoid zero-length memcpy() etc calls with null source 152 pointers in the "ctypes" and "array" modules. 153 154 - Issue #22450: urllib now includes an "Accept: */*" header among the 155 default headers. This makes the results of REST API requests more 156 consistent and predictable especially when proxy servers are involved. 157 158 - lib2to3.pgen3.driver.load_grammar() now creates a stable cache file 159 between runs given the same Grammar.txt input regardless of the hash 160 randomization setting. 161 162 - Issue #27691: Fix ssl module's parsing of GEN_RID subject alternative name 163 fields in X.509 certs. 164 165 - Issue #27850: Remove 3DES from ssl module's default cipher list to counter 166 measure sweet32 attack (CVE-2016-2183). 167 168 - Issue #27766: Add ChaCha20 Poly1305 to ssl module's default ciper list. 169 (Required OpenSSL 1.1.0 or LibreSSL). 170 171 - Issue #26470: Port ssl and hashlib module to OpenSSL 1.1.0. 172 173 - Issue #27944: Fix some memory-corruption bugs in the log reading code of the 174 _hotshot module. 175 176 - Issue #27934: Use ``float.__repr__`` instead of plain ``repr`` when JSON- 177 encoding an instance of a float subclass. Thanks Eddie James. 178 179 - Issue #27861: Fixed a crash in sqlite3.Connection.cursor() when a factory 180 creates not a cursor. Patch by Xiang Zhang. 181 182 - Issue #19884: Avoid spurious output on OS X with Gnu Readline. 183 184 - Issue #10513: Fix a regression in Connection.commit(). Statements should 185 not be reset after a commit. 186 187 - Issue #2466: posixpath.ismount now correctly recognizes mount points which 188 the user does not have permission to access. 189 190 - Issue #27783: Fix possible usage of uninitialized memory in operator.methodcaller. 191 192 - Issue #27774: Fix possible Py_DECREF on unowned object in _sre. 193 194 - Issue #27760: Fix possible integer overflow in binascii.b2a_qp. 195 196 - In the curses module, raise an error if window.getstr() or window.instr() is 197 passed a negative value. 198 199 - Issue #27758: Fix possible integer overflow in the _csv module for large record 200 lengths. 201 202 - Issue #23369: Fixed possible integer overflow in 203 _json.encode_basestring_ascii. 204 205 - Issue #27568: Prevent HTTPoxy attack (CVE-2016-1000110). Ignore the 206 HTTP_PROXY variable when REQUEST_METHOD environment is set, which indicates 207 that the script is in CGI mode. 208 209 - Issue #27130: In the "zlib" module, fix handling of large buffers 210 (typically 2 or 4 GiB). Previously, inputs were limited to 2 GiB, and 211 compression and decompression operations did not properly handle results of 212 2 or 4 GiB. 213 214 - Issue #23804: Fix SSL zero-length recv() calls to not block and not raise 215 an error about unclean EOF. 216 217 - Issue #27466: Change time format returned by http.cookie.time2netscape, 218 confirming the netscape cookie format and making it consistent with 219 documentation. 220 221 - Issue #22115: Fixed tracing Tkinter variables: trace_vdelete() with wrong 222 mode no longer break tracing, trace_vinfo() now always returns a list of 223 pairs of strings. 224 225 - Issue #27079: Fixed curses.ascii functions isblank(), iscntrl() and ispunct(). 226 227 - Issue #22636: Avoid shell injection problems with 228 ctypes.util.find_library(). 229 230 - Issue #27330: Fixed possible leaks in the ctypes module. 231 232 - Issue #27238: Got rid of bare excepts in the turtle module. Original patch 233 by Jelle Zijlstra. 234 235 - Issue #26386: Fixed ttk.TreeView selection operations with item id's 236 containing spaces. 237 238 - Issue #25455: Fixed a crash in repr of cElementTree.Element with recursive tag. 239 240 - Issue #21201: Improves readability of multiprocessing error message. Thanks 241 to Wojciech Walczak for patch. 242 243 IDLE 244 ---- 245 246 - Issue #27854: Make Help => IDLE Help work again on Windows. 247 Include idlelib/help.html in 2.7 Windows installer. 248 249 - Issue #25507: Add back import needed for 2.x encoding warning box. 250 Add pointer to 'Encoding declaration' in Language Reference. 251 252 - Issue #15308: Add 'interrupt execution' (^C) to Shell menu. 253 Patch by Roger Serwy, updated by Bayard Randel. 254 255 - Issue #27922: Stop IDLE tests from 'flashing' gui widgets on the screen. 256 257 - Issue #17642: add larger font sizes for classroom projection. 258 259 - Add version to title of IDLE help window. 260 261 - Issue #25564: In section on IDLE -- console differences, mention that 262 using exec means that __builtins__ is defined for each statement. 263 264 - Issue #27714: text_textview and test_autocomplete now pass when re-run 265 in the same process. This occurs when test_idle fails when run with the 266 -w option but without -jn. Fix warning from test_config. 267 268 - Issue #27452: add line counter and crc to IDLE configHandler test dump. 269 270 - Issue #27365: Allow non-ascii chars in IDLE NEWS.txt, for contributor names. 271 272 - Issue #27245: IDLE: Cleanly delete custom themes and key bindings. 273 Previously, when IDLE was started from a console or by import, a cascade 274 of warnings was emitted. Patch by Serhiy Storchaka. 275 276 Documentation 277 ------------- 278 279 - Issue #28513: Documented command-line interface of zipfile. 280 281 - Issue #16484: Change the default PYTHONDOCS URL to "https:", and fix the 282 resulting links to use lowercase. Patch by Sean Rodman, test by Kaushik 283 Nadikuditi. 284 285 Tests 286 ----- 287 288 - Issue #28666: Now test.test_support.rmtree is able to remove unwritable or 289 unreadable directories. 290 291 - Issue #23839: Various caches now are cleared before running every test file. 292 293 - Issue #27369: In test_pyexpat, avoid testing an error message detail that 294 changed in Expat 2.2.0. 295 296 Build 297 ----- 298 299 - Issue #10656: Fix out-of-tree building on AIX. Patch by Tristan Carel and 300 Michael Haubenwallner. 301 302 - Issue #26359: Rename --with-optimiations to --enable-optimizations. 303 304 - Issue #28248: Update Windows build and OS X installers to use OpenSSL 1.0.2j. 305 306 - Issue #28258: Fixed build with Estonian locale (distclean target in 307 Makefile). Patch by Arfrever Frehtes Taifersar Arahesis. 308 309 - Issue #26661: setup.py now detects system libffi with multiarch wrapper. 310 311 - Issue #15819: The Include directory in the build tree is already searched; 312 drop unused code trying to add it again. 313 314 - Issue #27566: Fix clean target in freeze makefile (patch by Lisa Roach) 315 316 - Issue #27983: Cause lack of llvm-profdata tool when using clang as 317 required for PGO linking to be a configure time error rather than 318 make time when --with-optimizations is enabled. Also improve our 319 ability to find the llvm-profdata tool on MacOS and some Linuxes. 320 321 - Issue #26359: Add the --with-optimizations configure flag. 322 323 - Issue #10910: Avoid C++ compilation errors on FreeBSD and OS X. 324 Also update FreedBSD version checks for the original ctype UTF-8 workaround. 325 326 - Issue #27806: Fix 32-bit builds on macOS Sierra 10.12 broken by removal of 327 deprecated QuickTime/QuickTime.h header file. Patch by Aleks Bunin. 328 329 - Issue #28676: Prevent missing 'getentropy' declaration warning on macOS. 330 Initial patch by Gareth Rees. 331 332 Tools/Demos 333 ----------- 334 335 - Issue #27952: Get Tools/scripts/fixcid.py working with the current "re" 336 module, avoid invalid Python backslash escapes, and fix a bug parsing 337 escaped C quote signs. 338 339 Windows 340 ------- 341 342 - Issue #27932: Prevent memory leak in win32_ver(). 343 344 - Issue #27888: Prevent Windows installer from displaying console windows and 345 failing when pip cannot be installed/uninstalled. 346 347 Mac OS X 348 -------- 349 350 - Issue #28440: No longer add /Library/Python/site-packages, the Apple-supplied 351 system Python site-packages directory, to sys.path for macOS framework builds. 352 The coupling between the two Python instances often caused confusion and, as 353 of macOS 10.12, changes to the site-packages layout can cause pip component 354 installations to fail. This change reverts the effects introduced in 2.7.0 355 by Issue #4865. If you are using a package with both the Apple system Python 356 2.7 and a user-installed Python 2.7, you will need to ensure that copies of 357 the package are installed with both Python instances. 358 359 360 What's New in Python 2.7.12? 361 ============================ 362 363 *Release date: 2016-06-25* 364 365 Build 366 ----- 367 368 - Issue #27641: The configure script now inserts comments into the makefile 369 to prevent the pgen executable from being cross-compiled. 370 371 - Issue #26930: Update Windows builds to use OpenSSL 1.0.2h. 372 373 IDLE 374 ---- 375 376 - Issue #27365: Fix about dialog. 377 378 379 What's New in Python 2.7.12 release candidate 1? 380 ================================================ 381 382 *Release date: 2016-06-12* 383 384 Core and Builtins 385 ----------------- 386 387 - Issue #20041: Fixed TypeError when frame.f_trace is set to None. 388 Patch by Xavier de Gaye. 389 390 - Issue #25702: A --with-lto configure option has been added that will 391 enable link time optimizations at build time during a make profile-opt. 392 Some compilers and toolchains are known to not produce stable code when 393 using LTO, be sure to test things thoroughly before relying on it. 394 It can provide a few % speed up over profile-opt alone. 395 396 - Issue #26168: Fixed possible refleaks in failing Py_BuildValue() with the "N" 397 format unit. 398 399 - Issue #27039: Fixed bytearray.remove() for values greater than 127. Patch by 400 Joe Jevnik. 401 402 - Issue #4806: Avoid masking the original TypeError exception when using star 403 (*) unpacking and the exception was raised from a generator. Based on 404 patch by Hagen Frstenau. 405 406 - Issue #26659: Make the builtin slice type support cycle collection. 407 408 - Issue #26718: super.__init__ no longer leaks memory if called multiple times. 409 NOTE: A direct call of super.__init__ is not endorsed! 410 411 - Issue #13410: Fixed a bug in PyUnicode_Format where it failed to properly 412 ignore errors from a __int__() method. 413 414 - Issue #26494: Fixed crash on iterating exhausting iterators. 415 Affected classes are generic sequence iterators, iterators of bytearray, 416 list, tuple, set, frozenset, dict, OrderedDict and corresponding views. 417 418 - Issue #26581: If coding cookie is specified multiple times on a line in 419 Python source code file, only the first one is taken to account. 420 421 - Issue #22836: Ensure exception reports from PyErr_Display() and 422 PyErr_WriteUnraisable() are sensible even when formatting them produces 423 secondary errors. This affects the reports produced by 424 sys.__excepthook__() and when __del__() raises an exception. 425 426 - Issue #22847: Improve method cache efficiency. 427 428 - Issue #25843: When compiling code, don't merge constants if they are equal 429 but have a different types. For example, ``f1, f2 = lambda: 1, lambda: 1.0`` 430 is now correctly compiled to two different functions: ``f1()`` returns ``1`` 431 (``int``) and ``f2()`` returns ``1.0`` (``int``), even if ``1`` and ``1.0`` 432 are equal. 433 434 - Issue #22995: [UPDATE] Remove the one of the pickleability tests in 435 _PyObject_GetState() due to regressions observed in Cython-based projects. 436 437 - Issue #25961: Disallowed null characters in the type name. 438 439 - Issue #22995: Instances of extension types with a state that aren't 440 subclasses of list or dict and haven't implemented any pickle-related 441 methods (__reduce__, __reduce_ex__, __getnewargs__, __getnewargs_ex__, 442 or __getstate__), can no longer be pickled. Including memoryview. 443 444 - Issue #20440: Massive replacing unsafe attribute setting code with special 445 macro Py_SETREF. 446 447 - Issue #25421: __sizeof__ methods of builtin types now use dynamic basic size. 448 This allows sys.getsize() to work correctly with their subclasses with 449 __slots__ defined. 450 451 - Issue #19543: Added Py3k warning for decoding unicode. 452 453 - Issue #24097: Fixed crash in object.__reduce__() if slot name is freed inside 454 __getattr__. 455 456 - Issue #24731: Fixed crash on converting objects with special methods 457 __str__, __trunc__, and __float__ returning instances of subclasses of 458 str, long, and float to subclasses of str, long, and float correspondingly. 459 460 - Issue #26478: Fix semantic bugs when using binary operators with dictionary 461 views and tuples. 462 463 - Issue #26171: Fix possible integer overflow and heap corruption in 464 zipimporter.get_data(). 465 466 Library 467 ------- 468 469 - Issue #26556: Update expat to 2.1.1, fixes CVE-2015-1283. 470 471 - Fix TLS stripping vulnerability in smptlib, CVE-2016-0772. Reported by Team 472 Oststrom 473 474 - Issue #7356: ctypes.util: Make parsing of ldconfig output independent of the 475 locale. 476 477 - Issue #25738: Stop BaseHTTPServer.BaseHTTPRequestHandler.send_error() from 478 sending a message body for 205 Reset Content. Also, don't send the 479 Content-Type header field in responses that don't have a body. Based on 480 patch by Susumu Koshiba. 481 482 - Issue #21313: Fix the "platform" module to tolerate when sys.version 483 contains truncated build information. 484 485 - Issue #27211: Fix possible memory corruption in io.IOBase.readline(). 486 487 - Issue #27114: Fix SSLContext._load_windows_store_certs fails with 488 PermissionError 489 490 - Issue #14132: Fix urllib.request redirect handling when the target only has 491 a query string. Fix by Jn Janech. 492 493 - Removed the requirements for the ctypes and modulefinder modules to be 494 compatible with earlier Python versions. 495 496 - Issue #22274: In the subprocess module, allow stderr to be redirected to 497 stdout even when stdout is not redirected. Patch by Akira Li. 498 499 - Issue #12045: Avoid duplicate execution of command in ctypes.util._get_soname(). 500 Patch by Sijin Joseph. 501 502 - Issue #26960: Backported #16270 from Python 3 to Python 2, to prevent urllib 503 from hanging when retrieving certain FTP files. 504 505 - Issue #25745: Fixed leaking a userptr in curses panel destructor. 506 507 - Issue #17765: weakref.ref() no longer silently ignores keyword arguments. 508 Patch by Georg Brandl. 509 510 - Issue #26873: xmlrpclib now raises ResponseError on unsupported type tags 511 instead of silently return incorrect result. 512 513 - Issue #24114: Fix an uninitialized variable in `ctypes.util`. 514 515 The bug only occurs on SunOS when the ctypes implementation searches 516 for the `crle` program. Patch by Xiang Zhang. Tested on SunOS by 517 Kees Bos. 518 519 - Issue #26864: In urllib, change the proxy bypass host checking against 520 no_proxy to be case-insensitive, and to not match unrelated host names that 521 happen to have a bypassed hostname as a suffix. Patch by Xiang Zhang. 522 523 - Issue #26804: urllib will prefer lower_case proxy environment variables over 524 UPPER_CASE or Mixed_Case ones. Patch contributed by Hans-Peter Jansen. 525 526 - Issue #26837: assertSequenceEqual() now correctly outputs non-stringified 527 differing items. This affects assertListEqual() and assertTupleEqual(). 528 529 - Issue #26822: itemgetter, attrgetter and methodcaller objects no longer 530 silently ignore keyword arguments. 531 532 - Issue #26657: Fix directory traversal vulnerability with SimpleHTTPServer 533 on Windows. This fixes a regression that was introduced in 2.7.7. Based 534 on patch by Philipp Hagemeister. 535 536 - Issue #19377: Add .svg to mimetypes.types_map. 537 538 - Issue #13952: Add .csv to mimetypes.types_map. Patch by Geoff Wilson. 539 540 - Issue #16329: Add .webm to mimetypes.types_map. Patch by Giampaolo Rodola'. 541 542 - Issue #23735: Handle terminal resizing with Readline 6.3+ by installing our 543 own SIGWINCH handler. Patch by Eric Price. 544 545 - Issue #26644: Raise ValueError rather than SystemError when a negative 546 length is passed to SSLSocket.recv() or read(). 547 548 - Issue #23804: Fix SSL recv(0) and read(0) methods to return zero bytes 549 instead of up to 1024. 550 551 - Issue #24266: Ctrl+C during Readline history search now cancels the search 552 mode when compiled with Readline 7. 553 554 - Issue #23857: Implement PEP 493, adding a Python-2-only ssl module API and 555 environment variable to configure the default handling of SSL/TLS certificates 556 for HTTPS connections. 557 558 - Issue #26313: ssl.py _load_windows_store_certs fails if windows cert store 559 is empty. Patch by Baji. 560 561 - Issue #26513: Fixes platform module detection of Windows Server 562 563 - Issue #23718: Fixed parsing time in week 0 before Jan 1. Original patch by 564 Tams Bence Gedai. 565 566 - Issue #26177: Fixed the keys() method for Canvas and Scrollbar widgets. 567 568 - Issue #15068: Got rid of excessive buffering in the fileinput module. 569 The bufsize parameter is no longer used. 570 571 - Issue #2202: Fix UnboundLocalError in 572 AbstractDigestAuthHandler.get_algorithm_impls. Initial patch by Mathieu Dupuy. 573 574 - Issue #26475: Fixed debugging output for regular expressions with the (?x) 575 flag. 576 577 - Issue #26385: Remove the file if the internal fdopen() call in 578 NamedTemporaryFile() fails. Based on patch by Silent Ghost. 579 580 - Issue #26309: In the "SocketServer" module, shut down the request (closing 581 the connected socket) when verify_request() returns false. Based on patch 582 by Aviv Palivoda. 583 584 - Issue #25939: On Windows open the cert store readonly in ssl.enum_certificates. 585 586 - Issue #24303: Fix random EEXIST upon multiprocessing semaphores creation with 587 Linux PID namespaces enabled. 588 589 - Issue #25698: Importing module if the stack is too deep no longer replaces 590 imported module with the empty one. 591 592 - Issue #12923: Reset FancyURLopener's redirect counter even if there is an 593 exception. Based on patches by Brian Brazil and Daniel Rocco. 594 595 - Issue #25945: Fixed a crash when unpickle the functools.partial object with 596 wrong state. Fixed a leak in failed functools.partial constructor. 597 "args" and "keywords" attributes of functools.partial have now always types 598 tuple and dict correspondingly. 599 600 - Issue #19883: Fixed possible integer overflows in zipimport. 601 602 - Issue #26147: xmlrpclib now works with unicode not encodable with used 603 non-UTF-8 encoding. 604 605 - Issue #16620: Fixed AttributeError in msilib.Directory.glob(). 606 607 - Issue #21847: Fixed xmlrpclib on Unicode-disabled builds. 608 609 - Issue #6500: Fixed infinite recursion in urllib2.Request.__getattr__(). 610 611 - Issue #26083: Workaround a subprocess bug that raises an incorrect 612 "ValueError: insecure string pickle" exception instead of the actual 613 exception on some platforms such as Mac OS X when an exception raised 614 in the forked child process prior to the exec() was large enough that 615 it overflowed the internal errpipe_read pipe buffer. 616 617 - Issue #24103: Fixed possible use after free in ElementTree.iterparse(). 618 619 - Issue #20954: _args_from_interpreter_flags used by multiprocessing and some 620 tests no longer behaves incorrectly in the presence of the PYTHONHASHSEED 621 environment variable. 622 623 - Issue #14285: When executing a package with the "python -m package" option, 624 and package initialization raises ImportError, a proper traceback is now 625 reported. 626 627 - Issue #6478: _strptime's regexp cache now is reset after changing timezone 628 with time.tzset(). 629 630 - Issue #25718: Fixed copying object with state with boolean value is false. 631 632 - Issue #25742: :func:`locale.setlocale` now accepts a Unicode string for 633 its second parameter. 634 635 - Issue #10131: Fixed deep copying of minidom documents. Based on patch 636 by Marian Ganisin. 637 638 - Issue #25725: Fixed a reference leak in cPickle.loads() when unpickling 639 invalid data including tuple instructions. 640 641 - Issue #25663: In the Readline completer, avoid listing duplicate global 642 names, and search the global namespace before searching builtins. 643 644 - Issue #25688: Fixed file leak in ElementTree.iterparse() raising an error. 645 646 - Issue #23914: Fixed SystemError raised by CPickle unpickler on broken data. 647 648 - Issue #25924: Avoid unnecessary serialization of getaddrinfo(3) calls on 649 OS X versions 10.5 or higher. Original patch by A. Jesse Jiryu Davis. 650 651 - Issue #26406: Avoid unnecessary serialization of getaddrinfo(3) calls on 652 current versions of OpenBSD and NetBSD. Patch by A. Jesse Jiryu Davis. 653 654 IDLE 655 ---- 656 657 - Issue #5124: Paste with text selected now replaces the selection on X11. 658 This matches how paste works on Windows, Mac, most modern Linux apps, 659 and ttk widgets. Original patch by Serhiy Storchaka. 660 661 - Issue #24759: Make clear in idlelib.idle_test.__init__ that the directory 662 is a private implementation of test.test_idle and tool for maintainers. 663 664 - Issue #26673: When tk reports font size as 0, change to size 10. 665 Such fonts on Linux prevented the configuration dialog from opening. 666 667 - Issue #27044: Add ConfigDialog.remove_var_callbacks to stop memory leaks. 668 669 - In the 'IDLE-console differences' section of the IDLE doc, clarify 670 how running with IDLE affects sys.modules and the standard streams. 671 672 - Issue #25507: fix incorrect change in IOBinding that prevented printing. 673 Change also prevented saving shell window with non-ascii characters. 674 Augment IOBinding htest to include all major IOBinding functions. 675 676 - Issue #25905: Revert unwanted conversion of ' to RIGHT SINGLE QUOTATION 677 MARK in README.txt and open this and NEWS.txt with 'ascii'. 678 Re-encode CREDITS.txt to utf-8 and open it with 'utf-8'. 679 680 - Issue #26417: Prevent spurious errors and incorrect defaults when 681 installing IDLE 2.7 on OS X: default configuration settings are 682 no longer installed from OS X specific copies. 683 684 Documentation 685 ------------- 686 687 - Issue #26736: Used HTTPS for external links in the documentation if possible. 688 689 - Issue #6953: Rework the Readline module documentation to group related 690 functions together, and add more details such as what underlying Readline 691 functions and variables are accessed. 692 693 - Issue #26014: Guide users to the newer packaging documentation as was done 694 for Python 3.x. In particular, the top-level 2.7 documentation page now 695 links to the newer installer and distributions pages rather than the 696 legacy install and Distutils pages; these are still linked to in the 697 library/distutils doc page. 698 699 Tests 700 ----- 701 702 - Issue #21916: Added tests for the turtle module. Patch by ingrid, 703 Gregory Loyse and Jelle Zijlstra. 704 705 - Issue #25940: Changed test_ssl to use self-signed.pythontest.net. This 706 avoids relying on svn.python.org, which recently changed root certificate. 707 708 - Issue #25616: Tests for OrderedDict are extracted from test_collections 709 into separate file test_ordered_dict. 710 711 Build 712 ----- 713 714 - Issue #22359: Avoid incorrect recursive $(MAKE), and disable the rules for 715 running pgen when cross-compiling. The pgen output is normally saved with 716 the source code anyway, and is still regenerated when doing a native build. 717 Patch by Jonas Wagner and Xavier de Gaye. 718 719 - Issue #19450: Update Windows builds to use SQLite 3.8.11.0. 720 721 - Issue #27229: Fix the cross-compiling pgen rule for in-tree builds. Patch 722 by Xavier de Gaye. 723 724 - Issue #17603: Avoid error about nonexistant fileblocks.o file by using a 725 lower-level check for st_blocks in struct stat. 726 727 - Issue #26465: Update Windows builds to use OpenSSL 1.0.2g. 728 729 - Issue #24421: Compile Modules/_math.c once, before building extensions. 730 Previously it could fail to compile properly if the math and cmath builds 731 were concurrent. 732 733 - Issue #25824: Fixes sys.winver to not include any architecture suffix. 734 735 - Issue #25348: Added ``--pgo`` and ``--pgo-job`` arguments to 736 ``PCbuild\build.bat`` for building with Profile-Guided Optimization. The 737 old ``PCbuild\build_pgo.bat`` script is now deprecated, and simply calls 738 ``PCbuild\build.bat --pgo %*``. 739 740 - Issue #25827: Add support for building with ICC to ``configure``, including 741 a new ``--with-icc`` flag. 742 743 - Issue #25696: Fix installation of Python on UNIX with make -j9. 744 745 - Issue #26930: Update OS X 10.5+ 32-bit-only installer to build 746 and link with OpenSSL 1.0.2h. 747 748 - Issue #26268: Update Windows builds to use OpenSSL 1.0.2f. 749 750 - Issue #25136: Support Apple Xcode 7's new textual SDK stub libraries. 751 752 Tools/Demos 753 ----------- 754 755 - Issue #26799: Fix python-gdb.py: don't get C types once when the Python code 756 is loaded, but get C types on demand. The C types can change if 757 python-gdb.py is loaded before the Python executable. Patch written by Thomas 758 Ilsche. 759 760 C API 761 ----- 762 763 - Issue #26476: Fixed compilation error when use PyErr_BadInternalCall() in C++. 764 Patch by Jeroen Demeyer. 765 766 Misc 767 ---- 768 769 - Issue #17500, and https://github.com/python/pythondotorg/issues/945: Remove 770 unused and outdated icons. 771 772 773 What's New in Python 2.7.11? 774 ============================ 775 776 *Release date: 2015-12-05* 777 778 Library 779 ------- 780 781 - Issue #25624: ZipFile now always writes a ZIP_STORED header for directory 782 entries. Patch by Dingyuan Wang. 783 784 785 What's New in Python 2.7.11 release candidate 1? 786 ================================================ 787 788 *Release date: 2015-11-21* 789 790 Core and Builtins 791 ----------------- 792 793 - Issue #25678: Avoid buffer overreads when int(), long(), float(), and 794 compile() are passed buffer objects. These objects are not necessarily 795 terminated by a null byte, but the functions assumed they were. 796 797 - Issue #25388: Fixed tokenizer hang when processing undecodable source code 798 with a null byte. 799 800 - Issue #22995: Default implementation of __reduce__ and __reduce_ex__ now 801 rejects builtin types with not defined __new__. 802 803 - Issue #7267: format(int, 'c') now raises OverflowError when the argument is 804 not in range(0, 256). 805 806 - Issue #24806: Prevent builtin types that are not allowed to be subclassed from 807 being subclassed through multiple inheritance. 808 809 - Issue #24848: Fixed a number of bugs in UTF-7 decoding of misformed data. 810 811 - Issue #25003: os.urandom() doesn't use getentropy() on Solaris because 812 getentropy() is blocking, whereas os.urandom() should not block. getentropy() 813 is supported since Solaris 11.3. 814 815 - Issue #21167: NAN operations are now handled correctly when python is 816 compiled with ICC even if -fp-model strict is not specified. 817 818 - Issue #24467: Fixed possible buffer over-read in bytearray. The bytearray 819 object now always allocates place for trailing null byte and it's buffer now 820 is always null-terminated. 821 822 - Issue #19543: encode() and decode() methods and constructors of str, 823 unicode and bytearray classes now emit deprecation warning for known 824 non-text encodings when Python is ran with the -3 option. 825 826 - Issue #24115: Update uses of PyObject_IsTrue(), PyObject_Not(), 827 PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains() 828 to check for and handle errors correctly. 829 830 - Issue #4753: On compilers where it is supported, use "computed gotos" for 831 bytecode dispatch in the interpreter. This improves interpretation 832 performance. 833 834 - Issue #22939: Fixed integer overflow in iterator object. Original patch by 835 Clement Rouault. 836 837 - Issue #24102: Fixed exception type checking in standard error handlers. 838 839 Library 840 ------- 841 842 - Issue #10128: backport issue #10845's mitigation of incompatibilities between 843 the multiprocessing module and directory and zipfile execution. 844 Multiprocessing on Windows will now automatically skip rerunning __main__ in 845 spawned processes, rather than failing with AssertionError. 846 847 - Issue #25578: Fix (another) memory leak in SSLSocket.getpeercer(). 848 849 - Issue #25590: In the Readline completer, only call getattr() once per 850 attribute. 851 852 - Issue #25530: Disable the vulnerable SSLv3 protocol by default when creating 853 ssl.SSLContext. 854 855 - Issue #25569: Fix memory leak in SSLSocket.getpeercert(). 856 857 - Issue #7759: Fixed the mhlib module on filesystems that doesn't support 858 link counting for directories. 859 860 - Issue #892902: Fixed pickling recursive objects. 861 862 - Issue #18010: Fix the pydoc GUI's search function to handle exceptions 863 from importing packages. 864 865 - Issue #25515: Always use os.urandom as a source of randomness in uuid.uuid4. 866 867 - Issue #21827: Fixed textwrap.dedent() for the case when largest common 868 whitespace is a substring of smallest leading whitespace. 869 Based on patch by Robert Li. 870 871 - Issue #21709: Fix the logging module to not depend upon __file__ being set 872 properly to get the filename of its caller from the stack. This allows it 873 to work if run in a frozen or embedded environment where the module's 874 .__file__ attribute does not match its code object's .co_filename. 875 876 - Issue #25319: When threading.Event is reinitialized, the underlying condition 877 should use a regular lock rather than a recursive lock. 878 879 - Issue #25232: Fix CGIRequestHandler to split the query from the URL at the 880 first question mark (?) rather than the last. Patch from Xiang Zhang. 881 882 - Issue #24657: Prevent CGIRequestHandler from collapsing slashes in the 883 query part of the URL as if it were a path. Patch from Xiang Zhang. 884 885 - Issue #22958: Constructor and update method of weakref.WeakValueDictionary 886 now accept the self keyword argument. 887 888 - Issue #22609: Constructor and the update method of collections.UserDict now 889 accept the self keyword argument. 890 891 - Issue #25203: Failed readline.set_completer_delims() no longer left the 892 module in inconsistent state. 893 894 - Issue #19143: platform module now reads Windows version from kernel32.dll to 895 avoid compatibility shims. 896 897 - Issue #25135: Make deque_clear() safer by emptying the deque before clearing. 898 This helps avoid possible reentrancy issues. 899 900 - Issue #24684: socket.socket.getaddrinfo() now calls 901 PyUnicode_AsEncodedString() instead of calling the encode() method of the 902 host, to handle correctly custom unicode string with an encode() method 903 which doesn't return a byte string. The encoder of the IDNA codec is now 904 called directly instead of calling the encode() method of the string. 905 906 - Issue #24982: shutil.make_archive() with the "zip" format now adds entries 907 for directories (including empty directories) in ZIP file. 908 909 - Issue #17849: Raise a sensible exception if an invalid response is 910 received for a HTTP tunnel request, as seen with some servers that 911 do not support tunnelling. Initial patch from Cory Benfield. 912 913 - Issue #16180: Exit pdb if file has syntax error, instead of trapping user 914 in an infinite loop. Patch by Xavier de Gaye. 915 916 - Issue #22812: Fix unittest discovery examples. 917 Patch from Pam McA'Nulty. 918 919 - Issue #24634: Importing uuid should not try to load libc on Windows 920 921 - Issue #23652: Make it possible to compile the select module against the 922 libc headers from the Linux Standard Base, which do not include some 923 EPOLL macros. Initial patch by Matt Frank. 924 925 - Issue #15138: Speed up base64.urlsafe_b64{en,de}code considerably. 926 927 - Issue #23319: Fix ctypes.BigEndianStructure, swap correctly bytes. Patch 928 written by Matthieu Gautier. 929 930 - Issue #23254: Document how to close the TCPServer listening socket. 931 Patch from Martin Panter. 932 933 - Issue #17527: Add PATCH to wsgiref.validator. Patch from Luca Sbardella. 934 935 - Issue #24613: Calling array.fromstring() with self is no longer allowed 936 to prevent the use-after-free error. Patch by John Leitch. 937 938 - Issue #24708: Fix possible integer overflow in strop.replace(). 939 940 - Issue #24620: Random.setstate() now validates the value of state last element. 941 942 - Issue #13938: 2to3 converts StringTypes to a tuple. Patch from Mark Hammond. 943 944 - Issue #24611: Fixed compiling the posix module on non-Windows platforms 945 without mknod() or makedev() (e.g. on Unixware). 946 947 - Issue #18684: Fixed reading out of the buffer in the re module. 948 949 - Issue #24259: tarfile now raises a ReadError if an archive is truncated 950 inside a data segment. 951 952 - Issue #24514: tarfile now tolerates number fields consisting of only 953 whitespace. 954 955 - Issue #20387: Restore semantic round-trip correctness in tokenize/untokenize 956 for tab-indented blocks. 957 958 - Issue #24456: Fixed possible buffer over-read in adpcm2lin() and lin2adpcm() 959 functions of the audioop module. Fixed SystemError when the state is not a 960 tuple. Fixed possible memory leak. 961 962 - Issue #24481: Fix possible memory corruption with large profiler info strings 963 in hotshot. 964 965 - Issue #24489: ensure a previously set C errno doesn't disturb cmath.polar(). 966 967 - Issue #19543: io.TextIOWrapper (and hence io.open()) now uses the internal 968 codec marking system added to emit deprecation warning for known non-text 969 encodings at stream construction time when Python is ran with the -3 option. 970 971 - Issue #24264: Fixed buffer overflow in the imageop module. 972 973 - Issue #5633: Fixed timeit when the statement is a string and the setup is not. 974 975 - Issue #24326: Fixed audioop.ratecv() with non-default weightB argument. 976 Original patch by David Moore. 977 978 - Issue #22095: Fixed HTTPConnection.set_tunnel with default port. The port 979 value in the host header was set to "None". Patch by Demian Brecht. 980 981 - Issue #24257: Fixed segmentation fault in sqlite3.Row constructor with faked 982 cursor type. 983 984 - Issue #24286: Dict view were not registered with the MappingView abstract 985 base classes. This caused key and item views in OrderedDict to not be equal 986 to their regular dict counterparts. 987 988 - Issue #22107: tempfile.gettempdir() and tempfile.mkdtemp() now try again 989 when a directory with the chosen name already exists on Windows as well as 990 on Unix. tempfile.mkstemp() now fails early if parent directory is not 991 valid (not exists or is a file) on Windows. 992 993 - Issue #6598: Increased time precision and random number range in 994 email.utils.make_msgid() to strengthen the uniqueness of the message ID. 995 996 - Issue #24091: Fixed various crashes in corner cases in cElementTree. 997 998 - Issue #15267: HTTPConnection.request() now is compatibile with old-style 999 classes (such as TemporaryFile). Original patch by Atsuo Ishimoto. 1000 1001 - Issue #20014: array.array() now accepts unicode typecodes. Based on patch by 1002 Vajrasky Kok. 1003 1004 - Issue #23637: Showing a warning no longer fails with UnicodeErrror. 1005 Formatting unicode warning in the file with the path containing non-ascii 1006 characters no longer fails with UnicodeErrror. 1007 1008 - Issue #24134: Reverted issue #24134 changes. 1009 1010 IDLE 1011 ---- 1012 1013 - Issue #15348: Stop the debugger engine (normally in a user process) 1014 before closing the debugger window (running in the IDLE process). 1015 This prevents the RuntimeErrors that were being caught and ignored. 1016 1017 - Issue #24455: Prevent IDLE from hanging when a) closing the shell while the 1018 debugger is active (15347); b) closing the debugger with the [X] button 1019 (15348); and c) activating the debugger when already active (24455). 1020 The patch by Mark Roseman does this by making two changes. 1021 1. Suspend and resume the gui.interaction method with the tcl vwait 1022 mechanism intended for this purpose (instead of root.mainloop & .quit). 1023 2. In gui.run, allow any existing interaction to terminate first. 1024 1025 - Change 'The program' to 'Your program' in an IDLE 'kill program?' message 1026 to make it clearer that the program referred to is the currently running 1027 user program, not IDLE itself. 1028 1029 - Issue #24750: Improve the appearance of the IDLE editor window status bar. 1030 Patch by Mark Roseman. 1031 1032 - Issue #25313: Change the handling of new built-in text color themes to better 1033 address the compatibility problem introduced by the addition of IDLE Dark. 1034 Consistently use the revised idleConf.CurrentTheme everywhere in idlelib. 1035 1036 - Issue #24782: Extension configuration is now a tab in the IDLE Preferences 1037 dialog rather than a separate dialog. The former tabs are now a sorted 1038 list. Patch by Mark Roseman. 1039 1040 - Issue #22726: Re-activate the config dialog help button with some content 1041 about the other buttons and the new IDLE Dark theme. 1042 1043 - Issue #24820: IDLE now has an 'IDLE Dark' built-in text color theme. 1044 It is more or less IDLE Classic inverted, with a cobalt blue background. 1045 Strings, comments, keywords, ... are still green, red, orange, ... . 1046 To use it with IDLEs released before November 2015, hit the 1047 'Save as New Custom Theme' button and enter a new name, 1048 such as 'Custom Dark'. The custom theme will work with any IDLE 1049 release, and can be modified. 1050 1051 - Issue #25224: README.txt is now an idlelib index for IDLE developers and 1052 curious users. The previous user content is now in the IDLE doc chapter. 1053 'IDLE' now means 'Integrated Development and Learning Environment'. 1054 1055 - Issue #24820: Users can now set breakpoint colors in 1056 Settings -> Custom Highlighting. Original patch by Mark Roseman. 1057 1058 - Issue #24972: Inactive selection background now matches active selection 1059 background, as configured by users, on all systems. Found items are now 1060 always highlighted on Windows. Initial patch by Mark Roseman. 1061 1062 - Issue #24570: Idle: make calltip and completion boxes appear on Macs 1063 affected by a tk regression. Initial patch by Mark Roseman. 1064 1065 - Issue #24988: Idle ScrolledList context menus (used in debugger) 1066 now work on Mac Aqua. Patch by Mark Roseman. 1067 1068 - Issue #24801: Make right-click for context menu work on Mac Aqua. 1069 Patch by Mark Roseman. 1070 1071 - Issue #25173: Associate tkinter messageboxes with a specific widget. 1072 For Mac OSX, make them a 'sheet'. Patch by Mark Roseman. 1073 1074 - Issue #25198: Enhance the initial html viewer now used for Idle Help. 1075 * Properly indent fixed-pitch text (patch by Mark Roseman). 1076 * Give code snippet a very Sphinx-like light blueish-gray background. 1077 * Re-use initial width and height set by users for shell and editor. 1078 * When the Table of Contents (TOC) menu is used, put the section header 1079 at the top of the screen. 1080 1081 - Issue #25225: Condense and rewrite Idle doc section on text colors. 1082 1083 - Issue #21995: Explain some differences between IDLE and console Python. 1084 1085 - Issue #22820: Explain need for *print* when running file from Idle editor. 1086 1087 - Issue #25224: Doc: augment Idle feature list and no-subprocess section. 1088 1089 - Issue #25219: Update doc for Idle command line options. 1090 Some were missing and notes were not correct. 1091 1092 - Issue #24861: Most of idlelib is private and subject to change. 1093 Use idleib.idle.* to start Idle. See idlelib.__init__.__doc__. 1094 1095 - Issue #25199: Idle: add synchronization comments for future maintainers. 1096 1097 - Issue #16893: Replace help.txt with help.html for Idle doc display. 1098 The new idlelib/help.html is rstripped Doc/build/html/library/idle.html. 1099 It looks better than help.txt and will better document Idle as released. 1100 The tkinter html viewer that works for this file was written by Mark Roseman. 1101 The now unused EditorWindow.HelpDialog class and helt.txt file are deprecated. 1102 1103 - Issue #24199: Deprecate unused idlelib.idlever with possible removal in 3.6. 1104 1105 - Issue #24790: Remove extraneous code (which also create 2 & 3 conflicts). 1106 1107 - Issue #23672: Allow Idle to edit and run files with astral chars in name. 1108 Patch by Mohd Sanad Zaki Rizvi. 1109 1110 - Issue #24745: Idle editor default font. Switch from Courier to 1111 platform-sensitive TkFixedFont. This should not affect current customized 1112 font selections. If there is a problem, edit $HOME/.idlerc/config-main.cfg 1113 and remove 'fontxxx' entries from [Editor Window]. Patch by Mark Roseman. 1114 1115 - Issue #21192: Idle editor. When a file is run, put its name in the restart bar. 1116 Do not print false prompts. Original patch by Adnan Umer. 1117 1118 - Issue #13884: Idle menus. Remove tearoff lines. Patch by Roger Serwy. 1119 1120 - Issue #15809: IDLE shell now uses locale encoding instead of Latin1 for 1121 decoding unicode literals. 1122 1123 Documentation 1124 ------------- 1125 1126 - Issue #24952: Clarify the default size argument of stack_size() in 1127 the "threading" and "thread" modules. Patch from Mattip. 1128 1129 - Issue #20769: Improve reload() docs. Patch by Dorian Pula. 1130 1131 - Issue #23589: Remove duplicate sentence from the FAQ. Patch by Yongzhi Pan. 1132 1133 - Issue #22155: Add File Handlers subsection with createfilehandler to Tkinter 1134 doc. Remove obsolete example from FAQ. Patch by Martin Panter. 1135 1136 Tests 1137 ----- 1138 1139 - Issue #24751: When running regrtest with the ``-w`` command line option, 1140 a test run is no longer marked as a failure if all tests succeed when 1141 re-run. 1142 1143 - PCbuild\rt.bat now accepts an unlimited number of arguments to pass along 1144 to regrtest.py. Previously there was a limit of 9. 1145 1146 Build 1147 ----- 1148 1149 - Issue #24915: When doing a PGO build, the test suite is now used instead of 1150 pybench; Clang support was also added as part off this work. Initial patch by 1151 Alecsandru Patrascu of Intel. 1152 1153 - Issue #24986: It is now possible to build Python on Windows without errors 1154 when external libraries are not available. 1155 1156 - Issue #24508: Backported the MSBuild project files from Python 3.5. The 1157 backported files replace the old project files in PCbuild; the old files moved 1158 to PC/VS9.0 and remain supported. 1159 1160 - Issue #24603: Update Windows builds and OS X 10.5 installer to use OpenSSL 1161 1.0.2d. 1162 1163 Windows 1164 ------- 1165 1166 - Issue #25022: Removed very outdated PC/example_nt/ directory. 1167 1168 1169 What's New in Python 2.7.10? 1170 ============================ 1171 1172 *Release date: 2015-05-23* 1173 1174 Library 1175 ------- 1176 1177 - Issue #22931: Allow '[' and ']' in cookie values. 1178 1179 1180 What's New in Python 2.7.10 release candidate 1? 1181 ================================================ 1182 1183 *Release date: 2015-05-10* 1184 1185 Core and Builtins 1186 ----------------- 1187 1188 - Issue #23971: Fix underestimated presizing in dict.fromkeys(). 1189 1190 - Issue #23757: PySequence_Tuple() incorrectly called the concrete list API 1191 when the data was a list subclass. 1192 1193 - Issue #23629: Fix the default __sizeof__ implementation for variable-sized 1194 objects. 1195 1196 - Issue #23055: Fixed a buffer overflow in PyUnicode_FromFormatV. Analysis 1197 and fix by Guido Vranken. 1198 1199 - Issue #23048: Fix jumping out of an infinite while loop in the pdb. 1200 1201 Library 1202 ------- 1203 1204 - The keywords attribute of functools.partial is now always a dictionary. 1205 1206 - Issue #20274: When calling a _sqlite.Connection, it now complains if passed 1207 any keyword arguments. Previously it silently ignored them. 1208 1209 - Issue #20274: Remove ignored and erroneous "kwargs" parameters from three 1210 METH_VARARGS methods on _sqlite.Connection. 1211 1212 - Issue #24134: assertRaises() and assertRaisesRegexp() checks are not longer 1213 successful if the callable is None. 1214 1215 - Issue #23008: Fixed resolving attributes with boolean value is False in pydoc. 1216 1217 - Issues #24099, #24100, and #24101: Fix use-after-free bug in heapq's siftup 1218 and siftdown functions. 1219 1220 - Backport collections.deque fixes from Python 3.5. Prevents reentrant badness 1221 during deletion by deferring the decref until the container has been restored 1222 to a consistent state. 1223 1224 - Issue #23842: os.major(), os.minor() and os.makedev() now support ints again. 1225 1226 - Issue #23811: Add missing newline to the PyCompileError error message. 1227 Patch by Alex Shkop. 1228 1229 - Issue #17898: Fix exception in gettext.py when parsing certain plural forms. 1230 1231 - Issue #23865: close() methods in multiple modules now are idempotent and more 1232 robust at shutdown. If they need to release multiple resources, all are 1233 released even if errors occur. 1234 1235 - Issue #23881: urllib.ftpwrapper constructor now closes the socket if the FTP 1236 connection failed. 1237 1238 - Issue #15133: _tkinter.tkapp.getboolean() now supports long and Tcl_Obj and 1239 always returns bool. tkinter.BooleanVar now validates input values (accepted 1240 bool, int, long, str, unicode, and Tcl_Obj). tkinter.BooleanVar.get() now 1241 always returns bool. 1242 1243 - Issue #23338: Fixed formatting ctypes error messages on Cygwin. 1244 Patch by Makoto Kato. 1245 1246 - Issue #16840: Tkinter now supports 64-bit integers added in Tcl 8.4 and 1247 arbitrary precision integers added in Tcl 8.5. 1248 1249 - Issue #23834: Fix socket.sendto(), use the C long type to store the result of 1250 sendto() instead of the C int type. 1251 1252 - Issue #21526: Tkinter now supports new boolean type in Tcl 8.5. 1253 1254 - Issue #23838: linecache now clears the cache and returns an empty result on 1255 MemoryError. 1256 1257 - Issue #23742: ntpath.expandvars() no longer loses unbalanced single quotes. 1258 1259 - Issue #21802: The reader in BufferedRWPair now is closed even when closing 1260 writer failed in BufferedRWPair.close(). 1261 1262 - Issue #23671: string.Template now allows specifying the "self" parameter as 1263 a keyword argument. string.Formatter now allows specifying the "self" and 1264 the "format_string" parameters as keyword arguments. 1265 1266 - Issue #21560: An attempt to write a data of wrong type no longer cause 1267 GzipFile corruption. Original patch by Wolfgang Maier. 1268 1269 - Issue #23647: Increase impalib's MAXLINE to accommodate modern mailbox sizes. 1270 1271 - Issue #23539: If body is None, http.client.HTTPConnection.request now sets 1272 Content-Length to 0 for PUT, POST, and PATCH headers to avoid 411 errors from 1273 some web servers. 1274 1275 - Issue #23136: _strptime now uniformly handles all days in week 0, including 1276 Dec 30 of previous year. Based on patch by Jim Carroll. 1277 1278 - Issue #23138: Fixed parsing cookies with absent keys or values in cookiejar. 1279 Patch by Demian Brecht. 1280 1281 - Issue #23051: multiprocessing.Pool methods imap() and imap_unordered() now 1282 handle exceptions raised by an iterator. Patch by Alon Diamant and Davin 1283 Potts. 1284 1285 - Issue #22928: Disabled HTTP header injections in httplib. 1286 Original patch by Demian Brecht. 1287 1288 - Issue #23615: Module tarfile is now can be reloaded with imp.reload(). 1289 1290 - Issue #22853: Fixed a deadlock when use multiprocessing.Queue at import time. 1291 Patch by Florian Finkernagel and Davin Potts. 1292 1293 - Issue #23476: In the ssl module, enable OpenSSL's X509_V_FLAG_TRUSTED_FIRST 1294 flag on certificate stores when it is available. 1295 1296 - Issue #23576: Avoid stalling in SSL reads when EOF has been reached in the 1297 SSL layer but the underlying connection hasn't been closed. 1298 1299 - Issue #23504: Added an __all__ to the types module. 1300 1301 - Issue #23458: On POSIX, the file descriptor kept open by os.urandom() is now 1302 set to non inheritable 1303 1304 - Issue #22113: struct.pack_into() now supports new buffer protocol (in 1305 particular accepts writable memoryview). 1306 1307 - Issues #814253, #9179: Warnings now are raised when group references and 1308 conditional group references are used in lookbehind assertions in regular 1309 expressions. 1310 1311 - Issue #23215: Multibyte codecs with custom error handlers that ignores errors 1312 consumed too much memory and raised SystemError or MemoryError. 1313 Original patch by Aleksi Torhamo. 1314 1315 - Issue #5700: io.FileIO() called flush() after closing the file. 1316 flush() was not called in close() if closefd=False. 1317 1318 - Issue #21548: Fix pydoc.synopsis() and pydoc.apropos() on modules with empty 1319 docstrings. Initial patch by Yuyang Guo. 1320 1321 - Issue #22885: Fixed arbitrary code execution vulnerability in the dumbdbm 1322 module. Original patch by Claudiu Popa. 1323 1324 - Issue #23481: Remove RC4 from the SSL module's default cipher list. 1325 1326 - Issue #21849: Fixed xmlrpclib serialization of non-ASCII unicode strings in 1327 the multiprocessing module. 1328 1329 - Issue #21840: Fixed expanding unicode variables of form $var in 1330 posixpath.expandvars(). Fixed all os.path implementations on 1331 unicode-disabled builds. 1332 1333 - Issue #23367: Fix possible overflows in the unicodedata module. 1334 1335 - Issue #23363: Fix possible overflow in itertools.permutations. 1336 1337 - Issue #23364: Fix possible overflow in itertools.product. 1338 1339 - Issue #23365: Fixed possible integer overflow in 1340 itertools.combinations_with_replacement. 1341 1342 - Issue #23366: Fixed possible integer overflow in itertools.combinations. 1343 1344 - Issue #23191: fnmatch functions that use caching are now threadsafe. 1345 1346 - Issue #18518: timeit now rejects statements which can't be compiled outside 1347 a function or a loop (e.g. "return" or "break"). 1348 1349 - Issue #19996: Make :mod:`httplib` ignore headers with no name rather than 1350 assuming the body has started. 1351 1352 - Issue #20188: Support Application-Layer Protocol Negotiation (ALPN) in the ssl 1353 module. 1354 1355 - Issue #23248: Update ssl error codes from latest OpenSSL git master. 1356 1357 - Issue #23098: 64-bit dev_t is now supported in the os module. 1358 1359 - Issue #23063: In the disutils' check command, fix parsing of reST with code or 1360 code-block directives. 1361 1362 - Issue #21356: Make ssl.RAND_egd() optional to support LibreSSL. The 1363 availability of the function is checked during the compilation. Patch written 1364 by Bernard Spil. 1365 1366 - Backport the context argument to ftplib.FTP_TLS. 1367 1368 - Issue #23111: Maximize compatibility in protocol versions of ftplib.FTP_TLS. 1369 1370 - Issue #23112: Fix SimpleHTTPServer to correctly carry the query string and 1371 fragment when it redirects to add a trailing slash. 1372 1373 - Issue #22585: On OpenBSD 5.6 and newer, os.urandom() now calls getentropy(), 1374 instead of reading /dev/urandom, to get pseudo-random bytes. 1375 1376 - Issue #23093: In the io, module allow more operations to work on detached 1377 streams. 1378 1379 - Issue #23071: Added missing names to codecs.__all__. Patch by Martin Panter. 1380 1381 - Issue #23016: A warning no longer produces an AttributeError when sys.stderr 1382 is None. 1383 1384 - Issue #21032: Fixed socket leak if HTTPConnection.getresponse() fails. 1385 Original patch by Martin Panter. 1386 1387 - Issue #22609: Constructors and update methods of mapping classes in the 1388 collections module now accept the self keyword argument. 1389 1390 Documentation 1391 ------------- 1392 1393 - Issue #23006: Improve the documentation and indexing of dict.__missing__. 1394 Add an entry in the language datamodel special methods section. 1395 Revise and index its discussion in the stdtypes mapping/dict section. 1396 Backport the code example from 3.4. 1397 1398 - Issue #21514: The documentation of the json module now refers to new JSON RFC 1399 7159 instead of obsoleted RFC 4627. 1400 1401 Tools/Demos 1402 ----------- 1403 1404 - Issue #23330: h2py now supports arbitrary filenames in #include. 1405 1406 - Issue #6639: Module-level turtle functions no longer raise TclError after 1407 closing the window. 1408 1409 - Issue #22314: pydoc now works when the LINES environment variable is set. 1410 1411 - Issue #18905: "pydoc -p 0" now outputs actually used port. Based on patch by 1412 Wieland Hoffmann. 1413 1414 - Issue #23345: Prevent test_ssl failures with large OpenSSL patch level 1415 values (like 0.9.8zc). 1416 1417 Tests 1418 ----- 1419 1420 - Issue #23799: Added test.test_support.start_threads() for running and 1421 cleaning up multiple threads. 1422 1423 - Issue #22390: test.regrtest now emits a warning if temporary files or 1424 directories are left after running a test. 1425 1426 - Issue #23583: Added tests for standard IO streams in IDLE. 1427 1428 - Issue #23392: Added tests for marshal C API that works with FILE*. 1429 1430 - Issue #18982: Add tests for CLI of the calendar module. 1431 1432 - Issue #19949: The test_xpickle test now tests compatibility with installed 1433 Python 2.7 and reports skipped tests. Based on patch by Zachary Ware. 1434 1435 - Issue #11578: Backported test for the timeit module. 1436 1437 - Issue #22943: bsddb tests are locale independend now. 1438 1439 IDLE 1440 ---- 1441 1442 - Issue #23583: Fixed writing unicode to standard output stream in IDLE. 1443 1444 - Issue #20577: Configuration of the max line length for the FormatParagraph 1445 extension has been moved from the General tab of the Idle preferences dialog 1446 to the FormatParagraph tab of the Config Extensions dialog. 1447 Patch by Tal Einat. 1448 1449 - Issue #16893: Update Idle doc chapter to match current Idle and add new 1450 information. 1451 1452 - Issue #23180: Rename IDLE "Windows" menu item to "Window". 1453 Patch by Al Sweigart. 1454 1455 Build 1456 ----- 1457 1458 - Issue #15506: Use standard PKG_PROG_PKG_CONFIG autoconf macro in the configure 1459 script. 1460 1461 - Issue #23032: Fix installer build failures on OS X 10.4 Tiger 1462 by disabling assembly code in the OpenSSL build. 1463 1464 - Issue #23686: Update OS X 10.5 installer and Windows builds to use 1465 OpenSSL 1.0.2a. 1466 1467 C API 1468 ----- 1469 1470 - Issue #23998: PyImport_ReInitLock() now checks for lock allocation error 1471 1472 - Issue #22079: PyType_Ready() now checks that statically allocated type has 1473 no dynamically allocated bases. 1474 1475 1476 What's New in Python 2.7.9? 1477 =========================== 1478 1479 *Release date: 2014-12-10* 1480 1481 Library 1482 ------- 1483 1484 - Issue #22959: Remove the *check_hostname* parameter of 1485 httplib.HTTPSConnection. The *context* parameter should be used instead. 1486 1487 - Issue #16043: Add a default limit for the amount of data xmlrpclib.gzip_decode 1488 will return. This resolves CVE-2013-1753. 1489 1490 - Issue #16042: CVE-2013-1752: smtplib: Limit amount of data read by limiting 1491 the call to readline(). Original patch by Christian Heimes. 1492 1493 - Issue #16041: In poplib, limit maximum line length read from the server to 1494 prevent CVE-2013-1752. 1495 1496 - Issue #22960: Add a context argument to xmlrpclib.ServerProxy. 1497 1498 Build 1499 ----- 1500 1501 - Issue #22935: Allow the ssl module to be compiled if openssl doesn't support 1502 SSL 3. 1503 1504 - Issue #17128: Use private version of OpenSSL for 2.7.9 OS X 10.5+ installer. 1505 1506 1507 What's New in Python 2.7.9 release candidate 1? 1508 =============================================== 1509 1510 *Release date: 2014-11-25* 1511 1512 Core and Builtins 1513 ----------------- 1514 1515 - Issue #21963: backout issue #1856 patch (avoid crashes and lockups when 1516 daemon threads run while the interpreter is shutting down; instead, these 1517 threads are now killed when they try to take the GIL), as it seems to 1518 break some existing code. 1519 1520 - Issue #22604: Fix assertion error in debug mode when dividing a complex 1521 number by (nan+0j). 1522 1523 - Issue #22470: Fixed integer overflow issues in "backslashreplace" and 1524 "xmlcharrefreplace" error handlers. 1525 1526 - Issue #22526: Fix iterating through files with lines longer than 2^31 bytes. 1527 1528 - Issue #22519: Fix overflow checking in PyString_Repr. 1529 1530 - Issue #22518: Fix integer overflow issues in latin-1 encoding. 1531 1532 - Issue #22379: Fix empty exception message in a TypeError raised in 1533 ``str.join``. 1534 1535 - Issue #22221: Now the source encoding declaration on the second line isn't 1536 effective if the first line contains anything except a comment. 1537 1538 - Issue #22023: Fix ``%S``, ``%R`` and ``%V`` formats of 1539 :c:func:`PyUnicode_FromFormat`. 1540 1541 - Issue #21591: Correctly handle qualified exec statements in tuple form by 1542 moving compatibility layer from run-time to AST transformation. 1543 1544 Library 1545 ------- 1546 1547 - Issue #22417: Verify certificates by default in httplib (PEP 476). 1548 1549 - Issue #22927: Allow urllib.urlopen to take a *context* parameter to control 1550 SSL settings for HTTPS connections. 1551 1552 - Issue #22921: Allow SSLContext to take the *hostname* parameter even if 1553 OpenSSL doesn't support SNI. 1554 1555 - Issue #9003 and #22366: httplib.HTTPSConnection, urllib2.HTTPSHandler and 1556 urllib2.urlopen now take optional arguments to allow for server certificate 1557 checking, as recommended in public uses of HTTPS. This backport is part of PEP 1558 467. 1559 1560 - Issue #12728: Different Unicode characters having the same uppercase but 1561 different lowercase are now matched in case-insensitive regular expressions. 1562 1563 - Issue #22821: Fixed fcntl() with integer argument on 64-bit big-endian 1564 platforms. 1565 1566 - Issue #17293: uuid.getnode() now determines MAC address on AIX using netstat. 1567 Based on patch by Aivars Kalvns. 1568 1569 - Issue #22769: Fixed ttk.Treeview.tag_has() when called without arguments. 1570 1571 - Issue #22787: Allow the keyfile argument of SSLContext.load_cert_chain to be 1572 None. 1573 1574 - Issue #22775: Fixed unpickling of Cookie.SimpleCookie with protocol 2. 1575 Patch by Tim Graham. 1576 1577 - Issue #22776: Brought excluded code into the scope of a try block in 1578 SysLogHandler.emit(). 1579 1580 - Issue #17381: Fixed ranges handling in case-insensitive regular expressions. 1581 1582 - Issue #19329: Optimized compiling charsets in regular expressions. 1583 1584 - Issue #22410: Module level functions in the re module now cache compiled 1585 locale-dependent regular expressions taking into account the locale. 1586 1587 - Issue #8876: distutils now falls back to copying files when hard linking 1588 doesn't work. This allows use with special filesystems such as VirtualBox 1589 shared folders. 1590 1591 - Issue #9351: Defaults set with set_defaults on an argparse subparser 1592 are no longer ignored when also set on the parent parser. 1593 1594 - Issue #20421: Add a .version() method to SSL sockets exposing the actual 1595 protocol version in use. 1596 1597 - Issue #22435: Fix a file descriptor leak when SocketServer bind fails. 1598 1599 - Issue #13664: GzipFile now supports non-ascii Unicode filenames. 1600 1601 - Issue #13096: Fixed segfault in CTypes POINTER handling of large 1602 values. 1603 1604 - Issue #11694: Raise ConversionError in xdrlib as documented. Patch 1605 by Filip Gruszczyski and Claudiu Popa. 1606 1607 - Issue #1686: Fix string.Template when overriding the pattern attribute. 1608 1609 - Issue #11866: Eliminated race condition in the computation of names 1610 for new threads. 1611 1612 - Issue #22219: The zipfile module CLI now adds entries for directories 1613 (including empty directories) in ZIP file. 1614 1615 - Issue #22449: In the ssl.SSLContext.load_default_certs, consult the 1616 environmental variables SSL_CERT_DIR and SSL_CERT_FILE on Windows. 1617 1618 - Issue #8473: doctest.testfile now uses universal newline mode to read 1619 the test file. 1620 1621 - Issue #20076: Added non derived UTF-8 aliases to locale aliases table. 1622 1623 - Issue #20079: Added locales supported in glibc 2.18 to locale alias table. 1624 1625 - Issue #22530: Allow the ``group()`` method of regular expression match objects 1626 to take a ``long`` as an index. 1627 1628 - Issue #22517: When an io.BufferedRWPair object is deallocated, clear its 1629 weakrefs. 1630 1631 - Issue #10510: distutils register and upload methods now use HTML standards 1632 compliant CRLF line endings. 1633 1634 - Issue #9850: Fixed macpath.join() for empty first component. Patch by 1635 Oleg Oshmyan. 1636 1637 - Issue #20912: Now directories added to ZIP file have correct Unix and MS-DOS 1638 directory attributes. 1639 1640 - Issue #21866: ZipFile.close() no longer writes ZIP64 central directory 1641 records if allowZip64 is false. 1642 1643 - Issue #22415: Fixed debugging output of the GROUPREF_EXISTS opcode in the re 1644 module. 1645 1646 - Issue #22423: Unhandled exception in thread no longer causes unhandled 1647 AttributeError when sys.stderr is None. 1648 1649 - Issue #22419: Limit the length of incoming HTTP request in wsgiref server to 1650 65536 bytes and send a 414 error code for higher lengths. Patch contributed 1651 by Devin Cook. 1652 1653 - Lax cookie parsing in http.cookies could be a security issue when combined 1654 with non-standard cookie handling in some Web browsers. Reported by 1655 Sergey Bobrov. 1656 1657 - Issue #21147: sqlite3 now raises an exception if the request contains a null 1658 character instead of truncating it. Based on patch by Victor Stinner. 1659 1660 - Issue #21951: Fixed a crash in Tkinter on AIX when called Tcl command with 1661 empty string or tuple argument. 1662 1663 - Issue #21951: Tkinter now most likely raises MemoryError instead of crash 1664 if the memory allocation fails. 1665 1666 - Issue #22226: First letter no longer is stripped from the "status" key in 1667 the result of Treeview.heading(). 1668 1669 - Issue #22051: turtledemo no longer reloads examples to re-run them. 1670 Initialization of variables and gui setup should be done in main(), 1671 which is called each time a demo is run, but not on import. 1672 1673 - Issue #21597: The separator between the turtledemo text pane and the drawing 1674 canvas can now be grabbed and dragged with a mouse. The code text pane can 1675 be widened to easily view or copy the full width of the text. The canvas 1676 can be widened on small screens. Original patches by Jan Kanis and Lita Cho. 1677 1678 - Issue #18132: Turtledemo buttons no longer disappear when the window is 1679 shrunk. Original patches by Jan Kanis and Lita Cho. 1680 1681 - Issue #22312: Fix ntpath.splitdrive IndexError. 1682 1683 - Issue #22216: smtplib now resets its state more completely after a quit. The 1684 most obvious consequence of the previous behavior was a STARTTLS failure 1685 during a connect/starttls/quit/connect/starttls sequence. 1686 1687 - Issue #21305: os.urandom now caches a fd to /dev/urandom. This is a PEP 466 1688 backport from Python 3. 1689 1690 - Issue #21307: As part of PEP 466, backport hashlib.algorithms_guaranteed and 1691 hashlib.algorithms_available. 1692 1693 - Issue #22259: Fix segfault when attempting to fopen a file descriptor 1694 corresponding to a directory. 1695 1696 - Issue #22236: Fixed Tkinter images copying operations in NoDefaultRoot mode. 1697 1698 - Issue #22191: Fixed warnings.__all__. 1699 1700 - Issue #21308: Backport numerous features from Python's ssl module. This is 1701 part of PEP 466. 1702 1703 - Issue #15696: Add a __sizeof__ implementation for mmap objects on Windows. 1704 1705 - Issue #8797: Raise HTTPError on failed Basic Authentication immediately. 1706 Initial patch by Sam Bull. 1707 1708 - Issue #22068: Avoided reference loops with Variables and Fonts in Tkinter. 1709 1710 - Issue #21448: Changed FeedParser feed() to avoid O(N**2) behavior when 1711 parsing long line. Original patch by Raymond Hettinger. 1712 1713 - Issue #17923: glob() patterns ending with a slash no longer match non-dirs on 1714 AIX. Based on patch by Delhallt. 1715 1716 - Issue #21975: Fixed crash when using uninitialized sqlite3.Row (in particular 1717 when unpickling pickled sqlite3.Row). sqlite3.Row is now initialized in the 1718 __new__() method. 1719 1720 - Issue #16037: HTTPMessage.readheaders() raises an HTTPException when more 1721 than 100 headers are read. Patch by Jyrki Pulliainen and Daniel Eriksson. 1722 1723 - Issue #21580: Now Tkinter correctly handles binary "data" and "maskdata" 1724 configure options of tkinter.PhotoImage. 1725 1726 - Issue #19612: subprocess.communicate() now also ignores EINVAL when using at 1727 least two pipes. 1728 1729 - Fix repr(_socket.socket) on Windows 64-bit: don't fail with OverflowError 1730 on closed socket. 1731 1732 - Issue #16133: The asynchat.async_chat.handle_read() method now ignores 1733 socket.error() exceptions with blocking I/O errors: EAGAIN, EALREADY, 1734 EINPROGRESS, or EWOULDBLOCK. 1735 1736 - Issue #21990: Clean-up unnecessary and slow inner class definition in 1737 saxutils (Contributed by Alex Gaynor). 1738 1739 - Issue #1730136: Fix the comparison between a tkFont.Font and an object of 1740 another kind. 1741 1742 - Issue #19884: readline: Disable the meta modifier key if stdout is not 1743 a terminal to not write the ANSI sequence "\033[1034h" into stdout. This 1744 sequence is used on some terminal (ex: TERM=xterm-256color") to enable 1745 support of 8 bit characters. 1746 1747 - Issue #22017: Correct reference counting errror in the initialization of the 1748 _warnings module. 1749 1750 - Issue #21868: Prevent turtle crash when undo buffer set to a value less 1751 than one. 1752 1753 - Issue #21151: Fixed a segfault in the _winreg module when ``None`` is passed 1754 as a ``REG_BINARY`` value to SetValueEx. Patch by John Ehresman. 1755 1756 - Issue #21090: io.FileIO.readall() does not ignore I/O errors anymore. Before, 1757 it ignored I/O errors if at least the first C call read() succeed. 1758 1759 - Issue #19870: BaseCookie now parses 'secure' and 'httponly' flags. 1760 Backport of issue #16611. 1761 1762 - Issue #21923: Prevent AttributeError in distutils.sysconfig.customize_compiler 1763 due to possible uninitialized _config_vars. 1764 1765 - Issue #21323: Fix CGIHTTPServer to again handle scripts in CGI subdirectories, 1766 broken by the fix for security issue #19435. Patch by Zach Byrne. 1767 1768 - Issue #22199: Make get_makefile_filename() available in Lib/sysconfig.py 1769 for 2.7 to match other versions of sysconfig. 1770 1771 IDLE 1772 ---- 1773 1774 - Issue #3068: Add Idle extension configuration dialog to Options menu. 1775 Changes are written to HOME/.idlerc/config-extensions.cfg. 1776 Original patch by Tal Einat. 1777 1778 - Issue #16233: A module browser (File : Class Browser, Alt+C) requires an 1779 editor window with a filename. When Class Browser is requested otherwise, 1780 from a shell, output window, or 'Untitled' editor, Idle no longer displays 1781 an error box. It now pops up an Open Module box (Alt+M). If a valid name 1782 is entered and a module is opened, a corresponding browser is also opened. 1783 1784 - Issue #4832: Save As to type Python files automatically adds .py to the 1785 name you enter (even if your system does not display it). Some systems 1786 automatically add .txt when type is Text files. 1787 1788 - Issue #21986: Code objects are not normally pickled by the pickle module. 1789 To match this, they are no longer pickled when running under Idle. 1790 1791 - Issue #22221: IDLE now ignores the source encoding declaration on the second 1792 line if the first line contains anything except a comment. 1793 1794 - Issue #17390: Adjust Editor window title; remove 'Python', 1795 move version to end. 1796 1797 - Issue #14105: Idle debugger breakpoints no longer disappear 1798 when inserting or deleting lines. 1799 1800 Extension Modules 1801 ----------------- 1802 1803 - Issue #22381: Update zlib to 1.2.8. 1804 1805 - Issue #22176: Update the ctypes module's libffi to v3.1. This release 1806 adds support for the Linux AArch64 and POWERPC ELF ABIv2 little endian 1807 architectures. 1808 1809 Tools/Demos 1810 ----------- 1811 1812 - Issue #10712: 2to3 has a new "asserts" fixer that replaces deprecated names 1813 of unittest methods (e.g. failUnlessEqual -> assertEqual). 1814 1815 - Issue #22221: 2to3 and the findnocoding.py script now ignore the source 1816 encoding declaration on the second line if the first line contains anything 1817 except a comment. 1818 1819 - Issue #22201: Command-line interface of the zipfile module now correctly 1820 extracts ZIP files with directory entries. Patch by Ryan Wilson. 1821 1822 Tests 1823 ----- 1824 1825 - Issue #22236: Tkinter tests now don't reuse default root window. New root 1826 window is created for every test class. 1827 1828 - Issue #18004: test_overflow in test_list by mistake consumed 40 GiB of memory 1829 on 64-bit systems. 1830 1831 - Issue #21976: Fix test_ssl to accept LibreSSL version strings. Thanks 1832 to William Orr. 1833 1834 - Issue #22770: Prevent some Tk segfaults on OS X when running gui tests. 1835 1836 Build 1837 ----- 1838 1839 - Issue #20221: Removed conflicting (or circular) hypot definition when 1840 compiled with VS 2010 or above. Initial patch by Tabrez Mohammed. 1841 1842 - Issue #16537: Check whether self.extensions is empty in setup.py. Patch by 1843 Jonathan Hosmer. 1844 1845 - The documentation Makefile no longer automatically downloads Sphinx. Users are 1846 now required to have Sphinx already installed to build the documentation. 1847 1848 - Issue #21958: Define HAVE_ROUND when building with Visual Studio 2013 and 1849 above. Patch by Zachary Turner. 1850 1851 - Issue #15759: "make suspicious", "make linkcheck" and "make doctest" in Doc/ 1852 now display special message when and only when there are failures. 1853 1854 - Issue #21166: Prevent possible segfaults and other random failures of 1855 python --generate-posix-vars in pybuilddir.txt build target. 1856 1857 - Issue #18096: Fix library order returned by python-config. 1858 1859 - Issue #17219: Add library build dir for Python extension cross-builds. 1860 1861 - Issue #22877: PEP 477 - OS X installer now installs pip. 1862 1863 - Issue #22878: PEP 477 - "make install" and "make altinstall" can now install 1864 or upgrade pip, using the bundled pip provided by the backported ensurepip 1865 module. A configure option, --with-ensurepip[=upgrade|install|no], is 1866 available to set the option for subsequent installs; the default for Python 2 1867 in "no" (do not install or upgrade pip). The option can also be set with 1868 "make [alt]install ENSUREPIP=[upgrade|install|no]". 1869 1870 Windows 1871 ------- 1872 1873 - Issue #17896: The Windows build scripts now expect external library sources 1874 to be in ``PCbuild\..\externals`` rather than ``PCbuild\..\..``. 1875 1876 - Issue #17717: The Windows build scripts now use a copy of NASM pulled from 1877 svn.python.org to build OpenSSL. 1878 1879 - Issue #22644: The bundled version of OpenSSL has been updated to 1.0.1j. 1880 1881 1882 What's New in Python 2.7.8? 1883 =========================== 1884 1885 *Release date: 2014-06-29* 1886 1887 Core and Builtins 1888 ----------------- 1889 1890 - Issue #4346: In PyObject_CallMethod and PyObject_CallMethodObjArgs, don't 1891 overwrite the error set in PyObject_GetAttr. 1892 1893 - Issue #21831: Avoid integer overflow when large sizes and offsets are given to 1894 the buffer type. CVE-2014-7185. 1895 1896 - Issue #19656: Running Python with the -3 option now also warns about 1897 non-ascii bytes literals. 1898 1899 - Issue #21642: If the conditional if-else expression, allow an integer written 1900 with no space between itself and the ``else`` keyword (e.g. ``True if 42else 1901 False``) to be valid syntax. 1902 1903 - Issue #21523: Fix over-pessimistic computation of the stack effect of 1904 some opcodes in the compiler. This also fixes a quadratic compilation 1905 time issue noticeable when compiling code with a large number of "and" 1906 and "or" operators. 1907 1908 Library 1909 ------- 1910 1911 - Issue #21652: Prevent mimetypes.type_map from containing unicode keys on 1912 Windows. 1913 1914 - Issue #21729: Used the "with" statement in the dbm.dumb module to ensure 1915 files closing. 1916 1917 - Issue #21672: Fix the behavior of ntpath.join on UNC-style paths. 1918 1919 - Issue #19145: The times argument for itertools.repeat now handles 1920 negative values the same way for keyword arguments as it does for 1921 positional arguments. 1922 1923 - Issue #21832: Require named tuple inputs to be exact strings. 1924 1925 - Issue #8343: Named group error messages in the re module did not show 1926 the name of the erroneous group. 1927 1928 - Issue #21491: SocketServer: Fix a race condition in child processes reaping. 1929 1930 - Issue #21635: The difflib SequenceMatcher.get_matching_blocks() method 1931 cache didn't match the actual result. The former was a list of tuples 1932 and the latter was a list of named tuples. 1933 1934 - Issue #21722: The distutils "upload" command now exits with a non-zero 1935 return code when uploading fails. Patch by Martin Dengler. 1936 1937 - Issue #21766: Prevent a security hole in CGIHTTPServer by URL unquoting paths 1938 before checking for a CGI script at that path. 1939 1940 - Issue #21310: Fixed possible resource leak in failed open(). 1941 1942 - Issue #21304: Backport the key derivation function hashlib.pbkdf2_hmac from 1943 Python 3 per PEP 466. 1944 1945 - Issue #11709: Fix the pydoc.help function to not fail when sys.stdin is not a 1946 valid file. 1947 1948 - Issue #13223: Fix pydoc.writedoc so that the HTML documentation for methods 1949 that use 'self' in the example code is generated correctly. 1950 1951 - Issue #21552: Fixed possible integer overflow of too long string lengths in 1952 the tkinter module on 64-bit platforms. 1953 1954 - Issue #14315: The zipfile module now ignores extra fields in the central 1955 directory that are too short to be parsed instead of letting a struct.unpack 1956 error bubble up as this "bad data" appears in many real world zip files in 1957 the wild and is ignored by other zip tools. 1958 1959 - Issue #21402: Tkinter.ttk now works when default root window is not set. 1960 1961 - Issue #10203: sqlite3.Row now truly supports sequence protocol. In particulr 1962 it supports reverse() and negative indices. Original patch by Claudiu Popa. 1963 1964 - Issue #8743: Fix interoperability between set objects and the 1965 collections.Set() abstract base class. 1966 1967 - Issue #21481: Argparse equality and inequality tests now return 1968 NotImplemented when comparing to an unknown type. 1969 1970 IDLE 1971 ---- 1972 1973 - Issue #21940: Add unittest for WidgetRedirector. Initial patch by Saimadhav 1974 Heblikar. 1975 1976 - Issue #18592: Add unittest for SearchDialogBase. Patch by Phil Webster. 1977 1978 - Issue #21694: Add unittest for ParenMatch. Patch by Saimadhav Heblikar. 1979 1980 - Issue #21686: add unittest for HyperParser. Original patch by Saimadhav 1981 Heblikar. 1982 1983 - Issue #12387: Add missing upper(lower)case versions of default Windows key 1984 bindings for Idle so Caps Lock does not disable them. Patch by Roger Serwy. 1985 1986 - Issue #21695: Closing a Find-in-files output window while the search is 1987 still in progress no longer closes Idle. 1988 1989 - Issue #18910: Add unittest for textView. Patch by Phil Webster. 1990 1991 - Issue #18292: Add unittest for AutoExpand. Patch by Saihadhav Heblikar. 1992 1993 - Issue #18409: Add unittest for AutoComplete. Patch by Phil Webster. 1994 1995 Tests 1996 ----- 1997 1998 - Issue #20155: Changed HTTP method names in failing tests in test_httpservers 1999 so that packet filtering software (specifically Windows Base Filtering Engine) 2000 does not interfere with the transaction semantics expected by the tests. 2001 2002 - Issue #19493: Refactored the ctypes test package to skip tests explicitly 2003 rather than silently. 2004 2005 - Issue #18492: All resources are now allowed when tests are not run by 2006 regrtest.py. 2007 2008 - Issue #21605: Added tests for Tkinter images. 2009 2010 - Issue #21493: Added test for ntpath.expanduser(). Original patch by 2011 Claudiu Popa. 2012 2013 - Issue #19925: Added tests for the spwd module. Original patch by Vajrasky Kok. 2014 2015 - Issue #13355: random.triangular() no longer fails with a ZeroDivisionError 2016 when low equals high. 2017 2018 - Issue #21522: Added Tkinter tests for Listbox.itemconfigure(), 2019 PanedWindow.paneconfigure(), and Menu.entryconfigure(). 2020 2021 - Issue #20635: Added tests for Tk geometry managers. 2022 2023 Build 2024 ----- 2025 2026 - Issue #21811: Anticipated fixes to support OS X versions > 10.9. 2027 2028 Windows 2029 ------- 2030 2031 - Issue #21671, CVE-2014-0224: The bundled version of OpenSSL has been 2032 updated to 1.0.1h. 2033 2034 2035 What's New in Python 2.7.7 2036 ========================== 2037 2038 *Release date: 2014-05-31* 2039 2040 Build 2041 ----- 2042 2043 - Issue #21462: Build the Windows installers with OpenSSL 1.0.1g. 2044 2045 - Issue #19866: Include some test data in the Windows installers, so tests don't 2046 fail. 2047 2048 2049 What's New in Python 2.7.7 release candidate 1? 2050 =============================================== 2051 2052 *Release date: 2014-05-17* 2053 2054 Core and Builtins 2055 ----------------- 2056 2057 - Issue #21350: Fix file.writelines() to accept arbitrary buffer objects, 2058 as advertised. Patch by Brian Kearns. 2059 2060 - Issue #20437: Fixed 43 potential bugs when deleting object references. 2061 2062 - Issue #21134: Fix segfault when str is called on an uninitialized 2063 UnicodeEncodeError, UnicodeDecodeError, or UnicodeTranslateError object. 2064 2065 - Issue #20494: Ensure that free()d memory arenas are really released on POSIX 2066 systems supporting anonymous memory mappings. Patch by Charles-Franois 2067 Natali. 2068 2069 - Issue #17825: Cursor "^" is correctly positioned for SyntaxError and 2070 IndentationError. 2071 2072 - Raise a better error when non-unicode codecs are used for a file's coding 2073 cookie. 2074 2075 - Issue #17976: Fixed potential problem with file.write() not detecting IO error 2076 by inspecting the return value of fwrite(). Based on patches by Jaakko Moisio 2077 and Victor Stinner. 2078 2079 - Issue #14432: Generator now clears the borrowed reference to the thread 2080 state. Fix a crash when a generator is created in a C thread that is 2081 destroyed while the generator is still used. The issue was that a generator 2082 contains a frame, and the frame kept a reference to the Python state of the 2083 destroyed C thread. The crash occurs when a trace function is setup. 2084 2085 - Issue #19932: Fix typo in import.h, missing whitespaces in function prototypes. 2086 2087 - Issue #19638: Fix possible crash / undefined behaviour from huge (more than 2 2088 billion characters) input strings in _Py_dg_strtod. 2089 2090 - Issue #12546: Allow \x00 to be used as a fill character when using str, int, 2091 float, and complex __format__ methods. 2092 2093 Library 2094 ------- 2095 2096 - Issue #10744: Fix PEP 3118 format strings on ctypes objects with a nontrivial 2097 shape. 2098 2099 - Issue #7776: Backport Fix ``Host:'' header and reconnection when using 2100 http.client.HTTPConnection.set_tunnel() from Python 3. Patch by Nikolaus 2101 Rath. 2102 2103 - Issue #21306: Backport hmac.compare_digest from Python 3. This is part of PEP 2104 466. 2105 2106 - Issue #21470: Do a better job seeding the random number generator by 2107 using enough bytes to span the full state space of the Mersenne Twister. 2108 2109 - Issue #21469: Reduced the risk of false positives in robotparser by 2110 checking to make sure that robots.txt has been read or does not exist 2111 prior to returning True in can_fetch(). 2112 2113 - Issue #21321: itertools.islice() now releases the reference to the source 2114 iterator when the slice is exhausted. Patch by Anton Afanasyev. 2115 2116 - Issue #9291: Do not attempt to re-encode mimetype data read from registry in 2117 ANSI mode. Initial patches by Dmitry Jemerov & Vladimir Iofik. 2118 2119 - Issue #21349: Passing a memoryview to _winreg.SetValueEx now correctly raises 2120 a TypeError where it previously crashed the interpreter. Patch by Brian Kearns 2121 2122 - Issue #21529 (CVE-2014-4616): Fix arbitrary memory access in 2123 JSONDecoder.raw_decode with a negative second parameter. Bug reported by Guido 2124 Vranken. 2125 2126 - Issue #21172: isinstance check relaxed from dict to collections.Mapping. 2127 2128 - Issue #21191: In os.fdopen, never close the file descriptor when an exception 2129 happens. 2130 2131 - Issue #21149: Improved thread-safety in logging cleanup during interpreter 2132 shutdown. Thanks to Devin Jeanpierre for the patch. 2133 2134 - Fix possible overflow bug in strop.expandtabs. You shouldn't be using this 2135 module! 2136 2137 - Issue #20145: `assertRaisesRegex` now raises a TypeError if the second 2138 argument is not a string or compiled regex. 2139 2140 - Issue #21058: Fix a leak of file descriptor in tempfile.NamedTemporaryFile(), 2141 close the file descriptor if os.fdopen() fails 2142 2143 - Issue #20283: RE pattern methods now accept the string keyword parameters 2144 as documented. The pattern and source keyword parameters are left as 2145 deprecated aliases. 2146 2147 - Issue #11599: When an external command (e.g. compiler) fails, distutils now 2148 prints out the whole command line (instead of just the command name) if the 2149 environment variable DISTUTILS_DEBUG is set. 2150 2151 - Issue #4931: distutils should not produce unhelpful "error: None" messages 2152 anymore. distutils.util.grok_environment_error is kept but doc-deprecated. 2153 2154 - Improve the random module's default seeding to use 256 bits of entropy 2155 from os.urandom(). This was already done for Python 3, mildly improving 2156 security with a bigger seed space. 2157 2158 - Issue #15618: Make turtle.py compatible with 'from __future__ import 2159 unicode_literals'. Initial patch by Juancarlo Aez. 2160 2161 - Issue #20501: fileinput module no longer reads whole file into memory when using 2162 fileinput.hook_encoded. 2163 2164 - Issue #6815: os.path.expandvars() now supports non-ASCII Unicode environment 2165 variables names and values. 2166 2167 - Issue #20635: Fixed grid_columnconfigure() and grid_rowconfigure() methods of 2168 Tkinter widgets to work in wantobjects=True mode. 2169 2170 - Issue #17671: Fixed a crash when use non-initialized io.BufferedRWPair. 2171 Based on patch by Stephen Tu. 2172 2173 - Issue #8478: Untokenizer.compat processes first token from iterator input. 2174 Patch based on lines from Georg Brandl, Eric Snow, and Gareth Rees. 2175 2176 - Issue #20594: Avoid name clash with the libc function posix_close. 2177 2178 - Issue #19856: shutil.move() failed to move a directory to other directory 2179 on Windows if source name ends with os.altsep. 2180 2181 - Issue #14983: email.generator now always adds a line end after each MIME 2182 boundary marker, instead of doing so only when there is an epilogue. This 2183 fixes an RFC compliance bug and solves an issue with signed MIME parts. 2184 2185 - Issue #20013: Some imap servers disconnect if the current mailbox is 2186 deleted, and imaplib did not handle that case gracefully. Now it 2187 handles the 'bye' correctly. 2188 2189 - Issue #20426: When passing the re.DEBUG flag, re.compile() displays the 2190 debug output every time it is called, regardless of the compilation cache. 2191 2192 - Issue #20368: The null character now correctly passed from Tcl to Python (in 2193 unicode strings only). Improved error handling in variables-related commands. 2194 2195 - Issue #20435: Fix _pyio.StringIO.getvalue() to take into account newline 2196 translation settings. 2197 2198 - Issue #20288: fix handling of invalid numeric charrefs in HTMLParser. 2199 2200 - Issue #19456: ntpath.join() now joins relative paths correctly when a drive 2201 is present. 2202 2203 - Issue #8260: The read(), readline() and readlines() methods of 2204 codecs.StreamReader returned incomplete data when were called after 2205 readline() or read(size). Based on patch by Amaury Forgeot d'Arc. 2206 2207 - Issue #20374: Fix build with GNU readline >= 6.3. 2208 2209 - Issue #14548: Make multiprocessing finalizers check pid before 2210 running to cope with possibility of gc running just after fork. 2211 (Backport from 3.x.) 2212 2213 - Issue #20262: Warnings are raised now when duplicate names are added in the 2214 ZIP file or too long ZIP file comment is truncated. 2215 2216 - Issue #20270: urllib and urlparse now support empty ports. 2217 2218 - Issue #20243: TarFile no longer raise ReadError when opened in write mode. 2219 2220 - Issue #20245: The open functions in the tarfile module now correctly handle 2221 empty mode. 2222 2223 - Issue #20086: Restored the use of locale-independent mapping instead of 2224 locale-dependent str.lower() in locale.normalize(). 2225 2226 - Issue #20246: Fix buffer overflow in socket.recvfrom_into. 2227 2228 - Issue #19082: Working SimpleXMLRPCServer and xmlrpclib examples, both in 2229 modules and documentation. 2230 2231 - Issue #13107: argparse and optparse no longer raises an exception when output 2232 a help on environment with too small COLUMNS. Based on patch by 2233 Elazar Gershuni. 2234 2235 - Issue #20207: Always disable SSLv2 except when PROTOCOL_SSLv2 is explicitly 2236 asked for. 2237 2238 - Issue #20072: Fixed multiple errors in tkinter with wantobjects is False. 2239 2240 - Issue #1065986: pydoc can now handle unicode strings. 2241 2242 - Issue #16039: CVE-2013-1752: Change use of readline in imaplib module to 2243 limit line length. Patch by Emil Lind. 2244 2245 - Issue #19422: Explicitly disallow non-SOCK_STREAM sockets in the ssl 2246 module, rather than silently let them emit clear text data. 2247 2248 - Issue #20027: Fixed locale aliases for devanagari locales. 2249 2250 - Issue #20067: Tkinter variables now work when wantobjects is false. 2251 2252 - Issue #19020: Tkinter now uses splitlist() instead of split() in configure 2253 methods. 2254 2255 - Issue #12226: HTTPS is now used by default when connecting to PyPI. 2256 2257 - Issue #20048: Fixed ZipExtFile.peek() when it is called on the boundary of 2258 the uncompress buffer and read() goes through more than one readbuffer. 2259 2260 - Issue #20034: Updated alias mapping to most recent locale.alias file 2261 from X.org distribution using makelocalealias.py. 2262 2263 - Issue #5815: Fixed support for locales with modifiers. Fixed support for 2264 locale encodings with hyphens. 2265 2266 - Issue #20026: Fix the sqlite module to handle correctly invalid isolation 2267 level (wrong type). 2268 2269 - Issue #18829: csv.Dialect() now checks type for delimiter, escapechar and 2270 quotechar fields. Original patch by Vajrasky Kok. 2271 2272 - Issue #19855: uuid.getnode() on Unix now looks on the PATH for the 2273 executables used to find the mac address, with /sbin and /usr/sbin as 2274 fallbacks. 2275 2276 - Issue #20007: HTTPResponse.read(0) no more prematurely closes connection. 2277 Original patch by Simon Sapin. 2278 2279 - Issue #19912: Fixed numerous bugs in ntpath.splitunc(). 2280 2281 - Issue #19623: Fixed writing to unseekable files in the aifc module. 2282 Fixed writing 'ulaw' (lower case) compressed AIFC files. 2283 2284 - Issue #17919: select.poll.register() again works with poll.POLLNVAL on AIX. 2285 Fixed integer overflow in the eventmask parameter. 2286 2287 - Issue #17200: telnetlib's read_until and expect timeout was broken by the 2288 fix to Issue #14635 in Python 2.7.4 to be interpreted as milliseconds 2289 instead of seconds when the platform supports select.poll (ie: everywhere). 2290 It is now treated as seconds once again. 2291 2292 - Issue #19099: The struct module now supports Unicode format strings. 2293 2294 - Issue #19878: Fix segfault in bz2 module after calling __init__ twice with 2295 non-existent filename. Initial patch by Vajrasky Kok. 2296 2297 - Issue #16373: Prevent infinite recursion for ABC Set class comparisons. 2298 2299 - Issue #19138: doctest's IGNORE_EXCEPTION_DETAIL now allows a match when 2300 no exception detail exists (no colon following the exception's name, or 2301 a colon does follow but no text follows the colon). 2302 2303 - Issue #16231: Fixed pickle.Pickler to only fallback to its default pickling 2304 behaviour when Pickler.persistent_id returns None, but not for any other 2305 false values. This allows false values other than None to be used as 2306 persistent IDs. This behaviour is consistent with cPickle. 2307 2308 - Issue #11508: Fixed uuid.getnode() and uuid.uuid1() on environment with 2309 virtual interface. Original patch by Kent Frazier. 2310 2311 - Issue #11489: JSON decoder now accepts lone surrogates. 2312 2313 - Fix test.test_support.bind_port() to not cause an error when Python was 2314 compiled on a system with SO_REUSEPORT defined in the headers but run on 2315 a system with an OS kernel that does not support that new socket option. 2316 2317 - Issue #19633: Fixed writing not compressed 16- and 32-bit wave files on 2318 big-endian platforms. 2319 2320 - Issue #19449: in csv's writerow, handle non-string keys when generating the 2321 error message that certain keys are not in the 'fieldnames' list. 2322 2323 - Issue #12853: Fix NameError in distutils.command.upload. 2324 2325 - Issue #19523: Closed FileHandler leak which occurred when delay was set. 2326 2327 - Issue #1575020: Fixed support of 24-bit wave files on big-endian platforms. 2328 2329 - Issue #19480: HTMLParser now accepts all valid start-tag names as defined 2330 by the HTML5 standard. 2331 2332 - Issue #17827: Add the missing documentation for ``codecs.encode`` and 2333 ``codecs.decode``. 2334 2335 - Issue #6157: Fixed Tkinter.Text.debug(). Original patch by Guilherme Polo. 2336 2337 - Issue #6160: The bbox() method of tkinter.Spinbox now returns a tuple of 2338 integers instead of a string. Based on patch by Guilherme Polo. 2339 2340 - Issue #19286: Directories in ``package_data`` are no longer added to 2341 the filelist, preventing failure outlined in the ticket. 2342 2343 - Issue #6676: Ensure a meaningful exception is raised when attempting 2344 to parse more than one XML document per pyexpat xmlparser instance. 2345 (Original patches by Hirokazu Yamamoto and Amaury Forgeot d'Arc, with 2346 suggested wording by David Gutteridge) 2347 2348 - Issue #21311: Avoid exception in _osx_support with non-standard compiler 2349 configurations. Patch by John Szakmeister. 2350 2351 Tools/Demos 2352 ----------- 2353 2354 - Issue #3561: The Windows installer now has an option, off by default, for 2355 placing the Python installation into the system "Path" environment variable. 2356 This was backported from Python 3.3. 2357 2358 - Add support for ``yield from`` to 2to3. 2359 2360 - Add support for the PEP 465 matrix multiplication operator to 2to3. 2361 2362 - Issue #19936: Added executable bits or shebang lines to Python scripts which 2363 requires them. Disable executable bits and shebang lines in test and 2364 benchmark files in order to prevent using a random system python, and in 2365 source files of modules which don't provide command line interface. 2366 2367 IDLE 2368 ---- 2369 2370 - Issue #18104: Add idlelib/idle_test/htest.py with a few sample tests to begin 2371 consolidating and improving human-validated tests of Idle. Change other files 2372 as needed to work with htest. Running the module as __main__ runs all tests. 2373 2374 - Issue #21139: Change default paragraph width to 72, the PEP 8 recommendation. 2375 2376 - Issue #21284: Paragraph reformat test passes after user changes reformat width. 2377 2378 - Issue #20406: Use Python application icons for Idle window title bars. 2379 Patch mostly by Serhiy Storchaka. 2380 2381 - Issue #21029: Occurrences of "print" are now consistently colored as 2382 being a keyword (the colorizer doesn't know if print functions are 2383 enabled in the source). 2384 2385 - Issue #17721: Remove non-functional configuration dialog help button until we 2386 make it actually gives some help when clicked. Patch by Guilherme Simes. 2387 2388 - Issue #17390: Add Python version to Idle editor window title bar. 2389 Original patches by Edmond Burnett and Kent Johnson. 2390 2391 - Issue #20058: sys.stdin.readline() in IDLE now always returns only one line. 2392 2393 - Issue #19481: print() of unicode, str or bytearray subclass instance in IDLE 2394 no more hangs. 2395 2396 - Issue #18270: Prevent possible IDLE AttributeError on OS X when no initial 2397 shell window is present. 2398 2399 - Issue #17654: Ensure IDLE menus are customized properly on OS X for 2400 non-framework builds and for all variants of Tk. 2401 2402 Tests 2403 ----- 2404 2405 - Issue #17752: Fix distutils tests when run from the installed location. 2406 2407 - Issue #18604: Consolidated checks for GUI availability. All platforms now 2408 at least check whether Tk can be instantiated when the GUI resource is 2409 requested. 2410 2411 - Issue #20946: Correct alignment assumptions of some ctypes tests. 2412 2413 - Issue #20743: Fix a reference leak in test_tcl. 2414 2415 - Issue #20510: Rewrote test_exit in test_sys to match existing comments, 2416 use modern unittest features, and use helpers from test.script_helper 2417 instead of using subprocess directly. Initial patch by Gareth Rees. 2418 2419 - Issue #20532: Tests which use _testcapi now are marked as CPython only. 2420 2421 - Issue #19920: Added tests for TarFile.list(). Based on patch by Vajrasky Kok. 2422 2423 - Issue #19990: Added tests for the imghdr module. Based on patch by 2424 Claudiu Popa. 2425 2426 - Issue #19804: The test_find_mac test in test_uuid is now skipped if the 2427 ifconfig executable is not available. 2428 2429 - Issue #19886: Use better estimated memory requirements for bigmem tests. 2430 2431 - Backported tests for Tkinter variables. 2432 2433 - Issue #19320: test_tcl no longer fails when wantobjects is false. 2434 2435 - Issue #19683: Removed empty tests from test_minidom. Initial patch by 2436 Ajitesh Gupta. 2437 2438 - Issue #19928: Implemented a test for repr() of cell objects. 2439 2440 - Issue #19595, #19987: Re-enabled a long-disabled test in test_winsound. 2441 2442 - Issue #19588: Fixed tests in test_random that were silently skipped most 2443 of the time. Patch by Julian Gindi. 2444 2445 - Issue #17883: Tweak test_tcl testLoadWithUNC to skip the test in the 2446 event of a permission error on Windows and to properly report other 2447 skip conditions. 2448 2449 - Issue #17883: Backported _is_gui_available() in test.test_support to 2450 avoid hanging Windows buildbots on test_ttk_guionly. 2451 2452 - Issue #18702, #19572: All skipped tests now reported as skipped. 2453 2454 - Issue #19085: Added basic tests for all tkinter widget options. 2455 2456 - Issue #20605: Make test_socket getaddrinfo OS X segfault test more robust. 2457 2458 - Issue #20939: Avoid various network test failures due to new 2459 redirect of http://www.python.org/ to https://www.python.org: 2460 use http://www.example.com instead. 2461 2462 - Issue #21093: Prevent failures of ctypes test_macholib on OS X if a 2463 copy of libz exists in $HOME/lib or /usr/local/lib. 2464 2465 Build 2466 ----- 2467 2468 - Issue #21285: Refactor and fix curses configure check to always search 2469 in a ncursesw directory. 2470 2471 Documentation 2472 ------------- 2473 2474 - Issue #20255: Update the about and bugs pages. 2475 2476 - Issue #18840: Introduce the json module in the tutorial, and de-emphasize 2477 the pickle module. 2478 2479 - Issue #19795: Improved markup of True/False constants. 2480 2481 Windows 2482 ------- 2483 2484 - Issue #21303, #20565: Updated the version of Tcl/Tk included in the 2485 installer from 8.5.2 to 8.5.15. 2486 2487 Mac OS X 2488 -------- 2489 2490 - As of 2.7.8, the 32-bit-only installer will support OS X 10.5 2491 and later systems as is currently done for Python 3.x installers. 2492 For 2.7.7 only, we will provide three installers: 2493 the legacy deprecated 10.3+ 32-bit-only format; 2494 the newer 10.5+ 32-bit-only format; 2495 and the unchanged 10.6+ 64-/32-bit format. 2496 Although binary installers will no longer be available from 2497 python.org as of 2.7.8, it will still be possible to build from 2498 source on 10.3.9 and 10.4 systems if necessary. 2499 See Mac/BuildScript/README.txt for more information. 2500 2501 2502 Whats' New in Python 2.7.6? 2503 =========================== 2504 2505 *Release date: 2013-11-10* 2506 2507 Library 2508 ------- 2509 2510 - Issue #19435: Fix directory traversal attack on CGIHttpRequestHandler. 2511 2512 IDLE 2513 ---- 2514 2515 - Issue #19426: Fixed the opening of Python source file with specified encoding. 2516 2517 Tests 2518 ----- 2519 2520 - Issue #19457: Fixed xmlcharrefreplace tests on wide build when tests are 2521 loaded from .py[co] files. 2522 2523 Build 2524 ----- 2525 2526 - Issue #15663: Revert OS X installer built-in Tcl/Tk support for 2.7.6. 2527 Some third-party projects, such as Matplotlib and PIL/Pillow, 2528 depended on being able to build with Tcl and Tk frameworks in 2529 /Library/Frameworks. 2530 2531 2532 What's New in Python 2.7.6 release candidate 1? 2533 =============================================== 2534 2535 *Release date: 2013-10-26* 2536 2537 Core and Builtins 2538 ----------------- 2539 2540 - Issue #18603: Ensure that PyOS_mystricmp and PyOS_mystrnicmp are in the 2541 Python executable and not removed by the linker's optimizer. 2542 2543 - Issue #19279: UTF-7 decoder no more produces illegal unicode strings. 2544 2545 - Issue #18739: Fix an inconsistency between math.log(n) and math.log(long(n)); 2546 the results could be off from one another by a ulp or two. 2547 2548 - Issue #13461: Fix a crash in the "replace" error handler on 64-bit platforms. 2549 Patch by Yogesh Chaudhari. 2550 2551 - Issue #15866: The xmlcharrefreplace error handler no more produces two XML 2552 entities for a non-BMP character on narrow build. 2553 2554 - Issue #18184: PyUnicode_FromFormat() and PyUnicode_FromFormatV() now raise 2555 OverflowError when an argument of %c format is out of range. 2556 2557 - Issue #18137: Detect integer overflow on precision in float.__format__() 2558 and complex.__format__(). 2559 2560 - Issue #18038: SyntaxError raised during compilation sources with illegal 2561 encoding now always contains an encoding name. 2562 2563 - Issue #18019: Fix crash in the repr of dictionaries containing their own 2564 views. 2565 2566 - Issue #18427: str.replace could crash the interpreter with huge strings. 2567 2568 Library 2569 ------- 2570 2571 - Issue #19393: Fix symtable.symtable function to not be confused when there are 2572 functions or classes named "top". 2573 2574 - Issue #19327: Fixed the working of regular expressions with too big charset. 2575 2576 - Issue #19350: Increasing the test coverage of macurl2path. Patch by Colin 2577 Williams. 2578 2579 - Issue #19352: Fix unittest discovery when a module can be reached 2580 through several paths (e.g. under Debian/Ubuntu with virtualenv). 2581 2582 - Issue #15207: Fix mimetypes to read from correct part of Windows registry 2583 Original patch by Dave Chambers 2584 2585 - Issue #8964: fix platform._sys_version to handle IronPython 2.6+. 2586 Patch by Martin Matusiak. 2587 2588 - Issue #16038: CVE-2013-1752: ftplib: Limit amount of data read by 2589 limiting the call to readline(). Original patch by Micha 2590 Jastrzbski and Giampaolo Rodola. 2591 2592 - Issue #19276: Fixed the wave module on 64-bit big-endian platforms. 2593 2594 - Issue #18458: Prevent crashes with newer versions of libedit. Its readline 2595 emulation has changed from 0-based indexing to 1-based like gnu readline. 2596 Original patch by Ronald Oussoren. 2597 2598 - Issue #18919: If the close() method of a writer in the sunau or wave module 2599 failed, second invocation of close() and destructor no more raise an 2600 exception. Second invocation of close() on sunau writer now has no effects. 2601 The aifc module now accepts lower case of names of the 'ulaw' and 'alaw' 2602 codecs. 2603 2604 - Issue #19131: The aifc module now correctly reads and writes sampwidth of 2605 compressed streams. 2606 2607 - Issue #19158: A rare race in BoundedSemaphore could allow .release() too 2608 often. 2609 2610 - Issue #18037: 2to3 now escapes '\u' and '\U' in native strings. 2611 2612 - Issue #19137: The pprint module now correctly formats empty set and frozenset 2613 and instances of set and frozenset subclasses. 2614 2615 - Issue #16040: CVE-2013-1752: nntplib: Limit maximum line lengths to 2048 to 2616 prevent readline() calls from consuming too much memory. Patch by Jyrki 2617 Pulliainen. 2618 2619 - Issue #12641: Avoid passing "-mno-cygwin" to the mingw32 compiler, except 2620 when necessary. Patch by Oscar Benjamin. 2621 2622 - Properly initialize all fields of a SSL object after allocation. 2623 2624 - Issue #4366: Fix building extensions on all platforms when --enable-shared 2625 is used. 2626 2627 - Issue #18950: Fix miscellaneous bugs in the sunau module. 2628 Au_read.readframes() now updates current file position and reads correct 2629 number of frames from multichannel stream. Au_write.writeframesraw() now 2630 correctly updates current file position. Au_read and Au_write now correctly 2631 work with file object if start file position is not a zero. 2632 2633 - Issue #18050: Fixed an incompatibility of the re module with Python 2.7.3 2634 and older binaries. 2635 2636 - Issue #19037: The mailbox module now makes all changes to maildir files 2637 before moving them into place, to avoid race conditions with other programs 2638 that may be accessing the maildir directory. 2639 2640 - Issue #14984: On POSIX systems, when netrc is called without a filename 2641 argument (and therefore is reading the user's $HOME/.netrc file), it now 2642 enforces the same security rules as typical ftp clients: the .netrc file must 2643 be owned by the user that owns the process and must not be readable by any 2644 other user. 2645 2646 - Issue #17324: Fix http.server's request handling case on trailing '/'. Patch 2647 contributed by Vajrasky Kok. 2648 2649 - Issue #19018: The heapq.merge() function no longer suppresses IndexError 2650 in the underlying iterables. 2651 2652 - Issue #18784: The uuid module no more attempts to load libc via ctypes.CDLL, 2653 if all necessary functions are already found in libuuid. 2654 Patch by Evgeny Sologubov. 2655 2656 - Issue #14971: unittest test discovery no longer gets confused when a function 2657 has a different __name__ than its name in the TestCase class dictionary. 2658 2659 - Issue #18672: Fixed format specifiers for Py_ssize_t in debugging output in 2660 the _sre module. 2661 2662 - Issue #18830: inspect.getclasstree() no more produces duplicated entries even 2663 when input list contains duplicates. 2664 2665 - Issue #18909: Fix _tkinter.tkapp.interpaddr() on Windows 64-bit, don't cast 2666 64-bit pointer to long (32 bits). 2667 2668 - Issue #18876: The FileIO.mode attribute now better reflects the actual mode 2669 under which the file was opened. Patch by Erik Bray. 2670 2671 - Issue #18851: Avoid a double close of subprocess pipes when the child 2672 process fails starting. 2673 2674 - Issue #18418: After fork(), reinit all threads states, not only active ones. 2675 Patch by A. Jesse Jiryu Davis. 2676 2677 - Issue #11973: Fix a problem in kevent. The flags and fflags fields are now 2678 properly handled as unsigned. 2679 2680 - Issue #16809: Fixed some tkinter incompabilities with Tcl/Tk 8.6. 2681 2682 - Issue #16809: Tkinter's splitlist() and split() methods now accept Tcl_Obj 2683 argument. 2684 2685 - Issue #17119: Fixed integer overflows when processing large Unicode strings 2686 and tuples in the tkinter module. 2687 2688 - Issue #15233: Python now guarantees that callables registered with the atexit 2689 module will be called in a deterministic order. 2690 2691 - Issue #18747: Re-seed OpenSSL's pseudo-random number generator after fork. 2692 A pthread_atfork() parent handler is used to seed the PRNG with pid, time 2693 and some stack data. 2694 2695 - Issue #8865: Concurrent invocation of select.poll.poll() now raises a 2696 RuntimeError exception. Patch by Christian Schubert. 2697 2698 - Issue #13461: Fix a crash in the TextIOWrapper.tell method on 64-bit 2699 platforms. Patch by Yogesh Chaudhari. 2700 2701 - Issue #18777: The ssl module now uses the new CRYPTO_THREADID API of 2702 OpenSSL 1.0.0+ instead of the deprecated CRYPTO id callback function. 2703 2704 - Issue #18768: Correct doc string of RAND_edg(). Patch by Vajrasky Kok. 2705 2706 - Issue #18178: Fix ctypes on BSD. dlmalloc.c was compiled twice which broke 2707 malloc weak symbols. 2708 2709 - Issue #18709: Fix CVE-2013-4238. The SSL module now handles NULL bytes 2710 inside subjectAltName correctly. Formerly the module has used OpenSSL's 2711 GENERAL_NAME_print() function to get the string representation of ASN.1 2712 strings for ``rfc822Name`` (email), ``dNSName`` (DNS) and 2713 ``uniformResourceIdentifier`` (URI). 2714 2715 - Issue #18756: Improve error reporting in os.urandom() when the failure 2716 is due to something else than /dev/urandom not existing (for example, 2717 exhausting the file descriptor limit). 2718 2719 - Fix tkinter regression introduced by the security fix in issue #16248. 2720 2721 - Issue #18676: Change 'positive' to 'non-negative' in queue.py put and get 2722 docstrings and ValueError messages. Patch by Zhongyue Luo 2723 2724 - Issue #17998: Fix an internal error in regular expression engine. 2725 2726 - Issue #17557: Fix os.getgroups() to work with the modified behavior of 2727 getgroups(2) on OS X 10.8. Original patch by Mateusz Lenik. 2728 2729 - Issue #18455: multiprocessing should not retry connect() with same socket. 2730 2731 - Issue #18513: Fix behaviour of cmath.rect w.r.t. signed zeros on OS X 10.8 + 2732 gcc. 2733 2734 - Issue #18101: Tcl.split() now process Unicode strings nested in a tuple as it 2735 do with byte strings. 2736 2737 - Issue #18347: ElementTree's html serializer now preserves the case of 2738 closing tags. 2739 2740 - Issue #17261: Ensure multiprocessing's proxies use proper address. 2741 2742 - Issue #17097: Make multiprocessing ignore EINTR. 2743 2744 - Issue #18155: The csv module now correctly handles csv files that use 2745 a delimiter character that has a special meaning in regexes, instead of 2746 throwing an exception. 2747 2748 - Issue #18135: ssl.SSLSocket.write() now raises an OverflowError if the input 2749 string in longer than 2 gigabytes. The ssl module does not support partial 2750 write. 2751 2752 - Issue #18167: cgi.FieldStorage no longer fails to handle multipart/form-data 2753 when \r\n appears at end of 65535 bytes without other newlines. 2754 2755 - Issue #17403: urllib.parse.robotparser normalizes the urls before adding to 2756 ruleline. This helps in handling certain types invalid urls in a conservative 2757 manner. Patch contributed by Mher Movsisyan. 2758 2759 - Implement inequality on weakref.WeakSet. 2760 2761 - Issue #17981: Closed socket on error in SysLogHandler. 2762 2763 - Issue #18015: Fix unpickling of 2.7.3 and 2.7.4 namedtuples. 2764 2765 - Issue #17754: Make ctypes.util.find_library() independent of the locale. 2766 2767 - Fix typos in the multiprocessing module. 2768 2769 - Issue #17269: Workaround for socket.getaddrinfo crash on MacOS X 2770 with port None or "0" and flags AI_NUMERICSERV. 2771 2772 - Issue #18080: When building a C extension module on OS X, if the compiler 2773 is overridden with the CC environment variable, use the new compiler as 2774 the default for linking if LDSHARED is not also overridden. This restores 2775 Distutils behavior introduced in 2.7.3 and inadvertently dropped in 2.7.4. 2776 2777 - Issue #18071: C extension module builds on OS X could fail with TypeError 2778 if the Xcode command line tools were not installed. 2779 2780 - Issue #18113: Fixed a refcount leak in the curses.panel module's 2781 set_userptr() method. Reported by Atsuo Ishimoto. 2782 2783 - Issue #18849: Fixed a Windows-specific tempfile bug where collision with an 2784 existing directory caused mkstemp and related APIs to fail instead of 2785 retrying. Report and fix by Vlad Shcherbina. 2786 2787 - Issue #19400: Prevent extension module build failures with Xcode 5 on OS X 2788 10.8+ when using a universal Python that included a PPC architecture, 2789 such as with a python.org 32-bit-only binary installer. 2790 2791 Tools/Demos 2792 ----------- 2793 2794 - Issue #18873: 2to3 and the findnocoding.py script now detect Python source 2795 code encoding only in comment lines. 2796 2797 - Issue #18817: Fix a resource warning in Lib/aifc.py demo. 2798 2799 - Issue #18439: Make patchcheck work on Windows for ACKS, NEWS. 2800 2801 - Issue #18448: Fix a typo in Demo/newmetaclasses/Eiffel.py. 2802 2803 - Issue #12990: The "Python Launcher" on OSX could not launch python scripts 2804 that have paths that include wide characters. 2805 2806 Build 2807 ----- 2808 2809 - Issue #16067: Add description into MSI file to replace installer's temporary name. 2810 2811 - Issue #18256: Compilation fix for recent AIX releases. Patch by 2812 David Edelsohn. 2813 2814 - Issue #18098: The deprecated OS X Build Applet.app fails to build on 2815 OS X 10.8 systems because the Apple-deprecated QuickDraw headers have 2816 been removed from Xcode 4. Skip building it in this case. 2817 2818 - Issue #1584: Provide options to override default search paths for 2819 Tcl and Tk when building _tkinter. 2820 2821 - Issue #15663: Tcl/Tk 8.5.15 is now included with the OS X 10.6+ 2822 64-bit/32-bit installer for 10.6+. It is no longer necessary 2823 to install a third-party version of Tcl/Tk 8.5 to work around the 2824 problems in the Apple-supplied Tcl/Tk 8.5 shipped in OS X 10.6 2825 and later releases. 2826 2827 - Issue #19019: Change the OS X installer build script to use CFLAGS instead 2828 of OPT for special build options. By setting OPT, some compiler-specific 2829 options like -fwrapv were overridden and thus not used, which could result 2830 in broken interpreters when building with clang. 2831 2832 IDLE 2833 ---- 2834 2835 - Issue #18873: IDLE now detects Python source code encoding only in comment 2836 lines. 2837 2838 - Issue #18988: The "Tab" key now works when a word is already autocompleted. 2839 2840 - Issue #18489: Add tests for SearchEngine. Original patch by Phil Webster. 2841 2842 - Issue #18429: Format / Format Paragraph, now works when comment blocks 2843 are selected. As with text blocks, this works best when the selection 2844 only includes complete lines. 2845 2846 - Issue #18226: Add docstrings and unittests for FormatParagraph.py. 2847 Original patches by Todd Rovito and Phil Webster. 2848 2849 - Issue #18279: Format - Strip trailing whitespace no longer marks a file as 2850 changed when it has not been changed. This fix followed the addition of a 2851 test file originally written by Phil Webster (the issue's main goal). 2852 2853 - Issue #18539: Calltips now work for float default arguments. 2854 2855 - Issue #7136: In the Idle File menu, "New Window" is renamed "New File". 2856 Patch by Tal Einat, Roget Serwy, and Todd Rovito. 2857 2858 - Issue #8515: Set __file__ when run file in IDLE. 2859 Initial patch by Bruce Frederiksen. 2860 2861 - Issue #5492: Avoid traceback when exiting IDLE caused by a race condition. 2862 2863 - Issue #17511: Keep IDLE find dialog open after clicking "Find Next". 2864 Original patch by Sarah K. 2865 2866 - Issue #15392: Create a unittest framework for IDLE. 2867 Preliminary patch by Rajagopalasarma Jayakrishnan 2868 See Lib/idlelib/idle_test/README.txt for how to run Idle tests. 2869 2870 - Issue #14146: Highlight source line while debugging on Windows. 2871 2872 - Issue #17532: Always include Options menu for IDLE on OS X. 2873 Patch by Guilherme Simes. 2874 2875 Tests 2876 ----- 2877 2878 - Issue #18919: Added tests for the sunau module. Unified and extended tests 2879 for audio modules: aifc, sunau and wave. 2880 2881 - Issue #18792: Use "127.0.0.1" or "::1" instead of "localhost" as much as 2882 possible, since "localhost" goes through a DNS lookup under recent Windows 2883 versions. 2884 2885 - Issue #18357: add tests for dictview set difference. 2886 Patch by Fraser Tweedale. 2887 2888 - Issue #11185: Fix test_wait4 under AIX. Patch by Sbastien Sabl. 2889 2890 - Issue #18094: test_uuid no more reports skipped tests as passed. 2891 2892 - Issue #11995: test_pydoc doesn't import all sys.path modules anymore. 2893 2894 Documentation 2895 ------------- 2896 2897 - Issue #18758: Fixed and improved cross-references. 2898 2899 - Issue #18718: datetime documentation contradictory on leap second support. 2900 2901 - Issue #17701: Improving strftime documentation. 2902 2903 - Issue #17844: Refactor a documentation of Python specific encodings. 2904 Add links to encoders and decoders for binary-to-binary codecs. 2905 2906 2907 What's New in Python 2.7.5? 2908 =========================== 2909 2910 *Release date: 2013-05-12* 2911 2912 Core and Builtins 2913 ----------------- 2914 2915 - Issue #15535: Fixed regression in the pickling of named tuples by 2916 removing the __dict__ property introduced in 2.7.4. 2917 2918 - Issue #17857: Prevent build failures with pre-3.5.0 versions of sqlite3, 2919 such as was shipped with Centos 5 and Mac OS X 10.4. 2920 2921 - Issue #17703: Fix a regression where an illegal use of Py_DECREF() after 2922 interpreter finalization can cause a crash. 2923 2924 - Issue #16447: Fixed potential segmentation fault when setting __name__ on a 2925 class. 2926 2927 - Issue #17610: Don't rely on non-standard behavior of the C qsort() function. 2928 2929 Library 2930 ------- 2931 2932 - Issue #17979: Fixed the re module in build with --disable-unicode. 2933 2934 - Issue #17606: Fixed support of encoded byte strings in the XMLGenerator 2935 .characters() and ignorableWhitespace() methods. Original patch by Sebastian 2936 Ortiz Vasquez. 2937 2938 - Issue #16601: Restarting iteration over tarfile no more continues from where 2939 it left off. Patch by Michael Birtwell. 2940 2941 - Issue #16584: in filecomp._cmp, catch IOError as well as os.error. 2942 Patch by Till Maas. 2943 2944 - Issue #17926: Fix dbm.__contains__ on 64-bit big-endian machines. 2945 2946 - Issue #19267: Fix support of multibyte encoding (ex: UTF-16) in the logging 2947 module. 2948 2949 - Issue #17918: When using SSLSocket.accept(), if the SSL handshake failed 2950 on the new socket, the socket would linger indefinitely. Thanks to 2951 Peter Saveliev for reporting. 2952 2953 - Issue #17289: The readline module now plays nicer with external modules 2954 or applications changing the rl_completer_word_break_characters global 2955 variable. Initial patch by Bradley Froehle. 2956 2957 - Issue #12181: select module: Fix struct kevent definition on OpenBSD 64-bit 2958 platforms. Patch by Federico Schwindt. 2959 2960 - Issue #14173: Avoid crashing when reading a signal handler during 2961 interpreter shutdown. 2962 2963 - Issue #16316: mimetypes now recognizes the .xz and .txz (.tar.xz) extensions. 2964 2965 - Issue #17192: Restore the patch for Issue #10309 which was ommitted 2966 in 2.7.4 when updating the bundled version of libffi used by ctypes. 2967 2968 - Issue #17843: Removed test data file that was triggering false-positive virus 2969 warnings with certain antivirus software. 2970 2971 - Issue #17353: Plistlib emitted empty data tags with deeply nested datastructures 2972 2973 - Issue #11714: Use 'with' statements to assure a Semaphore releases a 2974 condition variable. Original patch by Thomas Rachel. 2975 2976 - Issue #17795: Reverted backwards-incompatible change in SysLogHandler with 2977 Unix domain sockets. 2978 2979 - Issue #17555: Fix ForkAwareThreadLock so that size of after fork 2980 registry does not grow exponentially with generation of process. 2981 2982 - Issue #17710: Fix cPickle raising a SystemError on bogus input. 2983 2984 - Issue #17341: Include the invalid name in the error messages from re about 2985 invalid group names. 2986 2987 - Issue #17016: Get rid of possible pointer wraparounds and integer overflows 2988 in the re module. Patch by Nickolai Zeldovich. 2989 2990 - Issue #17536: Add to webbrowser's browser list: xdg-open, gvfs-open, 2991 www-browser, x-www-browser, chromium browsers, iceweasel, iceape. 2992 2993 - Issue #17656: Fix extraction of zip files with unicode member paths. 2994 2995 - Issue #17666: Fix reading gzip files with an extra field. 2996 2997 - Issue #13150, #17512: sysconfig no longer parses the Makefile and config.h 2998 files when imported, instead doing it at build time. This makes importing 2999 sysconfig faster and reduces Python startup time by 20%. 3000 3001 - Issue #13163: Rename operands in smtplib.SMTP._get_socket to correct names; 3002 fixes otherwise misleading output in tracebacks and when when debug is on. 3003 3004 - Issue #17526: fix an IndexError raised while passing code without filename to 3005 inspect.findsource(). Initial patch by Tyler Doyle. 3006 3007 Build 3008 ----- 3009 3010 - Issue #17547: In configure, explicitly pass -Wformat for the benefit for GCC 3011 4.8. 3012 3013 - Issue #17682: Add the _io module to Modules/Setup.dist (commented out). 3014 3015 - Issue #17086: Search the include and library directories provided by the 3016 compiler. 3017 3018 Tests 3019 ----- 3020 3021 - Issue #17928: Fix test_structmembers on 64-bit big-endian machines. 3022 3023 - Issue #17883: Fix buildbot testing of Tkinter on Windows. 3024 Patch by Zachary Ware. 3025 3026 - Issue #7855: Add tests for ctypes/winreg for issues found in IronPython. 3027 Initial patch by Dino Viehland. 3028 3029 - Issue #17712: Fix test_gdb failures on Ubuntu 13.04. 3030 3031 - Issue #17065: Use process-unique key for winreg tests to avoid failures if 3032 test is run multiple times in parallel (eg: on a buildbot host). 3033 3034 IDLE 3035 ---- 3036 3037 - Issue #17838: Allow sys.stdin to be reassigned. 3038 3039 - Issue #14735: Update IDLE docs to omit "Control-z on Windows". 3040 3041 - Issue #17585: Fixed IDLE regression. Now closes when using exit() or quit(). 3042 3043 - Issue #17657: Show full Tk version in IDLE's about dialog. 3044 Patch by Todd Rovito. 3045 3046 - Issue #17613: Prevent traceback when removing syntax colorizer in IDLE. 3047 3048 - Issue #1207589: Backwards-compatibility patch for right-click menu in IDLE. 3049 3050 - Issue #16887: IDLE now accepts Cancel in tabify/untabify dialog box. 3051 3052 - Issue #14254: IDLE now handles readline correctly across shell restarts. 3053 3054 - Issue #17614: IDLE no longer raises exception when quickly closing a file. 3055 3056 - Issue #6698: IDLE now opens just an editor window when configured to do so. 3057 3058 - Issue #8900: Using keyboard shortcuts in IDLE to open a file no longer 3059 raises an exception. 3060 3061 - Issue #6649: Fixed missing exit status in IDLE. Patch by Guilherme Polo. 3062 3063 - Issue #17390: Display Python version on Idle title bar. 3064 Initial patch by Edmond Burnett. 3065 3066 Documentation 3067 ------------- 3068 3069 - Issue #15940: Specify effect of locale on time functions. 3070 3071 - Issue #6696: add documentation for the Profile objects, and improve 3072 profile/cProfile docs. Patch by Tom Pinckney. 3073 3074 3075 What's New in Python 2.7.4? 3076 =========================== 3077 3078 *Release date: 2013-04-06* 3079 3080 Build 3081 ----- 3082 3083 - Issue #17550: Fix the --enable-profiling configure switch. 3084 3085 Core and Builtins 3086 ----------------- 3087 3088 - Issue #15801 (again): With string % formatting, relax the type check for a 3089 mapping such that any type with a __getitem__ can be used on the right hand 3090 side. 3091 3092 IDLE 3093 ---- 3094 3095 - Issue #17625: In IDLE, close the replace dialog after it is used. 3096 3097 Tests 3098 ----- 3099 3100 - Issue #17835: Fix test_io when the default OS pipe buffer size is larger 3101 than one million bytes. 3102 3103 - Issue #17531: Fix tests that thought group and user ids were always the int 3104 type. Also, always allow -1 as a valid group and user id. 3105 3106 - Issue #17533: Fix test_xpickle with older versions of Python 2.5. 3107 3108 Documentation 3109 ------------- 3110 3111 - Issue #17538: Document XML vulnerabilties 3112 3113 3114 What's New in Python 2.7.4 release candidate 1 3115 ============================================== 3116 3117 *Release date: 2013-03-23* 3118 3119 Core and Builtins 3120 ----------------- 3121 3122 - Issue #10211: Buffer objects expose the new buffer interface internally 3123 3124 - Issue #16445: Fixed potential segmentation fault when deleting an exception 3125 message. 3126 3127 - Issue #17275: Corrected class name in init error messages of the C version of 3128 BufferedWriter and BufferedRandom. 3129 3130 - Issue #7963: Fixed misleading error message that issued when object is 3131 called without arguments. 3132 3133 - Issue #5308: Raise ValueError when marshalling too large object (a sequence 3134 with size >= 2**31), instead of producing illegal marshal data. 3135 3136 - Issue #17043: The unicode-internal decoder no longer read past the end of 3137 input buffer. 3138 3139 - Issue #16979: Fix error handling bugs in the unicode-escape-decode decoder. 3140 3141 - Issue #10156: In the interpreter's initialization phase, unicode globals 3142 are now initialized dynamically as needed. 3143 3144 - Issue #16975: Fix error handling bug in the escape-decode decoder. 3145 3146 - Issue #14850: Now a charmap decoder treats U+FFFE as "undefined mapping" 3147 in any mapping, not only in a Unicode string. 3148 3149 - Issue #11461: Fix the incremental UTF-16 decoder. Original patch by 3150 Amaury Forgeot d'Arc. 3151 3152 - Issue #16367: Fix FileIO.readall() on Windows for files larger than 2 GB. 3153 3154 - Issue #15516: Fix a bug in PyString_FromFormat where it failed to properly 3155 ignore errors from a __int__() method. 3156 3157 - Issue #16839: Fix a segfault when calling unicode() on a classic class early 3158 in interpreter initialization. 3159 3160 - Issue #16761: Calling ``int()`` and ``long()`` with *base* argument only 3161 now raises TypeError. 3162 3163 - Issue #16759: Support the full DWORD (unsigned long) range in Reg2Py 3164 when retrieving a REG_DWORD value. This corrects functions like 3165 winreg.QueryValueEx that may have been returning truncated values. 3166 3167 - Issue #14420: Support the full DWORD (unsigned long) range in Py2Reg 3168 when passed a REG_DWORD value. Fixes ValueError in winreg.SetValueEx when 3169 given a long. 3170 3171 - Issue #13863: Work around buggy 'fstat' implementation on Windows / NTFS that 3172 lead to incorrect timestamps (off by one hour) being stored in .pyc files on 3173 some systems. 3174 3175 - Issue #16602: When a weakref's target was part of a long deallocation 3176 chain, the object could remain reachable through its weakref even though 3177 its refcount had dropped to zero. 3178 3179 - Issue #9011: Fix hacky AST code that modified the CST when compiling 3180 a negated numeric literal. 3181 3182 - Issue #16306: Fix multiple error messages when unknown command line 3183 parameters where passed to the interpreter. Patch by Hieu Nguyen. 3184 3185 - Issue #15379: Fix passing of non-BMP characters as integers for the charmap 3186 decoder (already working as unicode strings). Patch by Serhiy Storchaka. 3187 3188 - Issue #16453: Fix equality testing of dead weakref objects. 3189 3190 - Issue #9535: Fix pending signals that have been received but not yet 3191 handled by Python to not persist after os.fork() in the child process. 3192 3193 - Issue #15001: fix segfault on "del sys.modules['__main__']". Patch by Victor 3194 Stinner. 3195 3196 - Issue #5057: the peepholer no longer optimizes subscription on unicode 3197 literals (e.g. u'foo'[0]) in order to produce compatible pyc files between 3198 narrow and wide builds. 3199 3200 - Issue #8401: assigning an int to a bytearray slice (e.g. b[3:4] = 5) now 3201 raises an error. 3202 3203 - Issue #14700: Fix buggy overflow checks for large width and precision 3204 in string formatting operations. 3205 3206 - Issue #16345: Fix an infinite loop when ``fromkeys`` on a dict subclass 3207 received a nonempty dict from the constructor. 3208 3209 - Issue #6074: Ensure cached bytecode files can always be updated by the 3210 user that created them, even when the source file is read-only. 3211 3212 - Issue #14783: Improve int() and long() docstrings and switch docstrings for 3213 unicode(), slice(), range(), and xrange() to use multi-line signatures. 3214 3215 - Issue #16030: Fix overflow bug in computing the `repr` of an xrange object 3216 with large start, step or length. 3217 3218 - Issue #16029: Fix overflow bug occurring when pickling xranges with large 3219 start, step or length. 3220 3221 - Issue #16037: Limit httplib's _read_status() function to work around broken 3222 HTTP servers and reduce memory usage. It's actually a backport of a Python 3223 3.2 fix. Thanks to Adrien Kunysz. 3224 3225 - Issue #16588: Silence unused-but-set warnings in Python/thread_pthread 3226 3227 - Issue #13992: The trashcan mechanism is now thread-safe. This eliminates 3228 sporadic crashes in multi-thread programs when several long deallocator 3229 chains ran concurrently and involved subclasses of built-in container 3230 types. 3231 3232 - Issue #15801: Make sure mappings passed to '%' formatting are actually 3233 subscriptable. 3234 3235 - Issue #15604: Update uses of PyObject_IsTrue() to check for and handle 3236 errors correctly. Patch by Serhiy Storchaka. 3237 3238 - Issue #14579: Fix error handling bug in the utf-16 decoder. Patch by 3239 Serhiy Storchaka. 3240 3241 - Issue #15368: An issue that caused bytecode generation to be 3242 non-deterministic when using randomized hashing (-R) has been fixed. 3243 3244 - Issue #15897: zipimport.c doesn't check return value of fseek(). 3245 Patch by Felipe Cruz. 3246 3247 - Issue #16369: Global PyTypeObjects not initialized with PyType_Ready(...). 3248 3249 - Issue #15033: Fix the exit status bug when modules invoked using -m switch, 3250 return the proper failure return value (1). Patch contributed by Jeff Knupp. 3251 3252 - Issue #12268: File readline, readlines and read() methods no longer lose 3253 data when an underlying read system call is interrupted. IOError is no 3254 longer raised due to a read system call returning EINTR from within these 3255 methods. 3256 3257 - Issue #13512: Create ~/.pypirc securely (CVE-2011-4944). Initial patch by 3258 Philip Jenvey, tested by Mageia and Debian. 3259 3260 - Issue #7719: Make distutils ignore ``.nfs*`` files instead of choking later 3261 on. Initial patch by SilentGhost and Jeff Ramnani. 3262 3263 - Issue #10053: Don't close FDs when FileIO.__init__ fails. Loosely based on 3264 the work by Hirokazu Yamamoto. 3265 3266 - Issue #14775: Fix a potential quadratic dict build-up due to the garbage 3267 collector repeatedly trying to untrack dicts. 3268 3269 - Issue #14494: Fix __future__.py and its documentation to note that 3270 absolute imports are the default behavior in 3.0 instead of 2.7. 3271 Patch by Sven Marnach. 3272 3273 - Issue #14761: Fix potential leak on an error case in the import machinery. 3274 3275 - Issue #14699: Fix calling the classmethod descriptor directly. 3276 3277 - Issue #11603 (again): Setting __repr__ to __str__ now raises a RuntimeError 3278 when repr() or str() is called on such an object. 3279 3280 - Issue #14658: Fix binding a special method to a builtin implementation of a 3281 special method with a different name. 3282 3283 - Issue #14612: Fix jumping around with blocks by setting f_lineno. 3284 3285 - Issue #13889: Check and (if necessary) set FPU control word before calling 3286 any of the dtoa.c string <-> float conversion functions, on MSVC builds of 3287 Python. This fixes issues when embedding Python in a Delphi app. 3288 3289 - Issue #14505: Fix file descriptor leak when deallocating file objects 3290 created with PyFile_FromString(). 3291 3292 - Issue #14474: Save and restore exception state in thread.start_new_thread() 3293 while writing error message if the thread leaves an unhandled exception. 3294 3295 - Issue #13019: Fix potential reference leaks in bytearray.extend(). Patch 3296 by Suman Saha. 3297 3298 - Issue #14378: Fix compiling ast.ImportFrom nodes with a "__future__" string as 3299 the module name that was not interned. 3300 3301 - Issue #14331: Use significantly less stack space when importing modules by 3302 allocating path buffers on the heap instead of the stack. 3303 3304 - Issue #14334: Prevent in a segfault in type.__getattribute__ when it was not 3305 passed strings. Also fix segfaults in the __getattribute__ and __setattr__ 3306 methods of old-style classes. 3307 3308 - Issue #14161: fix the __repr__ of file objects to escape the file name. 3309 3310 - Issue #1469629: Allow cycles through an object's __dict__ slot to be 3311 collected. (For example if ``x.__dict__ is x``). 3312 3313 - Issue #13521: dict.setdefault() now does only one lookup for the given key, 3314 making it "atomic" for many purposes. Patch by Filip Gruszczyski. 3315 3316 - Issue #1602133: on Mac OS X a shared library build (``--enable-shared``) 3317 now fills the ``os.environ`` variable correctly. 3318 3319 - Issue #10538: When using the "s*" code with PyArg_ParseTuple() to fill a 3320 Py_buffer structure with data from an object supporting only the old 3321 PyBuffer interface, a reference to the source objects is now properly added 3322 to the Py_buffer.obj member. 3323 3324 Library 3325 ------- 3326 3327 - Issue #12718: Fix interaction with winpdb overriding __import__ by setting 3328 importer attribute on BaseConfigurator instance. 3329 3330 - Issue #17521: Corrected non-enabling of logger following two calls to 3331 fileConfig(). 3332 3333 - Issue #17508: Corrected MemoryHandler configuration in dictConfig() where 3334 the target handler wasn't configured first. 3335 3336 - Issue #10212: cStringIO and struct.unpack support new buffer objects. 3337 3338 - Issue #12098: multiprocessing on Windows now starts child processes 3339 using the same sys.flags as the current process. Initial patch by 3340 Sergey Mezentsev. 3341 3342 - Issue #8862: Fixed curses cleanup when getkey is interrupted by a signal. 3343 3344 - Issue #9090: When a socket with a timeout fails with EWOULDBLOCK or EAGAIN, 3345 retry the select() loop instead of bailing out. This is because select() 3346 can incorrectly report a socket as ready for reading (for example, if it 3347 received some data with an invalid checksum). 3348 3349 - Issue #1285086: Get rid of the refcounting hack and speed up urllib.unquote(). 3350 3351 - Issue #17368: Fix an off-by-one error in the Python JSON decoder that caused 3352 a failure while decoding empty object literals when object_pairs_hook was 3353 specified. 3354 3355 - Issue #17278: Fix a crash in heapq.heappush() and heapq.heappop() when 3356 the list is being resized concurrently. 3357 3358 - Issue #17018: Make Process.join() retry if os.waitpid() fails with EINTR. 3359 3360 - Issue #14720: sqlite3: Convert datetime microseconds correctly. 3361 Patch by Lowe Thiderman. 3362 3363 - Issue #17225: JSON decoder now counts columns in the first line starting 3364 with 1, as in other lines. 3365 3366 - Issue #7842: backported fix for py_compile.compile() syntax error handling. 3367 3368 - Issue #13153: Tkinter functions now raise TclError instead of ValueError when 3369 a unicode argument contains non-BMP character. 3370 3371 - Issue #9669: Protect re against infinite loops on zero-width matching in 3372 non-greedy repeat. Patch by Matthew Barnett. 3373 3374 - Issue #13169: The maximal repetition number in a regular expression has been 3375 increased from 65534 to 2147483647 (on 32-bit platform) or 4294967294 (on 3376 64-bit). 3377 3378 - Issue #16743: Fix mmap overflow check on 32 bit Windows. 3379 3380 - Issue #11311: StringIO.readline(0) now returns an empty string as all other 3381 file-like objects. 3382 3383 - Issue #16800: tempfile.gettempdir() no longer left temporary files when 3384 the disk is full. Original patch by Amir Szekely. 3385 3386 - Issue #13555: cPickle now supports files larger than 2 GiB. 3387 3388 - Issue #17052: unittest discovery should use self.testLoader. 3389 3390 - Issue #4591: Uid and gid values larger than 2**31 are supported now. 3391 3392 - Issue #17141: random.vonmisesvariate() no more hangs for large kappas. 3393 3394 - Issue #17149: Fix random.vonmisesvariate to always return results in 3395 the range [0, 2*math.pi]. 3396 3397 - Issue #1470548: XMLGenerator now works with UTF-16 and UTF-32 encodings. 3398 3399 - Issue #6975: os.path.realpath() now correctly resolves multiple nested 3400 symlinks on POSIX platforms. 3401 3402 - Issue #7358: cStringIO.StringIO now supports writing to and reading from 3403 a stream larger than 2 GiB on 64-bit systems. 3404 3405 - Issue #10355: In SpooledTemporaryFile class mode and name properties and 3406 xreadlines method now work for unrolled files. encoding and newlines 3407 properties now removed as they have no sense and always produced 3408 AttributeError. 3409 3410 - Issue #16686: Fixed a lot of bugs in audioop module. Fixed crashes in 3411 avgpp(), maxpp() and ratecv(). Fixed an integer overflow in add(), bias(), 3412 and ratecv(). reverse(), lin2lin() and ratecv() no more lose precision for 3413 32-bit samples. max() and rms() no more returns a negative result and 3414 various other functions now work correctly with 32-bit sample -0x80000000. 3415 3416 - Issue #17073: Fix some integer overflows in sqlite3 module. 3417 3418 - Issue #6083: Fix multiple segmentation faults occurred when PyArg_ParseTuple 3419 parses nested mutating sequence. 3420 3421 - Issue #5289: Fix ctypes.util.find_library on Solaris. 3422 3423 - Issue #17106: Fix a segmentation fault in io.TextIOWrapper when an underlying 3424 stream or a decoder produces data of an unexpected type (i.e. when 3425 io.TextIOWrapper initialized with text stream or use bytes-to-bytes codec). 3426 3427 - Issue #13994: Add compatibility alias in distutils.ccompiler for 3428 distutils.sysconfig.customize_compiler. 3429 3430 - Issue #15633: httplib.HTTPResponse is now mark closed when the server 3431 sends less than the advertised Content-Length. 3432 3433 - Issue #15881: Fixed atexit hook in multiprocessing. 3434 3435 - Issue #14340: Upgrade the embedded expat library to version 2.1.0. 3436 3437 - Issue #11159: SAX parser now supports unicode file names. 3438 3439 - Issue #6972: The zipfile module no longer overwrites files outside of 3440 its destination path when extracting malicious zip files. 3441 3442 - Issue #17049: Localized calendar methods now return unicode if a locale 3443 includes an encoding and the result string contains month or weekday (was 3444 regression from Python 2.6). 3445 3446 - Issue #4844: ZipFile now raises BadZipfile when opens a ZIP file with an 3447 incomplete "End of Central Directory" record. Original patch by Guilherme 3448 Polo and Alan McIntyre. 3449 3450 - Issue #15505: `unittest.installHandler` no longer assumes SIGINT handler is 3451 set to a callable object. 3452 3453 - Issue #17051: Fix a memory leak in os.path.isdir() on Windows. Patch by 3454 Robert Xiao. 3455 3456 - Issue #13454: Fix a crash when deleting an iterator created by itertools.tee() 3457 if all other iterators were very advanced before. 3458 3459 - Issue #16992: On Windows in signal.set_wakeup_fd, validate the file 3460 descriptor argument. 3461 3462 - Issue #15861: tkinter now correctly works with lists and tuples containing 3463 strings with whitespaces, backslashes or unbalanced braces. 3464 3465 - Issue #10527: Use poll() instead of select() for multiprocessing pipes. 3466 3467 - Issue #9720: zipfile now writes correct local headers for files larger than 3468 4 GiB. 3469 3470 - Issue #13899: \A, \Z, and \B now correctly match the A, Z, and B literals 3471 when used inside character classes (e.g. '[\A]'). Patch by Matthew Barnett. 3472 3473 - Issue #16398: Optimize deque.rotate() so that it only moves pointers 3474 and doesn't touch the underlying data with increfs and decrefs. 3475 3476 - Issue #15109: Fix regression in sqlite3's iterdump method where it would 3477 die with an encoding error if the database contained string values 3478 containing non-ASCII. (Regression was introduced by fix for 9750). 3479 3480 - Issue #15545: Fix regression in sqlite3's iterdump method where it was 3481 failing if the connection used a row factory (such as sqlite3.Row) that 3482 produced unsortable objects. (Regression was introduced by fix for 9750). 3483 3484 - Issue #16828: Fix error incorrectly raised by bz2.compress(''). Patch by 3485 Martin Packman. 3486 3487 - Issue #9586: Redefine SEM_FAILED on MacOSX to keep compiler happy. 3488 3489 - Issue #10527: make multiprocessing use poll() instead of select() if available. 3490 3491 - Issue #16485: Now file descriptors are closed if file header patching failed 3492 on closing an aifc file. 3493 3494 - Issue #12065: connect_ex() on an SSL socket now returns the original errno 3495 when the socket's timeout expires (it used to return None). 3496 3497 - Issue #16713: Fix the parsing of tel url with params using urlparse module. 3498 3499 - Issue #16443: Add docstrings to regular expression match objects. 3500 Patch by Anton Kasyanov. 3501 3502 - Issue #8853: Allow port to be of type long for socket.getaddrinfo(). 3503 3504 - Issue #16597: In buffered and text IO, call close() on the underlying stream 3505 if invoking flush() fails. 3506 3507 - Issue #15701: Fix HTTPError info method call to return the headers information. 3508 3509 - Issue #16646: ftplib.FTP.makeport() might lose socket error details. 3510 (patch by Serhiy Storchaka) 3511 3512 - Issue #16626: Fix infinite recursion in glob.glob() on Windows when the 3513 pattern contains a wildcard in the drive or UNC path. Patch by Serhiy 3514 Storchaka. 3515 3516 - Issue #16298: In HTTPResponse.read(), close the socket when there is no 3517 Content-Length and the incoming stream is finished. Patch by Eran 3518 Rundstein. 3519 3520 - Issue #16248: Disable code execution from the user's home directory by 3521 tkinter when the -E flag is passed to Python. Patch by Zachary Ware. 3522 3523 - Issue #16628: Fix a memory leak in ctypes.resize(). 3524 3525 - Issue #13614: Fix setup.py register failure with invalid rst in description. 3526 Patch by Julien Courteau and Pierre Paul Lefebvre. 3527 3528 - Issue #10182: The re module doesn't truncate indices to 32 bits anymore. 3529 Patch by Serhiy Storchaka. 3530 3531 - Issue #16573: In 2to3, treat enumerate() like a consuming call, so superfluous 3532 list() calls aren't added to filter(), map(), and zip() which are directly 3533 passed enumerate(). 3534 3535 - Issue #1160: Fix compiling large regular expressions on UCS2 builds. 3536 Patch by Serhiy Storchaka. 3537 3538 - Issue #14313: zipfile now raises NotImplementedError when the compression 3539 type is unknown. 3540 3541 - Issue #16408: Fix file descriptors not being closed in error conditions 3542 in the zipfile module. Patch by Serhiy Storchaka. 3543 3544 - Issue #16327: The subprocess module no longer leaks file descriptors 3545 used for stdin/stdout/stderr pipes to the child when fork() fails. 3546 3547 - Issue #14396: Handle the odd rare case of waitpid returning 0 when not 3548 expected in subprocess.Popen.wait(). 3549 3550 - Issue #16411: Fix a bug where zlib.decompressobj().flush() might try to access 3551 previously-freed memory. Patch by Serhiy Storchaka. 3552 3553 - Issue #16350: zlib.decompressobj().decompress() now accumulates data from 3554 successive calls after EOF in unused_data, instead of only saving the argument 3555 to the last call. decompressobj().flush() now correctly sets unused_data and 3556 unconsumed_tail. A bug in the handling of MemoryError when setting the 3557 unconsumed_tail attribute has also been fixed. Patch by Serhiy Storchaka. 3558 3559 - Issue #12759: sre_parse now raises a proper error when the name of the group 3560 is missing. Initial patch by Serhiy Storchaka. 3561 3562 - Issue #16152: fix tokenize to ignore whitespace at the end of the code when 3563 no newline is found. Patch by Ned Batchelder. 3564 3565 - Issue #16230: Fix a crash in select.select() when one of the lists changes 3566 size while iterated on. Patch by Serhiy Storchaka. 3567 3568 - Issue #16228: Fix a crash in the json module where a list changes size 3569 while it is being encoded. Patch by Serhiy Storchaka. 3570 3571 - Issue #14897: Enhance error messages of struct.pack and 3572 struct.pack_into. Patch by Matti Mki. 3573 3574 - Issue #12890: cgitb no longer prints spurious <p> tags in text 3575 mode when the logdir option is specified. 3576 3577 - Issue #14398: Fix size truncation and overflow bugs in the bz2 module. 3578 3579 - Issue #5148: Ignore 'U' in mode given to gzip.open() and gzip.GzipFile(). 3580 3581 - Issue #16220: wsgiref now always calls close() on an iterable response. 3582 Patch by Brent Tubbs. 3583 3584 - Issue #16461: Wave library should be able to deal with 4GB wav files, 3585 and sample rate of 44100 Hz. 3586 3587 - Issue #16176: Properly identify Windows 8 via platform.platform() 3588 3589 - Issue #15756: subprocess.poll() now properly handles errno.ECHILD to 3590 return a returncode of 0 when the child has already exited or cannot 3591 be waited on. 3592 3593 - Issue #12376: Pass on parameters in TextTestResult.__init__ super call 3594 3595 - Issue #15222: Insert blank line after each message in mbox mailboxes 3596 3597 - Issue #16013: Fix CSV Reader parsing issue with ending quote characters. 3598 Patch by Serhiy Storchaka. 3599 3600 - Issue #15421: fix an OverflowError in Calendar.itermonthdates() after 3601 datetime.MAXYEAR. Patch by Cdric Krier. 3602 3603 - Issue #15970: xml.etree.ElementTree now serializes correctly the empty HTML 3604 elements 'meta' and 'param'. 3605 3606 - Issue #15676: Now "mmap" check for empty files before doing the 3607 offset check. Patch by Steven Willis. 3608 3609 - Issue #15340: Fix importing the random module when /dev/urandom cannot 3610 be opened. This was a regression caused by the hash randomization patch. 3611 3612 - Issue #15841: The readable(), writable() and seekable() methods of 3613 io.BytesIO and io.StringIO objects now raise ValueError when the object has 3614 been closed. Patch by Alessandro Moura. 3615 3616 - Issue #16112: platform.architecture does not correctly escape argument to 3617 /usr/bin/file. Patch by David Benjamin. 3618 3619 - Issue #12776,#11839: call argparse type function (specified by add_argument) 3620 only once. Before, the type function was called twice in the case where the 3621 default was specified and the argument was given as well. This was 3622 especially problematic for the FileType type, as a default file would always 3623 be opened, even if a file argument was specified on the command line. 3624 3625 - Issue #15906: Fix a regression in argparse caused by the preceding change, 3626 when action='append', type='str' and default=[]. 3627 3628 - Issue #13370: Ensure that ctypes works on Mac OS X when Python is 3629 compiled using the clang compiler 3630 3631 - Issue #15544: Fix Decimal.__float__ to work with payload-carrying NaNs. 3632 3633 - Issue #15199: Fix JavaScript's default MIME type to application/javascript. 3634 Patch by Bohuslav Kabrda. 3635 3636 - Issue #15477: In cmath and math modules, add workaround for platforms whose 3637 system-supplied log1p function doesn't respect signs of zeros. 3638 3639 - Issue #11062: Fix adding a message from file to Babyl mailbox. 3640 3641 - Issue #15646: Prevent equivalent of a fork bomb when using 3642 multiprocessing on Windows without the "if __name__ == '__main__'" 3643 idiom. 3644 3645 - Issue #15567: Fix NameError when running threading._test 3646 3647 - Issue #15424: Add a __sizeof__ implementation for array objects. 3648 Patch by Ludwig Hhne. 3649 3650 - Issue #15538: Fix compilation of the getnameinfo() / getaddrinfo() 3651 emulation code. Patch by Philipp Hagemeister. 3652 3653 - Issue #12288: Consider '0' and '0.0' as valid initialvalue 3654 for tkinter SimpleDialog. 3655 3656 - Issue #15489: Add a __sizeof__ implementation for BytesIO objects. 3657 Patch by Serhiy Storchaka. 3658 3659 - Issue #15469: Add a __sizeof__ implementation for deque objects. 3660 Patch by Serhiy Storchaka. 3661 3662 - Issue #15487: Add a __sizeof__ implementation for buffered I/O objects. 3663 Patch by Serhiy Storchaka. 3664 3665 - Issue #15512: Add a __sizeof__ implementation for parser. 3666 Patch by Serhiy Storchaka. 3667 3668 - Issue #15402: An issue in the struct module that caused sys.getsizeof to 3669 return incorrect results for struct.Struct instances has been fixed. 3670 Initial patch by Serhiy Storchaka. 3671 3672 - Issue #15232: when mangle_from is True, email.Generator now correctly mangles 3673 lines that start with 'From ' that occur in a MIME preamble or epilog. 3674 3675 - Issue #13922: argparse no longer incorrectly strips '--'s that appear 3676 after the first one. 3677 3678 - Issue #12353: argparse now correctly handles null argument values. 3679 3680 - Issue #6493: An issue in ctypes on Windows that caused structure bitfields 3681 of type ctypes.c_uint32 and width 32 to incorrectly be set has been fixed. 3682 3683 - Issue #14635: telnetlib will use poll() rather than select() when possible 3684 to avoid failing due to the select() file descriptor limit. 3685 3686 - Issue #15247: FileIO now raises an error when given a file descriptor 3687 pointing to a directory. 3688 3689 - Issue #14591: Fix bug in Random.jumpahead that could produce an invalid 3690 Mersenne Twister state on 64-bit machines. 3691 3692 - Issue #5346: Preserve permissions of mbox, MMDF and Babyl mailbox 3693 files on flush(). 3694 3695 - Issue #15219: Fix a reference leak when hashlib.new() is called with 3696 invalid parameters. 3697 3698 - Issue #9559: If messages were only added, a new file is no longer 3699 created and renamed over the old file when flush() is called on an 3700 mbox, MMDF or Babyl mailbox. 3701 3702 - Issue #14653: email.utils.mktime_tz() no longer relies on system 3703 mktime() when timezone offest is supplied. 3704 3705 - Issue #6056: Make multiprocessing use setblocking(True) on the 3706 sockets it uses. Original patch by J Derek Wilson. 3707 3708 - Issue #15101: Make pool finalizer avoid joining current thread. 3709 3710 - Issue #15054: A bug in tokenize.tokenize that caused string literals 3711 with 'b' and 'br' prefixes to be incorrectly tokenized has been fixed. 3712 Patch by Serhiy Storchaka. 3713 3714 - Issue #15036: Mailbox no longer throws an error if a flush is done 3715 between operations when removing or changing multiple items in mbox, 3716 MMDF, or Babyl mailboxes. 3717 3718 - Issue #10133: Make multiprocessing deallocate buffer if socket read 3719 fails. Patch by Hallvard B Furuseth. 3720 3721 - Issue #13854: Make multiprocessing properly handle non-integer 3722 non-string argument to SystemExit. 3723 3724 - Issue #12157: Make pool.map() empty iterables correctly. Initial 3725 patch by mouad. 3726 3727 - Issue #14036: Add an additional check to validate that port in urlparse does 3728 not go in illegal range and returns None. 3729 3730 - Issue #14888: Fix misbehaviour of the _md5 module when called on data 3731 larger than 2**32 bytes. 3732 3733 - Issue #15908: Fix misbehaviour of the sha1 module when called on data 3734 larger than 2**32 bytes. 3735 3736 - Issue #15910: Fix misbehaviour of _md5 and sha1 modules when "updating" 3737 on data larger than 2**32 bytes. 3738 3739 - Issue #14875: Use float('inf') instead of float('1e66666') in the json module. 3740 3741 - Issue #14572: Prevent build failures with pre-3.5.0 versions of 3742 sqlite3, such as was shipped with Centos 5 and Mac OS X 10.4. 3743 3744 - Issue #14426: Correct the Date format in Expires attribute of Set-Cookie 3745 Header in Cookie.py. 3746 3747 - Issue #14721: Send proper header, Content-length: 0 when the body is an empty 3748 string ''. Initial Patch contributed by Arve Knudsen. 3749 3750 - Issue #14072: Fix parsing of 'tel' URIs in urlparse by making the check for 3751 ports stricter. 3752 3753 - Issue #9374: Generic parsing of query and fragment portions of url for any 3754 scheme. Supported both by RFC3986 and RFC2396. 3755 3756 - Issue #14798: Fix the functions in pyclbr to raise an ImportError 3757 when the first part of a dotted name is not a package. Patch by 3758 Xavier de Gaye. 3759 3760 - Issue #14832: fixed the order of the argument references in the error 3761 message produced by unittest's assertItemsEqual. 3762 3763 - Issue #14829: Fix bisect issues under 64-bit Windows. 3764 3765 - Issue #14777: tkinter may return undecoded UTF-8 bytes as a string when 3766 accessing the Tk clipboard. Modify clipboard_get() to first request type 3767 UTF8_STRING when no specific type is requested in an X11 windowing 3768 environment, falling back to the current default type STRING if that fails. 3769 Original patch by Thomas Kluyver. 3770 3771 - Issue #12541: Be lenient with quotes around Realm field with HTTP Basic 3772 Authentation in urllib2. 3773 3774 - Issue #14662: Prevent shutil failures on OS X when destination does not 3775 support chflag operations. Patch by Hynek Schlawack. 3776 3777 - Issue #14157: Fix time.strptime failing without a year on February 29th. 3778 Patch by Hynek Schlawack. 3779 3780 - Issue #14768: os.path.expanduser('~/a') doesn't work correctly when HOME is '/'. 3781 3782 - Issue #13183: Fix pdb skipping frames after hitting a breakpoint and running 3783 step. Patch by Xavier de Gaye. 3784 3785 - Issue #14664: It is now possible to use @unittest.skip{If,Unless} on a 3786 test class that doesn't inherit from TestCase (i.e. a mixin). 3787 3788 - Issue #14160: TarFile.extractfile() failed to resolve symbolic links when 3789 the links were not located in an archive subdirectory. 3790 3791 - Issue #14638: pydoc now treats non-string __name__ values as if they 3792 were missing, instead of raising an error. 3793 3794 - Issue #13684: Fix httplib tunnel issue of infinite loops for certain sites 3795 which send EOF without trailing \r\n. 3796 3797 - Issue #14308: Fix an exception when a "dummy" thread is in the threading 3798 module's active list after a fork(). 3799 3800 - Issue #14538: HTMLParser can now parse correctly start tags that contain 3801 a bare '/'. 3802 3803 - Issue #14452: SysLogHandler no longer inserts a UTF-8 BOM into the message. 3804 3805 - Issue #13496: Fix potential overflow in bisect.bisect algorithm when applied 3806 to a collection of size > sys.maxsize / 2. 3807 3808 - Issue #14399: zipfile now recognizes that the archive has been modified even 3809 if only the comment is changed. As a consequence of this fix, ZipFile is now 3810 a new style class. 3811 3812 - Issue #7978: SocketServer now restarts the select() call when EINTR is 3813 returned. This avoids crashing the server loop when a signal is received. 3814 Patch by Jerzy Kozera. 3815 3816 - Issue #10340: asyncore - properly handle EINVAL in dispatcher constructor on 3817 OSX; avoid to call handle_connect in case of a disconnected socket which 3818 was not meant to connect. 3819 3820 - Issue #12757: Fix the skipping of doctests when python is run with -OO so 3821 that it works in unittest's verbose mode as well as non-verbose mode. 3822 3823 - Issue #13694: asynchronous connect in asyncore.dispatcher does not set addr 3824 attribute. 3825 3826 - Issue #10484: Fix the CGIHTTPServer's PATH_INFO handling problem. 3827 3828 - Issue #11199: Fix the with urllib which hangs on particular ftp urls. 3829 3830 - Issue #14252: Fix subprocess.Popen.terminate() to not raise an error under 3831 Windows when the child process has already exited. 3832 3833 - Issue #14195: An issue that caused weakref.WeakSet instances to incorrectly 3834 return True for a WeakSet instance 'a' in both 'a < a' and 'a > a' has been 3835 fixed. 3836 3837 - Issue #14159: Fix the len() of weak sets to return a better approximation 3838 when some objects are dead or dying. Moreover, the implementation is now 3839 O(1) rather than O(n). 3840 3841 - Issue #2945: Make the distutils upload command aware of bdist_rpm products. 3842 3843 - Issue #6884: Fix long-standing bugs with MANIFEST.in parsing in distutils 3844 on Windows. 3845 3846 - Issue #16441: Avoid excessive memory usage working with large gzip 3847 files using the gzip module. 3848 3849 - Issue #15782: Prevent compile errors of OS X Carbon modules _Fm, _Qd, and 3850 _Qdoffs when compiling with an SDK of 10.7 or later. The OS X APIs they 3851 wrap have long been deprecated and have now been removed with 10.7. 3852 These modules were already empty for 64-bit builds and have been removed 3853 in Python 3. 3854 3855 Extension Modules 3856 ----------------- 3857 3858 - Issue #17477: Update the bsddb module to pybsddb 5.3.0, supporting 3859 db-5.x, and dropping support for db-4.1 and db-4.2. 3860 3861 - Issue #17192: Update the ctypes module's libffi to v3.0.13. This 3862 specifically addresses a stack misalignment issue on x86 and issues on 3863 some more recent platforms. 3864 3865 - Issue #12268: The io module file object write methods no longer abort early 3866 when a write system calls is interrupted (EINTR). 3867 3868 - Fix the leak of a dict in the time module when used in an embedded 3869 interpreter that is repeatedly initialized and shutdown and reinitialized. 3870 3871 - Issue #12268: File readline, readlines and read or readall methods 3872 no longer lose data when an underlying read system call is interrupted 3873 within an io module object. IOError is no longer raised due to a read 3874 system call returning EINTR from within these methods. 3875 3876 - Issue #16012: Fix a regression in pyexpat. The parser's UseForeignDTD() 3877 method doesn't require an argument again. 3878 3879 - Issue #13590: OS X Xcode 4 - improve support for universal extension modules 3880 In particular, fix extension module build failures when trying to use 3881 32-bit-only installer Pythons on systems with Xcode 4 (currently 3882 OS X 10.8, 10.7, and optionally 10.6). 3883 * Backport 3.3.0 fixes to 2.7 branch (for release in 2.7.4) 3884 * Since Xcode 4 removes ppc support, extension module builds now 3885 check for ppc compiler support and by default remove ppc and 3886 ppc64 archs when they are not available. 3887 * Extension module builds now revert to using system installed 3888 headers and libs (/usr and /System/Library) if the SDK used 3889 to build the interpreter is not installed or has moved. 3890 * Try to avoid building extension modules with deprecated 3891 and problematic Apple llvm-gcc compiler. If original compiler 3892 is not available, use clang instead by default. 3893 3894 IDLE 3895 ---- 3896 3897 - IDLE was displaying spurious SystemExit tracebacks when running scripts 3898 that terminated by raising SystemExit (i.e. unittest and turtledemo). 3899 3900 - Issue #9290: In IDLE the sys.std* streams now implement io.TextIOBase 3901 interface and support all mandatory methods and properties. 3902 3903 - Issue #16829: IDLE printing no longer fails if there are spaces or other 3904 special characters in the file path. 3905 3906 - Issue #16819: IDLE method completion now correctly works for unicode literals. 3907 3908 - Issue #16504: IDLE now catches SyntaxErrors raised by tokenizer. Patch by 3909 Roger Serwy. 3910 3911 - Issue #1207589: Add Cut/Copy/Paste items to IDLE right click Context Menu. 3912 Patch by Todd Rovito. 3913 3914 - Issue #13052: Fix IDLE crashing when replace string in Search/Replace dialog 3915 ended with '\'. Patch by Roger Serwy. 3916 3917 - Issue #9803: Don't close IDLE on saving if breakpoint is open. 3918 Patch by Roger Serwy. 3919 3920 - Issue #14958: Change IDLE systax highlighting to recognize all string and byte 3921 literals currently supported in Python 2.7. 3922 3923 - Issue #14962: Update text coloring in IDLE shell window after changing 3924 options. Patch by Roger Serwy. 3925 3926 - Issue #10997: Prevent a duplicate entry in IDLE's "Recent Files" menu. 3927 3928 - Issue #12510: Attempting to get invalid tooltip no longer closes IDLE. 3929 Original patch by Roger Serwy. 3930 3931 - Issue #10365: File open dialog now works instead of crashing 3932 even when parent window is closed. Patch by Roger Serwy. 3933 3934 - Issue #14876: Use user-selected font for highlight configuration. 3935 Patch by Roger Serwy. 3936 3937 - Issue #14409: IDLE now properly executes commands in the Shell window 3938 when it cannot read the normal config files on startup and 3939 has to use the built-in default key bindings. 3940 There was previously a bug in one of the defaults. 3941 3942 - Issue #3573: IDLE hangs when passing invalid command line args 3943 (directory(ies) instead of file(s)) (Patch by Guilherme Polo) 3944 3945 - Issue #5219: Prevent event handler cascade in IDLE. 3946 3947 - Issue #15318: Prevent writing to sys.stdin. 3948 3949 - Issue #13532, #15319: Check that arguments to sys.stdout.write are strings. 3950 3951 - Issue #10365: File open dialog now works instead of crashing even when 3952 parent window is closed while dialog is open. 3953 3954 - Issue #14018: Update checks for unstable system Tcl/Tk versions on OS X 3955 to include versions shipped with OS X 10.7 and 10.8 in addition to 10.6. 3956 3957 - Issue #15853: Prevent IDLE crash on OS X when opening Preferences menu 3958 with certain versions of Tk 8.5. Initial patch by Kevin Walzer. 3959 3960 Tests 3961 ----- 3962 3963 - Issue #16702: test_urllib2_localnet tests now correctly ignores proxies for 3964 localhost tests. 3965 3966 - Issue #13447: Add a test file to host regression tests for bugs in the 3967 scripts found in the Tools directory. 3968 3969 - Issue #11420: make test suite pass with -B/DONTWRITEBYTECODE set. 3970 Initial patch by Thomas Wouters. 3971 3972 - Issue #17299: Add test coverage for cPickle with file objects and general IO 3973 objects. Original patch by Aman Shah. 3974 3975 - Issue #11963: remove human verification from test_parser and test_subprocess. 3976 3977 - Issue #17249: convert a test in test_capi to use unittest and reap threads. 3978 3979 - We now run both test_email.py and test_email_renamed.py when running the 3980 test_email regression test. test_email_renamed contains some tests that 3981 test_email does not. 3982 3983 - Issue #17041: Fix testing when Python is configured with the 3984 --without-doc-strings option. 3985 3986 - Issue #15539: Added regression tests for Tools/scripts/pindent.py. 3987 3988 - Issue #15324: Fix regrtest parsing of --fromfile and --randomize options. 3989 3990 - Issue #16618: Add more regression tests for glob. 3991 Patch by Serhiy Storchaka. 3992 3993 - Issue #16664: Add regression tests for glob's behaviour concerning entries 3994 starting with a ".". Patch by Sebastian Kreft. 3995 3996 - Issue #15747: ZFS always returns EOPNOTSUPP when attempting to set the 3997 UF_IMMUTABLE flag (via either chflags or lchflags); refactor affected 3998 tests in test_posix.py to account for this. 3999 4000 - Issue #16549: Add tests for json.tools. Initial patch by Berker Peksag 4001 and Serhiy Storchaka. 4002 4003 - Issue #16559: Add more tests for the json module, including some from the 4004 official test suite at json.org. Patch by Serhiy Storchaka. 4005 4006 - Issue #16274: Fix test_asyncore on Solaris. Patch by Giampaolo Rodola'. 4007 4008 - Issue #15040: Close files in mailbox tests for PyPy compatibility. 4009 Original patch by Matti Picus. 4010 4011 - Issue #15802: Fix test logic in TestMaildir.test_create_tmp. Patch 4012 by Serhiy Storchaka. 4013 4014 - Issue #15765: Extend a previous fix to Solaris and OpenBSD for quirky 4015 getcwd() behaviour (issue #9185) to NetBSD as well. 4016 4017 - Issue #15615: Add some tests for the json module's handling of invalid 4018 input data. Patch by Kushal Das. 4019 4020 - Issue #15496: Add directory removal helpers for tests on Windows. 4021 Patch by Jeremy Kloth. 4022 4023 - Issue #15043: test_gdb is now skipped entirely if gdb security settings 4024 block loading of the gdb hooks 4025 4026 - Issue #14589: Update certificate chain for sha256.tbs-internet.com, fixing 4027 a test failure in test_ssl. 4028 4029 - Issue #16698: Skip posix test_getgroups when built with OS X 4030 deployment target prior to 10.6. 4031 4032 - Issue #17111: Prevent test_surrogates (test_fileio) failure on OS X 10.4. 4033 4034 Build 4035 ----- 4036 4037 - Issue #17425: Build against openssl 0.9.8y on Windows. 4038 4039 - Issue #16004: Add `make touch`. 4040 4041 - Issue #5033: Fix building of the sqlite3 extension module when the 4042 SQLite library version has "beta" in it. Patch by Andreas Pelme. 4043 4044 - Issue #17228: Fix building without pymalloc. 4045 4046 - Issue #17086: Backport the patches from the 3.3 branch to cross-build 4047 the package. 4048 4049 - Issue #3754: fix typo in pthread AC_CACHE_VAL. 4050 4051 - Issue #17029: Let h2py search the multiarch system include directory. 4052 4053 - Issue #16953: Fix socket module compilation on platforms with 4054 HAVE_BROKEN_POLL. Patch by Jeffrey Armstrong. 4055 4056 - Issue #16836: Enable IPv6 support even if IPv6 is disabled on the build host. 4057 4058 - Issue #15923: fix a mistake in asdl_c.py that resulted in a TypeError after 4059 2801bf875a24 (see #15801). 4060 4061 - Issue #11715: Fix multiarch detection without having Debian development 4062 tools (dpkg-dev) installed. 4063 4064 - Issue #15819: Make sure we can build Python out-of-tree from a readonly 4065 source directory. (Somewhat related to Issue #9860.) 4066 4067 - Issue #15822: Ensure 2to3 grammar pickles are properly installed. 4068 4069 - Issue #15560: Fix building _sqlite3 extension on OS X with an SDK. 4070 4071 - Issue #8847: Disable COMDAT folding in Windows PGO builds. 4072 4073 - Issue #14018: Fix OS X Tcl/Tk framework checking when using OS X SDKs. 4074 4075 - Issue #16256: OS X installer now sets correct permissions for doc directory. 4076 4077 - Issue #8767: Restore building with --disable-unicode. 4078 Patch by Stefano Taschini. 4079 4080 - Build against bzip2 1.0.6 and openssl 0.9.8x on Windows. 4081 4082 - Issue #14557: Fix extensions build on HP-UX. Patch by Adi Roiban. 4083 4084 - Issue #14437: Fix building the _io module under Cygwin. 4085 4086 - Issue #15587: Enable Tk high-resolution text rendering on Macs with 4087 Retina displays. Applies to Tkinter apps, such as IDLE, on OS X 4088 framework builds linked with Cocoa Tk 8.5. 4089 4090 - Issue #17161: make install now also installs a python2 and python man page. 4091 4092 - Issue #16848: python-config now returns proper --ldflags values for OS X 4093 framework builds. 4094 4095 Tools/Demos 4096 ----------- 4097 4098 - Issue #17156: pygettext.py now correctly escapes non-ascii characters. 4099 4100 - Issue #15539: Fix a number of bugs in Tools/scripts/pindent.py. Now 4101 pindent.py works with a "with" statement. pindent.py no longer produces 4102 improper indentation. pindent.py now works with continued lines broken after 4103 "class" or "def" keywords and with continuations at the start of line. 4104 4105 - Issue #16476: Fix json.tool to avoid including trailing whitespace. 4106 4107 - Issue #13301: use ast.literal_eval() instead of eval() in Tools/i18n/msgfmt.py. 4108 Patch by Serhiy Storchaka. 4109 4110 Documentation 4111 ------------- 4112 4113 - Issue #15041: Update "see also" list in tkinter documentation. 4114 4115 - Issue #17412: update 2.7 Doc/make.bat to also use sphinx-1.0.7. 4116 4117 - Issue #17047: remove doubled words in docs and docstrings 4118 reported by Serhiy Storchaka and Matthew Barnett. 4119 4120 - Issue #16406: combine the pages for uploading and registering to PyPI. 4121 4122 - Issue #16403: Document how distutils uses the maintainer field in 4123 PKG-INFO. Patch by Jyrki Pulliainen. 4124 4125 - Issue #16695: Document how glob handles filenames starting with a 4126 dot. Initial patch by Jyrki Pulliainen. 4127 4128 - Issue #8890: Stop advertising an insecure practice by replacing uses 4129 of the /tmp directory with better alternatives in the documentation. 4130 Patch by Geoff Wilson. 4131 4132 - Issue #17203: add long option names to unittest discovery docs. 4133 4134 - Issue #13094: add "Why do lambdas defined in a loop with different values 4135 all return the same result?" programming FAQ. 4136 4137 - Issue #14901: Update portions of the Windows FAQ. 4138 Patch by Ashish Nitin Patil. 4139 4140 - Issue #15990: Improve argument/parameter documentation. 4141 4142 - Issue #16400: Update the description of which versions of a given package 4143 PyPI displays. 4144 4145 - Issue #15677: Document that zlib and gzip accept a compression level of 0 to 4146 mean 'no compression'. Patch by Brian Brazil. 4147 4148 - Issue #8040: added a version switcher to the documentation. Patch by 4149 Yury Selivanov. 4150 4151 - Issue #16115: Improve subprocess.Popen() documentation around args, shell, 4152 and executable arguments. 4153 4154 - Issue #15979: Improve timeit documentation. 4155 4156 - Issue #16036: Improve documentation of built-in int()'s signature and 4157 arguments. 4158 4159 - Issue #15935: Clarification of argparse docs, re: add_argument() type and 4160 default arguments. Patch contributed by Chris Jerdonek. 4161 4162 - Issue #13769: Document the effect of ensure_ascii to the return type 4163 of JSON decoding functions. 4164 4165 - Issue #14880: Fix kwargs notation in csv.reader, .writer & .register_dialect. 4166 Patch by Chris Rebert. 4167 4168 - Issue #14674: Add a discussion of the json module's standard compliance. 4169 Patch by Chris Rebert. 4170 4171 - Issue #15630: Add an example for "continue" stmt in the tutorial. Patch by 4172 Daniel Ellis. 4173 4174 - Issue #13557: Clarify effect of giving two different namespaces to exec or 4175 execfile(). 4176 4177 - Issue #14034: added the argparse tutorial. 4178 4179 - Issue #15250: Document that filecmp.dircmp compares files shallowly. Patch 4180 contributed by Chris Jerdonek. 4181 4182 - Issue #15116: Remove references to appscript as it is no longer being 4183 supported. 4184 4185 4186 What's New in Python 2.7.3 release candidate 2? 4187 =============================================== 4188 4189 *Release date: 2012-03-17* 4190 4191 Library 4192 ------- 4193 4194 - Issue #14234: CVE-2012-0876: Randomize hashes of xml attributes in the hash 4195 table internal to the pyexpat module's copy of the expat library to avoid a 4196 denial of service due to hash collisions. Patch by David Malcolm with some 4197 modifications by the expat project. 4198 4199 4200 What's New in Python 2.7.3 release candidate 1? 4201 =============================================== 4202 4203 *Release date: 2012-02-23* 4204 4205 Core and Builtins 4206 ----------------- 4207 4208 - Issue #13020: Fix a reference leak when allocating a structsequence object 4209 fails. Patch by Suman Saha. 4210 4211 - Issue #13703: oCERT-2011-003: add -R command-line option and PYTHONHASHSEED 4212 environment variable, to provide an opt-in way to protect against denial of 4213 service attacks due to hash collisions within the dict and set types. Patch 4214 by David Malcolm, based on work by Victor Stinner. 4215 4216 - Issue #11235: Fix OverflowError when trying to import a source file whose 4217 modification time doesn't fit in a 32-bit timestamp. 4218 4219 - Issue #11638: Unicode strings in 'name' and 'version' no longer cause 4220 UnicodeDecodeErrors. 4221 4222 - Fix the fix for issue #12149: it was incorrect, although it had the side 4223 effect of appearing to resolve the issue. Thanks to Mark Shannon for 4224 noticing. 4225 4226 - Issue #13546: Fixed an overflow issue that could crash the intepreter when 4227 calling sys.setrecursionlimit((1<<31)-1). 4228 4229 - Issue #13333: The UTF-7 decoder now accepts lone surrogates (the encoder 4230 already accepts them). 4231 4232 - Issue #10519: Avoid unnecessary recursive function calls in 4233 setobject.c. 4234 4235 - Issue #13268: Fix the assert statement when a tuple is passed as the message. 4236 4237 - Issue #13018: Fix reference leaks in error paths in dictobject.c. 4238 Patch by Suman Saha. 4239 4240 - Issue #12604: VTRACE macro expanded to no-op in _sre.c to avoid compiler 4241 warnings. Patch by Josh Triplett and Petri Lehtinen. 4242 4243 - Issue #7833: Extension modules built using distutils on Windows will no 4244 longer include a "manifest" to prevent them failing at import time in some 4245 embedded situations. 4246 4247 - Issue #13186: Fix __delitem__ on old-style instances when invoked through 4248 PySequence_DelItem. 4249 4250 - Issue #13156: Revert the patch for issue #10517 (reset TLS upon fork()), 4251 which was only relevant for the native pthread TLS implementation. 4252 4253 - Issue #7732: Fix a crash on importing a module if a directory has the same 4254 name than a Python module (e.g. "__init__.py"): don't close the file twice. 4255 4256 - Issue #12973: Fix overflow checks that invoked undefined behaviour in 4257 int.__pow__. These overflow checks were causing int.__pow__ to produce 4258 incorrect results with recent versions of Clang, as a result of the 4259 compiler optimizing the check away. Also fix similar overflow checks 4260 in list_repeat (listobject.c) and islice_next (itertoolsmodule.c). These 4261 bugs caused test failures with recent versions of Clang. 4262 4263 - Issue #12266: Fix str.capitalize() to correctly uppercase/lowercase 4264 titlecased and cased non-letter characters. 4265 4266 - Issues #12610 and #12609: Verify that user generated AST has correct string 4267 and identifier types before compiling. 4268 4269 - Issue #11627: Fix segfault when __new__ on an exception returns a 4270 non-exception class. 4271 4272 - Issue #12149: Update the method cache after a type's dictionnary gets 4273 cleared by the garbage collector. This fixes a segfault when an instance 4274 and its type get caught in a reference cycle, and the instance's 4275 deallocator calls one of the methods on the type (e.g. when subclassing 4276 IOBase). Diagnosis and patch by Davide Rizzo. 4277 4278 - Issue #12501: Remove Py3k warning for callable. callable() is supported 4279 again in Python 3.2. 4280 4281 - Issue #9611, #9015: FileIO.read(), FileIO.readinto(), FileIO.write() and 4282 os.write() clamp the length to INT_MAX on Windows. 4283 4284 - Issue #1195: my_fgets() now always clears errors before calling fgets(). Fix 4285 the following case: sys.stdin.read() stopped with CTRL+d (end of file), 4286 raw_input() interrupted by CTRL+c. 4287 4288 - Issue #10860: httplib now correctly handles an empty port after port 4289 delimiter in URLs. 4290 4291 - dict_proxy objects now display their contents rather than just the class 4292 name. 4293 4294 Library 4295 ------- 4296 4297 - Issue #8033: sqlite3: Fix 64-bit integer handling in user functions 4298 on 32-bit architectures. Initial patch by Philippe Devalkeneer. 4299 4300 - HTMLParser is now able to handle slashes in the start tag. 4301 4302 - Issue #14001: CVE-2012-0845: xmlrpc: Fix an endless loop in 4303 SimpleXMLRPCServer upon malformed POST request. 4304 4305 - Issue #2489: pty.spawn could consume 100% cpu when it encountered an EOF. 4306 4307 - Issue #13014: Fix a possible reference leak in SSLSocket.getpeercert(). 4308 4309 - Issue #13987: HTMLParser is now able to handle EOFs in the middle of a 4310 construct and malformed start tags. 4311 4312 - Issue #13015: Fix a possible reference leak in defaultdict.__repr__. 4313 Patch by Suman Saha. 4314 4315 - Issue #13979: A bug in ctypes.util.find_library that caused 4316 the wrong library name to be returned has been fixed. 4317 4318 - Issue #1326113: distutils' build_ext command --libraries option now 4319 correctly parses multiple values separated by whitespace or commas. 4320 4321 - Issue #13993: HTMLParser is now able to handle broken end tags. 4322 4323 - Issue #13960: HTMLParser is now able to handle broken comments. 4324 4325 - Issue #9750: Fix sqlite3.Connection.iterdump on tables and fields 4326 with a name that is a keyword or contains quotes. Patch by Marko 4327 Kohtala. 4328 4329 - Issue #13994: Earlier partial revert of Distutils enhancements in 2.7 4330 has left two versions of customize_compiler, the original in 4331 distutils.sysconfig and another copy in distutils.ccompiler, with some 4332 parts of distutils calling one and others using the other. 4333 Complete the revert back to only having one in distutils.sysconfig as 4334 is the case in 3.x. 4335 4336 - Issue #13590: On OS X 10.7 and 10.6 with Xcode 4.2, building 4337 Distutils-based packages with C extension modules may fail because 4338 Apple has removed gcc-4.2, the version used to build python.org 4339 64-bit/32-bit Pythons. If the user does not explicitly override 4340 the default C compiler by setting the CC environment variable, 4341 Distutils will now attempt to compile extension modules with clang 4342 if gcc-4.2 is required but not found. Also as a convenience, if 4343 the user does explicitly set CC, substitute its value as the default 4344 compiler in the Distutils LDSHARED configuration variable for OS X. 4345 (Note, the python.org 32-bit-only Pythons use gcc-4.0 and the 10.4u 4346 SDK, neither of which are available in Xcode 4. This change does not 4347 attempt to override settings to support their use with Xcode 4.) 4348 4349 - Issue #9021: Add an introduction to the copy module documentation. 4350 4351 - Issue #6005: Examples in the socket library documentation use sendall, where 4352 relevant, instead send method. 4353 4354 - Issue #10811: Fix recursive usage of cursors. Instead of crashing, 4355 raise a ProgrammingError now. 4356 4357 - Issue #13676: Handle strings with embedded zeros correctly in sqlite3. 4358 4359 - Issue #13806: The size check in audioop decompression functions was too 4360 strict and could reject valid compressed data. Patch by Oleg Plakhotnyuk. 4361 4362 - Issue #13885: CVE-2011-3389: the _ssl module would always disable the CBC 4363 IV attack countermeasure. 4364 4365 - Issue #6631: Disallow relative file paths in urllib urlopen methods. 4366 4367 - Issue #13781: Prevent gzip.GzipFile from using the dummy filename provided by 4368 file objects opened with os.fdopen(). 4369 4370 - Issue #13589: Fix some serialization primitives in the aifc module. 4371 Patch by Oleg Plakhotnyuk. 4372 4373 - Issue #13803: Under Solaris, distutils doesn't include bitness 4374 in the directory name. 4375 4376 - Issue #13642: Unquote before b64encoding user:password during Basic 4377 Authentication. Patch contributed by Joonas Kuorilehto and Michele Orr. 4378 4379 - Issue #13636: Weak ciphers are now disabled by default in the ssl module 4380 (except when SSLv2 is explicitly asked for). 4381 4382 - Issue #12798: Updated the mimetypes documentation. 4383 4384 - Issue #13639: Accept unicode filenames in tarfile.open(mode="w|gz"). 4385 4386 - Issue #1785: Fix inspect and pydoc with misbehaving descriptors. 4387 4388 - Issue #7502: Fix equality comparison for DocTestCase instances. Patch by 4389 Cdric Krier. 4390 4391 - Issue #11870: threading: Properly reinitialize threads internal locks and 4392 condition variables to avoid deadlocks in child processes. 4393 4394 - Issue #8035: urllib: Fix a bug where the client could remain stuck after a 4395 redirection or an error. 4396 4397 - tarfile.py: Correctly detect bzip2 compressed streams with blocksizes 4398 other than 900k. 4399 4400 - Issue #13573: The csv.writer now uses the repr() for floats rather than str(). 4401 This allows floats to round-trip without loss of precision. 4402 4403 - Issue #13439: Fix many errors in turtle docstrings. 4404 4405 - Issue #12856: Ensure child processes do not inherit the parent's random 4406 seed for filename generation in the tempfile module. Patch by Brian 4407 Harring. 4408 4409 - Issue #13458: Fix a memory leak in the ssl module when decoding a 4410 certificate with a subjectAltName. Patch by Robert Xiao. 4411 4412 - Issue #13415: os.unsetenv() doesn't ignore errors anymore. 4413 4414 - Issue #13322: Fix BufferedWriter.write() to ensure that BlockingIOError is 4415 raised when the wrapped raw file is non-blocking and the write would block. 4416 Previous code assumed that the raw write() would raise BlockingIOError, but 4417 RawIOBase.write() is defined to returned None when the call would block. 4418 Patch by sbt. 4419 4420 - Issue #13358: HTMLParser now calls handle_data only once for each CDATA. 4421 4422 - Issue #4147: minidom's toprettyxml no longer adds whitespace around a text 4423 node when it is the only child of an element. Initial patch by Dan 4424 Kenigsberg. 4425 4426 - Issues #1745761, #755670, #13357, #12629, #1200313: HTMLParser now correctly 4427 handles non-valid attributes, including adjacent and unquoted attributes. 4428 4429 - Issue #13373: multiprocessing.Queue.get() could sometimes block indefinitely 4430 when called with a timeout. Patch by Arnaud Ysmal. 4431 4432 - Issue #3067: Enhance the documentation and docstring of 4433 locale.setlocale(). 4434 4435 - Issue #13254: Fix Maildir initialization so that maildir contents 4436 are read correctly. 4437 4438 - Issue #13140: Fix the daemon_threads attribute of ThreadingMixIn. 4439 4440 - Issue #2892: preserve iterparse events in case of SyntaxError. 4441 4442 - Issue #670664: Fix HTMLParser to correctly handle the content of 4443 ``<script>...</script>`` and ``<style>...</style>``. 4444 4445 - Issue #10817: Fix urlretrieve function to raise ContentTooShortError even 4446 when reporthook is None. Patch by Jyrki Pulliainen. 4447 4448 - Issue #7334: close source files on ElementTree.parse and iterparse. 4449 4450 - Issue #13232: logging: Improved logging of exceptions in the presence of 4451 multiple encodings. 4452 4453 - Issue #10332: multiprocessing: fix a race condition when a Pool is closed 4454 before all tasks have completed. 4455 4456 - Issue #1548891: The cStringIO.StringIO() constructor now encodes unicode 4457 arguments with the system default encoding just like the write() method 4458 does, instead of converting it to a raw buffer. This also fixes handling of 4459 unicode input in the shlex module (#6988, #1170). 4460 4461 - Issue #9168: now smtpd is able to bind privileged port. 4462 4463 - Issue #12529: fix cgi.parse_header issue on strings with double-quotes and 4464 semicolons together. Patch by Ben Darnell and Petri Lehtinen. 4465 4466 - Issue #6090: zipfile raises a ValueError when a document with a timestamp 4467 earlier than 1980 is provided. Patch contributed by Petri Lehtinen. 4468 4469 - Issue #13194: zlib.compressobj().copy() and zlib.decompressobj().copy() are 4470 now available on Windows. 4471 4472 - Issue #13114: Fix the distutils commands check and register when the 4473 long description is a Unicode string with non-ASCII characters. 4474 4475 - Issue #7367: Fix pkgutil.walk_paths to skip directories whose 4476 contents cannot be read. 4477 4478 - Issue #7425: Prevent pydoc -k failures due to module import errors. 4479 (Backport to 2.7 of existing 3.x fix) 4480 4481 - Issue #13099: Fix sqlite3.Cursor.lastrowid under a Turkish locale. 4482 Reported and diagnosed by Thomas Kluyver. 4483 4484 - Issue #7689: Allow pickling of dynamically created classes when their 4485 metaclass is registered with copy_reg. Patch by Nicolas M. Thiry and 4486 Craig Citro. 4487 4488 - Issue #13058: ossaudiodev: fix a file descriptor leak on error. Patch by 4489 Thomas Jarosch. 4490 4491 - Issue #12931: xmlrpclib now encodes Unicode URI to ISO-8859-1, instead of 4492 failing with a UnicodeDecodeError. 4493 4494 - Issue #8933: distutils' PKG-INFO files will now correctly report 4495 Metadata-Version: 1.1 instead of 1.0 if a Classifier or Download-URL field is 4496 present. 4497 4498 - Issue #8286: The distutils command sdist will print a warning message instead 4499 of crashing when an invalid path is given in the manifest template. 4500 4501 - Issue #12841: tarfile unnecessarily checked the existence of numerical user 4502 and group ids on extraction. If one of them did not exist the respective id 4503 of the current user (i.e. root) was used for the file and ownership 4504 information was lost. 4505 4506 - Issue #10946: The distutils commands bdist_dumb, bdist_wininst and bdist_msi 4507 now respect a --skip-build option given to bdist. 4508 4509 - Issue #12287: Fix a stack corruption in ossaudiodev module when the FD is 4510 greater than FD_SETSIZE. 4511 4512 - Issue #12839: Fix crash in zlib module due to version mismatch. 4513 Fix by Richard M. Tew. 4514 4515 - Issue #12786: Set communication pipes used by subprocess.Popen CLOEXEC to 4516 avoid them being inherited by other subprocesses. 4517 4518 - Issue #4106: Fix occasional exceptions printed out by multiprocessing on 4519 interpreter shutdown. 4520 4521 - Issue #11657: Fix sending file descriptors over 255 over a multiprocessing 4522 Pipe. 4523 4524 - Issue #12213: Fix a buffering bug with interleaved reads and writes that 4525 could appear on io.BufferedRandom streams. 4526 4527 - Issue #12326: sys.platform is now always 'linux2' on Linux, even if Python 4528 is compiled on Linux 3. 4529 4530 - Issue #13007: whichdb should recognize gdbm 1.9 magic numbers. 4531 4532 - Issue #9173: Let shutil._make_archive work if the logger argument is None. 4533 4534 - Issue #12650: Fix a race condition where a subprocess.Popen could leak 4535 resources (FD/zombie) when killed at the wrong time. 4536 4537 - Issue #12752: Fix regression which prevented locale.normalize() from 4538 accepting unicode strings. 4539 4540 - Issue #12683: urlparse updated to include svn as schemes that uses relative 4541 paths. (svn from 1.5 onwards support relative path). 4542 4543 - Issue #11933: Fix incorrect mtime comparison in distutils. 4544 4545 - Issues #11104, #8688: Fix the behavior of distutils' sdist command with 4546 manually-maintained MANIFEST files. 4547 4548 - Issue #8887: "pydoc somebuiltin.somemethod" (or help('somebuiltin.somemethod') 4549 in Python code) now finds the doc of the method. 4550 4551 - Issue #12603: Fix pydoc.synopsis() on files with non-negative st_mtime. 4552 4553 - Issue #12514: Use try/finally to assure the timeit module restores garbage 4554 collections when it is done. 4555 4556 - Issue #12607: In subprocess, fix issue where if stdin, stdout or stderr is 4557 given as a low fd, it gets overwritten. 4558 4559 - Issue #12102: Document that buffered files must be flushed before being used 4560 with mmap. Patch by Steffen Daode Nurpmeso. 4561 4562 - Issue #12560: Build libpython.so on OpenBSD. Patch by Stefan Sperling. 4563 4564 - Issue #1813: Fix codec lookup and setting/getting locales under Turkish 4565 locales. 4566 4567 - Issue #10883: Fix socket leaks in urllib when using FTP. 4568 4569 - Issue #12592: Make Python build on OpenBSD 5 (and future major releases). 4570 4571 - Issue #12372: POSIX semaphores are broken on AIX: don't use them. 4572 4573 - Issue #12571: Add a plat-linux3 directory mirroring the plat-linux2 4574 directory, so that "import DLFCN" and other similar imports work on 4575 Linux 3.0. 4576 4577 - Issue #7484: smtplib no longer puts <> around addresses in VRFY and EXPN 4578 commands; they aren't required and in fact postfix doesn't support that form. 4579 4580 - Issue #11603: Fix a crash when __str__ is rebound as __repr__. Patch by 4581 Andreas Sthrk. 4582 4583 - Issue #12502: asyncore: fix polling loop with AF_UNIX sockets. 4584 4585 - Issue #4376: ctypes now supports nested structures in an endian different than 4586 the parent structure. Patch by Vlad Riscutia. 4587 4588 - Issue #12493: subprocess: Popen.communicate() now also handles EINTR errors 4589 if the process has only one pipe. 4590 4591 - Issue #12467: warnings: fix a race condition if a warning is emitted at 4592 shutdown, if globals()['__file__'] is None. 4593 4594 - Issue #12352: Fix a deadlock in multiprocessing.Heap when a block is freed by 4595 the garbage collector while the Heap lock is held. 4596 4597 - Issue #9516: On Mac OS X, change Distutils to no longer globally attempt to 4598 check or set the MACOSX_DEPLOYMENT_TARGET environment variable for the 4599 interpreter process. This could cause failures in non-Distutils subprocesses 4600 and was unreliable since tests or user programs could modify the interpreter 4601 environment after Distutils set it. Instead, have Distutils set the 4602 deployment target only in the environment of each build subprocess. It is 4603 still possible to globally override the default by setting 4604 MACOSX_DEPLOYMENT_TARGET before launching the interpreter; its value must be 4605 greater or equal to the default value, the value with which the interpreter 4606 was built. 4607 4608 - Issue #11802: The cache in filecmp now has a maximum size of 100 so that 4609 it won't grow without bound. 4610 4611 - Issue #12404: Remove C89 incompatible code from mmap module. Patch by Akira 4612 Kitada. 4613 4614 - Issue #11700: mailbox proxy object close methods can now be called multiple 4615 times without error, and _ProxyFile now closes the wrapped file. 4616 4617 - Issue #12133: AbstractHTTPHandler.do_open() of urllib.request closes the HTTP 4618 connection if its getresponse() method fails with a socket error. Patch 4619 written by Ezio Melotti. 4620 4621 - Issue #9284: Allow inspect.findsource() to find the source of doctest 4622 functions. 4623 4624 - Issue #10694: zipfile now ignores garbage at the end of a zipfile. 4625 4626 - Issue #11583: Speed up os.path.isdir on Windows by using GetFileAttributes 4627 instead of os.stat. 4628 4629 - Issue #12080: Fix a performance issue in Decimal._power_exact that caused 4630 some corner-case Decimal.__pow__ calls to take an unreasonably long time. 4631 4632 - Named tuples now work correctly with vars(). 4633 4634 - sys.setcheckinterval() now updates the current ticker count as well as 4635 updating the check interval, so if the user decreases the check interval, 4636 the ticker doesn't have to wind down to zero from the old starting point 4637 before the new interval takes effect. And if the user increases the 4638 interval, it makes sure the new limit takes effect right away rather have an 4639 early task switch before recognizing the new interval. 4640 4641 - Issue #12085: Fix an attribute error in subprocess.Popen destructor if the 4642 constructor has failed, e.g. because of an undeclared keyword argument. Patch 4643 written by Oleg Oshmyan. 4644 4645 Extension Modules 4646 ----------------- 4647 4648 - Issue #9041: An issue in ctypes.c_longdouble, ctypes.c_double, and 4649 ctypes.c_float that caused an incorrect exception to be returned in the 4650 case of overflow has been fixed. 4651 4652 - bsddb module: Erratic behaviour of "DBEnv->rep_elect()" because a typo. 4653 Possible crash. 4654 4655 - Issue #13774: json: Fix a SystemError when a bogus encoding is passed to 4656 json.loads(). 4657 4658 - Issue #9975: socket: Fix incorrect use of flowinfo and scope_id. Patch by 4659 Vilmos Nebehaj. 4660 4661 - Issue #13159: FileIO, BZ2File, and the built-in file class now use a 4662 linear-time buffer growth strategy instead of a quadratic one. 4663 4664 - Issue #13070: Fix a crash when a TextIOWrapper caught in a reference cycle 4665 would be finalized after the reference to its underlying BufferedRWPair's 4666 writer got cleared by the GC. 4667 4668 - Issue #12881: ctypes: Fix segfault with large structure field names. 4669 4670 - Issue #13013: ctypes: Fix a reference leak in PyCArrayType_from_ctype. 4671 Thanks to Suman Saha for finding the bug and providing a patch. 4672 4673 - Issue #13022: Fix: _multiprocessing.recvfd() doesn't check that 4674 file descriptor was actually received. 4675 4676 - Issue #12483: ctypes: Fix a crash when the destruction of a callback 4677 object triggers the garbage collector. 4678 4679 - Issue #12950: Fix passing file descriptors in multiprocessing, under 4680 OpenIndiana/Illumos. 4681 4682 - Issue #12764: Fix a crash in ctypes when the name of a Structure field is not 4683 a string. 4684 4685 - Issue #9651: Fix a crash when ctypes.create_string_buffer(0) was passed to 4686 some functions like file.write(). 4687 4688 - Issue #10309: Define _GNU_SOURCE so that mremap() gets the proper 4689 signature. Without this, architectures where sizeof void* != sizeof int are 4690 broken. Patch given by Hallvard B Furuseth. 4691 4692 IDLE 4693 ---- 4694 4695 - Issue #964437: Make IDLE help window non-modal. 4696 Patch by Guilherme Polo and Roger Serwy. 4697 4698 - Issue #13933: IDLE auto-complete did not work with some imported 4699 module, like hashlib. (Patch by Roger Serwy) 4700 4701 - Issue #13506: Add '' to path for IDLE Shell when started and restarted with Restart Shell. 4702 Original patches by Marco Scataglini and Roger Serwy. 4703 4704 - Issue #4625: If IDLE cannot write to its recent file or breakpoint 4705 files, display a message popup and continue rather than crash. 4706 (original patch by Roger Serwy) 4707 4708 - Issue #8793: Prevent IDLE crash when given strings with invalid hex escape 4709 sequences. 4710 4711 - Issue #13296: Fix IDLE to clear compile __future__ flags on shell restart. 4712 (Patch by Roger Serwy) 4713 4714 - Issue #14409: IDLE now properly executes commands in the Shell window 4715 when it cannot read the normal config files on startup and 4716 has to use the built-in default key bindings. 4717 There was previously a bug in one of the defaults. 4718 4719 - Issue #3573: IDLE hangs when passing invalid command line args 4720 (directory(ies) instead of file(s)). 4721 4722 Build 4723 ----- 4724 4725 - Issue #6807: Run msisupport.mak earlier. 4726 4727 - Issue #10580: Minor grammar change in Windows installer. 4728 4729 - Issue #12627: Implement PEP 394 for Python 2.7 ("python2"). 4730 4731 - Issue #8746: Correct faulty configure checks so that os.chflags() and 4732 os.lchflags() are once again built on systems that support these 4733 functions (*BSD and OS X). Also add new stat file flags for OS X 4734 (UF_HIDDEN and UF_COMPRESSED). 4735 4736 Tools/Demos 4737 ----------- 4738 4739 - Issue #14053: patchcheck.py ("make patchcheck") now works with MQ patches. 4740 Patch by Francisco Martn Brugu. 4741 4742 - Issue #13930: 2to3 is now able to write its converted output files to another 4743 directory tree as well as copying unchanged files and altering the file 4744 suffix. See its new -o, -W and --add-suffix options. This makes it more 4745 useful in many automated code translation workflows. 4746 4747 - Issue #10639: reindent.py no longer converts newlines and will raise 4748 an error if attempting to convert a file with mixed newlines. 4749 4750 - Issue #13628: python-gdb.py is now able to retrieve more frames in the Python 4751 traceback if Python is optimized. 4752 4753 Tests 4754 ----- 4755 4756 - Issue #15467: Move helpers for __sizeof__ tests into test_support. 4757 Patch by Serhiy Storchaka. 4758 4759 - Issue #11689: Fix a variable scoping error in an sqlite3 test. 4760 Initial patch by Torsten Landschoff. 4761 4762 - Issue #10881: Fix test_site failures with OS X framework builds. 4763 4764 - Issue #13901: Prevent test_distutils failures on OS X with --enable-shared. 4765 4766 - Issue #13304: Skip test case if user site-packages disabled (-s or 4767 PYTHONNOUSERSITE). (Patch by Carl Meyer) 4768 4769 - Issue #13218: Fix test_ssl failures on Debian/Ubuntu. 4770 4771 - Issue #12821: Fix test_fcntl failures on OpenBSD 5. 4772 4773 - Issue #12331: The test suite for lib2to3 can now run from an installed 4774 Python. 4775 4776 - Issue #12549: Correct test_platform to not fail when OS X returns 'x86_64' 4777 as the processor type on some Mac systems. 4778 4779 - Skip network tests when getaddrinfo() returns EAI_AGAIN, meaning a temporary 4780 failure in name resolution. 4781 4782 - Issue #11812: Solve transient socket failure to connect to 'localhost' 4783 in test_telnetlib.py. 4784 4785 - Solved a potential deadlock in test_telnetlib.py. Related to issue #11812. 4786 4787 - Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and 4788 an overzealous DNS service (e.g. OpenDNS) redirects to a placeholder 4789 Web site. 4790 4791 - Avoid failing in test_urllibnet.test_bad_address when some overzealous 4792 DNS service (e.g. OpenDNS) resolves a non-existent domain name. The test 4793 is now skipped instead. 4794 4795 - Issue #8716: Avoid crashes caused by Aqua Tk on OSX when attempting to run 4796 test_tk or test_ttk_guionly under a username that is not currently logged 4797 in to the console windowserver (as may be the case under buildbot or ssh). 4798 4799 - Issue #12141: Install a copy of template C module file so that 4800 test_build_ext of test_distutils is no longer silently skipped when 4801 run outside of a build directory. 4802 4803 - Issue #8746: Add additional tests for os.chflags() and os.lchflags(). 4804 Patch by Garrett Cooper. 4805 4806 - Issue #10736: Fix test_ttk test_widgets failures with Cocoa Tk 8.5.9 4807 on Mac OS X. (Patch by Ronald Oussoren) 4808 4809 - Issue #12057: Add tests for ISO 2022 codecs (iso2022_jp, iso2022_jp_2, 4810 iso2022_kr). 4811 4812 Documentation 4813 ------------- 4814 4815 - Issues #13491 and #13995: Fix many errors in sqlite3 documentation. 4816 Initial patch for #13491 by Johannes Vogel. 4817 4818 - Issue #13402: Document absoluteness of sys.executable. 4819 4820 - Issue #13883: PYTHONCASEOK also works on OS X, OS/2, and RiscOS. 4821 4822 - Issue #2134: The tokenize documentation has been clarified to explain why 4823 all operator and delimiter tokens are treated as token.OP tokens. 4824 4825 - Issue #13513: Fix io.IOBase documentation to correctly link to the 4826 io.IOBase.readline method instead of the readline module. 4827 4828 - Issue #13237: Reorganise subprocess documentation to emphasise convenience 4829 functions and the most commonly needed arguments to Popen. 4830 4831 - Issue #13141: Demonstrate recommended style for SocketServer examples. 4832 4833 4834 What's New in Python 2.7.2? 4835 =========================== 4836 4837 *Release date: 2011-06-11* 4838 4839 Library 4840 ------- 4841 4842 - Issue #12009: Fixed regression in netrc file comment handling. 4843 4844 Extension Modules 4845 ----------------- 4846 4847 - Issue #1221: Make pyexpat.__version__ equal to the Python version. 4848 4849 4850 What's New in Python 2.7.2 release candidate 1? 4851 =============================================== 4852 4853 *Release date: 2011-05-29* 4854 4855 Core and Builtins 4856 ----------------- 4857 4858 - Issue #9670: Increase the default stack size for secondary threads on 4859 Mac OS X and FreeBSD to reduce the chances of a crash instead of a 4860 "maximum recursion depth" RuntimeError exception. 4861 (patch by Ronald Oussoren) 4862 4863 - Correct lookup of __dir__ on objects. This allows old-style classes to have 4864 __dir__. It also causes errors besides AttributeError found on lookup to be 4865 propagated. 4866 4867 - Issue #1195: Fix input() if it is interrupted by CTRL+d and then CTRL+c, 4868 clear the end-of-file indicator after CTRL+d. 4869 4870 - Issue #8651: PyArg_Parse*() functions raise an OverflowError if the file 4871 doesn't have PY_SSIZE_T_CLEAN define and the size doesn't fit in an int 4872 (length bigger than 2^31-1 bytes). 4873 4874 - Issue #8651: Fix "z#" format of PyArg_Parse*() function: the size was not 4875 written if PY_SSIZE_T_CLEAN is defined. 4876 4877 - Issue #9756: When calling a method descriptor or a slot wrapper descriptor, 4878 the check of the object type doesn't read the __class__ attribute anymore. 4879 Fix a crash if a class override its __class__ attribute (e.g. a proxy of the 4880 str type). Patch written by Andreas Sthrk. 4881 4882 - Issue #10517: After fork(), reinitialize the TLS used by the PyGILState_* 4883 APIs, to avoid a crash with the pthread implementation in RHEL 5. Patch 4884 by Charles-Franois Natali. 4885 4886 - Issue #6780: fix starts/endswith error message to mention that tuples are 4887 accepted too. 4888 4889 - Issue #5057: fix a bug in the peepholer that led to non-portable pyc files 4890 between narrow and wide builds while optimizing BINARY_SUBSCR on non-BMP 4891 chars (e.g. u"\U00012345"[0]). 4892 4893 - Issue #11650: PyOS_StdioReadline() retries fgets() if it was interrupted 4894 (EINTR), for example if the program is stopped with CTRL+z on Mac OS X. Patch 4895 written by Charles-Francois Natali. 4896 4897 - Issue #11144: Ensure that int(a_float) returns an int whenever possible. 4898 Previously, there were some corner cases where a long was returned even 4899 though the result was within the range of an int. 4900 4901 - Issue #11450: Don't truncate hg version info in Py_GetBuildInfo() when 4902 there are many tags (e.g. when using mq). Patch by Nadeem Vawda. 4903 4904 - Issue #10451: memoryview objects could allow mutating a readable buffer. 4905 Initial patch by Ross Lagerwall. 4906 4907 - Issue #10892: Don't segfault when trying to delete __abstractmethods__ from a 4908 class. 4909 4910 - Issue #8020: Avoid a crash where the small objects allocator would read 4911 non-Python managed memory while it is being modified by another thread. 4912 Patch by Matt Bandy. 4913 4914 - Issue #11004: Repaired edge case in deque.count(). 4915 4916 - Issue #8278: On Windows and with a NTFS filesystem, os.stat() and os.utime() 4917 can now handle dates after 2038. 4918 4919 - Issue #4236: Py_InitModule4 now checks the import machinery directly 4920 rather than the Py_IsInitialized flag, avoiding a Fatal Python 4921 error in certain circumstances when an import is done in __del__. 4922 4923 - Issue #11828: startswith and endswith don't accept None as slice index. 4924 Patch by Torsten Becker. 4925 4926 - Issue #10674: Remove unused 'dictmaker' rule from grammar. 4927 4928 - Issue #10596: Fix float.__mod__ to have the same behaviour as 4929 float.__divmod__ with respect to signed zeros. -4.0 % 4.0 should be 4930 0.0, not -0.0. 4931 4932 - Issue #11386: bytearray.pop() now throws IndexError when the bytearray is 4933 empty, instead of OverflowError. 4934 4935 Library 4936 ------- 4937 4938 - Issue #12161: Cause StringIO.getvalue() to raise a ValueError when used on a 4939 closed StringIO instance. 4940 4941 - Issue #12182: Fix pydoc.HTMLDoc.multicolumn() if Python uses the new (true) 4942 division (python -Qnew). Patch written by Ralf W. Grosse-Kunstleve. 4943 4944 - Issue #12175: RawIOBase.readall() now returns None if read() returns None. 4945 4946 - Issue #12175: FileIO.readall() now raises a ValueError instead of an IOError 4947 if the file is closed. 4948 4949 - Issue #1441530: In imaplib, use makefile() to wrap the SSL socket to avoid 4950 heap fragmentation and MemoryError with some malloc implementations. 4951 4952 - Issue #12100: Don't reset incremental encoders of CJK codecs at each call to 4953 their encode() method anymore, but continue to call the reset() method if the 4954 final argument is True. 4955 4956 - Issue #12124: zipimport doesn't keep a reference to zlib.decompress() anymore 4957 to be able to unload the module. 4958 4959 - Issue #10154, #10090: change the normalization of UTF-8 to "UTF-8" instead 4960 of "UTF8" in the locale module as the latter is not supported MacOSX and OpenBSD. 4961 4962 - Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is 4963 set in shell. 4964 4965 - Issue #12050: zlib.decompressobj().decompress() now clears the unconsumed_tail 4966 attribute when called without a max_length argument. 4967 4968 - Issue #12062: In the `io` module, fix a flushing bug when doing a certain 4969 type of I/O sequence on a file opened in read+write mode (namely: reading, 4970 seeking a bit forward, writing, then seeking before the previous write but 4971 still within buffered data, and writing again). 4972 4973 - Issue #8498: In socket.accept(), allow specifying 0 as a backlog value in 4974 order to accept exactly one connection. Patch by Daniel Evers. 4975 4976 - Issue #12012: ssl.PROTOCOL_SSLv2 becomes optional. 4977 4978 - Issue #11927: SMTP_SSL now uses port 465 by default as documented. Patch 4979 by Kasun Herath. 4980 4981 - Issue #11999: fixed sporadic sync failure mailbox.Maildir due to its trying to 4982 detect mtime changes by comparing to the system clock instead of to the 4983 previous value of the mtime. 4984 4985 - Issue #10684: shutil.move used to delete a folder on case insensitive 4986 filesystems when the source and destination name where the same except 4987 for the case. 4988 4989 - Issue #11982: fix json.loads('""') to return u'' rather than ''. 4990 4991 - Issue #11277: mmap.mmap() calls fcntl(fd, F_FULLFSYNC) on Mac OS X to get 4992 around a mmap bug with sparse files. Patch written by Steffen Daode Nurpmeso. 4993 4994 - Issue #10761: Fix tarfile.extractall failure when symlinked files are 4995 present. Initial patch by Scott Leerssen. 4996 4997 - Issue #11763: don't use difflib in TestCase.assertMultiLineEqual if the 4998 strings are too long. 4999 5000 - Issue #11236: getpass.getpass responds to ctrl-c or ctrl-z on terminal. 5001 5002 - Issue #11768: The signal handler of the signal module only calls 5003 Py_AddPendingCall() for the first signal to fix a deadlock on reentrant or 5004 parallel calls. PyErr_SetInterrupt() writes also into the wake up file. 5005 5006 - Issue #11875: collections.OrderedDict's __reduce__ was temporarily 5007 mutating the object instead of just working on a copy. 5008 5009 - Issue #11442: Add a charset parameter to the Content-type in SimpleHTTPServer 5010 to avoid XSS attacks. 5011 5012 - Issue #11467: Fix urlparse behavior when handling urls which contains scheme 5013 specific part only digits. Patch by Santoso Wijaya. 5014 5015 - collections.Counter().copy() now works correctly for subclasses. 5016 5017 - Issue #11474: Fix the bug with url2pathname() handling of '/C|/' on Windows. 5018 Patch by Santoso Wijaya. 5019 5020 - Issue #9233: Fix json.loads('{}') to return a dict (instead of a list), when 5021 _json is not available. 5022 5023 - Issue #11703: urllib2.geturl() does not return correct url when the original 5024 url contains #fragment. 5025 5026 - Issue #10019: Fixed regression in json module where an indent of 0 stopped 5027 adding newlines and acted instead like 'None'. 5028 5029 - Issue #5162: Treat services like frozen executables to allow child spawning 5030 from multiprocessing.forking on Windows. 5031 5032 - Issue #4877: Fix a segfault in xml.parsers.expat while attempting to parse 5033 a closed file. 5034 5035 - Issue #11830: Remove unnecessary introspection code in the decimal module. 5036 It was causing a failed import in the Turkish locale where the locale 5037 sensitive str.upper() method caused a name mismatch. 5038 5039 - Issue #8428: Fix a race condition in multiprocessing.Pool when terminating 5040 worker processes: new processes would be spawned while the pool is being 5041 shut down. Patch by Charles-Franois Natali. 5042 5043 - Issue #7311: Fix HTMLParser to accept non-ASCII attribute values. 5044 5045 - Issue #10963: Ensure that subprocess.communicate() never raises EPIPE. 5046 5047 - Issue #11662: Make urllib and urllib2 ignore redirections if the 5048 scheme is not HTTP, HTTPS or FTP (CVE-2011-1521). 5049 5050 - Issue #11256: Fix inspect.getcallargs on functions that take only keyword 5051 arguments. 5052 5053 - Issue #11696: Fix ID generation in msilib. 5054 5055 - Issue #9696: Fix exception incorrectly raised by xdrlib.Packer.pack_int when 5056 trying to pack a negative (in-range) integer. 5057 5058 - Issue #11675: multiprocessing.[Raw]Array objects created from an integer size 5059 are now zeroed on creation. This matches the behaviour specified by the 5060 documentation. 5061 5062 - Issue #7639: Fix short file name generation in bdist_msi. 5063 5064 - Issue #11666: let help() display named tuple attributes and methods 5065 that start with a leading underscore. 5066 5067 - Issue #11673: Fix multiprocessing Array and RawArray constructors to accept a 5068 size of type 'long', rather than only accepting 'int'. 5069 5070 - Issue #10042: Fixed the total_ordering decorator to handle cross-type 5071 comparisons that could lead to infinite recursion. 5072 5073 - Issue #10979: unittest stdout buffering now works with class and module 5074 setup and teardown. 5075 5076 - Issue #11569: use absolute path to the sysctl command in multiprocessing to 5077 ensure that it will be found regardless of the shell PATH. This ensures 5078 that multiprocessing.cpu_count works on default installs of MacOSX. 5079 5080 - Issue #11500: Fixed a bug in the os x proxy bypass code for fully qualified 5081 IP addresses in the proxy exception list. 5082 5083 - Issue #11131: Fix sign of zero in plus and minus operations when 5084 the context rounding mode is ROUND_FLOOR. 5085 5086 - Issue #5622: Fix curses.wrapper to raise correct exception if curses 5087 initialization fails. 5088 5089 - Issue #11391: Writing to a mmap object created with 5090 ``mmap.PROT_READ|mmap.PROT_EXEC`` would segfault instead of raising a 5091 TypeError. Patch by Charles-Franois Natali. 5092 5093 - Issue #11306: mailbox in certain cases adapts to an inability to open 5094 certain files in read-write mode. Previously it detected this by 5095 checking for EACCES, now it also checks for EROFS. 5096 5097 - Issue #11265: asyncore now correctly handles EPIPE, EBADF and EAGAIN errors 5098 on accept(), send() and recv(). 5099 5100 - Issue #11326: Add the missing connect_ex() implementation for SSL sockets, 5101 and make it work for non-blocking connects. 5102 5103 - Issue #10956: Buffered I/O classes retry reading or writing after a signal 5104 has arrived and the handler returned successfully. 5105 5106 - Issue #10680: Fix mutually exclusive arguments for argument groups in 5107 argparse. 5108 5109 - Issue #4681: Allow mmap() to work on file sizes and offsets larger than 5110 4GB, even on 32-bit builds. Initial patch by Ross Lagerwall, adapted for 5111 32-bit Windows. 5112 5113 - Issue #10360: In WeakSet, do not raise TypeErrors when testing for 5114 membership of non-weakrefable objects. 5115 5116 - Issue #10549: Fix pydoc traceback when text-documenting certain classes. 5117 5118 - Issue #940286: pydoc.Helper.help() ignores input/output init parameters. 5119 5120 - Issue #11171: Fix detection of config/Makefile when --prefix != 5121 --exec-prefix, which caused Python to not start. 5122 5123 - Issue #11116: any error during addition of a message to a mailbox now causes 5124 a rollback, instead of leaving the mailbox partially modified. 5125 5126 - Issue #8275: Fix passing of callback arguments with ctypes under Win64. 5127 Patch by Stan Mihai. 5128 5129 - Issue #10949: Improved robustness of rotating file handlers. 5130 5131 - Issue #10955: Fix a potential crash when trying to mmap() a file past its 5132 length. Initial patch by Ross Lagerwall. 5133 5134 - Issue #10898: Allow compiling the posix module when the C library defines 5135 a symbol named FSTAT. 5136 5137 - Issue #10916: mmap should not segfault when a file is mapped using 0 as 5138 length and a non-zero offset, and an attempt to read past the end of file 5139 is made (IndexError is raised instead). Patch by Ross Lagerwall. 5140 5141 - Issue #10875: Update Regular Expression HOWTO; patch by 'SilentGhost'. 5142 5143 - Issue #10827: Changed the rules for 2-digit years. The time.asctime 5144 function will now format any year when ``time.accept2dyear`` is 5145 false and will accept years >= 1000 otherwise. The year range 5146 accepted by ``time.mktime`` and ``time.strftime`` is still system 5147 dependent, but ``time.mktime`` will now accept full range supported 5148 by the OS. Conversion of 2-digit years to 4-digit is deprecated. 5149 5150 - Issue #10869: Fixed bug where ast.increment_lineno modified the root 5151 node twice. 5152 5153 - Issue #7858: Raise an error properly when os.utime() fails under Windows 5154 on an existing file. 5155 5156 - Issue #3839: wsgiref should not override a Content-Length header set by 5157 the application. Initial patch by Clovis Fabricio. 5158 5159 - Issue #10806, issue #9905: Fix subprocess pipes when some of the standard 5160 file descriptors (0, 1, 2) are closed in the parent process. Initial 5161 patch by Ross Lagerwall. 5162 5163 - Issue #4662: os.tempnam(), os.tmpfile() and os.tmpnam() now raise a py3k 5164 DeprecationWarning. 5165 5166 - Subclasses of collections.OrderedDict now work correctly with __missing__. 5167 5168 - Issue #10753: Characters ';', '=' and ',' in the PATH_INFO environment 5169 variable won't be quoted when the URI is constructed by the wsgiref.util 's 5170 request_uri method. According to RFC 3986, these characters can be a part of 5171 params in PATH component of URI and need not be quoted. 5172 5173 - Issue #10738: Fix webbrowser.Opera.raise_opts 5174 5175 - Issue #9824: SimpleCookie now encodes , and ; in values to cater to how 5176 browsers actually parse cookies. 5177 5178 - Issue #1379416: eliminated a source of accidental unicode promotion in 5179 email.header.Header.encode. 5180 5181 - Issue #5258/#10642: if site.py encounters a .pth file that generates an error, 5182 it now prints the filename, line number, and traceback to stderr and skips 5183 the rest of that individual file, instead of stopping processing entirely. 5184 5185 - Issue #10750: The ``raw`` attribute of buffered IO objects is now read-only. 5186 5187 - Issue #10242: unittest.TestCase.assertItemsEqual makes too many assumptions 5188 about input. 5189 5190 - Issue #10611: SystemExit should not cause a unittest test run to exit. 5191 5192 - Issue #6791: Limit header line length (to 65535 bytes) in http.client, 5193 to avoid denial of services from the other party. 5194 5195 - Issue #9907: Fix tab handling on OSX when using editline by calling 5196 rl_initialize first, then setting our custom defaults, then reading .editrc. 5197 5198 - Issue #4188: Avoid creating dummy thread objects when logging operations 5199 from the threading module (with the internal verbose flag activated). 5200 5201 - Issue #9721: Fix the behavior of urljoin when the relative url starts with a 5202 ';' character. Patch by Wes Chow. 5203 5204 - Issue #10714: Limit length of incoming request in http.server to 65536 bytes 5205 for security reasons. Initial patch by Ross Lagerwall. 5206 5207 - Issue #9558: Fix distutils.command.build_ext with VS 8.0. 5208 5209 - Issue #10695: passing the port as a string value to telnetlib no longer 5210 causes debug mode to fail. 5211 5212 - Issue #10478: Reentrant calls inside buffered IO objects (for example by 5213 way of a signal handler) now raise a RuntimeError instead of freezing the 5214 current process. 5215 5216 - Issue #10497: Fix incorrect use of gettext in argparse. 5217 5218 - Issue #10464: netrc now correctly handles lines with embedded '#' characters. 5219 5220 - Issue #1731717: Fixed the problem where subprocess.wait() could cause an 5221 OSError exception when The OS had been told to ignore SIGCLD in our process 5222 or otherwise not wait for exiting child processes. 5223 5224 - Issue #9509: argparse now properly handles IOErrors raised by 5225 argparse.FileType. 5226 5227 - Issue #9348: Raise an early error if argparse nargs and metavar don't match. 5228 5229 - Issue #8982: Improve the documentation for the argparse Namespace object. 5230 5231 - Issue #9343: Document that argparse parent parsers must be configured before 5232 their children. 5233 5234 - Issue #9026: Fix order of argparse sub-commands in help messages. 5235 5236 - Issue #9347: Fix formatting for tuples in argparse type= error messages. 5237 5238 Extension Modules 5239 ----------------- 5240 5241 - Stop using the old interface for providing methods and attributes in the _sre 5242 module. Among other things, this gives these classes ``__class__`` 5243 attributes. (See #12099) 5244 5245 - Issue #10169: Fix argument parsing in socket.sendto() to avoid error masking. 5246 5247 - Issue #12051: Fix segfault in json.dumps() while encoding highly-nested 5248 objects using the C accelerations. 5249 5250 - Issue #12017: Fix segfault in json.loads() while decoding highly-nested 5251 objects using the C accelerations. 5252 5253 - Issue #1838: Prevent segfault in ctypes, when _as_parameter_ on a class is set 5254 to an instance of the class. 5255 5256 - Issue #678250: Make mmap flush a noop on ACCESS_READ and ACCESS_COPY. 5257 5258 IDLE 5259 ---- 5260 5261 - Issue #11718: IDLE's open module dialog couldn't find the __init__.py 5262 file in a package. 5263 5264 - Issue #12590: IDLE editor window now always displays the first line 5265 when opening a long file. With Tk 8.5, the first line was hidden. 5266 5267 - Issue #11088: don't crash when using F5 to run a script in IDLE on MacOSX 5268 with Tk 8.5. 5269 5270 - Issue #10940: Workaround an IDLE hang on Mac OS X 10.6 when using the 5271 menu accelerators for Open Module, Go to Line, and New Indent Width. 5272 The accelerators still work but no longer appear in the menu items. 5273 5274 - Issue #10907: Warn OS X 10.6 IDLE users to use ActiveState Tcl/Tk 8.5, rather 5275 than the currently problematic Apple-supplied one, when running with the 5276 64-/32-bit installer variant. 5277 5278 - Issue #11052: Correct IDLE menu accelerators on Mac OS X for Save 5279 commands. 5280 5281 - Issue #6075: IDLE on Mac OS X now works with both Carbon AquaTk and 5282 Cocoa AquaTk. 5283 5284 - Issue #10404: Use ctl-button-1 on OSX for the context menu in Idle. 5285 5286 - Issue #10107: Warn about unsaved files in IDLE on OSX. 5287 5288 - Issue #10406: Enable Rstrip IDLE extension on OSX (just like on other 5289 platforms). 5290 5291 - Issue #6378: Further adjust idle.bat to start associated Python 5292 5293 - Issue #11896: Save on Close failed despite selecting "Yes" in dialog. 5294 5295 - Issue #4676: <Home> toggle failing on Tk 8.5, causing IDLE exits and 5296 strange selection behavior. Improve selection extension behaviour. 5297 5298 - Issue #3851: <Home> toggle non-functional when NumLock set on Windows. 5299 5300 Build 5301 ----- 5302 5303 - Issue #11217: For 64-bit/32-bit Mac OS X universal framework builds, 5304 ensure "make install" creates symlinks in --prefix bin for the "-32" 5305 files in the framework bin directory like the installer does. 5306 5307 - Issue #11411: Fix 'make DESTDIR=' with a relative destination. 5308 5309 - Issue #10709: Add updated AIX notes in Misc/README.AIX. 5310 5311 - Issue #11184: Fix large-file support on AIX. 5312 5313 - Issue #941346: Fix broken shared library build on AIX. 5314 5315 - Issue #11268: Prevent Mac OS X Installer failure if Documentation 5316 package had previously been installed. 5317 5318 - Issue #11079: The /Applications/Python x.x folder created by the Mac 5319 OS X installers now includes a link to the installed documentation. 5320 5321 - Issue #11054: Allow Mac OS X installer builds to again work on 10.5 with 5322 the system-provided Python. 5323 5324 - Issue #10843: Update third-party library versions used in OS X 5325 32-bit installer builds: bzip2 1.0.6, readline 6.1.2, SQLite 3.7.4 5326 (with FTS3/FTS4 and RTREE enabled), and ncursesw 5.5 (wide-char 5327 support enabled). 5328 5329 - Don't run pgen twice when using make -j. 5330 5331 - Issue #7716: Under Solaris, don't assume existence of /usr/xpg4/bin/grep in 5332 the configure script but use $GREP instead. Patch by Fabian Groffen. 5333 5334 - Issue #10475: Don't hardcode compilers for LDSHARED/LDCXXSHARED on NetBSD 5335 and DragonFly BSD. Patch by Nicolas Joly. 5336 5337 - Issue #10655: Fix the build on PowerPC on Linux with GCC when building with 5338 timestamp profiling (--with-tsc): the preprocessor test for the PowerPC 5339 support now looks for "__powerpc__" as well as "__ppc__": the latter seems to 5340 only be present on OS X; the former is the correct one for Linux with GCC. 5341 5342 - Issue #1099: Fix the build on MacOSX when building a framework with pydebug 5343 using GCC 4.0. 5344 5345 Tests 5346 ----- 5347 5348 - Issue #11164: Remove obsolete allnodes test from minidom test. 5349 5350 - Issue #12205: Fix test_subprocess failure due to uninstalled test data. 5351 5352 - Issue #5723: Improve json tests to be executed with and without accelerations. 5353 5354 - Issue #11910: Fix test_heapq to skip the C tests when _heapq is missing. 5355 5356 - Fix test_startfile to wait for child process to terminate before finishing. 5357 5358 - Issue #11719: Fix message about unexpected test_msilib skip on non-Windows 5359 platforms. Patch by Nadeem Vawda. 5360 5361 - Issue #7108: Fix test_commands to not fail when special attributes ('@' 5362 or '.') appear in 'ls -l' output. 5363 5364 - Issue #11490: test_subprocess:test_leaking_fds_on_error no longer gives a 5365 false positive if the last directory in the path is inaccessible. 5366 5367 - Issue #10822: Fix test_posix:test_getgroups failure under Solaris. Patch 5368 by Ross Lagerwall. 5369 5370 - Issue #6293: Have regrtest.py echo back sys.flags. This is done by default 5371 in whole runs and enabled selectively using ``--header`` when running an 5372 explicit list of tests. Original patch by Collin Winter. 5373 5374 - Issue #775964: test_grp now skips YP/NIS entries instead of failing when 5375 encountering them. 5376 5377 - Issue #7110: regrtest now sends test failure reports and single-failure 5378 tracebacks to stderr rather than stdout. 5379 5380 5381 What's New in Python 2.7.1? 5382 =========================== 5383 5384 *Release date: 2010-11-27* 5385 5386 Library 5387 ------- 5388 5389 - Issue #2236: distutils' mkpath ignored the mode parameter. 5390 5391 - Fix typo in one sdist option (medata-check). 5392 5393 - Issue #10323: itertools.islice() now consumes the minimum number of 5394 inputs before stopping. Formerly, the final state of the underlying 5395 iterator was undefined. 5396 5397 - Issue #10565: The collections.Iterator ABC now checks for both 5398 ``__iter__`` and ``next``. 5399 5400 - Issue #10092: Properly reset locale in calendar.Locale*Calendar classes. 5401 5402 - Issue #10459: Update CJK character names to Unicode 5.2. 5403 5404 - Issue #6098: Don't claim DOM level 3 conformance in minidom. 5405 5406 - Issue #10561: In pdb, clear the breakpoints by the breakpoint number. 5407 5408 - Issue #5762: Fix AttributeError raised by ``xml.dom.minidom`` when an empty 5409 XML namespace attribute is encountered. 5410 5411 - Issue #1710703: Write structures for an empty ZIP archive when a ZipFile is 5412 created in modes 'a' or 'w' and then closed without adding any files. Raise 5413 BadZipfile (rather than IOError) when opening small non-ZIP files. 5414 5415 - Issue #4493: urllib2 adds '/' in front of path components which does not 5416 start with '/. Common behavior exhibited by browsers and other clients. 5417 5418 - Issue #10407: Fix one NameError in distutils. 5419 5420 - Issue #10198: fix duplicate header written to wave files when writeframes() 5421 is called without data. 5422 5423 - Issue #10467: Fix BytesIO.readinto() after seeking into a position after the 5424 end of the file. 5425 5426 - Issue #5111: IPv6 Host in the Header is wrapped inside [ ]. Patch by Chandru. 5427 5428 IDLE 5429 ---- 5430 5431 - Issue #6378: idle.bat now runs with the appropriate Python version rather than 5432 the system default. Patch by Sridhar Ratnakumar. 5433 5434 Build 5435 ----- 5436 5437 - Backport r83399 to allow test_distutils to pass on installed versions. 5438 5439 - Issue #1303434: Generate ZIP file containing all PDBs. 5440 5441 Tests 5442 ----- 5443 5444 - Issue #9424: Replace deprecated assert* methods in the Python test suite. 5445 5446 Documentation 5447 ------------- 5448 5449 - Issue #10299: List the built-in functions in a table in functions.rst. 5450 5451 5452 What's New in Python 2.7.1 release candidate 1? 5453 =============================================== 5454 5455 *Release date: 2010-11-13* 5456 5457 Core and Builtins 5458 ----------------- 5459 5460 - Issue #10221: dict.pop(k) now has a key error message that includes the 5461 missing key (same message d[k] returns for missing keys). 5462 5463 - Issue #10125: Don't segfault when the iterator passed to 5464 ``file.writelines()`` closes the file. 5465 5466 - Issue #10186: Fix the SyntaxError caret when the offset is equal to the 5467 length of the offending line. 5468 5469 - Issue #9997: Don't let the name "top" have special significance in scope 5470 resolution. 5471 5472 - Issue #9862: Compensate for broken PIPE_BUF in AIX by hard coding 5473 its value as the default 512 when compiling on AIX. 5474 5475 - Issue #9675: CObject use is marked as a Py3k warning, not a deprecation 5476 warning. 5477 5478 - Issue #10068: Global objects which have reference cycles with their module's 5479 dict are now cleared again. This causes issue #7140 to appear again. 5480 5481 - Issue #9869: Make long() and PyNumber_Long return something of type 5482 long for a class whose __long__ method returns a plain int. This 5483 fixes an interpreter crash when initializing an instance of a long 5484 subclass from an object whose __long__ method returns a plain int. 5485 5486 - Issue #10006: type.__abstractmethods__ now raises an AttributeError. 5487 5488 - Issue #9797: pystate.c wrongly assumed that zero couldn't be a valid 5489 thread-local storage key. 5490 5491 - Issue #4947: The write() method of sys.stdout and sys.stderr uses their 5492 encoding and errors attributes instead of using utf-8 in strict mode, to get 5493 the same behaviour than the print statement. 5494 5495 - Issue #9737: Fix a crash when trying to delete a slice or an item from 5496 a memoryview object. 5497 5498 - Restore GIL in nis_cat in case of error. 5499 5500 - Issue #9688: __basicsize__ and __itemsize__ must be accessed as Py_ssize_t. 5501 5502 - Issue #8530: Prevent stringlib fastsearch from reading beyond the front 5503 of an array. 5504 5505 - Issue #83755: Implicit set-to-frozenset conversion was not thread-safe. 5506 5507 - Issue #9416: Fix some issues with complex formatting where the 5508 output with no type specifier failed to match the str output: 5509 5510 - format(complex(-0.0, 2.0), '-') omitted the real part from the output, 5511 - format(complex(0.0, 2.0), '-') included a sign and parentheses. 5512 5513 - Issue #7616: Fix copying of overlapping memoryview slices with the Intel 5514 compiler. 5515 5516 Library 5517 ------- 5518 5519 - Issue #9926: Wrapped TestSuite subclass does not get __call__ executed 5520 5521 - Issue #4471: Properly shutdown socket in IMAP.shutdown(). Patch by 5522 Lorenzo M. Catucci. 5523 5524 - Issue #10126: Fix distutils' test_build when Python was built with 5525 --enable-shared. 5526 5527 - Fix typo in one sdist option (medata-check). 5528 5529 - Issue #9199: Fix incorrect use of distutils.cmd.Command.announce. 5530 5531 - Issue #1718574: Fix options that were supposed to accept arguments but did 5532 not in build_clib. 5533 5534 - Issue #9281: Prevent race condition with mkdir in distutils. Patch by 5535 Arfrever. 5536 5537 - Issue #10229: Fix caching error in gettext. 5538 5539 - Issue #10252: Close file objects in a timely manner in distutils code and 5540 tests. Patch by Brian Brazil, completed by ric Araujo. 5541 5542 - Issue #10311: The signal module now restores errno before returning from 5543 its low-level signal handler. Patch by Hallvard B Furuseth. 5544 5545 - Issue #10038: json.loads() on str should always return unicode (regression 5546 from Python 2.6). Patch by Walter Drwald. 5547 5548 - Issue #120176: Wrapped TestSuite subclass does not get __call__ executed. 5549 5550 - Issue #6706: asyncore accept() method no longer raises 5551 EWOULDBLOCK/ECONNABORTED on incomplete connection attempt but returns None 5552 instead. 5553 5554 - Issue #10266: uu.decode didn't close in_file explicitly when it was given 5555 as a filename. Patch by Brian Brazil. 5556 5557 - Issue #10246: uu.encode didn't close file objects explicitly when filenames 5558 were given to it. Patch by Brian Brazil. 5559 5560 - Issue #10253: FileIO leaks a file descriptor when trying to open a file 5561 for append that isn't seekable. Patch by Brian Brazil. 5562 5563 - Issue #6105: json.dumps now respects OrderedDict's iteration order. 5564 5565 - Issue #9295: Fix a crash under Windows when calling close() on a file 5566 object with custom buffering from two threads at once. 5567 5568 - Issue #5027: The standard ``xml`` namespace is now understood by 5569 xml.sax.saxutils.XMLGenerator as being bound to 5570 http://www.w3.org/XML/1998/namespace. Patch by Troy J. Farrell. 5571 5572 - Issue #10163: Skip unreadable registry keys during mimetypes 5573 initialization. 5574 5575 - Issue #5117: Fixed root directory related issue on posixpath.relpath() and 5576 ntpath.relpath(). 5577 5578 - Issue #9409: Fix the regex to match all kind of filenames, for interactive 5579 debugging in doctests. 5580 5581 - Issue #6612: Fix site and sysconfig to catch os.getcwd() error, eg. if the 5582 current directory was deleted. Patch written by W. Trevor King. 5583 5584 - Issue #10045: Improved performance when writing after seeking past the 5585 end of the "file" in cStringIO. 5586 5587 - Issue #9948: Fixed problem of losing filename case information. 5588 5589 - Issue #9437: Fix building C extensions with non-default LDFLAGS. 5590 5591 - Issue #9759: GzipFile now raises ValueError when an operation is attempted 5592 after the file is closed. Patch by Jeffrey Finkelstein. 5593 5594 - Issue #9042: Fix interaction of custom translation classes and caching in 5595 gettext. 5596 5597 - Issue #9065: tarfile no longer uses "root" as the default for the uname and 5598 gname field. 5599 5600 - Issue #1050268: parseaddr now correctly quotes double quote and backslash 5601 characters that appear inside quoted strings in email addresses. 5602 5603 - Issue #10004: quoprimime no longer generates a traceback when confronted 5604 with invalid characters after '=' in a Q-encoded word. 5605 5606 - Issue #9950: Fix socket.sendall() crash or misbehaviour when a signal is 5607 received. Now sendall() properly calls signal handlers if necessary, 5608 and retries sending if these returned successfully, including on sockets 5609 with a timeout. 5610 5611 - Issue #9947: logging: Fixed locking bug in stopListening. 5612 5613 - Issue #9945: logging: Fixed locking bugs in addHandler/removeHandler. 5614 5615 - Issue #9936: Fixed executable lines' search in the trace module. 5616 5617 - Issue #9928: Properly initialize the types exported by the bz2 module. 5618 5619 - Issue #9854: The default read() implementation in io.RawIOBase now 5620 handles non-blocking readinto() returning None correctly. 5621 5622 - Issue #9729: Fix the signature of SSLSocket.recvfrom() and 5623 SSLSocket.sendto() to match the corresponding socket methods. Also, 5624 fix various SSLSocket methods to raise socket.error rather than an 5625 unhelpful TypeError when called on an unconnected socket. Original patch 5626 by Andrew Bennetts. 5627 5628 - Issue #9826: OrderedDict.__repr__ can now handle self-referential 5629 values: d['x'] = d. 5630 5631 - Issue #767645: Set os.path.supports_unicode_filenames to True on Mac OS X. 5632 5633 - Issue #9837: The read() method of ZipExtFile objects (as returned by 5634 ZipFile.open()) could return more bytes than requested. 5635 5636 - Issue #9825: removed __del__ from the definition of collections.OrderedDict. 5637 This prevents user-created self-referencing ordered dictionaries from 5638 becoming permanently uncollectable GC garbage. The downside is that 5639 removing __del__ means that the internal doubly-linked list has to wait for 5640 GC collection rather than freeing memory immediately when the refcnt drops 5641 to zero. 5642 5643 - Issue #9816: random.Random.jumpahead(n) did not produce a sufficiently 5644 different internal state for small values of n. Fixed by salting the 5645 value. 5646 5647 - Issue #9792: In case of connection failure, socket.create_connection() 5648 would swallow the exception and raise a new one, making it impossible 5649 to fetch the original errno, or to filter timeout errors. Now the 5650 original error is re-raised. 5651 5652 - Issue #9758: When fcntl.ioctl() was called with mutable_flag set to True, 5653 and the passed buffer was exactly 1024 bytes long, the buffer wouldn't 5654 be updated back after the system call. Original patch by Brian Brazil. 5655 5656 - Issue #1100562: Fix deep-copying of objects derived from the list and 5657 dict types. Patch by Michele Orr and Bjrn Lindqvist. 5658 5659 - Issue #7005: Fixed output of None values for RawConfigParser.write and 5660 ConfigParser.write. 5661 5662 - Issue #808164: Fixed socket.close to avoid references to globals, to 5663 avoid issues when socket.close is called from a __del__ method. 5664 5665 - Issue #2986: difflib.SequenceMatcher gets a new parameter, autojunk, which 5666 can be set to False to turn off the previously undocumented 'popularity' 5667 heuristic. Patch by Terry Reedy and Eli Bendersky 5668 5669 - Issue #8797: urllib2 does a retry for Basic Authentication failure instead of 5670 falling into recursion. 5671 5672 - Issue #1194222: email.utils.parsedate now returns RFC2822 compliant four 5673 character years even if the message contains RFC822 two character years. 5674 5675 - Issue #8750: Fixed MutableSet's methods to correctly handle 5676 reflexive operations, namely x -= x and x ^= x. 5677 5678 - Issue #9129: smtpd.py is vulnerable to DoS attacks deriving from missing 5679 error handling when accepting a new connection. 5680 5681 - Issue #658749: asyncore's connect() method now correctly interprets winsock 5682 errors. 5683 5684 - Issue #9501: Fixed logging regressions in cleanup code. 5685 5686 - Issue #9214: Set operations on KeysView or ItemsView in the collections 5687 module now correctly return a set. (Patch by Eli Bendersky.) 5688 5689 - Issue #9617: Signals received during a low-level write operation aren't 5690 ignored by the buffered IO layer anymore. 5691 5692 - Issue #2521: Use weakrefs on for caching in the abc module, so that classes 5693 are not held onto after they are deleted elsewhere. 5694 5695 - Issue #9626: the view methods for collections.OrderedDict() were returning 5696 the unordered versions inherited from dict. Those methods are now 5697 overridden to provide ordered views. 5698 5699 - Issue #8688: MANIFEST files created by distutils now include a magic 5700 comment indicating they are generated. Manually maintained MANIFESTs 5701 without this marker will not be overwritten or removed. 5702 5703 - Issue #7467: when reading a file from a ZIP archive, its CRC is checked 5704 and a BadZipfile error is raised if it doesn't match (as used to be the 5705 case in Python 2.5 and earlier). 5706 5707 - Issue #9550: a BufferedReader could issue an additional read when the 5708 original read request had been satisfied, which could block indefinitely 5709 when the underlying raw IO channel was e.g. a socket. Report and original 5710 patch by Jason V. Miller. 5711 5712 - Issue #9551: Don't raise TypeError when setting the value to None for 5713 SafeConfigParser instances constructed with allow_no_value == True. 5714 5715 - Issue #6915: Under Windows, os.listdir() didn't release the Global 5716 Interpreter Lock around all system calls. Original patch by Ryan Kelly. 5717 5718 - Issue #3757: thread-local objects now support cyclic garbage collection. 5719 Thread-local objects involved in reference cycles will be deallocated 5720 timely by the cyclic GC, even if the underlying thread is still running. 5721 5722 - Issue #6231: Fix xml.etree.ElementInclude to include the tail of the 5723 current node. 5724 5725 - Issue #6869: Fix a refcount problem in the _ctypes extension. 5726 5727 - Issue #5504: ctypes should now work with systems where mmap can't be 5728 PROT_WRITE and PROT_EXEC. 5729 5730 - Issue #8280: urllib2's Request method will remove fragements in the url. 5731 This is how it is supposed to work, wget and curl do the same. Previous 5732 behavior was wrong. 5733 5734 - Issue #2944: asyncore doesn't handle connection refused correctly. 5735 5736 - Issue #3196: email header decoding is now forgiving if an RFC2047 5737 encoded word encoded in base64 is lacking padding. 5738 5739 - Issue #9444: Argparse now uses the first element of prefix_chars as 5740 the option character for the added 'h/help' option if prefix_chars 5741 does not contain a '-', instead of raising an error. 5742 5743 - Issue #9354: Provide getsockopt() in asyncore's file_wrapper. 5744 5745 - Issue #9428: Fix running scripts with the profile/cProfile modules from 5746 the command line. 5747 5748 - Issue #7781: Fix restricting stats by entry counts in the pstats 5749 interactive browser. 5750 5751 - Issue #9209: Do not crash in the pstats interactive browser on invalid 5752 regular expressions. 5753 5754 - Issue #7372: Fix pstats regression when stripping paths from profile 5755 data generated with the profile module. 5756 5757 - Issue #4108: In urllib.robotparser, if there are multiple 'User-agent: *' 5758 entries, consider the first one. 5759 5760 - Issue #8397: Raise an error when attempting to mix iteration and regular 5761 reads on a BZ2File object, rather than returning incorrect results. 5762 5763 - Issue #5294: Fix the behavior of pdb's "continue" command when called 5764 in the top-level debugged frame. 5765 5766 - Issue #5727: Restore the ability to use readline when calling into pdb 5767 in doctests. 5768 5769 - Issue #6719: In pdb, do not stop somewhere in the encodings machinery 5770 if the source file to be debugged is in a non-builtin encoding. 5771 5772 - Issue #8048: Prevent doctests from failing when sys.displayhook has 5773 been reassigned. 5774 5775 - Issue #8015: In pdb, do not crash when an empty line is entered as 5776 a breakpoint command. 5777 5778 - Issue #9448: Fix a leak of OS resources (mutexes or semaphores) when 5779 re-initializing a buffered IO object by calling its ``__init__`` method. 5780 5781 - Issue #7909: Do not touch paths with the special prefixes ``\\.\`` 5782 or ``\\?\`` in ntpath.normpath(). 5783 5784 - Issue #5146: Handle UID THREAD command correctly in imaplib. 5785 5786 - Issue #5147: Fix the header generated for cookie files written by 5787 http.cookiejar.MozillaCookieJar. 5788 5789 - Issue #8198: In pydoc, output all help text to the correct stream 5790 when sys.stdout is reassigned. 5791 5792 - Issue #7395: Fix tracebacks in pstats interactive browser. 5793 5794 - Issue #8230: Fix Lib/test/sortperf.py. 5795 5796 - Issue #1713: Fix os.path.ismount(), which returned true for symbolic links 5797 across devices. 5798 5799 - Issue #8826: Properly load old-style "expires" attribute in http.cookies. 5800 5801 - Issue #1690103: Fix initial namespace for code run with trace.main(). 5802 5803 - Issue #8471: In doctest, properly reset the output stream to an empty 5804 string when Unicode was previously output. 5805 5806 - Issue #8620: when a Cmd is fed input that reaches EOF without a final 5807 newline, it no longer truncates the last character of the last command line. 5808 5809 - Issue #6213: Implement getstate() and setstate() methods of utf-8-sig and 5810 utf-16 incremental encoders. 5811 5812 - Issue #7113: Speed up loading in ConfigParser. Patch by ukasz Langa. 5813 5814 - Issue #3704: cookielib was not properly handling URLs with a / in the 5815 parameters. 5816 5817 - Issue #9032: XML-RPC client retries the request on EPIPE error. The EPIPE 5818 error occurs when the server closes the socket and the client sends a big 5819 XML-RPC request. 5820 5821 - Issue #5542: Remove special logic that closes HTTPConnection socket on EPIPE. 5822 5823 - Issue #4629: getopt raises an error if an argument ends with = whereas getopt 5824 doesn't except a value (eg. --help= is rejected if getopt uses ['help='] long 5825 options). 5826 5827 - Issue #7895: platform.mac_ver() no longer crashes after calling os.fork() 5828 5829 - Issue #5395: array.fromfile() would raise a spurious EOFError when an 5830 I/O error occurred. Now an IOError is raised instead. Patch by chuck 5831 (Jan Hosang). 5832 5833 - Issue #7646: The fnmatch pattern cache no longer grows without bound. 5834 5835 - Issue #9136: Fix 'dictionary changed size during iteration' 5836 RuntimeError produced when profiling the decimal module. This was 5837 due to a dangerous iteration over 'locals()' in Context.__init__. 5838 5839 - Fix extreme speed issue in Decimal.pow when the base is an exact 5840 power of 10 and the exponent is tiny (for example, 5841 Decimal(10) ** Decimal('1e-999999999')). 5842 5843 - Issue #9161: Fix regression in optparse's acceptance of unicode 5844 strings in add_option calls. 5845 5846 - Issue #9130: Fix validation of relative imports in parser module. 5847 5848 - Issue #9128: Fix validation of class decorators in parser module. 5849 5850 - Issue #9164: Ensure sysconfig handles dupblice archs while building on OSX 5851 5852 - Issue #9315: Fix for the trace module to record correct class name 5853 for tracing methods. 5854 5855 Extension Modules 5856 ----------------- 5857 5858 - Issue #9054: Fix a crash occurring when using the pyexpat module 5859 with expat version 2.0.1. 5860 5861 - Issue #10003: Allow handling of SIGBREAK on Windows. Fixes a regression 5862 introduced by issue #9324. 5863 5864 - Issue #8734: Avoid crash in msvcrt.get_osfhandle() when an invalid file 5865 descriptor is provided. Patch by Pascal Chambon. 5866 5867 - Issue #7736: Release the GIL around calls to opendir() and closedir() 5868 in the posix module. Patch by Marcin Bachry. 5869 5870 - As a result of issue #2521, the _weakref module is now compiled into the 5871 interpreter by default. 5872 5873 - Issue #9324: Add parameter validation to signal.signal on Windows in order 5874 to prevent crashes. 5875 5876 - Issue #9526: Remove some outdated (int) casts that were preventing 5877 the array module from working correctly with arrays of more than 5878 2**31 elements. 5879 5880 - Fix memory leak in ssl._ssl._test_decode_cert. 5881 5882 - Issue #8065: Fix memory leak in readline module (from failure to 5883 free the result of history_get_history_state()). 5884 5885 - Issue #9450: Fix memory leak in readline.replace_history_item and 5886 readline.remove_history_item for readline version >= 5.0. 5887 5888 - Issue #8105: Validate file descriptor passed to mmap.mmap on Windows. 5889 5890 - Issue #1019882: Fix IndexError when loading certain hotshot stats. 5891 5892 - Issue #9422: Fix memory leak when re-initializing a struct.Struct object. 5893 5894 - Issue #7900: The getgroups(2) system call on MacOSX behaves rather oddly 5895 compared to other unix systems. In particular, os.getgroups() does 5896 not reflect any changes made using os.setgroups() but basically always 5897 returns the same information as the id command. 5898 5899 os.getgroups() can now return more than 16 groups on MacOSX. 5900 5901 - Issue #9277: Fix bug in struct.pack for bools in standard mode 5902 (e.g., struct.pack('>?')): if conversion to bool raised an exception 5903 then that exception wasn't properly propagated on machines where 5904 char is unsigned. 5905 5906 - Issue #7567: Don't call `setupterm' twice. 5907 5908 Tools/Demos 5909 ----------- 5910 5911 - Issue #7287: Demo/imputil/knee.py was removed. 5912 5913 - Issue #9188: The gdb extension now handles correctly narrow (UCS2) as well 5914 as wide (UCS4) unicode builds for both the host interpreter (embedded 5915 inside gdb) and the interpreter under test. 5916 5917 Build 5918 ----- 5919 5920 - Issue #8852: Allow the socket module to build on OpenSolaris. 5921 5922 - Issue #10054: Some platforms provide uintptr_t in inttypes.h. Patch by 5923 Akira Kitada. 5924 5925 - Issue #10055: Make json C89-compliant in UCS4 mode. 5926 5927 - Issue #1633863: Don't ignore $CC under AIX. 5928 5929 - Issue #9810: Compile bzip2 source files in python's project file 5930 directly. It used to be built with bzip2's makefile. 5931 5932 - Issue #941346: Improve the build process under AIX and allow Python to 5933 be built as a shared library. Patch by Sbastien Sabl. 5934 5935 - Issue #4026: Make the fcntl extension build under AIX. Patch by Sbastien 5936 Sabl. 5937 5938 - Issue #3101: Helper functions _add_one_to_index_C() and 5939 _add_one_to_index_F() become _Py_add_one_to_index_C() and 5940 _Py_add_one_to_index_F(), respectively. 5941 5942 - Issue #9700: define HAVE_BROKEN_POSIX_SEMAPHORES under AIX 6.x. Patch by 5943 Sbastien Sabl. 5944 5945 - Issue #9280: Make sharedinstall depend on sharedmods. 5946 5947 - Issue #9275: The OSX installer once again installs links to binaries in 5948 ``/usr/local/bin``. 5949 5950 - Issue #9392: A framework build on OSX will once again use a versioned name 5951 of the ``2to3`` tool, that is you can use ``2to3-2.7`` to select the Python 5952 2.7 edition of 2to3. 5953 5954 - Issue #9701: The MacOSX installer can patch the shell profile to ensure that 5955 the "bin" directory inside the framework is on the shell's search path. This 5956 feature now also supports the ZSH shell. 5957 5958 - Issue #7473: avoid link errors when building a framework with a different 5959 set of architectures than the one that is currently installed. 5960 5961 Tests 5962 ----- 5963 5964 - Issue #9978: Wait until subprocess completes initialization. (Win32KillTests 5965 in test_os) 5966 5967 - Issue #9894: Do not hardcode ENOENT in test_subprocess. 5968 5969 - Issue #9323: Make test.regrtest.__file__ absolute, this was not always the 5970 case when running profile or trace, for example. 5971 5972 - Issue #9315: Added tests for the trace module. Patch by Eli Bendersky. 5973 5974 - Strengthen test_unicode with explicit type checking for assertEqual tests. 5975 5976 - Issue #8857: Provide a test case for socket.getaddrinfo. 5977 5978 - Issue #7564: Skip test_ioctl if another process is attached to /dev/tty. 5979 5980 - Issue #8433: Fix test_curses failure with newer versions of ncurses. 5981 5982 - Issue #9496: Provide a test suite for the rlcompleter module. Patch by 5983 Michele Orr. 5984 5985 - Issue #8605: Skip test_gdb if Python is compiled with optimizations. 5986 5987 - Issue #9568: Fix test_urllib2_localnet on OS X 10.3. 5988 5989 Documentation 5990 ------------- 5991 5992 - Issue #9817: Add expat COPYING file; add expat, libffi and expat licenses 5993 to Doc/license.rst. 5994 5995 - Issue #9524: Document that two CTRL* signals are meant for use only 5996 with os.kill. 5997 5998 - Issue #9255: Document that the 'test' package is for internal Python use 5999 only. 6000 6001 - Issue #7829: Document in dis that bytecode is an implementation detail. 6002 6003 6004 What's New in Python 2.7? 6005 ========================= 6006 6007 *Release date: 2010-07-03* 6008 6009 Core and Builtins 6010 ----------------- 6011 6012 - Prevent assignment to set literals. 6013 6014 Library 6015 ------- 6016 6017 - Issue #1868: Eliminate subtle timing issues in thread-local objects by 6018 getting rid of the cached copy of thread-local attribute dictionary. 6019 6020 - Issue #9125: Add recognition of 'except ... as ...' syntax to parser module. 6021 6022 Extension Modules 6023 ----------------- 6024 6025 - Issue #7673: Fix security vulnerability (CVE-2010-2089) in the audioop module, 6026 ensure that the input string length is a multiple of the frame size. 6027 6028 - Issue #9075: In the ssl module, remove the setting of a ``debug`` flag 6029 on an OpenSSL structure. 6030 6031 6032 What's New in Python 2.7 release candidate 2? 6033 ============================================= 6034 6035 *Release date: 2010-06-20* 6036 6037 Core and Builtins 6038 ----------------- 6039 6040 - Issue #9058: Remove assertions about INT_MAX in UnicodeDecodeError. 6041 6042 - Issue #8202: Previous change to ``sys.argv[0]`` handling for -m command line 6043 option reverted due to unintended side effects on handling of ``sys.path``. 6044 See tracker issue for details. 6045 6046 - Issue #8941: decoding big endian UTF-32 data in UCS-2 builds could crash 6047 the interpreter with characters outside the Basic Multilingual Plane 6048 (higher than 0x10000). 6049 6050 - In the unicode/str.format(), raise a ValueError when indexes to arguments are 6051 too large. 6052 6053 Build 6054 ----- 6055 6056 - Issue #8854: Fix finding Visual Studio 2008 on Windows x64. 6057 6058 Library 6059 ------- 6060 6061 - Issue #6589: cleanup asyncore.socket_map in case smtpd.SMTPServer constructor 6062 raises an exception. 6063 6064 - Issue #8959: fix regression caused by using unmodified libffi 6065 library on Windows. ctypes does now again check the stack before 6066 and after calling foreign functions. 6067 6068 - Issue #8720: fix regression caused by fix for #4050 by making getsourcefile 6069 smart enough to find source files in the linecache. 6070 6071 - Issue #8986: math.erfc was incorrectly raising OverflowError for 6072 values between -27.3 and -30.0 on some platforms. 6073 6074 - Issue #8924: logging: Improved error handling for Unicode in exception text. 6075 6076 - Issue #8948: cleanup functions and class / module setups and teardowns are 6077 now honored in unittest debug methods. 6078 6079 Documentation 6080 ------------- 6081 6082 - Issue #8909: Added the size of the bitmap used in the installer created by 6083 distutils' bdist_wininst. Patch by Anatoly Techtonik. 6084 6085 Misc 6086 ---- 6087 6088 - Issue #8362: Add maintainers.rst: list of module maintainers 6089 6090 6091 What's New in Python 2.7 Release Candidate 1? 6092 ============================================= 6093 6094 *Release date: 2010-06-05* 6095 6096 Core and Builtins 6097 ----------------- 6098 6099 - Issue #8271: during the decoding of an invalid UTF-8 byte sequence, only the 6100 start byte and the continuation byte(s) are now considered invalid, instead 6101 of the number of bytes specified by the start byte. 6102 E.g.: '\xf1\x80AB'.decode('utf-8', 'replace') now returns u'\ufffdAB' and 6103 replaces with U+FFFD only the start byte ('\xf1') and the continuation byte 6104 ('\x80') even if '\xf1' is the start byte of a 4-bytes sequence. 6105 Previous versions returned a single u'\ufffd'. 6106 6107 - Issue #8627: Remove bogus "Overriding __cmp__ blocks inheritance of 6108 __hash__ in 3.x" warning. Also fix "XXX undetected error" that 6109 arises from the "Overriding __eq__ blocks inheritance ..." warning 6110 when turned into an exception: in this case the exception simply 6111 gets ignored. 6112 6113 - Issue #8748: Fix two issues with comparisons between complex and integer 6114 objects. (1) The comparison could incorrectly return True in some cases 6115 (2**53+1 == complex(2**53) == 2**53), breaking transivity of equality. 6116 (2) The comparison raised an OverflowError for large integers, leading 6117 to unpredictable exceptions when combining integers and complex objects 6118 in sets or dicts. 6119 6120 - Issue #5211: Implicit coercion for the complex type is now completely 6121 removed. (Coercion for arithmetic operations was already removed in 2.7 6122 alpha 4, but coercion for rich comparisons was accidentally left in.) 6123 6124 - Issue #3798: Write sys.exit() message to sys.stderr to use stderr encoding 6125 and error handler, instead of writing to the C stderr file in utf-8 6126 6127 - Issue #7902: When using explicit relative import syntax, don't try implicit 6128 relative import semantics. 6129 6130 - Issue #7079: Fix a possible crash when closing a file object while using it 6131 from another thread. Patch by Daniel Stutzbach. 6132 6133 - Issue #8868: Fix that ensures that python scripts have access to the 6134 Window Server again in a framework build on MacOSX 10.5 or earlier. 6135 6136 C-API 6137 ----- 6138 6139 - Issue #5753: A new C API function, :cfunc:`PySys_SetArgvEx`, allows embedders 6140 of the interpreter to set sys.argv without also modifying sys.path. This 6141 helps fix `CVE-2008-5983 6142 <http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-5983>`_. 6143 6144 Library 6145 ------- 6146 6147 - Issue #8302: SkipTest in unittest.TestCase.setUpClass or setUpModule is now 6148 reported as a skip rather than an error. 6149 6150 - Issue #8351: Excessively large diffs due to 6151 unittest.TestCase.assertSequenceEqual are no longer included in failure 6152 reports. 6153 6154 - Issue #8899: time.struct_time now has class and attribute docstrings. 6155 6156 - Issue #4487: email now accepts as charset aliases all codec aliases 6157 accepted by the codecs module. 6158 6159 - Issue #6470: Drop UNC prefix in FixTk. 6160 6161 - Issue #5610: feedparser no longer eats extra characters at the end of 6162 a body part if the body part ends with a \r\n. 6163 6164 - Issue #8833: tarfile created hard link entries with a size field != 0 by 6165 mistake. 6166 6167 - Issue #1368247: set_charset (and therefore MIMEText) now automatically 6168 encodes a unicode _payload to the output_charset. 6169 6170 - Issue #7150: Raise OverflowError if the result of adding or subtracting 6171 timedelta from date or datetime falls outside of the MINYEAR:MAXYEAR range. 6172 6173 - Issue #6662: Fix parsing of malformatted charref (&#bad;), patch written by 6174 Fredrik Hrd 6175 6176 - Issue #8016: Add the CP858 codec. 6177 6178 - Issue #3924: Ignore cookies with invalid "version" field in cookielib. 6179 6180 - Issue #6268: Fix seek() method of codecs.open(), don't read or write the BOM 6181 twice after seek(0). Fix also reset() method of codecs, UTF-16, UTF-32 and 6182 StreamWriter classes. 6183 6184 - Issue #5640: Fix Shift-JIS incremental encoder for error handlers different 6185 than 'strict'. 6186 6187 - Issue #8782: Add a trailing newline in linecache.updatecache to the last line 6188 of files without one. 6189 6190 - Issue #8729: Return NotImplemented from ``collections.Mapping.__eq__()`` when 6191 comparing to a non-mapping. 6192 6193 - Issue #8759: Fix user paths in sysconfig for posix and os2 schemes. 6194 6195 - Issue #1285086: Speed up ``urllib.quote()`` and urllib.unquote for simple 6196 cases. 6197 6198 - Issue #8688: Distutils now recalculates MANIFEST every time. 6199 6200 - Issue #5099: The ``__del__()`` method of ``subprocess.Popen`` (and the methods 6201 it calls) referenced global objects, causing errors to pop up during 6202 interpreter shutdown. 6203 6204 Extension Modules 6205 ----------------- 6206 6207 - Issue #7384: If the system readline library is linked against ncurses, 6208 the curses module must be linked against ncurses as well. Otherwise it 6209 is not safe to load both the readline and curses modules in an application. 6210 6211 - Issue #2810: Fix cases where the Windows registry API returns 6212 ERROR_MORE_DATA, requiring a re-try in order to get the complete result. 6213 6214 - Issue #8674: Fixed a number of incorrect or undefined-behaviour-inducing 6215 overflow checks in the ``audioop`` module. 6216 6217 Tests 6218 ----- 6219 6220 - Issue #8889: test_support.transient_internet rewritten so that the new 6221 checks also work on FreeBSD, which lacks EAI_NODATA. 6222 6223 - Issue #8835: test_support.transient_internet() catches gaierror(EAI_NONAME) 6224 and gaierror(EAI_NODATA) 6225 6226 - Issue #7449: Skip test_socketserver if threading support is disabled 6227 6228 - On darwin, ``test_site`` assumed that a framework build was being used, 6229 leading to a failure where four directories were expected for site-packages 6230 instead of two in a non-framework build. 6231 6232 Build 6233 ----- 6234 6235 - Display installer warning that Windows 2000 won't be supported in future 6236 releases. 6237 6238 - Issues #1759169, #8864: Drop _XOPEN_SOURCE on Solaris, define it for 6239 multiprocessing only. 6240 6241 Tools/Demos 6242 ----------- 6243 6244 - Issue #5464: Implement plural forms in msgfmt.py. 6245 6246 6247 What's New in Python 2.7 beta 2? 6248 ================================ 6249 6250 *Release date: 2010-05-08* 6251 6252 Core and Builtins 6253 ----------------- 6254 6255 - Run Clang 2.7's static analyzer for ``Objects/`` and ``Python/``. 6256 6257 - Issue #1533: Fix inconsistency in range function argument processing: any 6258 non-float non-integer argument is now converted to an integer (if possible) 6259 using its __int__ method. Previously, only small arguments were treated this 6260 way; larger arguments (those whose __int__ was outside the range of a C long) 6261 would produce a TypeError. 6262 6263 - Issue #8202: ``sys.argv[0]`` is now set to '-m' instead of '-c' when searching 6264 for the module file to be executed with the -m command line option. 6265 6266 - Issue #7319: When -Q is used, do not silence DeprecationWarning. 6267 6268 - Issue #7332: Remove the 16KB stack-based buffer in 6269 ``PyMarshal_ReadLastObjectFromFile``, which doesn't bring any noticeable 6270 benefit compared to the dynamic memory allocation fallback. Patch by 6271 Charles-Franois Natali. 6272 6273 - Issue #8417: Raise an OverflowError when an integer larger than sys.maxsize is 6274 passed to bytearray. 6275 6276 - Issue #7072: ``isspace(0xa0)`` is true on Mac OS X. 6277 6278 - Issue #8404: Fix set operations on dictionary views. 6279 6280 - Issue #8084: PEP 370 now conforms to system conventions for framework builds 6281 on MacOS X. That is, ``python setup.py install --user`` will install into 6282 ``~/Library/Python/2.7`` instead of ``~/.local``. 6283 6284 Library 6285 ------- 6286 6287 - Issue #8681: Make the zlib module's error messages more informative when the 6288 zlib itself doesn't give any detailed explanation. 6289 6290 - Issue #8571: Fix an internal error when compressing or decompressing a chunk 6291 larger than 1GB with the zlib module's compressor and decompressor objects. 6292 6293 - Issue #8573: asyncore ``_strerror()`` function might throw ValueError. 6294 6295 - Issue #8483: asyncore.dispatcher's __getattr__ method produced confusing error 6296 messages when accessing undefined class attributes because of the cheap 6297 inheritance with the underlying socket object. The cheap inheritance has been 6298 deprecated. 6299 6300 - Issue #4265: ``shutil.copyfile()`` was leaking file descriptors when disk 6301 fills. Patch by Tres Seaver. 6302 6303 - Issue #7755: Use an unencumbered audio file for tests. 6304 6305 - Issue #8621: ``uuid.uuid4()`` returned the same sequence of values in the 6306 parent and any children created using ``os.fork`` on Mac OS X 10.6. 6307 6308 - Issue #8313: ``traceback.format_exception_only()`` encodes unicode message to 6309 ASCII with backslashreplace error handler if ``str(value)`` failed. 6310 6311 - Issue #8567: Fix precedence of signals in Decimal module: when a Decimal 6312 operation raises multiple signals and more than one of those signals is 6313 trapped, the specification determines the order in which the signals should be 6314 handled. In many cases this order wasn't being followed, leading to the wrong 6315 Python exception being raised. 6316 6317 - Issue #7865: The close() method of :mod:`io` objects should not swallow 6318 exceptions raised by the implicit flush(). Also ensure that calling close() 6319 several times is supported. Patch by Pascal Chambon. 6320 6321 - Issue #8576: logging updated to remove usage of find_unused_port(). 6322 6323 - Issue #4687: Fix accuracy of garbage collection runtimes displayed with 6324 gc.DEBUG_STATS. 6325 6326 - Issue #8354: The siginterrupt setting is now preserved for all signals, not 6327 just SIGCHLD. 6328 6329 - Issue #7192: ``webbrowser.get("firefox")`` now works on Mac OS X, as does 6330 ``webbrowser.get("safari")``. 6331 6332 - Issue #8577: ``distutils.sysconfig.get_python_inc()`` now makes a difference 6333 between the build dir and the source dir when looking for "python.h" or 6334 "Include". 6335 6336 - Issue #8464: tarfile no longer creates files with execute permissions set when 6337 mode="w|" is used. 6338 6339 - Issue #7834: Fix connect() of Bluetooth L2CAP sockets with recent versions of 6340 the Linux kernel. Patch by Yaniv Aknin. 6341 6342 - Issue #6312: Fix http HEAD request when the transfer encoding is chunked. It 6343 should correctly return an empty response now. 6344 6345 - Issue #7490: To facilitate sharing of doctests between 2.x and 3.x test 6346 suites, the ``IGNORE_EXCEPTION_DETAIL`` directive now also ignores the module 6347 location of the raised exception. Based on initial patch by Lennart Regebro. 6348 6349 - Issue #8086: In :func:`ssl.DER_cert_to_PEM_cert()`, fix missing newline before 6350 the certificate footer. Patch by Kyle VanderBeek. 6351 6352 - Issue #8546: Reject None given as the buffering argument to ``_pyio.open()``. 6353 6354 - Issue #8549: Fix compiling the _ssl extension under AIX. Patch by Sridhar 6355 Ratnakumar. 6356 6357 - Issue #6656: Fix locale.format_string to handle escaped percents and mappings. 6358 6359 - Issue #2302: Fix a race condition in SocketServer.BaseServer.shutdown, where 6360 the method could block indefinitely if called just before the event loop 6361 started running. This also fixes the occasional freezes witnessed in 6362 test_httpservers. 6363 6364 - Issue #5103: SSL handshake would ignore the socket timeout and block 6365 indefinitely if the other end didn't respond. 6366 6367 - The do_handshake() method of SSL objects now adjusts the blocking mode of the 6368 SSL structure if necessary (as other methods already do). 6369 6370 - Issue #7507: Quote "!" in pipes.quote(); it is special to some shells. 6371 6372 - Issue #5238: Calling makefile() on an SSL object would prevent the underlying 6373 socket from being closed until all objects get truely destroyed. 6374 6375 - Issue #7943: Fix circular reference created when instantiating an SSL socket. 6376 Initial patch by Pter Szab. 6377 6378 - Issue #8451: Syslog module now uses basename(sys.argv[0]) instead of the 6379 string "python" as the *ident*. openlog() arguments are all optional and 6380 keywords. 6381 6382 - Issue #8108: Fix the unwrap() method of SSL objects when the socket has a 6383 non-infinite timeout. Also make that method friendlier with applications 6384 wanting to continue using the socket in clear-text mode, by disabling 6385 OpenSSL's internal readahead. Thanks to Darryl Miles for guidance. 6386 6387 - Issue #8484: Load all ciphers and digest algorithms when initializing the _ssl 6388 extension, such that verification of some SSL certificates doesn't fail 6389 because of an "unknown algorithm". 6390 6391 - Issue #8437: Fix test_gdb failures, patch written by Dave Malcolm 6392 6393 - Issue #4814: The timeout parameter is now applied also for connections 6394 resulting from PORT/EPRT commands. 6395 6396 - Issue #8463: Add missing reference to bztar in shutil's documentation. 6397 6398 - Issue #8438: Remove reference to the missing "surrogateescape" encoding error 6399 handler from the new IO library. 6400 6401 - Issue #3817: ftplib.FTP.abort() method now considers 225 a valid response code 6402 as stated in RFC-959 at chapter 5.4. 6403 6404 - Issue #8279: Fix test_gdb failures. 6405 6406 - Issue #8322: Add a *ciphers* argument to SSL sockets, so as to change the 6407 available cipher list. Helps fix test_ssl with OpenSSL 1.0.0. 6408 6409 - Issue #2987: RFC 2732 support for urlparse (IPv6 addresses). Patch by Tony 6410 Locke and Hans Ulrich Niedermann. 6411 6412 - Issue #7585: difflib context and unified diffs now place a tab between 6413 filename and date, conforming to the 'standards' they were originally designed 6414 to follow. This improves compatibility with patch tools. 6415 6416 - Issue #7472: Fixed typo in email.encoders module; messages using ISO-2022 6417 character sets will now consistently use a Content-Transfer-Encoding of 7bit 6418 rather than sometimes being marked as 8bit. 6419 6420 - Issue #8330: Fix expected output in test_gdb. 6421 6422 - Issue #8374: Update the internal alias table in the :mod:`locale` module to 6423 cover recent locale changes and additions. 6424 6425 Extension Modules 6426 ----------------- 6427 6428 - Issue #8644: Improved accuracy of ``timedelta.total_seconds()``. 6429 6430 - Use Clang 2.7's static analyzer to find places to clean up some code. 6431 6432 - Build the ossaudio extension on GNU/kFreeBSD. 6433 6434 - On Windows, ctypes no longer checks the stack before and after calling a 6435 foreign function. This allows using the unmodified libffi library. 6436 6437 Tests 6438 ----- 6439 6440 - Issue #8672: Add a zlib test ensuring that an incomplete stream can be handled 6441 by a decompressor object without errors (it returns incomplete uncompressed 6442 data). 6443 6444 - Issue #8490: asyncore now has a more solid test suite which actually tests its 6445 API. 6446 6447 - Issue #8576: Remove use of find_unused_port() in test_smtplib and 6448 test_multiprocessing. Patch by Paul Moore. 6449 6450 - Issue #7449: Fix many tests to support Python compiled without thread support. 6451 Patches written by Jerry Seutter. 6452 6453 - Issue #8108: test_ftplib's non-blocking SSL server now has proper handling of 6454 SSL shutdowns. 6455 6456 Build 6457 ----- 6458 6459 - Issue #8625: Turn off optimization in ``--with-pydebug`` builds with gcc. 6460 (Optimization was unintentionally turned on in gcc --with-pydebug builds in 6461 2.7 beta1 as a result of the issue #1628484 fix, combined with autoconf's 6462 strange choice of default CFLAGS produced by AC_PROG_CC for gcc.) 6463 6464 - Issue #8509: Fix quoting in help strings and code snippets in configure.in. 6465 6466 - Issue #3646: It is now easily possible to install a Python framework into your 6467 home directory on Mac OS X, see Mac/README for more information. 6468 6469 - Issue #8510: Update to autoconf 2.65. 6470 6471 Misc 6472 ---- 6473 6474 - Update the Vim syntax highlight file. 6475 6476 6477 What's New in Python 2.7 beta 1? 6478 ================================ 6479 6480 *Release date: 2010-04-10* 6481 6482 Core and Builtins 6483 ----------------- 6484 6485 - Issue #7301: Add environment variable $PYTHONWARNINGS. 6486 6487 - Issue #8329: Don't return the same lists from select.select when no fds are 6488 changed. 6489 6490 - Issue #8259: ``1L << (2**31)`` no longer produces an 'outrageous shift error' 6491 on 64-bit machines. The shift count for either left or right shift is 6492 permitted to be up to sys.maxsize. 6493 6494 - Ensure that tokenization of identifiers is not affected by locale. 6495 6496 - Issue #1222585: Added LDCXXSHARED for C++ support. Patch by Arfrever. 6497 6498 - Raise a TypeError when trying to delete a T_STRING_INPLACE struct member. 6499 6500 - Issue #7994: Issue a PendingDeprecationWarning if object.__format__ is called 6501 with a non-empty format string. This is an effort to future-proof user 6502 code. If a derived class does not currently implement __format__ but later 6503 adds its own __format__, it would most likely break user code that had 6504 supplied a format string. This will be changed to a DeprecationWarning in 6505 Python 3.3 and it will be an error in Python 3.4. 6506 6507 - Issue #8268: Old-style classes (not just instances) now support weak 6508 references. 6509 6510 - Issue #8211: Save/restore CFLAGS around AC_PROG_CC in configure.in, in case it 6511 is set. 6512 6513 - Issue #1583863: A unicode subclass can now override the __unicode__ method 6514 6515 - Issue #6474: Make error message from passing an inadequate number of keyword 6516 arguments to a function correct. 6517 6518 - Issue #8164: Don't allow lambda functions to have a docstring. 6519 6520 - Issue #3137: Don't ignore errors at startup, especially a keyboard interrupt 6521 (SIGINT). If an error occurs while importing the site module, the error is 6522 printed and Python exits. Initialize the GIL before importing the site 6523 module. 6524 6525 - Code objects now support weak references. 6526 6527 Library 6528 ------- 6529 6530 - Issue #5277: Fix quote counting when parsing RFC 2231 encoded parameters. 6531 6532 - Issue #8321: Give access to OpenSSL version numbers from the `ssl` module, 6533 using the new attributes `ssl.OPENSSL_VERSION`, `ssl.OPENSSL_VERSION_INFO` and 6534 `ssl.OPENSSL_VERSION_NUMBER`. 6535 6536 - Issue #8310: Allow dis to examine new style classes. 6537 6538 - Issue #8257: The Decimal construct now accepts a float instance directly, 6539 converting that float to a Decimal of equal value: 6540 6541 >>> Decimal(1.1) 6542 Decimal('1.100000000000000088817841970012523233890533447265625') 6543 6544 - collections.Counter() now supports a subtract() method. 6545 6546 - The functools module now has a total_ordering() class decorator to simplify 6547 the specification of rich comparisons. 6548 6549 - The functools module also adds cmp_to_key() as a tool to transition old-style 6550 comparison functions to new-style key-functions. 6551 6552 - Issue #8294: The Fraction constructor now accepts Decimal and float instances 6553 directly. 6554 6555 - Issue #7279: Comparisons involving a Decimal signaling NaN now signal 6556 InvalidOperation instead of returning False. (Comparisons involving a quiet 6557 NaN are unchanged.) Also, Decimal quiet NaNs are now hashable; Decimal 6558 signaling NaNs remain unhashable. 6559 6560 - Issue #2531: Comparison operations between floats and Decimal instances now 6561 return a result based on the numeric values of the operands; previously they 6562 returned an arbitrary result based on the relative ordering of id(float) and 6563 id(Decimal). 6564 6565 - Issue #8233: When run as a script, py_compile.py optionally takes a single 6566 argument `-` which tells it to read files to compile from stdin. Each line is 6567 read on demand and the named file is compiled immediately. (Original patch by 6568 Piotr Oarowski). 6569 6570 - Issue #3135: Add ``inspect.getcallargs()``, which binds arguments to a 6571 function like a normal call. 6572 6573 - Backwards incompatible change: Unicode codepoints line tabulation (0x0B) and 6574 form feed (0x0C) are now considered linebreaks, as specified in Unicode 6575 Standard Annex #14. See issue #7643. http://www.unicode.org/reports/tr14/ 6576 6577 - Comparisons using one of <, <=, >, >= between a complex instance and a 6578 Fractions instance now raise TypeError instead of returning True/False. This 6579 makes Fraction <=> complex comparisons consistent with int <=> complex, float 6580 <=> complex, and complex <=> complex comparisons. 6581 6582 - Addition of ``WeakSet`` to the ``weakref`` module. 6583 6584 - logging: Added LOG_FTP to SysLogHandler and updated documentation. 6585 6586 - Issue #8205: Remove the "Modules" directory from sys.path when Python is 6587 running from the build directory (POSIX only). 6588 6589 - Issue #7667: Fix doctest failures with non-ASCII paths. 6590 6591 - Issue #7512: shutil.copystat() could raise an OSError when the filesystem 6592 didn't support chflags() (for example ZFS under FreeBSD). The error is now 6593 silenced. 6594 6595 - Issue #7703: ctypes supports both buffer() and memoryview(). The former is 6596 deprecated. 6597 6598 - Issue #7860: platform.uname now reports the correct 'machine' type when Python 6599 is running in WOW64 mode on 64 bit Windows. 6600 6601 - logging: Added getChild utility method to Logger and added isEnabledFor method 6602 to LoggerAdapter. 6603 6604 - Issue #8201: logging: Handle situation of non-ASCII and Unicode logger names 6605 existing at the same time, causing a Unicode error when configuration code 6606 attempted to sort the existing loggers. 6607 6608 - Issue #8200: logging: Handle errors when multiprocessing is not fully loaded 6609 when logging occurs. 6610 6611 - Issue #3890, #8222: Fix recv() and recv_into() on non-blocking SSL sockets. 6612 Also, enable the SSL_MODE_AUTO_RETRY flag on SSL sockets, so that blocking 6613 reads and writes are always retried by OpenSSL itself. 6614 6615 - Issue #8179: Fix macpath.realpath() on a non-existing path. 6616 6617 - Issue #8024: Update the Unicode database to 5.2. 6618 6619 - Issue #8104: socket.recv_into() and socket.recvfrom_into() now support writing 6620 into objects supporting the new buffer API, for example bytearrays or 6621 memoryviews. 6622 6623 - Issue #4961: Inconsistent/wrong result of askyesno function in tkMessageBox 6624 with Tcl/Tk-8.5. 6625 6626 - Issue #8140: Extend compileall to compile single files. Add -i option. 6627 6628 - Issue #7774: Set sys.executable to an empty string if ``argv[0]`` has been set 6629 to a non existent program name and Python is unable to retrieve the real 6630 program name. 6631 6632 - Issue #8117: logging: Improved algorithm for computing initial rollover time 6633 for ``TimedRotatingFileHandler`` by using the modification time of an existing 6634 log file to compute the next rollover time. If the log file does not exist, 6635 the current time is used as the basis for the computation. 6636 6637 - Issue #6472: The ``xml.etree`` package is updated to ElementTree 1.3. The 6638 cElementTree module is updated too. 6639 6640 - Issue #7880: Fix sysconfig when the python executable is a symbolic link. 6641 6642 - Issue #7624: Fix ``isinstance(foo(), collections.Callable)`` for old-style 6643 classes. 6644 6645 - Issue #7143: email: ``get_payload()`` used to strip any trailing newline from 6646 a base64 transfer-encoded payload *after* decoding it; it no longer does. 6647 This is a behavior change, so email's minor version number is now bumped, to 6648 version 4.0.2, for the 2.7 release. 6649 6650 - Issue #8235: _socket: Add the constant ``SO_SETFIB``. SO_SETFIB is 6651 a socket option available on FreeBSD 7.1 and newer. 6652 6653 - Issue #8038: unittest.TestCase.assertNotRegexpMatches 6654 6655 - Addition of -b command line option to unittest for buffering stdout / stderr 6656 during test runs. 6657 6658 - Issue #1220212: Added os.kill support for Windows, including support for 6659 sending CTRL+C and CTRL+BREAK events to console subprocesses. 6660 6661 Extension Modules 6662 ----------------- 6663 6664 - Issue #8314: Fix unsigned long long bug in libffi on Sparc v8. 6665 6666 - Issue #1039, #8154: Fix os.execlp() crash with missing 2nd argument. 6667 6668 - Issue #8156: bsddb module updated to version 4.8.4. 6669 http://www.jcea.es/programacion/pybsddb.htm#bsddb3-4.8.4. This update drops 6670 support for Berkeley DB 4.0, and adds support for 4.8. 6671 6672 - Issue #3928: os.mknod() now available in Solaris, also. 6673 6674 - Issue #8142: Update libffi to the 3.0.9 release. 6675 6676 - Issue #8300: When passing a non-integer argument to struct.pack with any 6677 integer format code, struct.pack first attempts to convert the non-integer 6678 using its __index__ method. If that method is non-existent or raises 6679 TypeError it goes on to try the __int__ method, as described below. 6680 6681 - Issue #1530559: When passing a non-integer argument to struct.pack with *any* 6682 integer format code (one of 'bBhHiIlLqQ'), struct.pack attempts to use the 6683 argument's __int__ method to convert to an integer before packing. It also 6684 produces a DeprecationWarning in this case. (In Python 2.6, the behaviour was 6685 inconsistent: __int__ was used for some integer codes but not for others, and 6686 the set of integer codes for which it was used differed between native packing 6687 and standard packing.) 6688 6689 - Issue #7347: _winreg: Add CreateKeyEx and DeleteKeyEx, as well as fix a bug in 6690 the return value of QueryReflectionKey. 6691 6692 Tools/Demos 6693 ----------- 6694 6695 - Issue #7993: Add a test of IO packet processing bandwidth to ccbench. It 6696 measures the number of UDP packets processed per second depending on the 6697 number of background CPU-bound Python threads. 6698 6699 - python-config now supports multiple options on the same command line. 6700 6701 Build 6702 ----- 6703 6704 - Issue #8032: For gdb7, a python-gdb.py file is added to the build, allowing to 6705 use advanced gdb features when debugging Python. 6706 6707 - Issue #1628484: The Makefile doesn't ignore the CFLAGS environment variable 6708 anymore. It also forwards the LDFLAGS settings to the linker when building a 6709 shared library. 6710 6711 - Issue #6716: Quote -x arguments of compileall in MSI installer. 6712 6713 - Issue #7705: Fix linking on FreeBSD. 6714 6715 - Make sure that the FreeBSD build of the included libffi uses the proper 6716 assembly file. 6717 6718 C-API 6719 ----- 6720 6721 - Issue #8276: PyEval_CallObject() is now only available in macro form. The 6722 function declaration, which was kept for backwards compatibility reasons, is 6723 now removed (the macro was introduced in 1997!). 6724 6725 - Issue #7992: A replacement PyCObject API, PyCapsule, has been backported from 6726 Python 3.1. All existing Python CObjects in the main distribution have been 6727 converted to capsules. To address backwards-compatibility concerns, 6728 PyCObject_AsVoidPtr() was changed to understand capsules. 6729 6730 Tests 6731 ----- 6732 6733 - Issue #3864: Skip three test_signal tests on freebsd6 because they fail if any 6734 thread was previously started, most likely due to a platform bug. 6735 6736 - Issue #8348: Fix test ftp url in test_urllib2net. 6737 6738 - Issue #8204: Fix test_ttk notebook test by forcing focus. 6739 6740 - Issue #8344: Fix test_ttk bug on FreeBSD. 6741 6742 - Issue #8193: Fix test_zlib failure with zlib 1.2.4. 6743 6744 - Issue #8248: Add some tests for the bool type. Patch by Gregory Nofi. 6745 6746 - Issue #8263: Now regrtest.py will report a failure if it receives a 6747 KeyboardInterrupt (SIGINT). 6748 6749 - Issue #8180 and #8207: Fix test_pep277 on OS X and add more tests for special 6750 Unicode normalization cases. 6751 6752 - Issue #7783: test.test_support.open_urlresource invalidates the outdated files 6753 from the local cache. 6754 6755 6756 What's New in Python 2.7 alpha 4? 6757 ================================= 6758 6759 *Release date: 2010-03-06* 6760 6761 Core and Builtins 6762 ----------------- 6763 6764 - Issue #7544: Preallocate thread memory before creating the thread to avoid a 6765 fatal error in low memory condition. 6766 6767 - Issue #7820: The parser tokenizer restores all bytes in the right if the BOM 6768 check fails. 6769 6770 - Issue #7309: Fix unchecked attribute access when converting 6771 UnicodeEncodeError, UnicodeDecodeError, and UnicodeTranslateError to strings. 6772 6773 - Issue #7649: "u'%c' % char" now behaves like "u'%s' % char" and raises a 6774 UnicodeDecodeError if 'char' is a byte string that can't be decoded using the 6775 default encoding. 6776 6777 - Issue #6902: Fix problem with built-in types format incorrectly with 0 6778 padding. 6779 6780 - Issue #2560: Remove an unnecessary 'for' loop from ``my_fgets()`` in 6781 Parser/myreadline.c. 6782 6783 - Issue #7988: Fix default alignment to be right aligned for 6784 ``complex.__format__``. Now it matches other numeric types. 6785 6786 - Issue #5211: The complex type no longer uses implicit coercion in mixed-type 6787 binary arithmetic operations. 6788 6789 Library 6790 ------- 6791 6792 - Issue #7904: Changes to urllib.parse.urlsplit to handle schemes as defined by 6793 RFC3986. Anything before :// is considered a scheme and is followed by an 6794 authority (or netloc) and by '/' led path, which is optional. 6795 6796 - Issue #1555570: email no longer inserts extra blank lines when a \r\n 6797 combo crosses an 8192 byte boundary. 6798 6799 - Issue #6906: Tk should not set Unicode environment variables on Windows. 6800 6801 - Issue #1054943: Fix ``unicodedata.normalize('NFC', text)`` for the Public 6802 Review Issue #29 (http://unicode.org/review/pr-29.html). 6803 6804 - Issue #7494: Fix a crash in ``_lsprof`` (cProfile) after clearing the profiler, 6805 reset also the pointer to the current pointer context. 6806 6807 - Issue #7232: Add support for the context management protocol to the 6808 ``tarfile.TarFile`` class. 6809 6810 - Issue #7250: Fix info leak of os.environ across multi-run uses of 6811 ``wsgiref.handlers.CGIHandler``. 6812 6813 - Issue #1729305: Fix doctest to handle encode error with "backslashreplace". 6814 6815 - Issue #691291: ``codecs.open()`` should not convert end of lines on reading 6816 and writing. 6817 6818 - Issue #7975: Correct regression in dict methods supported by bsddb.dbshelve. 6819 6820 - Issue #7959: ctypes callback functions are now registered correctly with the 6821 cycle garbage collector. 6822 6823 - Issue #7970: ``email.Generator.flatten`` now correctly flattens 6824 message/rfc822 messages parsed by ``email.Parser.HeaderParser``. 6825 6826 - Issue #3426: ``os.path.abspath`` now returns unicode when its arg is unicode. 6827 6828 - Issue #7633: In the decimal module, ``Context`` class methods (with the 6829 exception of canonical and is_canonical) now accept instances of int and long 6830 wherever a Decimal instance is accepted, and implicitly convert that argument 6831 to Decimal. Previously only some arguments were converted. 6832 6833 - Issue #6003: Add an argument to ``zipfile.Zipfile.writestr`` to specify the 6834 compression type. 6835 6836 - Issue #7893: ``unittest.TextTestResult`` is made public and a ``resultclass`` 6837 argument added to the TextTestRunner constructor allowing a different result 6838 class to be used without having to subclass. 6839 6840 - Issue #7588: ``unittest.TextTestResult.getDescription`` now includes the test 6841 name in failure reports even if the test has a docstring. 6842 6843 - Issue #5801: Remove spurious empty lines in wsgiref. 6844 6845 - Issue #1537721: Add a ``writeheader()`` method to ``csv.DictWriter``. 6846 6847 - Issue #7427: Improve the representation of httplib.BadStatusLine exceptions. 6848 6849 - Issue #7481: When a ``threading.Thread`` failed to start it would leave the 6850 instance stuck in initial state and present in ``threading.enumerate()``. 6851 6852 - Issue #1068268: The subprocess module now handles EINTR in internal 6853 ``os.waitpid()`` and ``os.read()`` system calls where appropriate. 6854 6855 - Issue #6729: Add ``ctypes.c_ssize_t`` to represent ssize_t. 6856 6857 - Issue #6247: The argparse module has been added to the standard library. 6858 6859 Extension Modules 6860 ----------------- 6861 6862 - The sqlite3 module was updated to pysqlite 2.6.0. This fixes several obscure 6863 bugs and allows loading SQLite extensions from shared libraries. 6864 6865 - Issue #7808: Fix reference leaks in _bsddb and related tests. 6866 6867 - Issue #6544: Fix a reference leak in the kqueue implementation's error 6868 handling. 6869 6870 - Stop providing crtassem.h symbols when compiling with Visual Studio 2010, as 6871 msvcr100.dll is not a platform assembly anymore. 6872 6873 - Issue #7242: On Solaris 9 and earlier calling ``os.fork()`` from within a 6874 thread could raise an incorrect RuntimeError about not holding the import 6875 lock. The import lock is now reinitialized after fork. 6876 6877 - Issue #7999: ``os.setreuid()`` and ``os.setregid()`` would refuse to accept a 6878 -1 parameter on some platforms such as OS X. 6879 6880 Tests 6881 ----- 6882 6883 - Issue #7849: The utility ``test.test_support.check_warnings()`` verifies if 6884 warnings are effectively raised. A new utility ``check_py3k_warnings()`` is 6885 available. 6886 6887 - The four path modules (genericpath, macpath, ntpath, posixpath) share a 6888 common TestCase for some tests: test_genericpath.CommonTest. 6889 6890 - Print platform information when running the whole test suite, or using the 6891 ``--verbose`` flag. 6892 6893 - Issue #767675: Enable test_pep277 on POSIX platforms with Unicode-friendly 6894 filesystem encoding. 6895 6896 - Issue #6292: For the moment at least, the test suite runs cleanly if python 6897 is run with the -OO flag. Tests requiring docstrings are skipped. 6898 6899 - Issue #7712: test_support gained a new ``temp_cwd`` context manager which is 6900 now also used by regrtest to run all the tests in a temporary directory. The 6901 original CWD is saved in ``test.test_support.SAVEDCWD``. Thanks to Florent 6902 Xicluna who helped with the patch. 6903 6904 Build 6905 ----- 6906 6907 - Issue #3920, #7903: Define _BSD_SOURCE on OpenBSD 4.4 through 4.9. 6908 6909 6910 What's New in Python 2.7 alpha 3? 6911 ================================= 6912 6913 *Release date: 2010-02-06* 6914 6915 Core and Builtins 6916 ----------------- 6917 6918 - Issue #5677: Explicitly forbid write operations on read-only file objects, 6919 and read operations on write-only file objects. On Windows, the system C 6920 library would return a bogus result; on Solaris, it was possible to crash the 6921 interpreter. Patch by Stefan Krah. 6922 6923 - Issue #7853: Normalize exceptions before they are passed to a context 6924 manager's ``__exit__()`` method. 6925 6926 - Issue #7385: Fix a crash in ``PyMemoryView_FromObject()`` when 6927 ``PyObject_GetBuffer()`` fails. Patch by Florent Xicluna. 6928 6929 - Issue #7819: Check ``sys.call_tracing()`` arguments types. 6930 6931 - Issue #7788: Fix an interpreter crash produced by deleting a list slice with 6932 very large step value. 6933 6934 - Issue #7766: Change ``sys.getwindowsversion()`` return value to a named tuple 6935 and add the additional members returned in an OSVERSIONINFOEX structure. The 6936 new members are service_pack_major, service_pack_minor, suite_mask, and 6937 product_type. 6938 6939 - Issue #7561: Operations on empty bytearrays (such as ``int(bytearray())``) 6940 could crash in many places because of the ``PyByteArray_AS_STRING()`` macro 6941 returning NULL. The macro now returns a statically allocated empty string 6942 instead. 6943 6944 - Issue #7622: Improve the split(), rsplit(), splitlines() and replace() 6945 methods of bytes, bytearray and unicode objects by using a common 6946 implementation based on stringlib's fast search. Patch by Florent Xicluna. 6947 6948 - Issue #7632: Fix various str -> float conversion bugs present in 2.7 alpha 2, 6949 including: 6950 6951 (1) a serious 'wrong output' bug that could occur for long (> 40 digit) input 6952 strings, 6953 (2) a crash in dtoa.c that occurred in debug builds when parsing certain long 6954 numeric strings corresponding to subnormal values, 6955 (3) a memory leak for some values large enough to cause overflow, and 6956 (4) a number of flaws that could lead to incorrectly rounded results. 6957 6958 - Issue #7319, #7770: Silence ``DeprecationWarning`` by default when the -3 6959 option is not used. 6960 6961 - Issue #2335: Backport set literals syntax from Python 3.x. 6962 6963 - Issue #2333: Backport set and dict comprehensions syntax from Python 3.x. 6964 6965 - Issue #1967: Backport dictionary views from Python 3.x. 6966 6967 Library 6968 ------- 6969 6970 - Issue #9137: Fix issue in MutableMapping.update, which incorrectly 6971 treated keyword arguments called 'self' or 'other' specially. 6972 6973 - Issue #7835: shelve should no longer produce mysterious warnings during 6974 interpreter shutdown. 6975 6976 - Issue #2746: Don't escape ampersands and angle brackets ("&", "<", ">") in 6977 XML processing instructions and comments. These raw characters are allowed 6978 by the XML specification, and are necessary when outputting e.g. PHP code in 6979 a processing instruction. Patch by Neil Muller. 6980 6981 - Issue #7869: logging: Improved diagnostic for format-time errors. 6982 6983 - Issue #7868: logging: Added loggerClass attribute to Manager. 6984 6985 - Issue #7851: logging: Clarification on logging configuration files. 6986 6987 - Issue #4772: Raise a ValueError when an unknown Bluetooth protocol is 6988 specified, rather than fall through to AF_PACKET (in the ``socket`` module). 6989 Also, raise ValueError rather than TypeError when an unknown TIPC address 6990 type is specified. Patch by Brian Curtin. 6991 6992 - logging: Implemented PEP 391. 6993 6994 - Issue #6939: Fix file I/O objects in the `io` module to keep the original 6995 file position when calling `truncate()`. It would previously change the file 6996 position to the given argument, which goes against the tradition of 6997 ftruncate() and other truncation APIs. Patch by Pascal Chambon. 6998 6999 - Issue #7610: Reworked implementation of the internal ``zipfile.ZipExtFile`` 7000 class used to represent files stored inside an archive. The new 7001 implementation is significantly faster and can be wrapped in an 7002 ``io.BufferedReader`` object for more speedups. It also solves an issue 7003 where interleaved calls to ``read()`` and ``readline()`` give wrong results. 7004 Patch by Nir Aides. 7005 7006 - Issue #7792: Registering non-classes to ABCs raised an obscure error. 7007 7008 - Removed the deprecated functions ``verify()`` and ``vereq()`` from 7009 Lib/test/test_support.py. 7010 7011 - Issue #7773: Fix an UnboundLocalError in ``platform.linux_distribution()`` 7012 when the release file is empty. 7013 7014 - Issue #7748: Since unicode values are supported for some metadata options in 7015 Distutils, the DistributionMetadata get_* methods will now return a utf-8 7016 encoded string for them. This ensures that the upload and register commands 7017 send the correct values to PyPI without any error. 7018 7019 - Issue #1670765: Prevent ``email.generator.Generator`` from re-wrapping 7020 headers in multipart/signed MIME parts, which fixes one of the sources of 7021 invalid modifications to such parts by Generator. 7022 7023 - Issue #7701: Fix crash in ``binascii.b2a_uu()`` in debug mode when given a 7024 1-byte argument. Patch by Victor Stinner. 7025 7026 - Issue #3299: Fix possible crash in the _sre module when given bad argument 7027 values in debug mode. Patch by Victor Stinner. 7028 7029 - Issue #7703: Add support for the new buffer API to functions of the binascii 7030 module. Backported from py3k by Florent Xicluna, with some additional tests. 7031 7032 - Issue #2846: Add support for gzip.GzipFile reading zero-padded files. Patch 7033 by Brian Curtin. 7034 7035 - Issue #5827: Make sure that normpath preserves unicode. Initial patch by 7036 Matt Giuca. 7037 7038 - Issue #5372: Drop the reuse of .o files in Distutils' ccompiler (since 7039 Extension extra options may change the output without changing the .c file). 7040 Initial patch by Collin Winter. 7041 7042 Extension Modules 7043 ----------------- 7044 7045 - Expat: Fix DoS via XML document with malformed UTF-8 sequences 7046 (CVE_2009_3560). 7047 7048 Build 7049 ----- 7050 7051 - Issue #7632: When Py_USING_MEMORY_DEBUGGER is defined, disable the private 7052 memory allocation scheme in dtoa.c and use PyMem_Malloc and PyMem_Free 7053 instead. Also disable caching of powers of 5. 7054 7055 - Issue #7658: Ensure that the new pythonw executable works on OSX 10.4 7056 7057 - Issue #7714: Use ``gcc -dumpversion`` to detect the version of GCC on 7058 MacOSX. 7059 7060 - Issue #7661: Allow ctypes to be built from a non-ASCII directory path. 7061 Patch by Florent Xicluna. 7062 7063 Tools/Demos 7064 ----------- 7065 7066 - iobench (a file I/O benchmark) and ccbench (a concurrency benchmark) were 7067 added to the ``Tools`` directory. They were previously living in the 7068 sandbox. 7069 7070 Tests 7071 ----- 7072 7073 - Issue #7728: test_timeout was changed to use ``test_support.bind_port()`` 7074 instead of a hard coded port. 7075 7076 Documentation 7077 ------------- 7078 7079 - Updated "Using Python" documentation to include description of CPython's -J, 7080 -U and -X options. 7081 7082 - Updated Python manual page (options -B, -O0, -s, environment variables 7083 PYTHONDONTWRITEBYTECODE, PYTHONNOUSERSITE). 7084 7085 7086 What's New in Python 2.7 alpha 2? 7087 ================================= 7088 7089 *Release date: 2010-01-09* 7090 7091 Core and Builtins 7092 ----------------- 7093 7094 - The ``__complex__()`` method is now looked up on the class of instances to 7095 make it consistent with other special methods. 7096 7097 - Issue #7462: Implement the stringlib fast search algorithm for the `rfind`, 7098 `rindex`, `rsplit` and `rpartition` methods. Patch by Florent Xicluna. 7099 7100 - Issue #5080: A number of functions and methods previously produced a 7101 DeprecationWarning when passed a float argument where an integer was expected. 7102 These functions and methods now raise TypeError instead. The majority of the 7103 effects of this change are in the extension modules, but some core functions 7104 and methods are affected: notably the 'chr', 'range' and 'xrange' builtins, 7105 and many unicode/str methods. 7106 7107 - Issue #7604: Deleting an unset slotted attribute did not raise an 7108 AttributeError. 7109 7110 - Issue #7534: Fix handling of IEEE specials (infinities, nans, negative zero) 7111 in ** operator. The behaviour now conforms to that described in C99 Annex F. 7112 7113 - Issue #7579: The msvcrt module now has docstrings for all its functions. 7114 7115 - Issue #7413: Passing '\0' as the separator to datetime.datetime.isoformat() 7116 used to drop the time part of the result. 7117 7118 - Issue #1811: Improve accuracy and cross-platform consistency for true division 7119 of integers: the result of a/b is now correctly rounded for ints a and b (at 7120 least on IEEE 754 platforms), and in particular does not depend on the 7121 internal representation of a long. 7122 7123 - Issue #6108: ``unicode(exception)`` and ``str(exception)`` should return the 7124 same message when only ``__str__()`` (and not ``__unicode__()``) is overridden 7125 in the subclass. 7126 7127 - Issue #6834: Replace the implementation for the 'python' and 'pythonw' 7128 executables on OSX. 7129 7130 These executables now work properly with the arch(1) command: ``arch -ppc 7131 python`` will start a universal binary version of python in PPC mode (unlike 7132 previous releases). 7133 7134 - Issue #1680159: Unicode coercion during an 'in' operation no longer masks the 7135 underlying error when the coercion fails for the left hand operand. 7136 7137 - Issue #7491: Metaclass's __cmp__ method was ignored. 7138 7139 - Issue #7466: Segmentation fault when the garbage collector is called in the 7140 middle of populating a tuple. Patch by Florent Xicluna. 7141 7142 Library 7143 ------- 7144 7145 - Issue #6963: Added "maxtasksperchild" argument to ``multiprocessing.Pool``, 7146 allowing for a maximum number of tasks within the pool to be completed by the 7147 worker before that worker is terminated, and a new one created to replace it. 7148 7149 - Issue #7617: Make sure distutils.unixccompiler.UnixCCompiler recognizes gcc 7150 when it has a fully qualified configuration prefix. Initial patch by 7151 Arfrever. 7152 7153 - Issue #7092: Remove py3k warning when importing cPickle. 2to3 handles 7154 renaming of `cPickle` to `pickle`. The warning was annoying since there's no 7155 alternative to cPickle if you care about performance. Patch by Florent 7156 Xicluna. 7157 7158 - Issue #7455: Fix possible crash in cPickle on invalid input. Patch by Victor 7159 Stinner. 7160 7161 - Issue #7092: Fix the DeprecationWarnings emitted by the standard library when 7162 using the -3 flag. Patch by Florent Xicluna. 7163 7164 - Issue #7471: Improve the performance of GzipFile's buffering mechanism, and 7165 make it implement the ``io.BufferedIOBase`` ABC to allow for further speedups 7166 by wrapping it in an ``io.BufferedReader``. Patch by Nir Aides. 7167 7168 - Issue #3972: ``httplib.HTTPConnection`` now accepts an optional source_address 7169 parameter to allow specifying where your connections come from. 7170 7171 - ``socket.create_connection()`` now accepts an optional source_address 7172 parameter. 7173 7174 - Issue #5511: ``zipfile.ZipFile`` can now be used as a context manager. 7175 Initial patch by Brian Curtin. 7176 7177 - Distutils now correctly identifies the build architecture as "x86_64" when 7178 building on OSX 10.6 without "-arch" flags. 7179 7180 - Issue #7556: Distutils' msvc9compiler now opens the MSVC Manifest file in text 7181 mode. 7182 7183 - Issue #7552: Removed line feed in the base64 Authorization header in the 7184 Distutils upload command to avoid an error when PyPI reads it. This occurs on 7185 long passwords. Initial patch by JP St. Pierre. 7186 7187 - Issue #7231: urllib2 cannot handle https with proxy requiring auth. Patch by 7188 Tatsuhiro Tsujikawa. 7189 7190 - Issue #7349: Make methods of file objects in the io module accept None as an 7191 argument where file-like objects (ie StringIO and BytesIO) accept them to mean 7192 the same as passing no argument. 7193 7194 - Issue #7348: ``StringIO.StringIO.readline(-1)`` now acts as if it got no 7195 argument like other file objects. 7196 7197 - Issue #7357: tarfile no longer suppresses fatal extraction errors by default. 7198 7199 - Issue #7470: logging: Fix bug in Unicode encoding fallback. 7200 7201 - Issue #5949: Fixed IMAP4_SSL hang when the IMAP server response is missing 7202 proper end-of-line termination. 7203 7204 - Issue #7457: Added a read_pkg_file method to 7205 ``distutils.dist.DistributionMetadata``. 7206 7207 - Issue #3745: Undo the 2.7a1 change to have hashlib to reject unicode and non 7208 buffer API supporting objects as input. That behavior is for 3.x only. 7209 7210 C-API 7211 ----- 7212 7213 - Issue #7767: New function ``PyLong_AsLongLongAndOverflow()`` added, analogous 7214 to ``PyLong_AsLongAndOverflow()``. 7215 7216 - Issue #5080: The argument parsing functions ``PyArg_ParseTuple()``, 7217 ``PyArg_ParseTupleAndKeywords()``, ``PyArg_VaParse()``, 7218 ``PyArg_VaParseTupleAndKeywords()`` and ``PyArg_Parse()`` no longer accept 7219 float arguments for integer format codes (other than 'L'): previously an 7220 attempt to pass a float resulted in a DeprecationWarning; now it gives a 7221 TypeError. For the 'L' format code (which previously had no warning) there is 7222 now a DeprecationWarning. 7223 7224 - Issue #7033: Function ``PyErr_NewExceptionWithDoc()`` added. 7225 7226 Build 7227 ----- 7228 7229 - Issue #6491: Allow --with-dbmliborder to specify that no dbms will be built. 7230 7231 - Issue #6943: Use pkg-config to find the libffi headers when the 7232 ``--with-system-ffi`` flag is used. 7233 7234 - Issue #7609: Add a ``--with-system-expat`` option that causes the system's 7235 expat library to be used for the pyexpat module instead of the one included 7236 with Python. 7237 7238 - Issue #7589: Only build the nis module when the correct header files are 7239 found. 7240 7241 - Switch to OpenSSL 0.9.8l and sqlite 3.6.21 on Windows. 7242 7243 - Issue #7541: when using ``python-config`` with a framework install the 7244 compiler might use the wrong library. 7245 7246 Tests 7247 ----- 7248 7249 - Issue #7376: Instead of running a self-test (which was failing) when called 7250 with no arguments, doctest.py now gives a usage message. 7251 7252 - Issue #7396: Fix regrtest -s, which was broken by the -j enhancement. 7253 7254 - Issue #7498: test_multiprocessing now uses test_support.find_unused_port 7255 instead of a hardcoded port number in test_rapid_restart. 7256 7257 7258 What's New in Python 2.7 alpha 1 7259 ================================ 7260 7261 *Release date: 2009-12-05* 7262 7263 Core and Builtins 7264 ----------------- 7265 7266 - Issue #7419: ``locale.setlocale()`` could crash the interpreter on Windows 7267 when called with invalid values. 7268 7269 - Issue #3382: 'F' formatting for float and complex now convert the result to 7270 upper case. This only affects 'inf' and 'nan', since 'f' no longer converts 7271 to 'g' for large values. 7272 7273 - Remove switch from "%f" formatting to "%g" formatting for floats larger than 7274 1e50 in absolute value. 7275 7276 - Remove restrictions on precision when formatting floats. E.g., "%.120g" % 7277 1e-100 used to raise OverflowError, but now gives the requested 120 7278 significant digits instead. 7279 7280 - Add Py3k warnings for parameter names in parentheses. 7281 7282 - Issue #7362: Give a proper error message for ``def f((x)=3): pass``. 7283 7284 - Issue #7085: Fix crash when importing some extensions in a thread on MacOSX 7285 10.6. 7286 7287 - Issue #7117: ``repr(x)`` for a float x returns a result based on the shortest 7288 decimal string that's guaranteed to round back to x under correct rounding 7289 (with round-half-to-even rounding mode). Previously it gave a string based on 7290 rounding x to 17 decimal digits. repr(x) for a complex number behaves 7291 similarly. On platforms where the correctly-rounded strtod and dtoa code is 7292 not supported (see below), repr is unchanged. 7293 7294 - Issue #7117: On almost all platforms: float-to-string and string-to-float 7295 conversions within Python are now correctly rounded. Places these conversions 7296 occur include: str for floats and complex numbers; the float and complex 7297 constructors; old-style and new-style numeric formatting; serialization and 7298 deserialization of floats and complex numbers using marshal, pickle and json; 7299 parsing of float and imaginary literals in Python code; Decimal-to-float 7300 conversion. 7301 7302 The conversions use a Python-adapted version of David Gay's well-known dtoa.c, 7303 providing correctly-rounded strtod and dtoa C functions. This code is 7304 supported on Windows, and on Unix-like platforms using gcc, icc or suncc as 7305 the C compiler. There may be a small number of platforms on which correct 7306 operation of this code cannot be guaranteed, so the code is not used: notably, 7307 this applies to platforms where the C double format is not IEEE 754 binary64, 7308 and to platforms on x86 hardware where the x87 FPU is set to 64-bit precision 7309 and Python's configure script is unable to determine how to change the FPU 7310 precision. On these platforms conversions use the platform strtod and dtoa, 7311 as before. 7312 7313 - Issue #7117: Backport round implementation from Python 3.x. ``round()`` now 7314 uses the correctly-rounded string <-> float conversions described above (when 7315 available), and so produces correctly rounded results that will display nicely 7316 under the float repr. There are two related small changes: (1) round now 7317 accepts any class with an ``__index__()`` method for its second argument (but 7318 no longer accepts floats for the second argument), and (2) an excessively 7319 large second integer argument (e.g., ``round(1.234, 10**100)``) no longer 7320 raises an exception. 7321 7322 - Issue #1757126: Fix the cyrillic-asian alias for the ptcp154 encoding. 7323 7324 - Fix several issues with ``compile()``. The input can now contain Windows and 7325 Mac newlines and is no longer required to end in a newline. 7326 7327 - Remove length limitation when constructing a complex number from a unicode 7328 string. 7329 7330 - Issue #7244: ``itertools.izip_longest()`` no longer ignores exceptions raised 7331 during the formation of an output tuple. 7332 7333 - Issue #1087418: Boost performance of bitwise operations for longs. 7334 7335 - Issue #1722344: ``threading._shutdown()`` is now called in ``Py_Finalize()``, 7336 which fixes the problem of some exceptions being thrown at shutdown when the 7337 interpreter is killed. Patch by Adam Olsen. 7338 7339 - Issue #7168: Document ``PyFloat_AsString()`` and ``PyFloat_AsReprString()``, 7340 and note that they are unsafe and deprecated. 7341 7342 - Issue #7120: logging: Remove import of multiprocessing which is causing crash 7343 in GAE. 7344 7345 - Issue #7140: The ``__dict__`` of a module should not be cleared unless the 7346 module is the only object holding a reference to it. 7347 7348 - Issue #1754094: Improve the stack depth calculation in the compiler. There 7349 should be no other effect than a small decrease in memory use. Patch by 7350 Christopher Tur Lesniewski-Laas. 7351 7352 - Issue #7084: Fix a (very unlikely) crash when printing a list from one thread, 7353 and mutating it from another one. Patch by Scott Dial. 7354 7355 - Issue #1571184: The Unicode database contains properties for more characters. 7356 The tables for code points representing numeric values, white spaces or line 7357 breaks are now generated from the official Unicode Character Database files, 7358 and include information from the Unihan.txt file. 7359 7360 - Issue #7050: Fix a SystemError when trying to use unpacking and augmented 7361 assignment. 7362 7363 - Issue #5329: Fix ``os.popen*`` regression from 2.5 with commands as a sequence 7364 running through the shell. Patch by Jean-Paul Calderone and Jani Hakala. 7365 7366 - Issue #7019: Raise ValueError when unmarshalling bad long data, instead of 7367 producing internally inconsistent Python longs. 7368 7369 - Issue #6990: Fix ``threading.local`` subclasses leaving old state around after 7370 a reference cycle GC which could be recycled by new locals. 7371 7372 - Issue #6300: unicode.encode, unicode.decode, str.decode, and str.encode now 7373 take keyword arguments. 7374 7375 - Issue #6922: Fix an infinite loop when trying to decode an invalid UTF-32 7376 stream with a non-raising error handler like "replace" or "ignore". 7377 7378 - Issue #6713: Improve performance of base 10 int -> string and long -> string 7379 conversions. 7380 7381 - Issue #1590864: Fix potential deadlock when mixing threads and fork(). 7382 7383 - Issue #6844: Do not emit DeprecationWarnings when accessing a "message" 7384 attribute on exceptions that was set explicitly. 7385 7386 - Issue #6846: Fix bug where bytearray.pop() returns negative integers. 7387 7388 - ``classmethod()`` no longer checks if its argument is callable. 7389 7390 - Issue #6750: A text file opened with ``io.open()`` could duplicate its output 7391 when writing from multiple threads at the same time. 7392 7393 - Issue #6704: Improve the col_offset in AST for "for" statements with a target 7394 of tuple unpacking. 7395 7396 - Issue #6707: ``dir()`` on an uninitialized module caused a crash. 7397 7398 - Issue #6540: Fixed crash for ``bytearray.translate()`` with invalid parameters. 7399 7400 - Issue #6573: ``set.union()`` stopped processing inputs if an instance of self 7401 occurred in the argument chain. 7402 7403 - Issue #1616979: Added the cp720 (Arabic DOS) encoding. 7404 7405 - Issue #6070: On posix platforms import no longer copies the execute bit from 7406 the .py file to the .pyc file if it is set. Patch by Marco N. 7407 7408 - Issue #4618: When unicode arguments are passed to ``print()``, the default 7409 separator and end should be unicode also. 7410 7411 - Issue #6119: Fixed an incorrect Py3k warning about order comparisons of 7412 built-in functions and methods. 7413 7414 - Issue #6347: Include inttypes.h as well as stdint.h in pyport.h. This fixes a 7415 build failure on HP-UX: int32_t and uint32_t are defined in inttypes.h instead 7416 of stdint.h on that platform. 7417 7418 - Issue #4856: Remove checks for win NT. 7419 7420 - Issue #2016: Fixed a crash in a corner case where the dictionary of keyword 7421 arguments could be modified during the function call setup. 7422 7423 - Removed the ipaddr module. 7424 7425 - Issue #6329: Fixed iteration for memoryview objects (it was being blocked 7426 because it wasn't recognized as a sequence). 7427 7428 - Issue #6289: Encoding errors from ``compile()`` were being masked. 7429 7430 - When no module is given in a relative import, the module field of the 7431 ImportFrom AST node is now None instead of an empty string. 7432 7433 - Assignment to None using import statements now raises a SyntaxError. 7434 7435 - Issue #4547: When debugging a very large function, it was not always possible 7436 to update the lineno attribute of the current frame. 7437 7438 - Issue #5330: C functions called with keyword arguments were not reported by 7439 the various profiling modules (profile, cProfile). Patch by Hagen Frstenau. 7440 7441 - Issue #5982: staticmethod and classmethod now expose the wrapped function with 7442 ``__func__``. 7443 7444 - Added support for multiple context managers in the same with-statement. 7445 Deprecated ``contextlib.nested()`` which is no longer needed. 7446 7447 - Issue #6101: A new opcode, SETUP_WITH, has been added to speed up the with 7448 statement and correctly lookup the __enter__ and __exit__ special methods. 7449 7450 - Issue #5829: complex("1e500") no longer raises OverflowError. This makes it 7451 consistent with float("1e500") and interpretation of real and imaginary 7452 literals. 7453 7454 - Issue #3527: Removed Py_WIN_WIDE_FILENAMES which is not used any more. 7455 7456 - ``__instancecheck__()`` and ``__subclasscheck__()`` are now completely ignored 7457 on classic classes and instances. 7458 7459 - Issue #5994: The marshal module now has docstrings. 7460 7461 - Issue #5981: Fix three minor inf/nan issues in float.fromhex: 7462 7463 (1) inf and nan strings with trailing whitespace were incorrectly rejected; 7464 (2) parsing of strings representing infinities and nans was locale aware; and 7465 (3) the interpretation of fromhex('-nan') didn't match that of float('-nan'). 7466 7467 - Issue #5920: For ``float.__format__()``, change the behavior with the empty 7468 presentation type (that is, not one of 'e', 'f', 'g', or 'n') to be like 'g' 7469 but with at least one decimal point and with a default precision 7470 of 12. Previously, the behavior the same but with a default precision of 6. 7471 This more closely matches ``str()``, and reduces surprises when adding 7472 alignment flags to the empty presentation type. This also affects the new 7473 complex.__format__ in the same way. 7474 7475 - Issue #5890: In subclasses of 'property' the __doc__ attribute was shadowed by 7476 classtype's, even if it was None. property now inserts the __doc__ into the 7477 subclass instance __dict__. 7478 7479 - Issue #4426: The UTF-7 decoder was too strict and didn't accept some legal 7480 sequences. Patch by Nick Barnes and Victor Stinner. 7481 7482 - Issue #1588: Add complex.__format__. For example, ``format(complex(1, 2./3), 7483 '.5')`` now produces a sensible result. 7484 7485 - Issue #5864: Fix empty format code formatting for floats so that it never 7486 gives more than the requested number of significant digits. 7487 7488 - Issue #5793: Rationalize isdigit / isalpha / tolower, etc. Includes new 7489 Py_ISDIGIT / Py_ISALPHA / Py_TOLOWER, etc. in pctypes.h. 7490 7491 - Issue #4971: Fix titlecase for characters that are their own titlecase, but 7492 not their own uppercase. 7493 7494 - Issue #5835: Deprecate PyOS_ascii_formatd and replace it with 7495 _PyOS_double_to_string or PyOS_double_to_string. 7496 7497 - Issue #5283: Setting __class__ in __del__ caused a segfault. 7498 7499 - Issue #5816: ``complex(repr(z))`` now recovers z exactly, even when z involves 7500 nans, infs or negative zeros. 7501 7502 - Implement PEP 378, Format Specifier for Thousands Separator, for floats, ints, 7503 and longs. 7504 7505 - Issue #5515: 'n' formatting for ints, longs, and floats handles leading zero 7506 formatting poorly. 7507 7508 - Issue #5772: For float.__format__, don't add a trailing ".0" if we're using no 7509 type code and we have an exponent. 7510 7511 - Issue #3166: Make long -> float (and int -> float) conversions correctly 7512 rounded. 7513 7514 - Issue #5787: ``object.__getattribute__(some_type, "__bases__")`` segfaulted on 7515 some built-in types. 7516 7517 - Issue #1869: Fix a couple of minor round() issues. ``round(5e15+1)`` was 7518 giving 5e15+2; ``round(-0.0)`` was losing the sign of the zero. 7519 7520 - Issue #5759: float() didn't call __float__ on str subclasses. 7521 7522 - Issue #5704: The "-3" command-line option now implies "-t". 7523 7524 - Issue #2170: Refactored ``xml.dom.minidom.normalize``, increasing both its 7525 clarity and its speed. 7526 7527 - Issue #2396: The memoryview object was backported from Python 3.1. 7528 7529 - Fix a problem in PyErr_NormalizeException that leads to "undetected errors" 7530 when hitting the recursion limit under certain circumstances. 7531 7532 - Issue #1665206: Remove the last eager import in _warnings.c and make it lazy. 7533 7534 - Issue #4865: On MacOSX /Library/Python/2.7/site-packages is added to the end 7535 sys.path, for compatibility with the system install of Python. 7536 7537 - Issue #4688: Add a heuristic so that tuples and dicts containing only 7538 untrackable objects are not tracked by the garbage collector. This can reduce 7539 the size of collections and therefore the garbage collection overhead on 7540 long-running programs, depending on their particular use of datatypes. 7541 7542 - Issue #5512: Rewrite PyLong long division algorithm (x_divrem) to improve its 7543 performance. Long divisions and remainder operations are now between 50% and 7544 150% faster. 7545 7546 - Issue #4258: Make it possible to use base 2**30 instead of base 2**15 for the 7547 internal representation of integers, for performance reasons. Base 2**30 is 7548 enabled by default on 64-bit machines. Add --enable-big-digits option to 7549 configure, which overrides the default. Add sys.long_info structseq to 7550 provide information about the internal format. 7551 7552 - Issue #4034: Fix weird attribute error messages of the traceback object. (As a 7553 result traceback.__members__ no longer exists.) 7554 7555 - Issue #4474: PyUnicode_FromWideChar now converts characters outside the BMP to 7556 surrogate pairs, on systems with sizeof(wchar_t) == 4 and sizeof(Py_UNICODE) 7557 == 2. 7558 7559 - Issue #5237: Allow auto-numbered fields in str.format(). For example: ``'{} 7560 {}'.format(1, 2) == '1 2'``. 7561 7562 - Issue #3652: Make the 'line' argument for ``warnings.showwarning()`` a 7563 requirement. Means the DeprecationWarning from Python 2.6 can go away. 7564 7565 - Issue #5247: Improve error message when unknown format codes are used when 7566 using ``str.format()`` with str, unicode, long, int, and float arguments. 7567 7568 - Running Python with the -3 option now also warns about classic division for 7569 ints and longs. 7570 7571 - Issue #5260: Long integers now consume less memory: average saving is 2 bytes 7572 per long on a 32-bit system and 6 bytes per long on a 64-bit system. 7573 7574 - Issue #5186: Reduce hash collisions for objects with no __hash__ method by 7575 rotating the object pointer by 4 bits to the right. 7576 7577 - Issue #4575: Fix Py_IS_INFINITY macro to work correctly on x87 FPUs: it now 7578 forces its argument to double before testing for infinity. 7579 7580 - Issue #4978: Passing keyword arguments as unicode strings is now allowed. 7581 7582 - Issue #1242657: the __len__() and __length_hint__() calls in several tools 7583 were suppressing all exceptions. These include list(), filter(), map(), 7584 zip(), and bytearray(). 7585 7586 - os.ftruncate raises OSErrors instead of IOErrors for consistency with other os 7587 functions. 7588 7589 - Issue #4991: Passing invalid file descriptors to io.FileIO now raises an 7590 OSError. 7591 7592 - Issue #4807: Port the _winreg module to Windows CE. 7593 7594 - Issue #4935: The overflow checking code in the expandtabs() method common to 7595 str, bytes and bytearray could be optimized away by the compiler, letting the 7596 interpreter segfault instead of raising an error. 7597 7598 - Issue #3720: Fix a crash when an iterator modifies its class and removes its 7599 __next__ method. 7600 7601 - Issue #4893: Use NT threading on CE. 7602 7603 - Issue #4915: Port sysmodule to Windows CE. 7604 7605 - Issue #4074: Change the criteria for doing a full garbage collection (i.e. 7606 collecting the oldest generation) so that allocating lots of objects without 7607 destroying them does not show quadratic performance. Based on a proposal by 7608 Martin von Lwis at 7609 http://mail.python.org/pipermail/python-dev/2008-June/080579.html. 7610 7611 - Issue #4850: Change COUNT_ALLOCS variables to Py_ssize_t. 7612 7613 - Issue #1180193: When importing a module from a .pyc (or .pyo) file with an 7614 existing .py counterpart, override the co_filename attributes of all code 7615 objects if the original filename is obsolete (which can happen if the file has 7616 been renamed, moved, or if it is accessed through different paths). Patch by 7617 Ziga Seilnacht and Jean-Paul Calderone. 7618 7619 - Issue #4075: Use ``OutputDebugStringW()`` in Py_FatalError. 7620 7621 - Issue #4797: IOError.filename was not set when _fileio.FileIO failed to open 7622 file with `str' filename on Windows. 7623 7624 - Issue #3680: Reference cycles created through a dict, set or deque iterator 7625 did not get collected. 7626 7627 - Issue #4701: PyObject_Hash now implicitly calls PyType_Ready on types where 7628 the tp_hash and tp_dict slots are both NULL. 7629 7630 - Issue #4764: With io.open, IOError.filename is set when trying to open a 7631 directory on POSIX systems. 7632 7633 - Issue #4764: IOError.filename is set when trying to open a directory on POSIX 7634 systems. 7635 7636 - Issue #4759: None is now allowed as the first argument of 7637 ``bytearray.translate()``. It was always allowed for ``bytes.translate()``. 7638 7639 - Added test case to ensure attempts to read from a file opened for writing 7640 fail. 7641 7642 - Issue #2467: gc.DEBUG_STATS reported invalid elapsed times. Also, always print 7643 elapsed times, not only when some objects are uncollectable/unreachable. 7644 Original patch by Neil Schemenauer. 7645 7646 - Issue #3439: Add a bit_length method to int and long. 7647 7648 - Issue #2183: Simplify and optimize bytecode for list comprehensions. Original 7649 patch by Neal Norwitz. 7650 7651 - Issue #4597: Fixed exception handling when the __exit__ function of a context 7652 manager returns a value that cannot be converted to a bool. 7653 7654 - Issue #4597: Fixed several opcodes that weren't always propagating exceptions. 7655 7656 - Issue #4445: Replace ``sizeof(PyStringObject)`` with 7657 ``offsetof(PyStringObject, ob_sval) + 1`` when allocating memory for str 7658 instances. On a typical machine this saves 3 bytes of memory (on average) per 7659 string allocation. 7660 7661 - Issue #3996: On Windows, the PyOS_CheckStack function would cause the 7662 interpreter to abort ("Fatal Python error: Could not reset the stack!") 7663 instead of throwing a MemoryError. 7664 7665 - Issue #3689: The list reversed iterator now supports __length_hint__ instead 7666 of __len__. Behavior now matches other reversed iterators. 7667 7668 - Issue #4367: Python would segfault during compiling when the unicodedata 7669 module couldn't be imported and \N escapes were present. 7670 7671 - Issue #4233: Changed semantic of ``_fileio.FileIO``'s ``close()`` method on 7672 file objects with closefd=False. The file descriptor is still kept open but 7673 the file object behaves like a closed file. The ``FileIO`` object also got a 7674 new readonly attribute ``closefd``. 7675 7676 - Issue #4348: Some bytearray methods returned that didn't cause any change to 7677 the bytearray, returned the same bytearray instead of a copy. 7678 7679 - Issue #4317: Fixed a crash in the ``imageop.rgb2rgb8()`` function. 7680 7681 - Issue #4230: If ``__getattr__`` is a descriptor, it now functions correctly. 7682 7683 - Issue #4048: The parser module now correctly validates relative imports. 7684 7685 - Issue #4225: ``from __future__ import unicode_literals`` didn't work in an 7686 exec statement. 7687 7688 - Issue #4176: Fixed a crash when pickling an object which ``__reduce__`` method 7689 does not return iterators for the 4th and 5th items. 7690 7691 - Issue #4209: Enabling unicode_literals and the print_function in the same 7692 __future__ import didn't work. 7693 7694 - Using ``nonlocal`` as a variable name will now raise a Py3k SyntaxWarning 7695 because it is a reserved word in 3.x. 7696 7697 - On windows, ``os.chdir()`` given unicode was not working if 7698 GetCurrentDirectoryW returned a path longer than MAX_PATH. (But It's doubtful 7699 this code path is really executed because I cannot move to such directory on 7700 win2k) 7701 7702 - Issue #4069: When ``set.remove(element)`` is used with a set element, the 7703 element is temporarily replaced with an equivalent frozenset. But the 7704 eventual KeyError would always report the empty ``frozenset()`` as the missing 7705 key. Now it correctly refers to the initial element. 7706 7707 - Issue #4509: Various issues surrounding resize of bytearray objects to which 7708 there are buffer exports. 7709 7710 - Issue #4748: Lambda generators no longer return a value. 7711 7712 - Issue #3582: Use native TLS functions on Windows 7713 7714 - The re.sub(), re.subn() and re.split() functions now accept a flags parameter. 7715 7716 - Issue #3845: In PyRun_SimpleFileExFlags avoid invalid memory access with short 7717 file names. 7718 7719 - Issue #1113244: Py_XINCREF, Py_DECREF, Py_XDECREF: Add `do { ... } while (0)' 7720 to avoid compiler warnings. 7721 7722 - Issue #5705: os.setuid() would not accept values > 2**31-1 but pwd.getpwnam() 7723 returned them on 64bit platforms. 7724 7725 - Issue #5108: Handle %s like %S and %R in PyUnicode_FromFormatV(): Call 7726 PyUnicode_DecodeUTF8() once, remember the result and output it in a second 7727 step. This avoids problems with counting UTF-8 bytes that ignores the effect 7728 of using the replace error handler in PyUnicode_DecodeUTF8(). 7729 7730 - Issue #3739: The unicode-internal encoder now reports the number of characters 7731 consumed like any other encoder (instead of the number of bytes). 7732 7733 - Issue #2422: When compiled with the ``--with-valgrind`` option, the pymalloc 7734 allocator will be automatically disabled when running under Valgrind. This 7735 gives improved memory leak detection when running under Valgrind, while taking 7736 advantage of pymalloc at other times. 7737 7738 Library 7739 ------- 7740 7741 - Add count() and reverse() methods to collections.deque(). 7742 7743 - Fix variations of extending deques: d.extend(d) d.extendleft(d) d+=d 7744 7745 - Issue #6986: Fix crash in the JSON C accelerator when called with the wrong 7746 parameter types. Patch by Victor Stinner. 7747 7748 - logging: Added optional "secure" parameter to SMTPHandler, to enable use of 7749 TLS with authentication credentials. 7750 7751 - Issue #1923: Fixed the removal of meaningful spaces when PKG-INFO is generated 7752 in Distutils. Patch by Stephen Emslie. 7753 7754 - Issue #4120: Drop reference to CRT from manifest when building extensions with 7755 msvc9compiler. 7756 7757 - Issue #7333: The ``posix`` module gains an ``initgroups()`` function providing 7758 access to the initgroups(3) C library call on Unix systems which implement it. 7759 Patch by Jean-Paul Calderone. 7760 7761 - Issue #7408: Fixed distutils.tests.sdist so it doesn't check for group 7762 ownership when the group is not forced, because the group may be different 7763 from the user's group and inherit from its container when the test is run. 7764 7765 - Issue #1515: Enable use of deepcopy() with instance methods. Patch by Robert 7766 Collins. 7767 7768 - Issue #7403: logging: Fixed possible race condition in lock creation. 7769 7770 - Issue #6845: Add restart support for binary upload in ftplib. The 7771 ``storbinary()`` method of FTP and FTP_TLS objects gains an optional "rest" 7772 argument. Patch by Pablo Mouzo. 7773 7774 - Issue #5788: ``datetime.timedelta`` objects get a new ``total_seconds()`` 7775 method returning the total number of seconds in the duration. Patch by Brian 7776 Quinlan. 7777 7778 - Issue #6615: logging: Used weakrefs in internal handler list. 7779 7780 - Issue #1488943: ``difflib.Differ`` doesn't always add hints for tab 7781 characters. 7782 7783 - Issue #6123: tarfile now opens empty archives correctly and consistently 7784 raises ReadError on empty files. 7785 7786 - Issue #7354: distutils.tests.test_msvc9compiler - dragfullwindows can be 2. 7787 7788 - Issue #5037: Proxy the __unicode__ special method to __unicode__ instead of 7789 __str__. 7790 7791 - Issue #7341: Close the internal file object in the TarFile constructor in case 7792 of an error. 7793 7794 - Issue #7293: ``distutils.test_msvc9compiler`` is fixed to work on any fresh 7795 Windows box. Help provided by David Bolen. 7796 7797 - Issue #7328: pydoc no longer corrupts sys.path when run with the '-m' switch. 7798 7799 - Issue #2054: ftplib now provides an FTP_TLS class to do secure FTP using TLS 7800 or SSL. Patch by Giampaolo Rodola'. 7801 7802 - Issue #4969: The mimetypes module now reads the MIME database from the 7803 registry under Windows. Patch by Gabriel Genellina. 7804 7805 - Issue #6816: runpy now provides a run_path function that allows Python code to 7806 execute file paths that refer to source or compiled Python files as well as 7807 zipfiles, directories and other valid sys.path entries that contain a 7808 __main__.py file. This allows applications that run other Python scripts to 7809 support the same flexibility as the CPython command line itself. 7810 7811 - Issue #7318: multiprocessing now uses a timeout when it fails to establish a 7812 connection with another process, rather than looping endlessly. The default 7813 timeout is 20 seconds, which should be amply sufficient for local connections. 7814 7815 - Issue #7197: Allow unittest.TextTestRunner objects to be pickled and 7816 unpickled. This fixes crashes under Windows when trying to run 7817 test_multiprocessing in verbose mode. 7818 7819 - Issue #7282: Fix a memory leak when an RLock was used in a thread other than 7820 those started through ``threading.Thread`` (for example, using 7821 ``thread.start_new_thread()``. 7822 7823 - Issue #7264: Fix a possible deadlock when deallocating thread-local objects 7824 which are part of a reference cycle. 7825 7826 - Issue #7211: Allow 64-bit values for the ``ident`` and ``data`` fields of 7827 kevent objects on 64-bit systems. Patch by Michael Broghton. 7828 7829 - Issue #6896: ``mailbox.Maildir`` now invalidates its internal cache each time 7830 a modification is done through it. This fixes inconsistencies and test 7831 failures on systems with slightly bogus mtime behaviour. 7832 7833 - Issue #7246 & Issue #7208: getpass now properly flushes input before reading 7834 from stdin so that existing input does not confuse it and lead to incorrect 7835 entry or an IOError. It also properly flushes it afterwards to avoid the 7836 terminal echoing the input afterwards on OSes such as Solaris. 7837 7838 - Issue #7233: Fix a number of two-argument Decimal methods to make sure that 7839 they accept an int or long as the second argument. Also fix buggy handling of 7840 large arguments (those with coefficient longer than the current precision) in 7841 shift and rotate. 7842 7843 - Issue #4750: Store the basename of the original filename in the gzip FNAME 7844 header as required by RFC 1952. 7845 7846 - Issue #1180: Added a new global option to ignore ~/.pydistutils.cfg in 7847 Distutils. 7848 7849 - Issue #7218: Fix test_site for win32, the directory comparison was done with 7850 an uppercase. 7851 7852 - Issue #7205: Fix a possible deadlock when using a BZ2File object from several 7853 threads at once. 7854 7855 - Issue #7071: byte-compilation in Distutils is now done with respect to 7856 sys.dont_write_bytecode. 7857 7858 - Issue #7066: archive_util.make_archive now restores the cwd if an error is 7859 raised. Initial patch by Ezio Melotti. 7860 7861 - Issue #6218: io.StringIO and io.BytesIO instances are now picklable with 7862 protocol 2. 7863 7864 - Issue #7077: logging: SysLogHandler now treats Unicode as per RFC 5424. 7865 7866 - Issue #7099: Decimal.is_normal now returns True for numbers with exponent 7867 larger than emax. 7868 7869 - Issue #5833: Fix extra space character in readline completion with the GNU 7870 readline library version 6.0. 7871 7872 - Issue #7133: SSL objects now support the new buffer API. 7873 7874 - Issue #7149: urllib fails on OSX in the proxy detection code. 7875 7876 - Issue #7069: Make inspect.isabstract() return a boolean. 7877 7878 - Add support to the ``ihooks`` module for relative imports. 7879 7880 - Issue #6894: Fixed the issue urllib2 doesn't respect "no_proxy" environment. 7881 7882 - Issue #7086: Added TCP support to SysLogHandler, and tidied up some 7883 anachronisms in the code which were a relic of 1.5.2 compatibility. 7884 7885 - Issue #7082: When falling back to the MIME 'name' parameter, the correct place 7886 to look for it is the Content-Type header. 7887 7888 - Issue #7048: Force Decimal.logb to round its result when that result is too 7889 large to fit in the current precision. 7890 7891 - Issue #6516: Added owner/group support when creating tar archives in 7892 Distutils. 7893 7894 - Issue #7031: Add ``TestCase.assert(Not)IsInstance()`` methods. 7895 7896 - Issue #6790: Make it possible again to pass an ``array.array`` to 7897 ``httplib.HTTPConnection.send``. Patch by Kirk McDonald. 7898 7899 - Issue #6236, #6348: Fix various failures in the `io` module under AIX and 7900 other platforms, when using a non-gcc compiler. Patch by egreen. 7901 7902 - Issue #6954: Fixed crash when using DISTUTILS_DEBUG flag in Distutils. 7903 7904 - Issue #6851: Fix urllib.urlopen crash on secondairy threads on OSX 10.6 7905 7906 - Issue #4606: Passing 'None' if ctypes argtype is set to POINTER(...) does now 7907 always result in NULL. 7908 7909 - Issue #5042: ctypes Structure sub-subclass does now initialize correctly with 7910 base class positional arguments. 7911 7912 - Issue #6938: Fix a TypeError in string formatting of a multiprocessing debug 7913 message. 7914 7915 - Issue #6635: Fix profiler printing usage message. 7916 7917 - Issue #6856: Add a filter keyword argument to TarFile.add(). 7918 7919 - Issue #6163: Fixed HP-UX runtime library dir options in 7920 distutils.unixcompiler. Initial patch by Sridhar Ratnakumar and Michael 7921 Haubenwallner. 7922 7923 - Issue #6857: Default format() alignment should be '>' for Decimal instances. 7924 7925 - Issue #6795: int(Decimal('nan')) now raises ValueError instead of returning 7926 NaN or raising InvalidContext. Also, fix infinite recursion in 7927 long(Decimal('nan')). 7928 7929 - Issue #6850: Fix bug in Decimal._parse_format_specifier for formats with no 7930 type specifier. 7931 7932 - Issue #4937: plat-mac/bundlebuilder refers to non-existing version.plist. 7933 7934 - Issue #6838: Use a list to accumulate the value instead of repeatedly 7935 concatenating strings in httplib's HTTPResponse._read_chunked providing a 7936 significant speed increase when downloading large files servend with a 7937 Transfer-Encoding of 'chunked'. 7938 7939 - Issue #5275: In Cookie's Cookie.load(), properly handle non-string arguments 7940 as documented. 7941 7942 - Issue #2666: Handle BROWSER environment variable properly for unknown browser 7943 names in the webbrowser module. 7944 7945 - Issue #6054: Do not normalize stored pathnames in tarfile. 7946 7947 - Issue #6794: Fix Decimal.compare_total and Decimal.compare_total_mag: NaN 7948 payloads are now ordered by integer value rather than lexicographically. 7949 7950 - Issue #6693: New functions in site.py to get user/global site packages paths. 7951 7952 - The thread.lock type now supports weak references. 7953 7954 - Issue #1356969: Add missing info methods in Tix.HList. 7955 7956 - Issue #1522587: New constants and methods for the Tix.Grid widget. 7957 7958 - Issue #1250469: Fix the return value of Tix.PanedWindow.panes. 7959 7960 - Issue #1119673: Do not override Tkinter.Text methods when creating a 7961 ScrolledText. 7962 7963 - Issue #6665: Fix fnmatch to properly match filenames with newlines in them. 7964 7965 - Issue #1135: Add the XView and YView mix-ins to avoid duplicating the xview* 7966 and yview* methods. 7967 7968 - Issue #6629: Fix a data corruption issue in the new `io` package, which could 7969 occur when writing to a BufferedRandom object (e.g. a file opened in "rb+" or 7970 "wb+" mode) after having buffered a certain amount of data for reading. This 7971 bug was not present in the pure Python implementation. 7972 7973 - Issue #4660: If a multiprocessing.JoinableQueue.put() was preempted, it was 7974 possible to get a spurious 'task_done() called too many times' error. 7975 7976 - Issue #1628205: Socket file objects returned by socket.socket.makefile() now 7977 properly handles EINTR within the read, readline, write & flush methods. The 7978 socket.sendall() method now properly handles interrupted system calls. 7979 7980 - Issue #6595: The Decimal constructor now allows arbitrary Unicode decimal 7981 digits in input, as recommended by the standard. Previously it was restricted 7982 to accepting [0-9]. 7983 7984 - Issue #6511: ZipFile now raises BadZipfile (instead of an IOError) when 7985 opening an empty or very small file. 7986 7987 - Issue #6553: Fixed a crash in cPickle.load(), when given a file-like object 7988 containing incomplete data. 7989 7990 - Issue #6545: Removed assert statements in distutils.Extension, so the behavior 7991 is similar when used with -O. 7992 7993 - unittest has been split up into a package. All old names should still work. 7994 7995 - Issue #6431: Make Fraction type return NotImplemented when it doesn't know how 7996 to handle a comparison without loss of precision. Also add correct handling 7997 of infinities and nans for comparisons with float. 7998 7999 - Issue #6415: Fixed warnings.warn segfault on bad formatted string. 8000 8001 - Issue #6466: Now distutils.cygwinccompiler and distutils.emxccompiler uses the 8002 same refactored function to get gcc/ld/dllwrap versions numbers. It's 8003 ``distutils.util.get_compiler_versions()``. Added deprecation warnings for 8004 the obsolete get_versions() functions. 8005 8006 - Issue #6433: Fixed issues with multiprocessing.pool.map hanging on empty list. 8007 8008 - Issue #6314: logging: Extra checks on the "level" argument in more places. 8009 8010 - Issue #2622: Fixed an ImportError when importing email.messsage from a 8011 standalone application built with py2exe or py2app. 8012 8013 - Issue #6455: Fixed test_build_ext under win32. 8014 8015 - Issue #6377: Enabled the compiler option, and deprecate its usage as an 8016 attribute. 8017 8018 - Issue #6413: Fixed the log level in distutils.dist for announce. 8019 8020 - Issue #3392: The subprocess communicate() method no longer fails in select() 8021 when file descriptors are large; communicate() now uses poll() when possible. 8022 8023 - Issue #6403: Fixed package path usage in build_ext. 8024 8025 - Issues #5155, #5313, #5331: multiprocessing.Process._bootstrap was 8026 unconditionally calling "os.close(sys.stdin.fileno())" resulting in file 8027 descriptor errors. 8028 8029 - Issue #6365: Distutils build_ext inplace mode was copying the compiled 8030 extension in a subdirectory if the extension name had dots. 8031 8032 - Issue #6344: Fixed a crash of mmap.read() when passed a negative argument. 8033 8034 - Issue #5230: pydoc would report no documentation found if a module generated a 8035 'not found' import error when loaded; it now reports the import errors. 8036 Thanks to Lucas Prado Melo for initial fix and collaboration on the tests. 8037 8038 - Issue #6314: ``logging.basicConfig()`` performs extra checks on the "level" 8039 argument. 8040 8041 - Issue #6164: Added an AIX specific linker argument in Distutils unixcompiler. 8042 Original patch by Sridhar Ratnakumar. 8043 8044 - Issue #6274: Fixed possible file descriptors leak in subprocess.py. 8045 8046 - Issue #6189: Restored compatibility of subprocess.py with Python 2.2. 8047 8048 - Issue #6287: Added the license field in Distutils documentation. 8049 8050 - Issue #6286: Now Distutils upload command is based on urllib2 instead of 8051 httplib, allowing the usage of http_proxy. 8052 8053 - Issue #6271: mmap tried to close invalid file handle (-1) for anonymous maps 8054 on Unix. 8055 8056 - Issue #6215: All bug fixes and enhancements from the Python 3.1 io library 8057 (including the fast C implementation) have been backported to the standard 8058 ``io`` module. 8059 8060 - Issue #6258: Support AMD64 in bdist_msi. 8061 8062 - Issue #6252: Fixed bug in next rollover time computation in 8063 TimedRotatingFileHandler. 8064 8065 - Issue #6263: Fixed syntax error in distutils.cygwincompiler. 8066 8067 - Issue #5201: distutils.sysconfig.parse_makefile() now understands ``$$`` in 8068 Makefiles. This prevents compile errors when using syntax like: 8069 ``LDFLAGS='-rpath=\$$LIB:/some/other/path'``. Patch by Floris Bruynooghe. 8070 8071 - Issue #5767: Removed sgmlop support from xmlrpclib. 8072 8073 - Issue #6131: test_modulefinder leaked when run after test_distutils. Patch by 8074 Hirokazu Yamamoto. 8075 8076 - Issue #6048: Now Distutils uses the tarfile module in archive_util. 8077 8078 - Issue #6121: pydoc now ignores leading and trailing spaces in the argument to 8079 the 'help' function. 8080 8081 - In unittest, using a skipping decorator on a class is now equivalent to 8082 skipping every test on the class. The ClassTestSuite class has been removed. 8083 8084 - Issue #6050: Don't fail extracting a directory from a zipfile if the directory 8085 already exists. 8086 8087 - Issue #5311: bdist_msi can now build packages that do not depend on a specific 8088 Python version. 8089 8090 - Issue #1309352: fcntl now converts its third arguments to a C `long` rather 8091 than an int, which makes some operations possible under 64-bit Linux (e.g. 8092 DN_MULTISHOT with F_NOTIFY). 8093 8094 - Issue #1424152: Fix for httplib, urllib2 to support SSL while working through 8095 proxy. Original patch by Christopher Li, changes made by Senthil Kumaran. 8096 8097 - Issue #1983: Fix functions taking or returning a process identifier to use the 8098 dedicated C type ``pid_t`` instead of a C ``int``. Some platforms have a 8099 process identifier type wider than the standard C integer type. 8100 8101 - Issue #4066: smtplib.SMTP_SSL._get_socket now correctly returns the socket. 8102 Patch by Farhan Ahmad, test by Marcin Bachry. 8103 8104 - Issue #6062: In distutils, fixed the package option of build_ext. Feedback 8105 and tests on pywin32 by Tim Golden. 8106 8107 - Issue #6053: Fixed distutils tests on win32. Patch by Hirokazu Yamamoto. 8108 8109 - Issue #6046: Fixed the library extension when distutils build_ext is used in 8110 place. Initial patch by Roumen Petrov. 8111 8112 - Issue #6041: Now distutils `sdist` and `register` commands use `check` as a 8113 subcommand. 8114 8115 - Issue #2116: Weak references and weak dictionaries now support copy()ing and 8116 deepcopy()ing. 8117 8118 - Issue #1655: Make imaplib IPv6-capable. Patch by Derek Morr. 8119 8120 - Issue #5918: Fix a crash in the parser module. 8121 8122 - Issue #1664: Make nntplib IPv6-capable. Patch by Derek Morr. 8123 8124 - Issue #6022: A test file was created in the current working directory by 8125 test_get_outputs in Distutils. 8126 8127 - Issue #4050: inspect.findsource/getsource now raise an IOError if the 'source' 8128 file is a binary. Patch by Brodie Rao, tests by Daniel Diniz. 8129 8130 - Issue #5977: distutils build_ext.get_outputs was not taking into account the 8131 inplace option. Initial patch by kxroberto. 8132 8133 - Issue #5984: distutils.command.build_ext.check_extensions_list checks were 8134 broken for old-style extensions. 8135 8136 - Issue #5971: StreamHandler.handleError now swallows IOErrors which occur when 8137 trying to print a traceback. 8138 8139 - Issue #5976: Fixed Distutils test_check_environ. 8140 8141 - Issue #5900: Ensure RUNPATH is added to extension modules with RPATH if GNU ld 8142 is used. Original patch by Floris Bruynooghe. 8143 8144 - Issue #5941: Distutils build_clib command was not working anymore because of 8145 an incomplete customization of the archiver command. Added ARFLAGS in the 8146 Makefile besides AR and make Distutils use it. Original patch by David 8147 Cournapeau. 8148 8149 - Issue #5955: aifc's close method did not close the file it wrapped, now it 8150 does. This also means getfp method now returns the real fp. 8151 8152 - Issue #4875: On win32, ctypes.util.find_library does no longer return 8153 directories. 8154 8155 - Issue #5142: Add the ability to skip modules while stepping to pdb. 8156 8157 - Issue #1309567: Fix linecache behavior of stripping subdirectories when 8158 looking for files given by a relative filename. 8159 8160 - Issue #5692: In ``zipfile.Zipfile``, fix wrong path calculation when 8161 extracting a file to the root directory. 8162 8163 - Issue #5913: ``os.listdir()`` should fail for empty path on windows. 8164 8165 - Issue #5084: Unpickling now interns the attribute names of pickled objects, 8166 saving memory and avoiding growth in size of subsequent pickles. Proposal and 8167 original patch by Jake McGuire. 8168 8169 - Issue #3002: ``shutil.copyfile()`` and ``shutil.copytree()`` now raise an 8170 error when a named pipe is encountered, rather than blocking infinitely. 8171 8172 - Issue #3959: The ipaddr module has been added to the standard library. 8173 Contributed by Google. 8174 8175 - Issue #2245: aifc now skips chunk types it doesn't recognize, per spec. 8176 8177 - Issue #5874: distutils.tests.test_config_cmd is not locale-sensitive anymore. 8178 8179 - Issue #4305: ctypes should now build again on mipsel-linux-gnu 8180 8181 - Issue #1734234: Massively speedup ``unicodedata.normalize()`` when the string 8182 is already in normalized form, by performing a quick check beforehand. 8183 Original patch by Rauli Ruohonen. 8184 8185 - Issue #5853: Calling a function of the mimetypes module from several threads 8186 at once could hit the recursion limit if the mimetypes database hadn't been 8187 initialized before. 8188 8189 - Issue #5854: Updated __all__ to include some missing names and remove some 8190 names which should not be exported. 8191 8192 - Issue #5810: Fixed Distutils test_build_scripts so it uses 8193 ``sysconfig.get_config_vars()``. 8194 8195 - Issue #4951: Fixed failure in test_httpservers. 8196 8197 - Issue #3102: All global symbols that the _ctypes extension defines are now 8198 prefixed with 'Py' or '_ctypes'. 8199 8200 - Issue #5041: ctypes does now allow pickling wide character. 8201 8202 - Issue #5812: For the two-argument form of the Fraction constructor, 8203 ``Fraction(m, n)``, m and n are permitted to be arbitrary Rational instances. 8204 8205 - Issue #5812: Fraction('1e6') is valid: more generally, any string that's valid 8206 for float() is now valid for Fraction(), with the exception of strings 8207 representing NaNs and infinities. 8208 8209 - Issue #5795: Fixed test_distutils failure on Debian ppc. 8210 8211 - Issue #5768: Fixed bug in Unicode output logic and test case for same. 8212 8213 - Issue #1161031: Fix readwrite select flag handling: POLLPRI now results in a 8214 handle_expt_event call, not handle_read_event, and POLLERR and POLLNVAL now 8215 call handle_close, not handle_expt_event. Also, dispatcher now has an 8216 'ignore_log_types' attribute for suppressing log messages, which is set to 8217 'warning' by default. 8218 8219 - Issue #5607: Fixed Distutils test_get_platform for Mac OS X fat binaries. 8220 8221 - Issue #5741: Don't disallow "%%" (which is an escape for "%") when setting a 8222 value in SafeConfigParser. 8223 8224 - Issue #5732: Added a new command in Distutils: check. 8225 8226 - Issue #5731: Distutils bdist_wininst no longer worked on non-Windows 8227 platforms. Initial patch by Paul Moore. 8228 8229 - Issue #2254: Fix CGIHTTPServer information disclosure. Relative paths are now 8230 collapsed within the url properly before looking in cgi_directories. 8231 8232 - Issue #5095: Added bdist_msi to the list of bdist supported formats. Initial 8233 fix by Steven Bethard. 8234 8235 - Issue #1491431: Fixed distutils.filelist.glob_to_re for edge cases. Initial 8236 fix by Wayne Davison. 8237 8238 - Issue #5693: TestSuite.__iter__ can now be consistently overridden in 8239 subclasses. 8240 8241 - Issue #5694: Removed spurious test output in Distutils (test_clean). 8242 8243 - Issue #5471: Fix os.path.expanduser() for $HOME set to '/'. 8244 8245 - Issue #1326077: Fix the formatting of SyntaxErrors by the traceback module. 8246 8247 - Issue #1726172: Fix IndexError in the case of and empty response in ftplib. 8248 8249 - Issue #2625: Added missing iteritems() call to the for loop in 8250 mailbox.MH.get_message(). 8251 8252 - Issue #5585: Add the ability to call an initializer to 8253 multiprocessing.manager so that users can install custom handlers/etc. 8254 8255 - Issue #3551: Patch multiprocessing to raise a proper exception if the size of 8256 the object when writefile is called causes an ERROR_NO_SYSTEM_RESOURCES. Added 8257 docs to note the limitation. 8258 8259 - unittest.assertNotEqual() now uses the inequality operator (!=) instead of the 8260 equality operator. 8261 8262 - Issue #6001: Test discovery for unittest. Implemented in 8263 unittest.TestLoader.discover and from the command line. 8264 8265 - Issue #5679: The methods unittest.TestCase.addCleanup and doCleanups were 8266 added. addCleanup allows you to add cleanup functions that will be called 8267 unconditionally (after setUp if setUp fails, otherwise after tearDown). This 8268 allows for much simpler resource allocation and deallocation during tests. 8269 8270 - Issue #3379: unittest.main now takes an optional exit argument. If False main 8271 doesn't call sys.exit allowing it to be used from the interactive interpreter. 8272 8273 - Issue #5995: unittest.main now takes an optional verbosity argument allowing 8274 test modules to be run with a higher than default verbosity. 8275 8276 - Issue #5995: A fix to allow you to run "python -m unittest test_module" or 8277 "python -m unittest test_module.TestClass" from the command line. 8278 8279 - Issue #5728: unittest.TestResult has new startTestRun and stopTestRun methods; 8280 called immediately before and after a test run. 8281 8282 - Issue #5663: Better failure messages for unittest asserts. Default assertTrue 8283 and assertFalse messages are now useful. TestCase has a longMessage attribute. 8284 This defaults to False, but if set to True useful error messages are shown in 8285 addition to explicit messages passed to assert methods. 8286 8287 - Issue #3110: Add additional protect around SEM_VALUE_MAX for multiprocessing. 8288 8289 - In Pdb, prevent the reassignment of __builtin__._ by sys.displayhook on 8290 printing out values. 8291 8292 - Issue #4572: Added SEEK_* symbolic constants to io module. 8293 8294 - Issue #1665206 (partially): Move imports in cgitb to the top of the module 8295 instead of performing them in functions. Helps prevent import deadlocking in 8296 threads. 8297 8298 - Issue #5647: MutableSet.__iand__() no longer mutates self during iteration. 8299 8300 - Actually make the SimpleXMLRPCServer CGI handler work. 8301 8302 - Issue #2522: locale.format() now checks its first argument to ensure it has 8303 been passed only one pattern, avoiding mysterious errors where it appeared 8304 that it was failing to do localization. 8305 8306 - Issue #5583: Added optional extensions in Distutils. Initial patch by Georg 8307 Brandl. 8308 8309 - Issue #5619: Multiprocessing children disobey the debug flag and causes popups 8310 on windows buildbots. Patch applied to work around this issue. 8311 8312 - Issue #5632: Thread.ident was None for the main thread and threads not created 8313 with the threading module. 8314 8315 - Issue #5400: Added patch for multiprocessing on netbsd compilation/support. 8316 8317 - Issue #5387: Fixed mmap.move crash by integer overflow. 8318 8319 - Issue #5261: Patch multiprocessing's semaphore.c to support context manager 8320 use: "with multiprocessing.Lock()" works now. 8321 8322 - Issue #5177: Multiprocessing's SocketListener class now uses 8323 socket.SO_REUSEADDR on all connections so that the user no longer needs to 8324 wait 120 seconds for the socket to expire. 8325 8326 - Adjusted _tkinter to compile without warnings when WITH_THREAD is not defined 8327 (part of issue #5035). 8328 8329 - Issue #5561: Removed the sys.version_info shortcuts from platform's 8330 python_version() and python_version_tuple() since they produced different 8331 output compared to previous Python versions. 8332 8333 - Issue #1034053: unittest now supports skipping tests and expected failures. 8334 8335 - The unittest.TestCase.assertRaises() method now returns a context manager when 8336 not given a callable so that code to be tested can be written inline using a 8337 with statement. 8338 8339 - Issue #2578: The unittest.TestCase.assertEqual() now displays the differences 8340 in lists, tuples, dicts and sets on failure. Many new handy type and 8341 comparison specific assert* methods have been added that fail with error 8342 messages actually useful for debugging. Contributed in part by Google. 8343 8344 - Issue #5068: Fixed the tarfile._BZ2Proxy.read() method that would loop forever 8345 on incomplete input. That caused tarfile.open() to hang when used with mode 8346 'r' or 'r:bz2' and a fileobj argument that contained no data or partial bzip2 8347 compressed data. 8348 8349 - Issue #5536: urllib.urlretrieve makes sure to close the file it's writing to 8350 even if an exception occurs. 8351 8352 - Issue #5381: Added object_pairs_hook to the json module. This allows 8353 OrderedDicts to be built by the decoder. 8354 8355 - Issue #2110: Add support for thousands separator and 'n' type specifier to 8356 ``Decimal.__format__()``. 8357 8358 - Fix Decimal.__format__ bug that swapped the meanings of the '<' and '>' 8359 alignment characters. 8360 8361 - Issue #1222: ``locale.format()`` bug when the thousands separator is a space 8362 character. 8363 8364 - Issue #5472: Fixed distutils.test_util tear down. Original patch by Tim 8365 Golden. 8366 8367 - collections.deque objects now have a read-only attribute called maxlen. 8368 8369 - Issue #2638: Show a window constructed with tkSimpleDialog.Dialog only after 8370 it is has been populated and properly configured in order to prevent window 8371 flashing. 8372 8373 - Issue #4792: Prevent a segfault in _tkinter by using the guaranteed to be safe 8374 interp argument given to the PythonCmd in place of the Tcl interpreter taken 8375 from a PythonCmd_ClientData. 8376 8377 - Issue #5193: Guarantee that Tkinter.Text.search returns a string. 8378 8379 - Issue #5394: Removed > 2.3 syntax from distutils.msvc9compiler. 8380 Original patch by Akira Kitada. 8381 8382 - Issue #5385: Fixed mmap crash after resize failure on windows. 8383 8384 - Issue #5179: Fixed subprocess handle leak on failure on windows. 8385 8386 - PEP 372: Added collections.OrderedDict(). 8387 8388 - The _asdict() for method for namedtuples now returns an OrderedDict(). 8389 8390 - The configparser module now defaults to using an ordered dictionary. 8391 8392 - Issue #4308: httplib.IncompleteRead's repr doesn't include all of the data all 8393 ready received. 8394 8395 - Issue #5401: Fixed a performance problem in mimetypes when ``from mimetypes 8396 import guess_extension`` was used. 8397 8398 - Issue #1733986: Fixed mmap crash on Windows in accessing elements of second 8399 map object with same tagname but larger size than first map. 8400 8401 - Issue #5386: mmap.write_byte didn't check map size, so it could cause buffer 8402 overrun. 8403 8404 - Issue #1533164: Installed but not listed *.pyo was breaking Distutils 8405 bdist_rpm command. 8406 8407 - Issue #5378: Added --quiet option to Distutils bdist_rpm command. 8408 8409 - Issue #5052: Make Distutils compatible with 2.3 again. 8410 8411 - Deprecated methods of symtable.Symbol have been removed: is_keywordarg(), 8412 is_vararg(), and is_in_tuple(). 8413 8414 - Issue #5316: Fixed buildbot failures introduced by multiple inheritance in 8415 Distutils tests. 8416 8417 - Issue #5287: Add exception handling around findCaller() call to help out 8418 IronPython. 8419 8420 - Issue #5282: Fixed mmap resize on 32bit Windows and Unix. When ``offset > 8421 0``, the file was resized to wrong size. 8422 8423 - Issue #5292: Fixed mmap crash on its boundary access m[len(m)]. 8424 8425 - Issue #2279: distutils.sdist.add_defaults now add files from the package_data 8426 and the data_files metadata. 8427 8428 - Issue #5257: Refactored all tests in distutils, so they use 8429 support.TempdirManager, to avoid writing in the tests directory. 8430 8431 - Issue #4524: distutils build_script command failed with --with-suffix=3. 8432 Initial patch by Amaury Forgeot d'Arc. 8433 8434 - Issue #2461: Added tests for distutils.util. 8435 8436 - Issue #1008086: Fixed socket.inet_aton() to always return 4 bytes even on LP64 8437 platforms (most 64-bit Linux, bsd, unix systems). 8438 8439 - Issue #5203: Fixed ctypes segfaults when passing a unicode string to a 8440 function without argtypes (only occurs if HAVE_USABLE_WCHAR_T is false). 8441 8442 - Issue #3386: distutils.sysconfig.get_python_lib prefix argument was ignored 8443 under NT and OS2. Patch by Philip Jenvey. 8444 8445 - Issue #5128: Make compileall properly inspect bytecode to determine if needs 8446 to be recreated. This avoids a timing hole thanks to the old reliance on the 8447 ctime of the files involved. 8448 8449 - Issue #5122: Synchronize tk load failure check to prevent a potential 8450 deadlock. 8451 8452 - Issue #1818: collections.namedtuple() now supports a keyword argument 'rename' 8453 which lets invalid fieldnames be automatically converted to positional names 8454 in the form, _1, _2, ... 8455 8456 - Issue #4890: Handle empty text search pattern in Tkinter.Text.search. 8457 8458 - Issue #5170: Fixed Unicode output bug in logging and added test case. This is 8459 a regression which did not occur in 2.5. 8460 8461 - Issue #4512 (part 2): Promote ``ZipImporter._get_filename()`` to be a public 8462 documented method ``ZipImporter.get_filename()``. 8463 8464 - Issue #4195: The ``runpy`` module (and the ``-m`` switch) now support the 8465 execution of packages by looking for and executing a ``__main__`` submodule 8466 when a package name is supplied. Initial patch by Andi Vajda. 8467 8468 - Issue #1731706: Call Tcl_ConditionFinalize for Tcl_Conditions that will not be 8469 used again (this requires Tcl/Tk 8.3.1), also fix a memory leak in Tkapp_Call 8470 when calling from a thread different than the one that created the Tcl 8471 interpreter. Patch by Robert Hancock. 8472 8473 - Issue #1520877: Now distutils.sysconfig reads $AR from the 8474 environment/Makefile. Patch by Douglas Greiman. 8475 8476 - Issue #4285: Change sys.version_info to be a named tuple. Patch by Ross 8477 Light. 8478 8479 - Issue #1276768: The verbose option was not used in the code of 8480 distutils.file_util and distutils.dir_util. 8481 8482 - Issue #5132: Fixed trouble building extensions under Solaris with 8483 --enabled-shared activated. Initial patch by Dave Peterson. 8484 8485 - Issue #1581476: Always use the Tcl global namespace when calling into Tcl. 8486 8487 - Issue #2047: shutil.move() could believe that its destination path was inside 8488 its source path if it began with the same letters (e.g. "src" vs. "src.new"). 8489 8490 - Issue #4920: Fixed .next() vs .__next__() issues in the ABCs for Iterator and 8491 MutableSet. 8492 8493 - Added the ttk module. See issue #2983: Ttk support for Tkinter. 8494 8495 - Issue #5021: doctest.testfile() did not create __name__ and 8496 collections.namedtuple() relied on __name__ being defined. 8497 8498 - Backport importlib from Python 3.1. Only the import_module() function has been 8499 backported to help facilitate transitions from 2.7 to 3.1. 8500 8501 - Issue #1885: distutils: When running sdist with --formats=tar,gztar the tar 8502 file was overridden by the gztar one. 8503 8504 - Issue #4863: distutils.mwerkscompiler has been removed. 8505 8506 - Added new itertools functions: combinations_with_replacement() and compress(). 8507 8508 - Issue #5032: Added a step argument to itertools.count() and allowed 8509 non-integer arguments. 8510 8511 - Fix and properly document the multiprocessing module's logging support, expose 8512 the internal levels and provide proper usage examples. 8513 8514 - Issue #1672332: Fix unpickling of subnormal floats, which was 8515 producing a ValueError on some platforms. 8516 8517 - Issue #3881: Help Tcl to load even when started through the unreadable local 8518 symlink to "Program Files" on Vista. 8519 8520 - Issue #4710: Extract directories properly in the zipfile module; allow adding 8521 directories to a zipfile. 8522 8523 - Issue #3807: _multiprocessing build fails when configure is passed 8524 --without-threads argument. When this occurs, _multiprocessing will be 8525 disabled, and not compiled. 8526 8527 - Issue #5008: When a file is opened in append mode with the new IO library, do 8528 an explicit seek to the end of file (so that e.g. tell() returns the file size 8529 rather than 0). This is consistent with the behaviour of the traditional 2.x 8530 file object. 8531 8532 - Issue #5013: Fixed a bug in FileHandler which occurred when the delay 8533 parameter was set. 8534 8535 - Issue #4998: The memory saving effect of __slots__ had been lost on Fractions 8536 which inherited from numbers.py which did not have __slots__ defined. The 8537 numbers hierarchy now has its own __slots__ declarations. 8538 8539 - Issue #3321: _multiprocessing.Connection() doesn't check handle; added checks 8540 for *nix machines for negative handles and large int handles. Without this 8541 check it is possible to segfault the interpreter. 8542 8543 - Issue #4449: AssertionError in mp_benchmarks.py, caused by an underlying issue 8544 in sharedctypes.py. 8545 8546 - Issue #1225107: inspect.isclass() returned True for instances with a custom 8547 __getattr__. 8548 8549 - Issue #3997: Zipfiles generated with more than 65536 files could not be opened 8550 with other applications. 8551 8552 - Issue #1162154: ``inspect.getmembers()`` now skips attributes that raise 8553 AttributeError, e.g. a __slots__ attribute which has not been set. 8554 8555 - Issue #1696199: Add collections.Counter() for rapid and convenient counting. 8556 8557 - Issue #3860: GzipFile and BZ2File now support the context management protocol. 8558 8559 - Issue #4272: Add an optional argument to the GzipFile constructor to override 8560 the timestamp in the gzip stream. The default value remains the current time. 8561 The information can be used by e.g. gunzip when decompressing. Patch by 8562 Jacques Frechet. 8563 8564 - Restore Python 2.3 compatibility for decimal.py. 8565 8566 - Issue #1702551: distutils sdist was not excluding VCS directories under 8567 Windows. Initial solution by Guy Dalberto. 8568 8569 - The _tkinter module functions "createfilehandler", "deletefilehandler", 8570 "createtimerhandler", "mainloop", "dooneevent" and "quit" have been deprecated 8571 for removal in 3.x 8572 8573 - Issue #4796: Added Decimal.from_float() and 8574 Context.create_decimal_from_float() to the decimal module. 8575 8576 - Issue #4812: Add missing underscore prefix to some internal-use-only constants 8577 in the decimal module. (Dec_0 becomes _Dec_0, etc.) 8578 8579 - Issue #4795: inspect.isgeneratorfunction() returns False instead of None when 8580 the function is not a generator. 8581 8582 - Issue #4702: Throwing a DistutilsPlatformError instead of IOError in case no 8583 MSVC compiler is found under Windows. Original patch by Philip Jenvey. 8584 8585 - Issue #4646: distutils was choking on empty options arg in the setup function. 8586 Original patch by Thomas Heller. 8587 8588 - Fractions.from_float() no longer loses precision for integers too big to cast 8589 as floats. 8590 8591 - Issue #4790: The nsmallest() and nlargest() functions in the heapq module did 8592 unnecessary work in the common case where no key function was specified. 8593 8594 - Issue #3767: Convert Tk object to string in tkColorChooser. 8595 8596 - Issue #3248: Allow placing ScrolledText in a PanedWindow. 8597 8598 - Issue #4444: Allow assertRaises() to be used as a context handler, so that the 8599 code under test can be written inline if more practical. 8600 8601 - Issue #4739: Add pydoc help topics for symbols, so that e.g. help('@') works 8602 as expected in the interactive environment. 8603 8604 - Issue #4756: zipfile.is_zipfile() now supports file-like objects. Patch by 8605 Gabriel Genellina. 8606 8607 - Issue #4400: .pypirc default generated file was broken in distutils. 8608 8609 - Issue #4736: io.BufferedRWPair's closed property now functions properly. 8610 8611 - Issue #3954: Fix a potential SystemError in _hotshot.logreader error handling. 8612 8613 - Issue #4574: Fix a crash in io.IncrementalNewlineDecoder when a carriage 8614 return encodes to more than one byte in the source encoding (e.g. UTF-16) and 8615 gets split on a chunk boundary. 8616 8617 - Issue #4223: inspect.getsource() will now correctly display source code for 8618 packages loaded via zipimport (or any other conformant PEP 302 8619 loader). Original patch by Alexander Belopolsky. 8620 8621 - Issue #4201: pdb can now access and display source code loaded via zipimport 8622 (or any other conformant PEP 302 loader). Original patch by Alexander 8623 Belopolsky. 8624 8625 - Issue #4197: Doctests in modules loaded via zipimport (or any other PEP 302 8626 conformant loader) will now work correctly in most cases (they are still 8627 subject to the constraints that exist for all code running from inside a 8628 module loaded via a PEP 302 loader and attempting to perform IO operations 8629 based on __file__). Original patch by Alexander Belopolsky. 8630 8631 - Issues #4082 and #4512: Add runpy support to zipimport in a manner that allows 8632 backporting to maintenance branches. Original patch by Alexander Belopolsky. 8633 8634 - Issue #4163: Use unicode-friendly word splitting in the textwrap functions 8635 when given a Unicode string. 8636 8637 - Issue #4616: TarFile.utime(): Restore directory times on Windows. 8638 8639 - Issue #4084: Fix max, min, max_mag and min_mag Decimal methods to give correct 8640 results in the case where one argument is a quiet NaN and the other is a 8641 finite number that requires rounding. 8642 8643 - Issue #1030250: Distutils created directories even when run with the --dry-run 8644 option. 8645 8646 - Issue #4483: _dbm module now builds on systems with gdbm & gdbm_compat libs. 8647 8648 - Issue #4529: Fix the parser module's validation of try-except-finally 8649 statements. 8650 8651 - Issue #4458: getopt.gnu_getopt() now recognizes a single "-" as an argument, 8652 not a malformed option. 8653 8654 - Added the subprocess.check_output() convenience function to get output from a 8655 subprocess on success or raise an exception on error. 8656 8657 - Issue #1055234: cgi.parse_header(): Fixed parsing of header parameters to 8658 support unusual filenames (such as those containing semi-colons) in 8659 Content-Disposition headers. 8660 8661 - Issue #4384: Added logging integration with warnings module using 8662 captureWarnings(). This change includes a NullHandler which does nothing; it 8663 will be of use to library developers who want to avoid the "No handlers could 8664 be found for logger XXX" message which can appear if the library user doesn't 8665 configure logging. 8666 8667 - Issue #3741: DISTUTILS_USE_SDK set causes msvc9compiler.py to raise an 8668 exception. 8669 8670 - Issue #4363: The uuid.uuid1() and uuid.uuid4() functions now work even if the 8671 ctypes module is not present. 8672 8673 - FileIO's mode attribute now always includes ``"b"``. 8674 8675 - Issue #4116: Resolve member name conflict in ScrolledCanvas.__init__. 8676 8677 - httplib.HTTPConnection.putheader() now accepts an arbitrary number of values 8678 for any header, matching what the documentation has claimed for a while. 8679 8680 - Issue #3774: Fixed an error when create a Tkinter menu item without command 8681 and then remove it. 8682 8683 - Fixed a modulefinder crash on certain relative imports. 8684 8685 - Issue #4150: Pdb's "up" command now works for generator frames in post-mortem 8686 debugging. 8687 8688 - Issue #4092: Return ArgInfo as promised in the documentation from 8689 inspect.getargvalues. 8690 8691 - Issue #3935: Properly support list subclasses in bisect's C implementation. 8692 8693 - Issue #4014: Don't claim that Python has an Alpha release status, in addition 8694 to claiming it is Mature. 8695 8696 - Issue #4730: Fixed the cPickle module to handle correctly astral characters 8697 when protocol 0 is used. 8698 8699 - Issue #1594: MacOS.GetCreatorAndType now always returns a big-endian result, 8700 to be consistent with Apple tools. 8701 8702 - Issue #900949: plat-mac/videoreader.py no longer relies on a non-existing 8703 module. 8704 8705 - Issue #16278952: plat-mac/videoreader.py now correctly imports MediaDescr 8706 8707 - Issue #1737832: plat-mac/EasyDialog.py no longer uses the broken aepack 8708 module. 8709 8710 - Issue #1149804: macostools.mkdirs now even works when another process creates 8711 one of the needed subdirectories. 8712 8713 - Issue #900506: added --no-zipimport flag to the bundlebuilder script. 8714 8715 - Issue #841800: bundlebuilder now works with 'python -O'. 8716 8717 - Issue #4861: ctypes.util.find_library(): Robustify. Fix library detection on 8718 biarch systems. Try to rely on ldconfig only, without using objdump and gcc. 8719 8720 - Issue #5104: The socket module now raises OverflowError when 16-bit port and 8721 protocol numbers are supplied outside the allowed 0-65536 range on bind() and 8722 getservbyport(). 8723 8724 - Issue #999042: The Python compiler now handles explict global statements 8725 correctly (should be assigned using STORE_GLOBAL opcode). 8726 8727 - Issue #2703: SimpleXMLRPCDispatcher.__init__: Provide default values for new 8728 arguments introduced in 2.5. 8729 8730 - Issue #5828 (Invalid behavior of unicode.lower): Fixed bogus logic in 8731 makeunicodedata.py and regenerated the Unicode database (This fixes 8732 u'\u1d79'.lower() == '\x00'). 8733 8734 - Windows locale mapping updated to Vista. 8735 8736 IDLE 8737 ---- 8738 8739 - Issue #5150: IDLE's format menu now has an option to strip trailing 8740 whitespace. 8741 8742 - Issue #5847: Remove -n switch on "Edit with IDLE" menu item. 8743 8744 - idle.py modified and simplified to better support developing experimental 8745 versions of IDLE which are not installed in the standard location. 8746 8747 - Issue #5559: OutputWindow/PyShell right click menu "Go to file/line" 8748 wasn't working with file paths containing spaces. 8749 8750 - Issue #5783: Windows: Version string for the .chm help file changed, 8751 file not being accessed. Patch by Guilherme Polo/ 8752 8753 - Issue #1529142: Allow multiple IDLE GUI/subprocess pairs to exist 8754 simultaneously. Thanks to David Scherer for suggesting the use of an 8755 ephemeral port for the GUI. Patch by Weeble. 8756 8757 - Remove port spec from run.py and fix bug where subprocess fails to 8758 extract port from command line when warnings are present. 8759 8760 - Issue #5129: Tk 8.5 Text widget requires 'wordprocessor' tabstyle attr 8761 to handle mixed space/tab properly. Patch by Guilherme Polo. 8762 8763 - Issue #3549: On MacOS the preferences menu was not present 8764 8765 Tools/Demos 8766 ----------- 8767 8768 - Ttk demos added in Demo/tkinter/ttk/. 8769 8770 - Issue #4677: Add two list comprehension tests to pybench. 8771 8772 Build 8773 ----- 8774 8775 - Issue #6603: Change READ_TIMESTAMP macro in ceval.c so that it compiles 8776 correctly under gcc on x86-64. This fixes a reported problem with the 8777 --with-tsc build on x86-64. 8778 8779 - Add 2 new options to ``--with-universal-archs`` on MacOSX: ``intel`` builds a 8780 distribution with ``i386`` and ``x86_64`` architectures, while ``3-way`` 8781 builds a distribution with the ``ppc``, ``i386`` and ``x86_64`` architectures. 8782 8783 - Issue #6802: Fix build issues on MacOSX 10.6. 8784 8785 - Issue #6244: Allow detect_tkinter to look for Tcl/Tk 8.6. 8786 8787 - Issue #5390: Add uninstall icon independent of whether file extensions are 8788 installed. 8789 8790 - Issue #5809: Specifying both --enable-framework and --enable-shared is an 8791 error. Configure now explicitly tells you about this. 8792 8793 - Issue #3585: Add pkg-config support. It creates a python-2.7.pc file and a 8794 python.pc symlink in the $(LIBDIR)/pkgconfig directory. Patch by Clinton Roy. 8795 8796 - Issue #6094: Build correctly with Subversion 1.7. 8797 8798 - Issue #5726: Make Modules/ld_so_aix return the actual exit code of the linker, 8799 rather than always exit successfully. Patch by Floris Bruynooghe. 8800 8801 - Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify 8802 the order that backends for the dbm extension are checked. 8803 8804 - Link the shared python library with $(MODLIBS). 8805 8806 - Issue #5134: Silence compiler warnings when compiling sqlite with VC++. 8807 8808 - Issue #4494: Fix build with Py_NO_ENABLE_SHARED on Windows. 8809 8810 - Issue #4895: Use _strdup on Windows CE. 8811 8812 - Issue #4472: ``configure --enable-shared`` now works on OSX. 8813 8814 - Issues #4728 and #4060: WORDS_BIGEDIAN is now correct in Universal builds. 8815 8816 - Issue #4389: Add icon to the uninstall entry in "add-and-remove-programs". 8817 8818 - Issue #4289: Remove Cancel button from AdvancedDlg. 8819 8820 - Issue #1656675: Register a drop handler for .py* files on Windows. 8821 8822 - Issue #4120: Exclude manifest from extension modules in VS2008. 8823 8824 - Issue #4091: Install pythonxy.dll in system32 again. 8825 8826 - Issue #4018: Disable "for me" installations on Vista. 8827 8828 - Issue #3758: Add ``patchcheck`` build target to ``.PHONY``. 8829 8830 - Issue #4204: Fixed module build errors on FreeBSD 4. 8831 8832 Documentation 8833 ------------- 8834 8835 - Issue #6556: Fixed the Distutils configuration files location explanation for 8836 Windows. 8837 8838 - Issue #6801: symmetric_difference_update also accepts ``|``. Thanks to Carl 8839 Chenet. 8840 8841 C-API 8842 ----- 8843 8844 - Issue #7528: Add PyLong_AsLongAndOverflow (backported from py3k). 8845 8846 - Issue #7228: Add '%lld' and '%llu' support to PyString_FromFormat(V) and 8847 PyErr_Format, on machines with HAVE_LONG_LONG defined. 8848 8849 - Add new C-API function PyOS_string_to_double, and deprecated PyOS_ascii_atof 8850 and PyOS_ascii_strtod. 8851 8852 - Removed _PyOS_double_to_string. Use PyOS_double_to_string instead. This is in 8853 preparation for (but not strictly related to) issue #7117, short float repr. 8854 8855 - Issue #6624: PyArg_ParseTuple with "s" format when parsing argument with NULL: 8856 Bogus TypeError detail string. 8857 8858 - Issue #5954: Add a PyFrame_GetLineNumber() function to replace most uses of 8859 PyCode_Addr2Line(). 8860 8861 - Issue #5959: Add a PyCode_NewEmpty() function to create a new empty code 8862 object at a specified file, function, and line number. 8863 8864 - Issue #1419652: Change the first argument to PyImport_AppendInittab() to 8865 ``const char *`` as the string is stored beyond the call. 8866 8867 - Some PyBytes_* aliases have been removed because they don't exist in 3.x. 8868 8869 - Issue #5175: PyLong_AsUnsignedLongLong now raises OverflowError for negative 8870 arguments. Previously, it raised TypeError. 8871 8872 - Issue #4720: The format for PyArg_ParseTupleAndKeywords can begin with '|'. 8873 8874 - Issue #3632: From the gdb debugger, the 'pyo' macro can now be called when the 8875 GIL is released, or owned by another thread. 8876 8877 - Issue #4122: On Windows, fix a compilation error when using the 8878 Py_UNICODE_ISSPACE macro in an extension module. 8879 8880 - Issue #4293: Py_AddPendingCall() is now thread safe and can be used for 8881 asynchronous notifications to python from any thread. Documentation added. 8882 8883 Extension Modules 8884 ----------------- 8885 8886 - Issue #6508: Add posix.{getresuid,getresgid,setresuid,setresgid}. 8887 8888 - Issue #7078: Set struct.__doc__ from _struct.__doc__. 8889 8890 - Issue #3366: Add erf, erfc, expm1, gamma, lgamma functions to math module. 8891 8892 - Issue #6823: Allow time.strftime() to accept a tuple with a isdst field 8893 outside of the range of [-1, 1] by normalizing the value to within that range. 8894 8895 - Issue #6877: Make it possible to link the readline extension to libedit on 8896 OSX. 8897 8898 - Issue #6944: Fix a SystemError when socket.getnameinfo() was called with 8899 something other than a tuple as first argument. 8900 8901 - Issue #6865: Fix reference counting issue in the initialization of the pwd 8902 module. 8903 8904 - Issue #6848: Fix curses module build failure on OS X 10.6. 8905 8906 - Fix a segfault in expat when given a specially crafted input lead to the 8907 tokenizer not stopping. CVE-2009-3720. 8908 8909 - Issue #6561: '\d' in a regex now matches only characters with Unicode category 8910 'Nd' (Number, Decimal Digit). Previously it also matched characters with 8911 category 'No'. 8912 8913 - Issue #1523: Remove deprecated overflow wrapping for struct.pack with an 8914 integer format code ('bBhHiIlLqQ'). Packing an out-of-range integer now 8915 consistently raises struct.error. 8916 8917 - Issues #1530559, #1741130: Fix various struct.pack inconsistencies for the 8918 integer formats ('bBhHiIlLqQ'). In the following, '*' represents any of '=', 8919 '<', '>'. 8920 8921 - Packing a float now always gives a Deprecation Warning. Previously it 8922 only warned for 'I', 'L', '*B', '*H', '*I', '*L'. 8923 8924 - If x is not an int, long or float, then packing x will always result in 8925 struct.error. Previously an x with an __int__ method could be packed by 8926 'b', 'B', 'h', 'H', 'i', 'l', '*b', '*h' ,'*i', '*l', and an x with a 8927 __long__ method could be packed by 'q', 'Q', '*q', '*Q'; for x with 8928 neither __int__ nor __long__, TypeError used to be raised (with a 8929 confusing error message) for 'I', 'L', '*B', '*H', '*I', '*L', and 8930 struct.error in other cases. 8931 8932 Note: as of Python 2.7 beta 1, the above is out of date. In 2.7 beta 1, any 8933 argument with an __int__ method can be packed, but use of this feature 8934 triggers a DeprecationWarning. 8935 8936 - Issue #4873: Fix resource leaks in error cases of pwd and grp. 8937 8938 - Issue #4751: For hashlib algorithms provided by OpenSSL, the Python GIL is now 8939 released during computation on data lengths >= 2048 bytes. 8940 8941 - Issue #3745: Fix hashlib to always reject unicode and non buffer-api 8942 supporting objects as input no matter how it was compiled (built in 8943 implementations or external openssl library). NOTE: Undone in 2.7a2. 8944 8945 - Issue #4397: Fix occasional test_socket failure on OS X. 8946 8947 - Issue #4279: Fix build of parsermodule under Cygwin. 8948 8949 - Issue #4051: Prevent conflict of UNICODE macros in cPickle. 8950 8951 - Issue #4228: Pack negative values the same way as 2.4 in struct's L format. 8952 8953 - Issue #1040026: Fix os.times result on systems where HZ is incorrect. 8954 8955 - Issues #3167, #3682: Fix test_math failures for log, log10 on Solaris, 8956 OpenBSD. 8957 8958 - Issue #4365: Add crtassem.h constants to the msvcrt module. 8959 8960 - Issue #4396: The parser module now correctly validates the with statement. 8961 8962 - Issue #5228: Make functools.partial objects can now be pickled. 8963 8964 Tests 8965 ----- 8966 8967 - Issue #7431: Use TESTFN in test_linecache instead of trying to create a file 8968 in the Lib/test directory, which might be read-only for the user running the 8969 tests. 8970 8971 - Issue #7324: Add a sanity check to regrtest argument parsing to catch the case 8972 of an option with no handler. 8973 8974 - Issue #7312: Add a -F flag to run the selected tests in a loop until a test 8975 fails. Can be combined with -j. 8976 8977 - Issue #7295: Do not use a hardcoded file name in test_tarfile. 8978 8979 - Issue #7270: Add some dedicated unit tests for multi-thread synchronization 8980 primitives such as Lock, RLock, Condition, Event and Semaphore. 8981 8982 - Issue #7222: Make thread "reaping" more reliable so that reference 8983 leak-chasing test runs give sensible results. The previous method of reaping 8984 threads could return successfully while some Thread objects were still 8985 referenced. This also introduces a new private function: ``thread._count()``. 8986 8987 - Issue #7151: Fixed regrtest -j so that output to stderr from a test no longer 8988 runs the risk of causing the worker thread to fail. 8989 8990 - Issue #7055: test___all__ now greedily detects all modules which have an 8991 __all__ attribute, rather than using a hardcoded and incomplete list. 8992 8993 - Issue #7058: Added save/restore for things like sys.argv and cwd to 8994 runtest_inner in regrtest, with warnings if the called test modifies them, 8995 and a new section in the summary report at the end. 8996 8997 - Issue #7042: Fix test_signal (test_itimer_virtual) failure on OS X 10.6. 8998 8999 - Issue #6806: test_platform failed under OS X 10.6.0 because ``sw_ver`` leaves 9000 off the trailing 0 in the version number. 9001 9002 - Issue #5450: Moved tests involving loading tk from Lib/test/test_tcl to 9003 Lib/lib-tk/test/test_tkinter/test_loadtk. With this, these tests demonstrate 9004 the same behaviour as test_ttkguionly (and now also test_tk) which is to skip 9005 the tests if DISPLAY is defined but can't be used. 9006 9007 - Issue #6152: New option '-j'/'--multiprocess' for regrtest allows running 9008 regression tests in parallel, shortening the total runtime. 9009 9010 - Issue #5354: New test support function import_fresh_module() makes it easy to 9011 import both normal and optimised versions of modules. test_heapq and 9012 test_warnings have been adjusted to use it, tests for other modules with both 9013 C and Python implementations in the stdlib can be adjusted to use it over 9014 time. 9015 9016 - Fix test_warnings to no longer reset the warnings filter. 9017 9018 - Fix test_logging to no longer reset the warnings filter. 9019 9020 - Issue #5635: Fix running test_sys with tracing enabled. 9021 9022 - regrtest no longer treats ImportError as equivalent to SkipTest. Imports that 9023 should cause a test to be skipped are now done using import_module from test 9024 support, which does the conversion. 9025 9026 - Issue #5083: New 'gui' resource for regrtest. 9027 9028 - Issue #5837: Certain sequences of calls to set() and unset() for 9029 support.EnvironmentVarGuard objects restored the environment variables 9030 incorrectly on __exit__. 9031 9032 - Issue #2389: Array objects are now pickled in a portable manner. 9033 9034 Misc 9035 ---- 9036 9037 - Issue #5611: Auto-detect whether a C file uses tabs or spaces in Vim. 9038 9039 9040 What's New in Python 2.6 final 9041 ============================== 9042 9043 *Release date: 01-Oct-2008* 9044 9045 Core and Builtins 9046 ----------------- 9047 9048 - Issue #3967: Fixed a crash in the count() and find() methods of string-like 9049 objects, when the "start" parameter is a huge value. 9050 9051 - Issue #3965: Fixed a crash on Windows when open() is given an invalid 9052 filename or mode, and the filename is a unicode string. 9053 9054 - Bug #3951: Py_USING_MEMORY_DEBUGGER should not be enabled by default. 9055 9056 Library 9057 ------- 9058 9059 - Issue #3965: Allow repeated calls to turtle.Screen, by making it a 9060 true singleton object. 9061 9062 - Issue #3895: It was possible to crash the interpreter when an external timer 9063 was used with cProfile that returned an object that could not be converted 9064 into a float. 9065 9066 - Issue #3950: Made turtle respect scale factors. 9067 9068 - Issue #3547: Fixed ctypes structures bitfields of varying integer 9069 sizes. 9070 9071 - Issue #3879: A regression in urllib.getproxies_environment was fixed. 9072 9073 - Issue #3863: Disabled a unit test of fork being called from a thread 9074 when running on platforms known to exhibit OS bugs when attempting that. 9075 9076 Build 9077 ----- 9078 9079 - Bug #3989: Package the 2to3 script (as 2to3.py) in the Windows 9080 installer. 9081 9082 - Bug #3887: Package x64 version of CRT for AMD64 Windows binaries. 9083 9084 9085 What's New in Python 2.6 release candidate 2? 9086 ============================================= 9087 9088 *Release date: 17-Sep-2008* 9089 9090 Core and Builtins 9091 ----------------- 9092 9093 Extension Modules 9094 ----------------- 9095 9096 - Security Issue #2: imageop did not validate arguments correctly and could 9097 segfault as a result. 9098 9099 - Issue #3886: Possible integer overflows in the _hashopenssl module were 9100 closed. 9101 9102 Tools/Demos 9103 ----------- 9104 9105 - Issue #3850: recursion tests in Tools/scripts/find_recursion_limit.py can raise 9106 AttributeError instead of RuntimeError, depending in which C API call 9107 exactly the recursion limit is exceeded. Consequently, both exception types 9108 are caught and silenced. 9109 9110 Build 9111 ----- 9112 9113 - Issue #3617: Include a licensing statement regarding the Microsoft 9114 C runtime in the Windows installer. 9115 9116 9117 What's New in Python 2.6 release candidate 1? 9118 ============================================= 9119 9120 *Release date: 12-Sep-2008* 9121 9122 Core and Builtins 9123 ----------------- 9124 9125 - Issue #3642: Suppress warning in obmalloc when size_t is larger than uint. 9126 9127 - Issue #3743: In a few places, PY_FORMAT_SIZE_T was incorrectly used with 9128 PyString_FromFormat or PyErr_Format to display size_t values. The macro 9129 PY_FORMAT_SIZE_T is designed to select the correct format for the OS 9130 ``printf`` function, whereas PyString_FromFormat has an independent 9131 implementation and uses "%zd" on all platforms for size_t values. 9132 This makes a difference on win64, where ``printf`` needs "%Id" to display 9133 64bit values. 9134 9135 - Issue #3634: _weakref.ref(Exception).__init__() gave invalid return value on 9136 error. 9137 9138 - Issue #3777: long() applied to a float object now always return a long 9139 object; previously an int would be returned for small values. the __long__ 9140 method is allowed to return either an int or a long, but the behaviour of 9141 float objects should not change to respect backward compatibility. 9142 9143 - Issue #3751: str.rpartition would perform a left-partition when called with 9144 a unicode argument. 9145 9146 - Issue #3683: Fix compilation when --without-threads is given. 9147 9148 - Issue #3668: Fix a memory leak with the "s*" argument parser in 9149 PyArg_ParseTuple and friends, which occurred when the argument for "s*" 9150 was correctly parsed but parsing of subsequent arguments failed. 9151 9152 - Issue #2534: speed up isinstance() and issubclass() by 50-70%, so as to 9153 match Python 2.5 speed despite the __instancecheck__ / __subclasscheck__ 9154 mechanism. In the process, fix a bug where isinstance() and issubclass(), 9155 when given a tuple of classes as second argument, were looking up 9156 __instancecheck__ / __subclasscheck__ on the tuple rather than on each 9157 type object. 9158 9159 - Fix crashes on memory allocation failure found with failmalloc. 9160 9161 - Fix memory leaks found with valgrind and update suppressions file. 9162 9163 - Fix compiler warnings in opt mode which would lead to invalid memory reads. 9164 9165 - Fix problem using wrong name in decimal module reported by pychecker. 9166 9167 - Silenced another compiler warning about a used but not defined 9168 function 'stringlib_contains_obj'. 9169 9170 - Added warnings on the use of ``__getslice__``, ``__setslice__``, or 9171 ``__delslice__``. 9172 9173 - Issue #3678: Correctly pass LDFLAGS and LDLAST to the linker on shared 9174 library targets in the Makefile. 9175 9176 - Issue #1204: The configure script now tests for additional libraries 9177 that may be required when linking against readline. This fixes issues 9178 with x86_64 builds on some platforms (a few Linux flavors and OpenBSD). 9179 9180 C-API 9181 ----- 9182 9183 - Aliased PyObject_Bytes to PyObject_Str. 9184 9185 Library 9186 ------- 9187 9188 - Issue #3640: Pickling a list or a dict uses less local variables, to reduce 9189 stack usage in the case of deeply nested objects. 9190 9191 - Issue #3629: Fix sre "bytecode" validator for an end case. 9192 9193 - Issue #3811: The Unicode database was updated to 5.1. 9194 9195 - Issue #3781: Further warnings.catch_warnings() cleanup to prevent 9196 silent misbehaviour when a single instance is nested in multiple 9197 with statements, or when the methods are invoked in the wrong order. 9198 9199 - Issue #3809: Fixed spurious 'test.blah' file left behind by test_logging. 9200 9201 - Issue #3781: Clean up the API for warnings.catch_warnings() by having it 9202 return a list or None rather than a custom object. 9203 9204 - Issue #1638033: Cookie.Morsel gained the httponly attribute. 9205 9206 - Issue #3535: zipfile couldn't read some zip files larger than 2GB. 9207 9208 - Issue #3776: Deprecate the bsddb package for removal in 3.0. 9209 9210 - Issue #3762: platform.architecture() fails if python is lanched via 9211 its symbolic link. 9212 9213 - Issue #3772: Fixed regression problem in StreamHandler.emit(). 9214 9215 - Issue #600362: Relocated parse_qs() and parse_qsl(), from the cgi module 9216 to the urlparse one. Added a PendingDeprecationWarning in the old 9217 module, it will be deprecated in the future. 9218 9219 - Issue #2562: Fix distutils PKG-INFO writing logic to allow having 9220 non-ascii characters and Unicode in setup.py meta-data. 9221 9222 - Issue #3726: Allow spaces in separators in logging configuration files. 9223 9224 - Issue #3719: platform.architecture() fails if there are spaces in the 9225 path to the Python binary. 9226 9227 - Issue #3602: Moved test.test_support.catch_warning() to 9228 warnings.catch_warnings() along with some API cleanup. Expanding the tests 9229 for catch_warnings() also led to an improvement in the raising of a 9230 DeprecationWarning related to warnings.warn_explicit(). 9231 9232 - The deprecation warnings for the old camelCase threading API were removed. 9233 9234 - logging: fixed lack of use of encoding attribute specified on a stream. 9235 9236 - Silenced a trivial compiler warning in the sqlite module. 9237 9238 - Fixed two format strings in the _collections module. 9239 9240 - Issue #3703: _fileio.FileIO gave unhelpful error message when trying to open a 9241 directory. 9242 9243 - Issue #3708: os.urandom no longer goes into an infinite loop when passed a 9244 non-integer floating point number. 9245 9246 - Issue #3110: multiprocessing fails to compiel on solaris 10 due to missing 9247 SEM_VALUE_MAX. 9248 9249 Extension Modules 9250 ----------------- 9251 9252 - Issue #4301: Patch the logging module to add processName support, remove 9253 _check_logger_class from multiprocessing. 9254 9255 - Issue #2975: When compiling several extension modules with Visual Studio 2008 9256 from the same python interpreter, some environment variables would grow 9257 without limit. 9258 9259 - Issue #3643: Added a few more checks to _testcapi to prevent segfaults by 9260 exploitation of poor argument checking. 9261 9262 - sqlite3: Changed docstring of iterdump() to mark method as "Non-standard". 9263 9264 - Issue #3103: Reduced globals symbols used by sqlite3 module and made sure all 9265 remaining ones have "pysqlite_" prefix. 9266 9267 - Issue #3846: Release the GIL during sqlite3_prepare calls. This improves 9268 concurrent access to the same SQLite database from multiple 9269 threads/processes. 9270 9271 Tests 9272 ----- 9273 9274 - Issue #3781: Add test.test_support.check_warnings() as a convenience 9275 wrapper for warnings.catch_warnings() that makes it easier to check 9276 that expected warning messages are being reported. 9277 9278 - Issue #3796: Some tests functions were not enabled in test_float. 9279 9280 - Issue #3768: Move test_py3kwarn over to the new API for catch_warnings(). 9281 9282 Build 9283 ----- 9284 9285 - Issue #3833: Use a different upgrade code for Win64 installers. 9286 9287 - Issue #2271: Set SecureCustomProperties so that installation will properly 9288 use the TARGETDIR even for unprivileged users. 9289 9290 - Allow passing the MSI file name to merge.py. 9291 9292 - Issue #3758: Rename the 'check' target to 'patchcheck' so as to not clash 9293 with GNU build target guidelines. 9294 9295 9296 What's New in Python 2.6 beta 3? 9297 ================================ 9298 9299 *Release date: 20-Aug-2008* 9300 9301 Core and Builtins 9302 ----------------- 9303 9304 - Issue #1878: Remove Py_TPFLAGS_HAVE_VERSION_TAG from 9305 Py_TPFLAGS_DEFAULT when not building the core. This means 3rd party 9306 extensions do not automatically benefit from the class attribute 9307 cache; they will have to explicitly add Py_TPFLAGS_HAVE_VERSION_TAG 9308 to their tp_flags field if they care. This is a backwards 9309 compatibility feature; in 3.0, all types will use the cache by 9310 default. 9311 9312 - Keyword arguments can now follow starred arguments. (``f(a, *args, 9313 keyword=23)`` is now valid syntax.) 9314 9315 - ctypes function pointers that are COM methods have a boolean True 9316 value again. 9317 9318 - Issue #3139: Make buffer-interface thread-safe wrt. PyArg_ParseTuple, 9319 by denying s# to parse objects that have a releasebuffer procedure, 9320 and introducing s*. 9321 9322 - Issue #3537: Fix an assertion failure when an empty but presized dict 9323 object was stored in the freelist. 9324 9325 - Issue #1481296: Make long(float('nan')) and int(float('nan')) raise 9326 ValueError consistently across platforms. 9327 9328 - Issue #3479: On platforms where sizeof(int) is smaller than sizeof(long) 9329 (64bit Unix, for example), unichr() would truncate its argument and return 9330 u'\x00' for unichr(2**32). Now it properly raises an OverflowError. 9331 9332 - Apply security patches from Apple. 9333 9334 - Issue #2542: Now that issubclass() may call arbitrary code, ensure that 9335 PyErr_ExceptionMatches returns 0 when an exception occurs there. 9336 9337 - Issue #1819: function calls with several named parameters are now on 9338 average 35% faster (as measured by pybench). 9339 9340 - Issue #2378: An unexpected UnboundLocalError or NameError could appear when 9341 the python debugger steps into a class statement: the free variables (local 9342 variables defined in an outer scope) would be deleted from the outer scope. 9343 9344 - Issue #2620: Overflow checking when allocating or reallocating memory 9345 was not always being done properly in some python types and extension 9346 modules. PyMem_MALLOC, PyMem_REALLOC, PyMem_NEW and PyMem_RESIZE have 9347 all been updated to perform better checks and places in the code that 9348 would previously leak memory on the error path when such an allocation 9349 failed have been fixed. 9350 9351 Library 9352 ------- 9353 9354 - Issue #3612: Added some missing basic types in ctypes.wintypes. 9355 9356 - The methods ``is_in_tuple()``, ``is_vararg()``, and ``is_keywordarg()`` of 9357 symtable.Symbol have been deprecated for removal in 3.0 and the next release. 9358 9359 - Issue #2234: distutils failed for some versions of the cygwin compiler. The 9360 version reported by these tools does not necessarily follow the python 9361 version numbering scheme, so the module is less strict when parsing it. 9362 9363 - Issue #2235: Added Py3k warnings for types which will become unhashable 9364 under the stricter __hash__ inheritance rules in 3.0. Several types 9365 which did not meet the rules for hash invariants and were already 9366 unhashable in 3.0 have now been explicitly flagged as unhashable in 9367 2.6 as well (collections.Mapping, collections.Set, unittest.TestSuite, 9368 xml.dom.minidom.NamedNodeMap, numbers.Number, UserList.UserList) 9369 9370 - Update __all__ for cookielib, csv, os, urllib2, and weakref to include things 9371 imported into the module but exposed as part of the module's API. 9372 9373 - Remove an unneeded import of abc.ABCMeta from 'inspect'. 9374 9375 - Remove unneeded imports of 'sys' and 'warnings' from 'io'. 9376 9377 - Remove unneeded imports of 'warnings' from shelve, filecmp, and dummy_thread. 9378 9379 - Issue #3575: Incremental decoder's decode function now takes bytearray 9380 by using 's*' instead of 't#'. 9381 9382 - Issue #2222: Fixed reference leak when occurred os.rename() 9383 fails unicode conversion on 2nd parameter. (windows only) 9384 9385 - Issue #2464: urllib2 now supports a malformation in the URL received 9386 in a redirect. 9387 9388 - Silence the DeprecationWarning raised when importing mimetools in 9389 BaseHTTPServer, cgi (and rfc822), httplib. 9390 9391 - Issue #2776: fixed small issue when handling a URL with double slash 9392 after a 302 response in the case of not going through a proxy. 9393 9394 - Issue #2676: in the email package, content-type parsing was hanging on 9395 pathological input because of quadratic or exponential behaviour of a 9396 regular expression. 9397 9398 - Issue #3476: binary buffered reading through the new "io" library is now 9399 thread-safe. 9400 9401 - Silence the DeprecationWarning of rfc822 when it is imported by mimetools 9402 since mimetools itself is deprecated. Because modules are cached, all 9403 subsequent imports of rfc822 will not raise a visible DeprecationWarning. 9404 9405 - Issue #3134: shutil referenced undefined WindowsError symbol. 9406 9407 - Issue #1342811: Fix leak in Tkinter.Menu.delete. Commands associated to 9408 menu entries were not deleted. 9409 9410 - Copied the implementation of reduce() to _functools.reduce() to have a 9411 version that did not raise a DeprecationWarning under -3. 9412 9413 - Issue #3205: When iterating over a BZ2File fails allocating memory, raise 9414 a MemoryError rather than silently stop the iteration. 9415 9416 - Issue #3487: sre "bytecode" validator. Passing invalid "re-bytecode" 9417 to _sre.compile() will now be rejected. This should not affect anybody 9418 since the re.compile() function never generates invalid re-bytecode. 9419 9420 - Issue #3436: Make csv.DictReader's fieldnames attribute a property so that 9421 upon first access it can be automatically initialized from the csv file if 9422 it wasn't initialized during instantiation. 9423 9424 - Issue #2338: Create imp.reload() to help with transitioning to Python 3.0 as 9425 the reload() built-in has been removed. 9426 9427 - Changed code in the following modules/packages to remove warnings raised 9428 while running under the ``-3`` flag: aifc, asynchat, asyncore, bdb, bsddb, 9429 ConfigParser, cookielib, csv, difflib, distutils, DocXMLRPCServer, email, 9430 filecmp, fileinput, inspect, logging, modulefinder, pdb, pickle, profile, 9431 pstats, pydoc, re, rlcompleter, SimpleXMLRPCServer, shelve, socket, 9432 subprocess, sqlite3, tarfile, Tkinter, test.test_support, textwrap, 9433 threading, tokenize, traceback, urlparse, wsgiref, xml, xmlrpclib. 9434 9435 - Issue #3039: Fix tarfile.TarFileCompat.writestr() which always 9436 raised an AttributeError. 9437 9438 - Issue #2523: Fix quadratic behaviour when read()ing a binary file without 9439 asking for a specific length. This problem only affected files opened 9440 using the new "io" module, not the built-in open() function. 9441 9442 - Issue #3449: Update decimal module to use most recent specification 9443 (v. 1.68) and tests (v. 2.58) from IBM. 9444 9445 - Issue #3437: Bug fix in robotparser parsing of Allow: lines. 9446 9447 - Issue #1592: Improve error reporting when operations are attempted 9448 on a closed shelf. 9449 9450 - Deprecate the "ast" parser function aliases. 9451 9452 - Issue #3120: On 64-bit Windows the subprocess module was truncating handles. 9453 9454 - Issue #3303: Fix a crash in locale.strcoll() when calling it with 9455 invalid arguments. 9456 9457 - Issue #3302: Fix several crashes when calling locale's gettext functions 9458 with None arguments. 9459 9460 - Issue #3389: Allow resolving dotted names for handlers in logging 9461 configuration files. 9462 9463 - Deprecate the sunaudio module for removal in Python 3.0. 9464 9465 - Issue #3394: zipfile.writestr sets external attributes when passed a 9466 file name rather than a ZipInfo instance, so files are extracted with 9467 mode 0600 rather than 000 under Unix. 9468 9469 - Issue #1857: subprocess.Popen.poll gained an additional _deadstate keyword 9470 argument in python 2.5, this broke code that subclassed Popen to include its 9471 own poll method. Fixed my moving _deadstate to an _internal_poll method. 9472 9473 Build 9474 ----- 9475 9476 - Generate the PatternGrammar pickle during "make install". 9477 9478 Documentation 9479 ------------- 9480 9481 - Issue #2235: the C API function PyObject_HashNotImplemented and its 9482 interaction with the tp_hash slot (added in 2.6b2) are now documented 9483 9484 - Issue #643841: The language reference now provides more detailed 9485 coverage of the lookup process for special methods. The disclaimers 9486 regarding lack of coverage of new-style classes have also been 9487 removed, since the coverage is now fairly reasonable. 9488 9489 9490 What's New in Python 2.6 beta 2? 9491 ================================ 9492 9493 *Release date: 17-Jul-2008* 9494 9495 Core and Builtins 9496 ----------------- 9497 9498 - Issue #3156: Fix inconsistent behavior of the bytearray type: all 9499 its methods now allow for items objects that can be converted to 9500 an integer using operator.index(). 9501 9502 - Issue #3360: Fix incorrect parsing of '020000000000.0', which 9503 produced a ValueError instead of giving the correct float. 9504 9505 - Issue #3083: Add alternate (#) formatting for bin, oct, hex output 9506 for str.format(). This adds the prefix 0b, 0o, or 0x, respectively. 9507 9508 - Issue #3008: the float type has a new instance method 'float.hex' 9509 and a new class method 'float.fromhex' to convert floating-point 9510 numbers to and from hexadecimal strings, respectively. 9511 9512 - Issue #2235: __hash__ is once again inherited by default. To allow 9513 collections.Hashable to remain meaningful in the presence of the 9514 default hash implementation (object.__hash__), it is now possible 9515 to explicit block inheritance of hash by setting __hash__=None at 9516 the Python level, or tp_hash=PyObject_HashNotImplemented at the C 9517 level. 9518 9519 - Issue #3221: Issue a RuntimeWarning instead of raising SystemError if 9520 the parent module cannot be found while performing an absolute import. 9521 This means that an incorrectly defined __package__ attribute will 9522 now only prevent relative imports in that module rather than causing 9523 all imports from that module to fail. 9524 9525 - Issue #2517: Allow unicode messages in Exceptions again by correctly 9526 bypassing the instance dictionary when looking up __unicode__ on 9527 new-style classes. 9528 9529 - Issue #3242: Fix a crash inside the print statement, if sys.stdout is 9530 set to a custom object whose write() method happens to install 9531 another file in sys.stdout. 9532 9533 - Issue #3088: Corrected a race condition in classes derived from 9534 threading.local: the first member set by a thread could be saved in 9535 another thread's dictionary. 9536 9537 - Issue #3004: Minor change to slice.indices(): the start and stop 9538 arguments are now treated identically, making the behaviour easier 9539 to describe and understand. For example, slice(None, -10, 9540 1).indices(9) now returns (0, 0, 1) instead of (0, -1, 1), and 9541 slice(None, 10, -1).indices(10) returns (9, 9, -1) instead of (9, 9542 10, -1). 9543 9544 - Issue #3219: Calling a function with repeated keyword arguments, 9545 f(a=2, a=23), would not cause a syntax error. This was a regression 9546 from 2.4 caused by the switch to the new compiler. 9547 9548 - Issue #2862: Make int and float freelist management consistent with 9549 other freelists. Changes their CompactFreeList apis into 9550 ClearFreeList apis and calls them via gc.collect(). 9551 9552 Library 9553 ------- 9554 9555 - Issue #3554: ctypes.string_at and ctypes.wstring_at did call Python 9556 api functions without holding the GIL, which could lead to a fatal 9557 error when they failed. 9558 9559 - Issue #799428: Fix Tkinter.Misc._nametowidget to unwrap Tcl command objects. 9560 9561 - Issue #3395: fix reference in test_multiprocessing to old debugInfo method 9562 9563 - Issue #3312: Fix two crashes in sqlite3. 9564 9565 - Issue #1608818: Fix misbehavior in os.listdir() if readdir() fails. 9566 9567 - Issue #3125: Remove copy_reg in multiprocessing and replace it with 9568 ForkingPickler.register() to resolve conflict with ctypes. 9569 9570 - Issue #3090: Fixed ARCHFLAGS parsing on OS/X 9571 9572 - Issue #3313: Fixed a crash when a failed dlopen() call does not set 9573 a valid dlerror() message. 9574 9575 - Issue #3258: Fixed a crash when a ctypes POINTER type to an 9576 incomplete structure was created. 9577 9578 - Issue #3339: dummy_thread.acquire() should not return None. 9579 9580 - Issue #3285: Fractions from_float() and from_decimal() accept Integral arguments. 9581 9582 - Issue #3301: Bisect module behaved badly when lo was negative. 9583 9584 - Issue #839496: SimpleHTTPServer used to open text files in text mode. This is 9585 both unnecessary (HTTP allows text content to be sent in several forms) and 9586 wrong because the actual transmitted size could differ from the 9587 content-length. The problem had been corrected in the 2.4 branch, but never 9588 merged into trunk. 9589 9590 - Issue #2663: add filtering capability to shutil.copytree(). 9591 9592 - Issue #1622: Correct interpretation of various ZIP header fields. 9593 9594 - Issue #1526: Allow more than 64k files to be added to Zip64 file. 9595 9596 - Issue #1746: Correct handling of zipfile archive comments (previously 9597 archives with comments over 4k were flagged as invalid). Allow writing 9598 Zip files with archives by setting the 'comment' attribute of a ZipFile. 9599 9600 - Issue #449227: The rlcompleter module now adds "(" to callable objects 9601 when completed. 9602 9603 - Issue #3190: Pydoc now hides the automatic module attribute __package__ (the 9604 handling is now the same as that of other special attributes like __name__). 9605 9606 - Issue #2885 (partial): The urllib.urlopen() function has been deprecated for 9607 removal in Python 3.0 in favor of urllib2.urlopen(). 9608 9609 - Issue #2113: Fix error in subprocess.Popen if the select system call is 9610 interrupted by a signal. 9611 9612 - Issue #3309: Fix bz2.BZFile iterator to release its internal lock 9613 properly when raising an exception due to the bz2file being closed. 9614 Prevents a deadlock. 9615 9616 - Issue #3094: httplib.HTTPSConnection Host: headers no longer include the 9617 redundant ":443" port number designation when the connection is using the 9618 default https port (443). 9619 9620 - Issue #874900: after an os.fork() call the threading module state is cleaned 9621 up in the child process to prevent deadlock and report proper thread counts 9622 if the new process uses the threading module. 9623 9624 Tests 9625 ----- 9626 9627 - test.test_support.catch_warning now keeps track of all warnings it sees 9628 and is now better documented. Explicit unit tests for this context manager 9629 have been added to test_warnings. 9630 9631 Build 9632 ----- 9633 9634 - Issue #3215: Build sqlite3 as sqlite3.dll, not sqlite3.pyd. 9635 9636 Documentation 9637 ------------- 9638 9639 - Document that robotparser has been renamed to urllib.robotparser in 9640 Python 3.0. 9641 9642 - Document that urlparse has been renamed to urllib.parse in Python 3.0. 9643 9644 - Document that urllib2 is split across multiple modules and renamed in 9645 Python 3.0. 9646 9647 - Document that urllib is split across multiple modules and renamed in 9648 Python 3.0. 9649 9650 9651 What's New in Python 2.6 beta 1? 9652 ================================ 9653 9654 *Release date: 18-June-2008* 9655 9656 Core and Builtins 9657 ----------------- 9658 9659 - Issue #3211: warnings.warn_explicit() did not guard against its 'registry' 9660 argument being anything other than a dict or None. Also fixed a bug in error 9661 handling when 'message' and 'category' were both set to None, triggering a 9662 bus error. 9663 9664 - Issue #3100: Corrected a crash on deallocation of a subclassed weakref which 9665 holds the last (strong) reference to its referent. 9666 9667 - Add future_builtins.ascii(). 9668 9669 - Several set methods now accept multiple arguments: update(), union(), 9670 intersection(), intersection_update(), difference(), and difference_update(). 9671 9672 - Issue #2898: Added sys.getsizeof() to retrieve size of objects in bytes. 9673 9674 - New environment variable PYTHONIOENCODING. 9675 9676 - Patch #2488: Add sys.maxsize. 9677 9678 - Issue #2353: file.xreadlines() now emits a Py3k warning. 9679 9680 - Issue #2863: generators now have a ``gen.__name__`` attribute that 9681 equals ``gen.gi_code.co_name``, like ``func.__name___`` that equals 9682 ``func.func_code.co_name``. The repr() of a generator now also 9683 contains this name. 9684 9685 - Issue #2831: enumerate() now has a ``start`` argument. 9686 9687 - Issue #2801: fix bug in the float.is_integer method where a 9688 ValueError was sometimes incorrectly raised. 9689 9690 - Issue #2790: sys.flags was not properly exposing its bytes_warning 9691 attribute. 9692 9693 - Issue #2196: hasattr() now lets exceptions which do not inherit 9694 Exception (KeyboardInterrupt, and SystemExit) propagate instead of 9695 ignoring them. 9696 9697 - Added checks for integer overflows, contributed by Google. Some are 9698 only available if asserts are left in the code, in cases where they 9699 can't be triggered from Python code. 9700 9701 Extension Modules 9702 ----------------- 9703 - Issue #1179: [CVE-2007-4965] Integer overflow in imageop module. 9704 9705 - Issue #3116: marshal.dumps() had quadratic behavior for strings > 32Mb. 9706 9707 - Issue #2138: Add factorial() to the math module. 9708 9709 - The heapq module does comparisons using LT instead of LE. This 9710 makes its implementation match that used by list.sort(). 9711 9712 - Issue #2819: add full-precision summation function to math module, 9713 based on Hettinger's ASPN Python Cookbook recipe. 9714 9715 - Issue #2592: delegate nb_index and the floor/truediv slots in 9716 weakref.proxy. 9717 9718 - Support os.O_ASYNC and fcntl.FASYNC if the constants exist on the 9719 platform. 9720 9721 - Support for Windows 9x has been removed from the winsound module. 9722 9723 - bsddb module updated to version 4.7.3. 9724 http://www.jcea.es/programacion/pybsddb.htm#bsddb3-4.7.3. This 9725 code should be compatible with Python 3.0. 9726 9727 - Issue #2858: Fix potential memory corruption when 9728 bsddb.db.DBEnv.lock_get and other bsddb.db object constructors 9729 raised an exception. 9730 9731 - Issue #2669: bsddb/__init__.py iteration no longer silently fails when 9732 the database has changed size during iteration. It now raises a 9733 RuntimeError in the same manner as a dictionary. 9734 9735 - Issue #2870: cmathmodule.c compile error. 9736 9737 - Added a threading.Thread.ident property. 9738 9739 Library 9740 ------- 9741 9742 - logging.config: Removed out-of-date comment in _install_handlers and 9743 used issubclass in place of equality comparison of classes. 9744 9745 - Issue #2722: Now the os.getcwd() supports very long path names. 9746 9747 - Issue #2888: Fixed the behaviour of pprint when working with nested 9748 structures, to match the behaviour of 2.5 and 3.0 (now follows the common 9749 sense). 9750 9751 - Issue #1817: cgi now correctly handles the querystring on POST requests 9752 9753 - Issue #3136: fileConfig()'s disabling of old loggers is now conditional via 9754 an optional disable_existing_loggers parameter, but the default value is 9755 such that the old behaviour is preserved. Thanks to Leandro Lucarella for 9756 the patch. 9757 9758 - Issue #3126: StreamHandler and FileHandler check before calling "flush" and 9759 "close" that the stream object has these, using hasattr (thanks to bobf for 9760 the patch). 9761 9762 - Issue #2912: platform.uname now tries to determine unknown information even if 9763 os.uname exists. 9764 9765 - The rfc822 module has been deprecated for removal in 3.0. 9766 9767 - The mimetools module has been deprecated for removal in 3.0. 9768 9769 - The ctypes.byref function now takes an optional second parameter 9770 which specifies an offset in bytes for the constructed pointer-like object. 9771 9772 - Added the ast module. 9773 9774 - Added the multiprocessing module, PEP 371. 9775 9776 - Factored out the indentation cleaning from inspect.getdoc() into 9777 inspect.cleandoc() to ease standalone use. 9778 9779 - Issue #1798: Add ctypes calling convention that allows safe access 9780 to errno. 9781 9782 - Issue #2404: ctypes objects support the new pep3118 buffer interface. 9783 9784 - Patch #2125: Add GetInteger and GetString methods for 9785 msilib.Record objects. 9786 9787 - Issue #2782: The datetime module's strftime methods now accept 9788 unicode format strings just as time.strftime always has. 9789 9790 - The sgmllib and htmllib modules have been deprecated for removal 9791 in Python 3.0. 9792 9793 - Issue #3011: locale module alias table was updated to the latest 9794 version from the X.org locale.alias file. 9795 9796 - Issue #1797 (partial fix): ctypes NULL function pointers have a 9797 False boolean value now. 9798 9799 - Issue #2985: Allow 64-bit integer responses (``<i8>``) in XMLRPC 9800 transfers. 9801 9802 - Issue #2877: The UserString.MutableString class has been removed in 9803 Python 3.0. 9804 9805 - Do not close external file objects passed to tarfile.open(mode='w:bz2') 9806 when the TarFile is closed. 9807 9808 - Issue #2959: For consistency with other file-like objects, gzip's 9809 GzipFile.close() can now be called multiple times without raising 9810 an exception. 9811 9812 - Issue #1390: Raise ValueError in toxml when an invalid comment would 9813 otherwise be produced. 9814 9815 - Issue #2914: TimedRotatingFileHandler now takes an optional keyword 9816 argument "utc" to use UTC time rather than local time. 9817 9818 - Issue #2929: TimedRotatingFileHandler was using the wrong path when 9819 deleting old log files (filename only instead of full path). 9820 9821 - Issue #1775025: You can now specify zipfile members to open(), 9822 read() or extract() via a ZipInfo instance. This allows handling 9823 duplicate filenames in zipfiles. 9824 9825 - Issue #961805: Fix Text.edit_modified() in Tkinter. 9826 9827 - Issue #1793: Function ctypes.util.find_msvcrt() added that returns 9828 the name of the C runtime library that Python uses. 9829 ctypes.util.find_library(name) now call this function when name is 9830 'm' or 'c'. 9831 9832 - The statvfs module has been deprecated for removal in Python 3.0. 9833 9834 - The sunaudiodev and SUNAUDIODEV modules have been deprecated for 9835 removal in Python 3.0. 9836 9837 - The WAIT module from IRIX has been deprecated for removal in Python 9838 3.0. 9839 9840 - The torgb module from IRIX has been deprecated for removal in Python 9841 3.0. 9842 9843 - The SV module from IRIX has been deprecated for removal in Python 9844 3.0. 9845 9846 - The readcd module from IRIX has been deprecated for removal in 9847 Python 3.0. 9848 9849 - The panelparser module from IRIX has been deprecated for removal in 9850 Python 3.0. 9851 9852 - The panel module from IRIX has been deprecated for removal in Python 9853 3.0. 9854 9855 - The jpeg module from IRIX has been deprecated for removal in Python 9856 3.0. 9857 9858 - The IOCTL module from IRIX has been deprecated for removal in Python 9859 3.0. 9860 9861 - The IN module from IRIX has been deprecated for removal in Python 9862 3.0. 9863 9864 - The imgfile module from IRIX has been deprecated for removal in 9865 Python 3.0. 9866 9867 - The GLWS module from IRIX has been deprecated for removal in Python 9868 3.0. 9869 9870 - The GET module from IRIX has been deprecated for removal in Python 9871 3.0. 9872 9873 - The fm module from IRIX has been deprecated for removal in Python 9874 3.0. 9875 9876 - The FL, flp, and fl modules from IRIX have been deprecated for 9877 removal in Python 3.0. 9878 9879 - The FILE module on IRIX has been deprecated for removal in Python 9880 3.0. 9881 9882 - The ERRNO module on IRIX has been deprecated for removal in Python 9883 3.0. 9884 9885 - The DEVICE, GL, gl, and cgen modules (which indirectly includes 9886 cgensupport) have been deprecated for removal in Python 3.0. 9887 9888 - The CL, CL_old, and cl modules for IRIX have been deprecated for 9889 removal in Python 3.0. 9890 9891 - The cdplayer module for IRIX has been deprecated for removal in 9892 Python 3.0. 9893 9894 - The cddb module for IRIX has been deprecated for removal in Python 9895 3.0. 9896 9897 - The cd and CD modules for IRIX have been deprecated for removal in 9898 Python 3.0. 9899 9900 - The al and AL modules for IRIX have been deprecated for removal in 9901 Python 3.0. 9902 9903 - Issue #1713041: fix pprint's handling of maximum depth. 9904 9905 - The timing module has been deprecated for removal in Python 3.0. 9906 9907 - The sv module has been deprecated for removal in Python 3.0. 9908 9909 - The multifile module has been deprecated as per PEP 4. 9910 9911 - The imageop module has been deprecated for removal in Python 3.0. 9912 9913 - Issue #2250: Exceptions raised during evaluation of names in 9914 rlcompleter's ``Completer.complete()`` method are now caught and 9915 ignored. 9916 9917 - Issue #2659: Added ``break_on_hyphens`` option to textwrap 9918 TextWrapper class. 9919 9920 - The mhlib module has been deprecated for removal in Python 3.0. 9921 9922 - The linuxaudiodev module has been deprecated for removal in Python 9923 3.0. 9924 9925 - The ihooks module has been deprecated for removal in Python 3.0. 9926 9927 - The fpformat module has been deprecated for removal in Python 3.0. 9928 9929 - The dl module has been deprecated for removal in Python 3.0. 9930 9931 - The Canvas module has been deprecated for removal in Python 3.0. 9932 9933 - The compiler package has been deprecated for removal in Python 3.0. 9934 9935 - The Bastion and rexec modules have been deprecated for removal in 9936 Python 3.0. 9937 9938 - The bsddb185 module has been deprecated for removal in Python 3.0. 9939 9940 - The pure module has been deprecated for removal in Python 3.0. 9941 9942 - Issue #2487: change the semantics of math.ldexp(x, n) when n is too 9943 large to fit in a C long. ldexp(x, n) now returns a zero (with 9944 suitable sign) if n is large and negative; previously, it raised 9945 OverflowError. 9946 9947 - The toaiff module has been deprecated for removal in Python 3.0. 9948 9949 - The test.testall module has been deprecated for removal in Python 9950 3.0. 9951 9952 - The new module has been deprecated for removal in Python 3.0. 9953 9954 - The user module has been deprecated for removal in Python 3.0. 9955 9956 - The stringold module has been deprecated for removal in Python 3.0. 9957 9958 - The mutex module has been deprecated for removal in Python 3.0. 9959 9960 - The imputil module has been deprecated for removal in Python 3.0. 9961 9962 - test.test_support.catch_warning() gained a 'record' argument. 9963 9964 - os.path.walk is deprecated in favor of os.walk. 9965 9966 - pdb gained the "until" command. 9967 9968 - The Mac Modules (including Carbon) have been deprecated for removal 9969 in Python 3.0. 9970 9971 - Library: on MacOS X you can now set ``ARCHFLAGS`` in the shell 9972 environment to control the '-arch' flags that are used to build 9973 an extension. This was added for compatibility with Apple's build 9974 of Python. 9975 9976 - The bundled OSX-specific copy of libbffi is now in sync with the version 9977 shipped with PyObjC 2.0 and includes support for x86_64 and ppc64 platforms. 9978 9979 - The threading module gained aliases for names that will be removed in the 9980 3.x series. 9981 9982 Build 9983 ----- 9984 9985 - The Windows installer now includes Tk 8.5, bzip2 1.0.5, and SQLite 3.5.9. 9986 9987 - Patch #1722225: Support QNX 6. 9988 9989 - ``Lib/lib-old`` is now added to sys.path. 9990 9991 - On MacOS X it is now possible to install the framework in 64-bit 9992 mode or even as a 4-way universal binary (that is, PPC, i386, 9993 PPC64 and x86_64 support in one binary). 9994 9995 This is controlled by the configure argument ``--with-universal-archs``: 9996 9997 - ``--with-universal-archs=all``: install 4-way universal 9998 9999 - ``--with-universal-archs=32-bit``: install 2-way universal, 32-bit (the default) 10000 10001 - ``--with-universal-archs=64-bit``: install 2-way universal, 64-bit 10002 10003 This option should be used in combination with ``--enable-universalsdk=``. 10004 10005 NOTE: 64-bit and 4-way builds are only suppported on Mac OS X 10.5 (or later). 10006 10007 C API 10008 ----- 10009 10010 - Add ``PyType_Modified()`` as a public API to clear the type cache. 10011 10012 - The PyBytes functions have been renamed to PyByteArray. 10013 10014 - The PyString functions have been renamed to PyBytes. A batch of 10015 defines were added so that the linker still sees the original 10016 PyString names. 10017 10018 10019 What's New in Python 2.6 alpha 3? 10020 ================================= 10021 10022 *Release date: 08-May-2008* 10023 10024 Core and builtins 10025 ----------------- 10026 10027 - Issue #2719: backported the ``next()`` builtin from Python 3. 10028 10029 - Issue #2681: The octal literal ``0o8`` was incorrecly acctepted. Now 10030 it properly raises a SyntaxError. 10031 10032 - Issue #2617: Reserved -J and -X arguments for Jython, IronPython and 10033 other implementations of Python. 10034 10035 - Implemented PEP 370: Per user site-packages directory. 10036 10037 Extension Modules 10038 ----------------- 10039 10040 - Issue #2670: Fix a failure in urllib2.build_opener(), when passed 10041 two handlers that derive the same default base class. 10042 10043 - Added kill, terminate and send_signal(sig) to subprocess.Popen. 10044 10045 - Added phase(z) -> phi, polar(z) -> r, phi and rect(r, phi) -> z to 10046 the cmath module. 10047 10048 - Four new methods were added to the math and cmath modules: acosh, 10049 asinh, atanh and log1p. 10050 10051 - zlib.decompressobj().flush(value) no longer crashes the interpreter 10052 when passed a value less than or equal to zero. 10053 10054 - Issue #1631171: Re-implement the 'warnings' module in C (the 10055 original Python code has been kept as backup). This will allow for 10056 using the 'warning's machinery in such places as the parser where 10057 use of pure Python code is not possible. Both the ``showarning()`` 10058 and ``formatwarning()`` gain an optional 'line' argument which is 10059 not called by default for backwards-compatibility reasons. Setting 10060 ``warnings.showwarning()`` to an implementation that lacks support 10061 for the ``line`` argument will raise a DeprecationWarning. 10062 10063 Library 10064 ------- 10065 10066 - The audiodev module has been deprecated for removal in Python 3.0. 10067 10068 - Issue #2750: Add the 'json' package. Based on simplejson 1.9 and 10069 contributed by Bob Ippolito. 10070 10071 - Issue #1734346: Support Unicode file names for zipfiles. 10072 10073 - Issue #2581: distutils: Vista UAC/elevation support for 10074 bdist_wininst. 10075 10076 - Issue #2635: Fix bug in 'fix_sentence_endings' textwrap.fill option, 10077 where an extra space was added after a word containing (but not 10078 ending in) '.', '!' or '?'. 10079 10080 - Add from_buffer() and from_buffer_copy() class methods to ctypes 10081 data types. 10082 10083 - Issue #2682: ctypes callback functions no longer contain a cyclic 10084 reference to themselves. 10085 10086 - The getpass module has been improved on Unix. It now uses /dev/tty 10087 by default and uses stderr instead of stdout. A GetPassWarning is 10088 issued when input echo cannot be controlled. 10089 10090 - Issue #2014: Allow XML-RPC datetime objects to have dates before 10091 1900-01-01. 10092 10093 - Issue #2439: Added new function pkgutil.get_data(), which is a 10094 convenience wrapper for the PEP 302 get_data() API. 10095 10096 - Issue #2616: The ctypes.pointer() and ctypes.POINTER() functions are 10097 now implemented in C for better performance. 10098 10099 - Issue #2408: The ``_types`` module, which was used as in 10100 implementation detail of the public ``types`` module, has been 10101 removed and replaced by pure python code. 10102 10103 - Issue #2513: distutils on Windows is now capable of cross-compiling 10104 extension modules between 32 and 64 bit platforms. See the distutls 10105 build documentation for more information. 10106 10107 - Issue #815646: Individual file objects may now be used from multiple 10108 threads at once without fear of crashing the Python interpreter. If 10109 file.close() is called while an object is in use by another thread 10110 an IOError exception will be raised and the file will not be closed. 10111 10112 - The bundled libffi copy is now in sync with the recently released 10113 libffi3.0.5 version, apart from some small changes to 10114 Modules/_ctypes/libffi/configure.ac. 10115 10116 - Issue #2385: distutils.core.run_script() makes __file__ available, 10117 so the controlled environment will more closely mirror the typical 10118 script environment. This supports setup.py scripts that refer to 10119 data files. 10120 10121 Tests 10122 ----- 10123 10124 - Issue #2550: The approach used by client/server code for obtaining 10125 ports to listen on in network-oriented tests has been refined in an 10126 effort to facilitate running multiple instances of the entire 10127 regression test suite in parallel without issue. 10128 test_support.bind_port() has been fixed such that it will always 10129 return a unique port -- which wasn't always the case with the 10130 previous implementation, especially if socket options had been set 10131 that affected address reuse (i.e. SO_REUSEADDR, SO_REUSEPORT). The 10132 new implementation of bind_port() will actually raise an exception 10133 if it is passed an AF_INET/SOCK_STREAM socket with either the 10134 SO_REUSEADDR or SO_REUSEPORT socket option set. Furthermore, if 10135 available, bind_port() will set the SO_EXCLUSIVEADDRUSE option on 10136 the socket it's been passed. This currently only applies to 10137 Windows. This option prevents any other sockets from binding to the 10138 host/port we've bound to, thus removing the possibility of the 10139 'non-deterministic' behaviour, as Microsoft puts it, that occurs 10140 when a second SOCK_STREAM socket binds and accepts to a host/port 10141 that's already been bound by another socket. The optional preferred 10142 port parameter to bind_port() has been removed. Under no 10143 circumstances should tests be hard coding ports! 10144 10145 test_support.find_unused_port() has also been introduced, which will 10146 pass a temporary socket object to bind_port() in order to obtain an 10147 unused port. The temporary socket object is then closed and 10148 deleted, and the port is returned. This method should only be used 10149 for obtaining an unused port in order to pass to an external program 10150 (i.e. the -accept [port] argument to openssl's s_server mode) or as 10151 a parameter to a server-oriented class that doesn't give you direct 10152 access to the underlying socket used. 10153 10154 Finally, test_support.HOST has been introduced, which should be used 10155 for the host argument of any relevant socket calls (i.e. bind and 10156 connect). 10157 10158 The following tests were updated to following the new conventions: 10159 test_socket, test_smtplib, test_asyncore, test_ssl, test_httplib, 10160 test_poplib, test_ftplib, test_telnetlib, test_socketserver, 10161 test_asynchat and test_socket_ssl. 10162 10163 It is now possible for multiple instances of the regression test 10164 suite to run in parallel without issue. 10165 10166 Build 10167 ----- 10168 10169 - Issue #1496032: On alpha, use -mieee when gcc is the compiler. 10170 10171 - Issue #2544: On HP-UX systems, use 'gcc -shared' for linking when 10172 gcc is used as compiler. 10173 10174 - Issue #2573: On MacOS X it is now possible to install the framework 10175 with a different name using --with-framework-name=NAME. 10176 10177 C API 10178 ----- 10179 10180 - Added implementation of copysign, acosh, asinh, atanh and log1p to 10181 the new files Include/pymath.h and Python/pymath.h for platforms 10182 which provide the functions through their libm. The files also 10183 contains several helpers and constants for math. 10184 10185 - Added a new convenience macro, PyErr_WarnPy3k, for issuing Py3k warnings. 10186 10187 10188 What's New in Python 2.6 alpha 2? 10189 ================================= 10190 10191 *Release date: 02-Apr-2008* 10192 10193 Core and builtins 10194 ----------------- 10195 10196 - Issue #1733757: The interpreter would hang on shutdown if the 10197 tracing function set by sys.settrace is still active and happens to 10198 call threading.currentThread(). 10199 10200 - Patch #1442: properly report exceptions when the PYTHONSTARTUP file 10201 cannot be executed. 10202 10203 - The compilation of a class nested in another class used to leak one 10204 reference on the outer class name. 10205 10206 - Patch #1810: compile() can now compile _ast trees as returned by 10207 ``compile(..., PyCF_ONLY_AST)``. 10208 10209 - Patch #2426: Added sqlite3.Connection.iterdump method to allow easy 10210 dumping of databases. Contributed by Paul Kippes at PyCon 2008. 10211 10212 - Patch #2477: Added from __future__ import unicode_literals. 10213 10214 - Added backport of bytearray type. 10215 10216 - Issue #2355: add Py3k warning for buffer(). 10217 10218 - Issue #1477: With narrow Unicode builds, the unicode escape sequence 10219 \Uxxxxxxxx did not accept values outside the Basic Multilingual 10220 Plane. This affected raw unicode literals and the 10221 'raw-unicode-escape' codec. Now UTF-16 surrogates are generated in 10222 this case, like normal unicode literals and the 'unicode-escape' 10223 codec. 10224 10225 - Issue #2348: add Py3k warning for file.softspace. 10226 10227 - Issue #2346/#2347: add Py3k warnings for __methods__ and 10228 __members__. 10229 10230 - Issue #2358: Add a Py3k warning on sys.exc_clear() usage. 10231 10232 - Issue #2400: Allow relative imports to "import *". 10233 10234 - Issue #1745: Backport print function with ``from __future__ import 10235 print_function``. 10236 10237 - Issue #2332: add new attribute names for instance method objects. 10238 The two changes are: im_self -> __self__ and im_func -> __func__ 10239 10240 - Issue #2379: Raise a Py3K warning for __getitem__ or __getslice__ on 10241 exception instances. 10242 10243 - Issue #2371: Add a Py3k warning when catching an exception that 10244 doesn't derive from BaseException. 10245 10246 - Issue #2341: Add a Py3k warning when raising an exception that 10247 doesn't derive from BaseException. 10248 10249 - Issue #2321: use pymalloc for unicode object string data to reduce 10250 memory usage in some circumstances. 10251 10252 - PEP 3127: octal literals now start with "0o". Old-style octal 10253 literals are still valid. There are binary literals with a prefix of 10254 "0b". This also affects int(x, 0). 10255 10256 - Issue #2359: Adding deprecation warnings for array.{read,write}. 10257 10258 - Issue #1779871: GNU gcc can now build Python on OS X because the 10259 flags -Wno-long-double, -no-cpp-precomp, and -mno-fused-madd are no 10260 longer passed. 10261 10262 - Add a warning when asserting a non-empty tuple which is always true. 10263 10264 - Issue #2179: speed up with statement execution by storing the exit 10265 method on the stack instead of in a temporary variable (patch by 10266 Jeffrey Yaskin) 10267 10268 - Issue #2238: Some syntax errors in *args and **kwargs expressions 10269 could give bogus error messages. 10270 10271 - Issue #2143: Fix embedded readline() hang on SSL socket EOF. 10272 10273 Extension Modules 10274 ----------------- 10275 10276 - Patch #2240: Implement signal.setitimer and signal.getitimer. 10277 10278 Library 10279 ------- 10280 10281 - Issue #2315: logging.handlers: TimedRotatingFileHandler now accounts 10282 for daylight savings time in calculating the next rollover. 10283 10284 - Issue #2316: logging.handlers: TimedRotatingFileHandler now 10285 calculates rollovers correctly even when nothing is logged for a 10286 while. 10287 10288 - Issue #2317: logging.handlers: TimedRotatingFileHandler now uses 10289 improved logic for removing old files. 10290 10291 - Issue #2495: tokenize.untokenize now inserts a space between two 10292 consecutive string literals; previously, ["" ""] was rendered as 10293 [""""], which is incorrect python code. 10294 10295 - Issue #2248: return the result of the QUIT command. from 10296 SMTP.quit(). 10297 10298 - Backport of Python 3.0's io module. 10299 10300 - Issue #2482: Make sure that the coefficient of a Decimal is always 10301 stored as a str instance, not as a unicode instance. This ensures 10302 that str(Decimal) is always an instance of str. 10303 10304 - Issue #2478: fix failure of decimal.Decimal(0).sqrt() 10305 10306 - Issue #2432: give DictReader the dialect and line_num attributes 10307 advertised in the docs. 10308 10309 - Issue #2460: Make Ellipsis object copyable. 10310 10311 - Issue #1681432: Add triangular distribution to the random module 10312 10313 - Issue #2136: urllib2's auth handler now allows single-quoted realms 10314 in the WWW-Authenticate header. 10315 10316 - Issue #2434: Enhanced platform.win32_ver() to also work on Python 10317 installation which do not have the win32all package installed. 10318 10319 - Added support to platform.uname() to also report the machine and 10320 processor information on Windows XP and later. As a result, 10321 platform.machine() and platform.processor() will report this 10322 information as well. 10323 10324 - The library implementing the 2to3 conversion, lib2to3, was added to 10325 the standard distribution. 10326 10327 - Issue #1747858: Fix chown to work with large uid's and gid's on 10328 64-bit platforms. 10329 10330 - Issue #1202: zlib.crc32 and zlib.adler32 no longer return different 10331 values on 32-bit vs. 64-bit python interpreters. Both were correct, 10332 but they now both return a signed integer object for consistency. 10333 10334 - Issue #1158: add %f format (fractions of a second represented as 10335 microseconds) to datetime objects. Understood by both strptime and 10336 strftime. 10337 10338 - Issue #705836: struct.pack(">f", x) now raises OverflowError on all 10339 platforms when x is too large to fit into an IEEE 754 float; 10340 previously it only raised OverflowError on non IEEE 754 platforms. 10341 10342 - Issues #2166, #1741 and #1531505: now distutils deals with HOME 10343 correctly under win32 10344 10345 - Patch #1858: distutils: added multiple server support in .pypirc 10346 10347 - Issue #1106316: pdb.post_mortem()'s parameter, "traceback", is now 10348 optional: it defaults to the traceback of the exception that is 10349 currently being handled (is mandatory to be in the middle of an 10350 exception, otherwise it raises ValueError). 10351 10352 - Issue #1193577: A .shutdown() method has been added to SocketServers 10353 which terminates the .serve_forever() loop. 10354 10355 - Issue #2220: handle rlcompleter attribute match failure more 10356 gracefully. 10357 10358 - Issue #2225: py_compile, when executed as a script, now returns a 10359 non- zero status code if not all files could be compiled 10360 successfully. 10361 10362 - Bug #1725737: In distutils' sdist, exclude RCS, CVS etc. also in the 10363 root directory, and also exclude .hg, .git, .bzr, and _darcs. 10364 10365 - Issue #1872: The struct module typecode for _Bool has been changed 10366 from 't' to '?'. 10367 10368 - The bundled libffi copy is now in sync with the recently released 10369 libffi3.0.4 version, apart from some small changes to 10370 Modules/_ctypes/libffi/configure.ac. On OS X, preconfigured libffi 10371 files are used. On all linux systems the --with-system-ffi 10372 configure option defaults to "yes". 10373 10374 - Issue #1577: shutil.move() now calls os.rename() if the destination 10375 is a directory instead of copying-then-remove-source. 10376 10377 Tests 10378 ----- 10379 10380 - test_nis no longer fails when test.test_support.verbose is true and 10381 NIS is not set up on the testing machine. 10382 10383 - Output comparison tests are no longer supported. 10384 10385 - Rewrite test_errno to use unittest and no longer be a no-op. 10386 10387 - GHOP 234: Convert test_extcall to doctest. 10388 10389 - GHOP 290: Convert test_dbm and test_dummy_threading to unittest. 10390 10391 - GHOP 293: Convert test_strftime, test_getargs, and test_pep247 to 10392 unittest. 10393 10394 - Issue #2055: Convert test_fcntl to unittest. 10395 10396 - Issue #1960: Convert test_gdbm to unittest. 10397 10398 - GHOP 294: Convert test_contains, test_crypt, and test_select to 10399 unittest. 10400 10401 - GHOP 238: Convert test_tokenize to use doctest. 10402 10403 - GHOP 237: Rewrite test_thread using unittest. 10404 10405 - Patch #2232: os.tmpfile might fail on Windows if the user has no 10406 permission to create files in the root directory. 10407 10408 Build 10409 ----- 10410 10411 - A new script 2to3 is now installed, to run the 2.x to 3.x converter. 10412 10413 - Python/memmove.c and Python/strerror.c have been removed; both 10414 functions are in the C89 standard library. 10415 10416 - Patch #2284: Add -x64 option to rt.bat. 10417 10418 C API 10419 ----- 10420 10421 - Patch #2477: Added PyParser_ParseFileFlagsEx() and 10422 PyParser_ParseStringFlagsFilenameEx(). 10423 10424 10425 What's New in Python 2.6 alpha 1? 10426 ================================= 10427 10428 *Release date: 29-Feb-2008* 10429 10430 Core and builtins 10431 ----------------- 10432 10433 - Issue #2051: pyc and pyo files are no longer created with permission 10434 644. The mode is now inherited from the py file. 10435 10436 - Issue #2067: file.__exit__() now calls subclasses' close() method. 10437 10438 - Patch #1759: Backport of PEP 3129 class decorators. 10439 10440 - Issue #1881: An internal parser limit has been increased. Also see 10441 issue #215555 for a discussion. 10442 10443 - Added the future_builtins module, which contains hex() and oct(). 10444 These are the PEP 3127 version of these functions, designed to be 10445 compatible with the hex() and oct() builtins from Python 3.0. They 10446 differ slightly in their output formats from the existing, unchanged 10447 Python 2.6 builtins. The expected usage of the future_builtins 10448 module is: 10449 from future_builtins import hex, oct 10450 10451 - Issue #1600: Modified PyOS_ascii_formatd to use at most 2 digit 10452 exponents for exponents with absolute value < 100. Follows C99 10453 standard. This is a change on Windows, which would use 3 digits. 10454 Also, added 'n' to the formats that PyOS_ascii_formatd understands, 10455 so that any alterations it does to the resulting string will be 10456 available in stringlib/formatter.h (for float.__format__). 10457 10458 - Implemented PEP 3101, Advanced String Formatting. This adds a new 10459 builtin format(); a format() method for str and unicode; a 10460 __format__() method to object, str, unicode, int, long, float, and 10461 datetime; the class string.Formatter; and the C API 10462 PyObject_Format(). 10463 10464 - Fixed several potential crashes, all caused by specially crafted 10465 __del__ methods exploiting objects in temporarily inconsistent 10466 state. 10467 10468 - Issue #2115: Important speedup in setting __slot__ attributes. Also 10469 prevent a possible crash: an Abstract Base Class would try to access 10470 a slot on a registered virtual subclass. 10471 10472 - Fixed repr() and str() of complex numbers with infinity or nan as 10473 real or imaginary part. 10474 10475 - Clear all free lists during a gc.collect() of the highest generation 10476 in order to allow pymalloc to free more arenas. Python may give back 10477 memory to the OS earlier. 10478 10479 - Issue #2045: Fix an infinite recursion triggered when printing a 10480 subclass of collections.defaultdict, if its default_factory is set 10481 to a bound method. 10482 10483 - Fixed a minor memory leak in dictobject.c. The content of the free 10484 list was not freed on interpreter shutdown. 10485 10486 - Limit free list of method and built-in function objects to 256 10487 entries each. 10488 10489 - Patch #1953: Added ``sys._compact_freelists()`` and the C API 10490 functions ``PyInt_CompactFreeList`` and ``PyFloat_CompactFreeList`` 10491 to compact the internal free lists of pre-allocted ints and floats. 10492 10493 - Issue #1983: Fixed return type of fork(), fork1() and forkpty() 10494 calls. Python expected the return type int but the fork familie 10495 returns pi_t. 10496 10497 - Issue #1678380: Fix a bug that identifies 0j and -0j when they 10498 appear in the same code unit. 10499 10500 - Issue #2025: Add tuple.count() and tuple.index() methods to comply 10501 with the collections.Sequence API. 10502 10503 - Patch #1970 by Antoine Pitrou: Speedup unicode whitespace and 10504 linebreak detection 10505 10506 - Added ``PyType_ClearCache()`` and ``sys._clear_type_cache`` to clear 10507 the internal lookup cache for ref leak tests. 10508 10509 - Patch #1473257: generator objects gain a gi_code attribute. This is 10510 the same object as the func_code attribute of the function that 10511 produced the generator. 10512 10513 - Issue #1920: "while 0" statements were completely removed by the 10514 compiler, even in the presence of an "else" clause, which is 10515 supposed to be run when the condition is false. Now the compiler 10516 correctly emits bytecode for the "else" suite. 10517 10518 - A few crashers fixed: weakref_in_del.py (issue #1377858); 10519 loosing_dict_ref.py (issue #1303614, test67.py); 10520 borrowed_ref_[34].py (not in tracker). 10521 10522 - Issue #1069410: The "can't load dll" message box on Windows is 10523 suppressed while an extension is loaded by calling SetErrorMode in 10524 dynload_win.c. The error is still reported properly. 10525 10526 - Issue #1915: Python compiles with --enable-unicode=no again. However 10527 several extension methods and modules do not work without unicode 10528 support. 10529 10530 - Issue #1882: when compiling code from a string, encoding cookies in the 10531 second line of code were not always recognized correctly. 10532 10533 - Issue #1679: "0x" was taken as a valid integer literal. 10534 10535 - Issue #1865: ``bytes`` as an alias for ``str`` and b"" as an alias "" were 10536 added. 10537 10538 - sys.float_info / PyFloat_GetInfo: The floating point information 10539 object was converted from a dict to a specialized structseq object. 10540 10541 - Patch #1816: Added sys.flags structseq. It exposes the status of 10542 most command line arguments and PYTHON* environment variables. 10543 10544 - Objects/structseq.c: Implemented new structseq representation. The 10545 patch makes structseqs (e.g. the return value of os.stat) more 10546 readable. 10547 10548 - Patch #1700288: added a type attribute cache that caches method 10549 accesses, resulting in speedups in heavily object-oriented code. 10550 10551 - Bug #1776: __import__() no longer accepts filenames on any platform. 10552 The first parameter to __import__() must be a valid module name. 10553 10554 - Patch #1668: renamed THREADDEBUG envvar to PYTHONTHREADDEBUG. 10555 10556 - Patch #602345: Add -B command line option, PYTHONDONTWRITEBYTECODE 10557 envvar and sys.dont_write_bytecode attribute. All these can be set 10558 to forbid Python to attempt to write compiled bytecode files. 10559 10560 - Improve some exception messages when Windows fails to load an 10561 extension module. Now we get for example '%1 is not a valid Win32 10562 application' instead of 'error code 193'. 10563 10564 - Bug #1481296: Fixed long(float('nan')) != 0L. 10565 10566 - Issue #1640: Added math.isinf(x), math.isnan(x) and math.copysign(x, 10567 y) functions. 10568 10569 - Issue #1635: Platform independent creation and representation of NaN 10570 and INF. float("nan"), float("inf") and float("-inf") now work on 10571 every platform with IEEE 754 semantics. 10572 10573 - Compiler now generates simpler and faster code for dictionary 10574 literals. The oparg for BUILD_MAP now indicates an estimated 10575 dictionary size. There is a new opcode, STORE_MAP, for adding 10576 entries to the dictionary. 10577 10578 - Issue #1638: %zd configure test fails on Linux. 10579 10580 - Issue #1620: New property decorator syntax was modifying the 10581 decorator in place instead of creating a new decorator object. 10582 10583 - Issue #1538: Avoid copying string in split/rsplit if the split char 10584 is not found. 10585 10586 - Issue #1553: An erroneous __length_hint__ can make list() raise a 10587 SystemError. 10588 10589 - PEP 366: Allow explicit relative imports when executing modules 10590 inside packages with the -m switch via a new module level 10591 __package__ attribute. 10592 10593 - Issue #1402: Fix a crash on exit, when another thread is still 10594 running, and if the deallocation of its frames somehow calls the 10595 PyGILState_Ensure() / PyGILState_Release() functions. 10596 10597 - Expose the Py_Py3kWarningFlag as sys.py3kwarning. 10598 10599 - Issue #1445: Fix a SystemError when accessing the ``cell_contents`` 10600 attribute of an empty cell object. 10601 10602 - Issue #1460: The utf-7 incremental decoder did not accept truncated 10603 input. It now correctly saves its state between chunks of data. 10604 10605 - Patch #1739468: Directories and zipfiles containing a __main__.py 10606 file can now be directly executed by passing their name to the 10607 interpreter. The directory/zipfile is automatically inserted as the 10608 first entry in sys.path. 10609 10610 - Issue #1265: Fix a problem with sys.settrace, if the tracing 10611 function uses a generator expression when at the same time the 10612 executed code is closing a paused generator. 10613 10614 - sets and frozensets now have an isdisjoint() method. 10615 10616 - optimize the performance of builtin.sum(). 10617 10618 - Fix warnings found by the new version of the Coverity checker. 10619 10620 - The enumerate() built-in function is no longer bounded to sequences 10621 smaller than LONG_MAX. Formerly, it raised an OverflowError. Now, 10622 automatically shifts from ints to longs. 10623 10624 - Issue #1686386: Tuple's tp_repr did not take into account the 10625 possibility of having a self-referential tuple, which is possible 10626 from C code. Nor did object's tp_str consider that a type's tp_str 10627 could do something that could lead to an inifinite recursion. 10628 Py_ReprEnter() and Py_EnterRecursiveCall(), respectively, fixed the 10629 issues. 10630 10631 - Issue #1164: It was possible to trigger deadlock when using the 10632 'print' statement to write to a file since the GIL was not released 10633 as needed. Now PyObject_Print() does the right thing along with 10634 various tp_print implementations of the built-in types and those in 10635 the collections module. 10636 10637 - Issue #1147: Exceptions were directly allowing string exceptions in 10638 their throw() method even though string exceptions no longer 10639 allowed. 10640 10641 - Issue #1096: Prevent a segfault from getting the repr of a very 10642 deeply nested list by using the recursion counter. 10643 10644 - Issue #1202533: Fix infinite recursion calls triggered by calls to 10645 PyObject_Call() never calling back out to Python code to trigger 10646 recursion depth updates/checks. Required the creation of a static 10647 RuntimeError instance in case normalizing an exception put the 10648 recursion check value past its limit. Fixes crashers 10649 infinite_rec_(1|2|4|5).py. 10650 10651 - Patch #1031213: Decode source line in SyntaxErrors back to its 10652 original source encoding. 10653 10654 - Patch #1673759: add a missing overflow check when formatting floats 10655 with %G. 10656 10657 - Prevent expandtabs() on string and unicode objects from causing a 10658 segfault when a large width is passed on 32-bit platforms. 10659 10660 - Issue #1733488: Fix compilation of bufferobject.c on AIX. 10661 10662 - Issue #1722485: remove docstrings again when running with -OO. 10663 10664 - Add new attribute names for function objects. All the func_* become 10665 __*__ attributes. (Some already existed, e.g., __doc__ and 10666 __name__.) 10667 10668 - Add -3 option to the interpreter to warn about features that are 10669 deprecated and will be changed/removed in Python 3.0. 10670 10671 - Patch #1686487: you can now pass any mapping after '**' in function 10672 calls. 10673 10674 - except clauses may now be spelled either "except E, target:" or 10675 "except E as target:". This is to provide forwards compatibility 10676 with Python 3.0. 10677 10678 - Deprecate BaseException.message as per PEP 352. 10679 10680 - Issue #1303614: don't expose object's __dict__ when the dict is 10681 inherited from a built-in base. 10682 10683 - When __slots__ are set to a unicode string, make it work the same as 10684 setting a plain string, ie don't expand to single letter identifiers. 10685 10686 - Request #1191699: Slices can now be pickled. 10687 10688 - Request #1193128: str.translate() now allows a None argument for 10689 translations that only remove characters without re-mapping the 10690 remaining characters. 10691 10692 - Patch #1682205: a TypeError while unpacking an iterable is no longer 10693 masked by a generic one with the message "unpack non-sequence". 10694 10695 - Remove unused file Python/fmod.c. 10696 10697 - Bug #1683368: The object.__init__() and object.__new__() methods are 10698 now stricter in rejecting excess arguments. The only time when 10699 either allows excess arguments is when it is not overridden and the 10700 other one is. For backwards compatibility, when both are 10701 overridden, it is a deprecation warning (for now; maybe a Py3k 10702 warning later). Also, type.__init__() insists on the same signature 10703 as supported by type.__new__(). 10704 10705 - Patch #1675423: PyComplex_AsCComplex() now tries to convert an 10706 object to complex using its __complex__() method before falling back 10707 to the __float__() method. Therefore, the functions in the cmath 10708 module now can operate on objects that define a __complex__() 10709 method. 10710 10711 - Patch #1623563: allow __class__ assignment for classes with 10712 __slots__. The old and the new class are still required to have the 10713 same slot names. 10714 10715 - Patch #1642547: Fix an error/crash when encountering syntax errors 10716 in complex if statements. 10717 10718 - Patch #1462488: Python no longer segfaults when 10719 ``object.__reduce_ex__()`` is called with an object that is faking 10720 its type. 10721 10722 - Patch #1680015: Don't modify __slots__ tuple if it contains a 10723 unicode name. 10724 10725 - Patch #1444529: the builtin compile() now accepts keyword arguments. 10726 10727 - Bug #1678647: write a newline after printing an exception in any 10728 case, even when converting the value to a string failed. 10729 10730 - The dir() function has been extended to call the __dir__() method on 10731 its argument, if it exists. If not, it will work like before. This 10732 allows customizing the output of dir() in the presence of a 10733 __getattr__(). 10734 10735 - Patch #922167: Python no longer segfaults when faced with infinitely 10736 self-recursive reload() calls (as reported by bug #742342). 10737 10738 - Patch #1675981: remove unreachable code from ``type.__new__()`` 10739 method. 10740 10741 - Patch #1491866: change the complex() constructor to allow 10742 parthensized forms. This means complex(repr(x)) now works instead of 10743 raising a ValueError. 10744 10745 - Patch #703779: unset __file__ in __main__ after running a file. This 10746 makes the filenames the warning module prints much more sensible 10747 when a PYTHONSTARTUP file is used. 10748 10749 - Variant of patch #697613: don't exit the interpreter on a SystemExit 10750 exception if the -i command line option or PYTHONINSPECT environment 10751 variable is given, but break into the interactive interpreter just 10752 like on other exceptions or normal program exit. 10753 10754 - Patch #1638879: don't accept strings with embedded NUL bytes in 10755 long(). 10756 10757 - Bug #1674503: close the file opened by execfile() in an error 10758 condition. 10759 10760 - Patch #1674228: when assigning a slice (old-style), check for the 10761 sq_ass_slice instead of the sq_slice slot. 10762 10763 - When printing an unraisable error, don't print exceptions. before 10764 the name. This duplicates the behavior whening normally printing 10765 exceptions. 10766 10767 - Bug #1653736: Properly discard third argument to 10768 slot_nb_inplace_power. 10769 10770 - PEP 352: Raising a string exception now triggers a TypeError. 10771 Attempting to catch a string exception raises DeprecationWarning. 10772 10773 - Bug #1377858: Fix the segfaulting of the interpreter when an object 10774 created a weakref on itself during a __del__ call for new-style 10775 classes (classic classes still have the bug). 10776 10777 - Bug #1579370: Make PyTraceBack_Here use the current thread, not the 10778 frame's thread state. 10779 10780 - patch #1630975: Fix crash when replacing sys.stdout in 10781 sitecustomize.py. 10782 10783 - Prevent seg fault on shutdown which could occur if an object raised 10784 a warning. 10785 10786 - Bug #1566280: Explicitly invoke threading._shutdown from Py_Main, to 10787 avoid relying on atexit. 10788 10789 - Bug #1590891: random.randrange don't return correct value for big 10790 number. 10791 10792 - Patch #1586791: Better exception messages for some operations on 10793 strings, tuples and lists. 10794 10795 - Bug #1067760: Deprecate passing floats to file.seek. 10796 10797 - Bug #1591996: Correctly forward exception in instance_contains(). 10798 10799 - Bug #1588287: fix invalid assertion for `1,2` in debug builds. 10800 10801 - Bug #1576657: when setting a KeyError for a tuple key, make sure 10802 that the tuple isn't used as the "exception arguments tuple". 10803 10804 - Bug #1565514: SystemError not raised on too many nested blocks. 10805 10806 - Bug #1576174: WindowsError now displays the windows error code 10807 again, no longer the posix error code. 10808 10809 - Patch #1549049: Support long values in structmember, issue warnings 10810 if the assigned value for structmember fields gets truncated. 10811 10812 - Update the peephole optimizer to remove more dead code (jumps after 10813 returns) and inline unconditional jumps to returns. 10814 10815 - Bug #1545497: when given an explicit base, int() did ignore NULs 10816 embedded in the string to convert. 10817 10818 - Bug #1569998: break inside a try statement (outside a loop) is now 10819 recognized and rejected. 10820 10821 - list.pop(x) accepts any object x following the __index__ protocol. 10822 10823 - A number of places, including integer negation and absolute value, 10824 were fixed to not rely on undefined behaviour of the C compiler 10825 anymore. 10826 10827 - Bug #1566800: make sure that EnvironmentError can be called with any 10828 number of arguments, as was the case in Python 2.4. 10829 10830 - Patch #1567691: super() and new.instancemethod() now don't accept 10831 keyword arguments any more (previously they accepted them, but 10832 didn't use them). 10833 10834 - Fix a bug in the parser's future statement handling that led to 10835 "with" not being recognized as a keyword after, e.g., this 10836 statement: from __future__ import division, with_statement 10837 10838 - Bug #1557232: fix seg fault with def f((((x)))) and def f(((x),)). 10839 10840 - Fix %zd string formatting on Mac OS X so it prints negative numbers. 10841 10842 - Allow exception instances to be directly sliced again. 10843 10844 - Bug #1551432: Exceptions do not define an explicit __unicode__ 10845 method. This allows calling unicode() on exceptions classes 10846 directly to succeed. 10847 10848 - Bug #1542051: Exceptions now correctly call PyObject_GC_UnTrack. 10849 Also make sure that every exception class has __module__ set to 10850 'exceptions'. 10851 10852 - Bug #1550983: emit better error messages for erroneous relative 10853 imports (if not in package and if beyond toplevel package). 10854 10855 - Overflow checking code in integer division ran afoul of new gcc 10856 optimizations. Changed to be more standard-conforming. 10857 10858 - Patch #1542451: disallow continue anywhere under a finally. 10859 10860 - Patch #1546288: fix seg fault in dict_equal due to ref counting bug. 10861 10862 - The return tuple from str.rpartition(sep) is (tail, sep, head) where 10863 head is the original string if sep was not found. 10864 10865 - Bug #1520864: unpacking singleton tuples in list comprehensions and 10866 generator expressions (x for x, in ... ) works again. Fixing this 10867 problem required changing the .pyc magic number. This means that 10868 .pyc files generated before 2.5c2 will be regenerated. 10869 10870 - ``with`` and ``as`` are now keywords. 10871 10872 - Bug #1664966: Fix crash in exec if Unicode filename can't be 10873 decoded. 10874 10875 - Issue #1537: Changed GeneratorExit's base class from Exception to 10876 BaseException. 10877 10878 - Issue #1703448: A joined thread could show up in the 10879 threading.enumerate() list after the join() for a brief period until 10880 it actually exited. 10881 10882 Library 10883 ------- 10884 10885 - Patch #2274: Add heapq.heappushpop(). 10886 10887 - Add inspect.isabstract(object) to fix bug #2223 10888 10889 - Add a __format__ method to Decimal, to support PEP 3101. 10890 10891 - Add a timing parameter when using trace.Trace to print out 10892 timestamps. 10893 10894 - Issue #1627: httplib now ignores negative Content-Length headers. 10895 10896 - Issue #900744: If an invalid chunked-encoding header is sent by a 10897 server, httplib will now raise IncompleteRead and close the 10898 connection instead of raising ValueError. 10899 10900 - Issue #1492: The content type of BaseHTTPServer error messages can 10901 now be overridden. 10902 10903 - Issue #1781: ConfigParser now does not let you add the "default" section 10904 (ignore-case) 10905 10906 - Removed uses of dict.has_key() from distutils, and uses of 10907 callable() from copy_reg.py, so the interpreter now starts up 10908 without warnings when '-3' is given. More work like this needs to 10909 be done in the rest of the stdlib. 10910 10911 - Issue #1916: added isgenerator() and isgeneratorfunction() to 10912 inspect.py. 10913 10914 - Issue #1224: Fixed bad url parsing when path begins with double 10915 slash. 10916 10917 - ctypes instances that are not or do not contain pointers can now be 10918 pickled. 10919 10920 - Patch #1966: Break infinite loop in httplib when the servers 10921 implements the chunked encoding incorrectly. 10922 10923 - Rename rational.py to fractions.py and the rational.Rational class 10924 to fractions.Fraction, to avoid the name clash with the abstract 10925 base class numbers.Rational. See discussion in issue #1682. 10926 10927 - The pickletools module now provides an optimize() function that 10928 eliminates unused PUT opcodes from a pickle string. 10929 10930 - Patch #2021: Allow tempfile.NamedTemporaryFile and 10931 SpooledTemporaryFile to be used in with statements by correctly 10932 supporting the context management protocol. 10933 10934 - Patch #1979: Add rich comparisons to Decimal, and make Decimal 10935 comparisons involving a NaN follow the IEEE 754 standard. 10936 10937 - Issue #2004: tarfile.py: Use mode 0700 for temporary directories and 10938 default permissions for missing directories. 10939 10940 - Issue #175006: The debugger used to skip the condition of a "while" 10941 statement after the first iteration. Now it correctly steps on the 10942 expression, and breakpoints on the "while" statement are honored on 10943 each loop. 10944 10945 - Issue #1765140: add an optional delay argument to FileHandler and 10946 its subclasses. Defaults to false (existing behaviour), but if true, 10947 defers opening the file until the first call to emit(). 10948 10949 - The pprint module now supports sets and frozensets. 10950 10951 - Issue #1221598: add optional callbacks to ftplib.FTP's storbinary() 10952 and storlines() methods. (Contributed by Phil Schwartz) 10953 10954 - Issue #1715: include sub-extension modules in pydoc's text output. 10955 10956 - Issue #1836: fix an off-by-one bug in TimedRotatingHandler's 10957 rollover time calculation. 10958 10959 - Issue #1021: fix a bug to allow basicConfig to accept NOTSET as a 10960 level. 10961 10962 - Issue #932563: add LoggerAdapter convenience class to make it easier 10963 to add contextual information in logging output. 10964 10965 - Issue #1760556: fix a bug to avoid FileHandler throwing an exception 10966 in flush(). 10967 10968 - Bug #1530959: distutils' build command now uses different build 10969 directory when building extension modules against versions of Python 10970 compiled with ``--with-pydebug``. 10971 10972 - Issue #1555501: move plistlib from plat-mac directory to general 10973 library. 10974 10975 - Issue #1269: fix a bug in pstats.add_callers() and add a unit test 10976 file for pstats. 10977 10978 - Issue #1669: don't allow shutil.rmtree() to be called on a symlink 10979 to a directory. 10980 10981 - Issue #1664522: in urllib, don't read non-existing directories in 10982 ftp mode, returning a 0-byte file -- raise an IOError instead. 10983 10984 - Issue #856047: respect the ``no_proxy`` environment variable when 10985 using the ``http_proxy`` etc. environment variables in urllib. 10986 10987 - Issue #1178141: add a getcode() method to the addinfourls that 10988 urllib.open() returns so that you can retrieve the HTTP status code. 10989 10990 - Issue #1003: Fix zipfile decryption check, it would fail zip files 10991 with extended local headers. 10992 10993 - Issue #1189216: Fix the zipfile module to work on archives with 10994 headers past the 2**31 byte boundary. 10995 10996 - Issue #1336: fix a race condition in subprocess.Popen if the garbage 10997 collector kicked in at the wrong time that would cause the process 10998 to hang when the child wrote to stderr. 10999 11000 - Issue #1146: fix how textwrap breaks a long word that would start in 11001 the last column of a line. 11002 11003 - Issue #1693149: trace.py --ignore-module - accept multiple 11004 comma-separated modules to be given. 11005 11006 - Issue #1822: MIMEMultipart.is_multipart() behaves correctly for a 11007 just-created (and empty) instance. Thanks Jonathan Share. 11008 11009 - Issue #1861: Added an attribute to the sched module which returns an 11010 ordered list of upcoming events (displayed as named tuples). 11011 11012 - Issue #1837: The queue module now also supports a LIFO queue and a 11013 priority queue. 11014 11015 - Patch #1048820: Add insert-mode editing to curses.textpad.Textbox 11016 (patch by Stefan Wehr). Also, fix an off-by-one bug in 11017 Textbox.gather(). 11018 11019 - Issue #1831: ctypes now raises a TypeError if conflicting positional 11020 and named arguments are passed to a Structure or Union initializer. 11021 When too many positional arguments are passed, also a TypeError is 11022 raised instead of a ValueError. 11023 11024 - Convert the internal ctypes array type cache to a WeakValueDict so 11025 that array types do not live longer than needed. 11026 11027 - Issue #1786: pdb should use its own stdin/stdout around an exec call 11028 and when creating a recursive instance. 11029 11030 - Issue #1698398: ZipFile.printdir() crashed because the format string 11031 expected a tuple type of length six instead of time.struct_time 11032 object. 11033 11034 - Issue #1780: The Decimal constructor now accepts arbitrary leading 11035 and trailing whitespace when constructing from a string. 11036 Context.create_decimal no longer accepts trailing newlines. 11037 11038 - Decimal.as_tuple(), difflib.find_longest_match() and inspect 11039 functions that returned a tuple now return a named tuple. 11040 11041 - Doctest now returns results as a named tuple for readability: 11042 (0, 7) --> TestResults(failed=0, attempted=7) 11043 11044 - Issue #846388: re.match is interruptible now, which is particularly 11045 good for long regular expression matches. 11046 11047 - Patch #1137: allow setting buffer_size attribute on pyexpat Parser 11048 objects to set the character data buffer size. 11049 11050 - Issue #1757: The hash of a Decimal instance is no longer affected by 11051 the current context. 11052 11053 - Patch #467924: add ZipFile.extract() and ZipFile.extractall() in the 11054 zipfile module. 11055 11056 - Issue #1646: Make socket support the TIPC protocol. 11057 11058 - Bug #1742: return os.curdir from os.path.relpath() if both arguments 11059 are equal instead of raising an exception. 11060 11061 - Patch #1637: fix urlparse for URLs like 'http://x.com?arg=/foo'. 11062 11063 - Patch #1698: allow '@' in username parsed by urlparse.py. 11064 11065 - Issue #1735: TarFile.extractall() now correctly sets directory 11066 permissions and times. 11067 11068 - Bug #1713: posixpath.ismount() claims symlink to a mountpoint is a mountpoint. 11069 11070 - Bug #1687: Fxed plistlib.py restricts <integer> to Python int when 11071 writing 11072 11073 - Issue #1700: Regular expression inline flags incorrectly handle 11074 certain unicode characters. 11075 11076 - Issue #1689: PEP 3141, numeric abstract base classes. 11077 11078 - Tk issue #1851526: Return results from Python callbacks to Tcl as 11079 Tcl objects. 11080 11081 - Issue #1642: Fix segfault in ctypes when trying to delete attributes. 11082 11083 - Issue #1727780: Support loading pickles of random.Random objects 11084 created on 32-bit systems on 64-bit systems, and vice versa. As a 11085 consequence of the change, Random pickles created by Python 2.6 11086 cannot be loaded in Python 2.5. 11087 11088 - Issue #1455: The distutils package now supports VS 2005 and VS 2008 11089 for both the msvccompiler and cygwincompiler. 11090 11091 - Issue #1531: tarfile.py: Read fileobj from the current offset, do 11092 not seek to the start. 11093 11094 - Issue #1534: Added a dictionary sys.float_info with information 11095 about the internal floating point type to the sys module. 11096 11097 - Issue #1429818: patch for trace and doctest modules so they play 11098 nicely together. 11099 11100 - doctest made a bad assumption that a package's __loader__.get_data() 11101 method used universal newlines. 11102 11103 - Issue #1705170: contextlib.contextmanager was still swallowing 11104 StopIteration in some cases. This should no longer happen. 11105 11106 - Issue #1292: On alpha, arm, ppc, and s390 linux systems the 11107 --with-system-ffi configure option defaults to "yes". 11108 11109 - IN module for FreeBSD 8 is added and preexisting FreeBSD 6 and 7 11110 files are updated. 11111 11112 - Issues #1181, #1287: unsetenv() is now called when the 11113 os.environ.pop() and os.environ.clear() methods are used. 11114 11115 - ctypes will now work correctly on 32-bit systems when Python is 11116 configured with --with-system-ffi. 11117 11118 - Patch #1203: ctypes now does work on OS X when Python is built with 11119 --disable-toolbox-glue. 11120 11121 - collections.deque() now supports a "maxlen" argument. 11122 11123 - itertools.count() is no longer bounded to LONG_MAX. Formerly, it 11124 raised an OverflowError. Now, automatically shifts from ints to 11125 longs. 11126 11127 - Added itertools.product() which forms the Cartesian product of the 11128 input iterables. 11129 11130 - Added itertools.combinations() and itertools.permutations(). 11131 11132 - Patch #1541463: optimize performance of cgi.FieldStorage operations. 11133 11134 - Decimal is fully updated to the latest Decimal Specification 11135 (v1.66). 11136 11137 - Bug #1153: repr.repr() now doesn't require set and dictionary items 11138 to be orderable to properly represent them. 11139 11140 - A 'c_longdouble' type was added to the ctypes module. 11141 11142 - Bug #1709599: Run test_1565150 only if the file system is NTFS. 11143 11144 - When encountering a password-protected robots.txt file the 11145 RobotFileParser no longer prompts interactively for a username and 11146 password (bug 813986). 11147 11148 - TarFile.__init__() no longer fails if no name argument is passed and 11149 the fileobj argument has no usable name attribute (e.g. StringIO). 11150 11151 - The functools module now provides 'reduce', for forward 11152 compatibility with Python 3000. 11153 11154 - Server-side SSL support and cert verification added, by Bill 11155 Janssen. 11156 11157 - socket.ssl deprecated; use new ssl module instead. 11158 11159 - uuid creation is now threadsafe. 11160 11161 - EUC-KR codec now handles the cheot-ga-keut composed make-up hangul 11162 syllables. 11163 11164 - GB18030 codec now can encode additional two-byte characters that are 11165 missing in GBK. 11166 11167 - Add new codecs for UTF-32, UTF-32-LE and UTF-32-BE. 11168 11169 - Bug #1704793: Return UTF-16 pair if unicodedata.lookup cannot 11170 represent the result in a single character. 11171 11172 - Bug #978833: Close https sockets by releasing the _ssl object. 11173 11174 - Change location of the package index to pypi.python.org/pypi 11175 11176 - Bug #1701409: Fix a segfault in printing ctypes.c_char_p and 11177 ctypes.c_wchar_p when they point to an invalid location. As a 11178 sideeffect the representation of these instances has changed. 11179 11180 - tarfile.py: Added "exclude" keyword argument to TarFile.add(). 11181 11182 - Bug #1734723: Fix repr.Repr() so it doesn't ignore the maxtuple 11183 attribute. 11184 11185 - The urlopen function of urllib2 now has an optional timeout 11186 parameter (note that it actually works with HTTP, HTTPS, FTP and 11187 FTPS connections). 11188 11189 - In ftplib, the FTP.ntransfercmd method, when in passive mode, now 11190 uses the socket.create_connection function, using the timeout 11191 specified at connection time. 11192 11193 - Bug #1728403: Fix a bug that CJKCodecs StreamReader hangs when it 11194 reads a file that ends with incomplete sequence and sizehint 11195 argument for .read() is specified. 11196 11197 - Bug #1730389: Change time.strptime() to use ``\s+`` instead of 11198 ``\s*`` when matching spaces in the specified format argument. 11199 11200 - Bugs #1668596/#1720897: distutils now copies data files even if 11201 package_dir is empty. 11202 11203 - sha now raises a DeprecationWarning upon import. 11204 11205 - md5 now raises a DeprecationWarning upon import. 11206 11207 - Issue #1385: The hmac module now computes the correct hmac when 11208 using hashes with a block size other than 64 bytes (such as sha384 11209 and sha512). 11210 11211 - mimify now raises a DeprecationWarning upon import. 11212 11213 - MimeWriter now raises a DeprecationWarning upon import. 11214 11215 - tarfile.py: Improved unicode support. Unicode input names are now 11216 officially supported. Added "errors" argument to the TarFile class. 11217 11218 - urllib.ftpwrapper class now accepts an optional timeout. 11219 11220 - shlex.split() now has an optional "posix" parameter. 11221 11222 - The posixfile module now raises a DeprecationWarning. 11223 11224 - Remove the gopherlib module. This also leads to the removal of 11225 gopher support in urllib/urllib2. 11226 11227 - Fix bug in marshal where bad data would cause a segfault due to lack 11228 of an infinite recursion check. 11229 11230 - Removed plat-freebsd2 and plat-freebsd3 directories (and IN.py in 11231 the directories). 11232 11233 - HTML-escape the plain traceback in cgitb's HTML output, to prevent 11234 the traceback inadvertently or maliciously closing the comment and 11235 injecting HTML into the error page. 11236 11237 - The popen2 module and os.popen* are deprecated. Use the subprocess 11238 module. 11239 11240 - Added an optional credentials argument to SMTPHandler, for use with 11241 SMTP servers which require authentication. 11242 11243 - Patch #1695948: Added optional timeout parameter to SocketHandler. 11244 11245 - Bug #1652788: Minor fix for currentframe. 11246 11247 - Patch #1598415: Added WatchedFileHandler to better support external 11248 log file rotation using e.g. newsyslog or logrotate. This handler is 11249 only useful in Unix/Linux environments. 11250 11251 - Bug #1706381: Specifying the SWIG option "-c++" in the setup.py file 11252 (as opposed to the command line) will now write file names ending in 11253 ".cpp" too. 11254 11255 - As specified in RFC 2616, an HTTP response like 2xx indicates that 11256 the client's request was successfully received, understood, and 11257 accepted. Now in these cases no error is raised in urllib (issue 11258 #1177) and urllib2. 11259 11260 - Bug #1290505: time.strptime's internal cache of locale information 11261 is now properly recreated when the locale is changed. 11262 11263 - Patch #1685563: remove (don't add) duplicate paths in 11264 distutils.MSVCCompiler. 11265 11266 - Added a timeout parameter to the constructor of other protocols 11267 (telnetlib, ftplib, smtplib and poplib). This is second part of the 11268 work started with create_connection() and timeout in httplib, and 11269 closes patch #723312. 11270 11271 - Patch #1676823: Added create_connection() to socket.py, which may be 11272 called with a timeout, and use it from httplib (whose HTTPConnection 11273 and HTTPSConnection now accept an optional timeout). 11274 11275 - Bug #978833: Revert r50844, as it broke _socketobject.dup. 11276 11277 - Bug #1675967: re patterns pickled with Python 2.4 and earlier can 11278 now be unpickled with Python 2.5 and newer. 11279 11280 - Patch #1630118: add a SpooledTemporaryFile class to tempfile.py. 11281 11282 - Patch #1273829: os.walk() now has a "followlinks" parameter. If set 11283 to True (which is not the default), it visits symlinks pointing to 11284 directories. 11285 11286 - Bug #1681228: the webbrowser module now correctly uses the default 11287 GNOME or KDE browser, depending on whether there is a session of one 11288 of those present. Also, it tries the Windows default browser before 11289 trying Mozilla variants. 11290 11291 - Patch #1339796: add a relpath() function to os.path. 11292 11293 - Patch #1681153: the wave module now closes a file object it opened if 11294 initialization failed. 11295 11296 - Bug #767111: fix long-standing bug in urllib which caused an 11297 AttributeError instead of an IOError when the server's response 11298 didn't contain a valid HTTP status line. 11299 11300 - Patch #957650: "%var%" environment variable references are now 11301 properly expanded in ntpath.expandvars(), also "~user" home 11302 directory references are recognized and handled on Windows. 11303 11304 - Patch #1429539: pdb now correctly initializes the __main__ module 11305 for the debugged script, which means that imports from __main__ work 11306 correctly now. 11307 11308 - The nonobvious commands.getstatus() function is now deprecated. 11309 11310 - Patch #1393667: pdb now has a "run" command which restarts the 11311 debugged Python program, optionally with different arguments. 11312 11313 - Patch #1649190: Adding support for _Bool to ctypes as c_bool. 11314 11315 - Patch #1530482: add pydoc.render_doc() which returns the 11316 documentation for a thing instead of paging it to stdout, which 11317 pydoc.doc() does. 11318 11319 - Patch #1533909: the timeit module now accepts callables in addition 11320 to strings for the code to time and the setup code. Also added two 11321 convenience functions for instantiating a Timer and calling its 11322 methods. 11323 11324 - Patch #1537850: tempfile.NamedTemporaryFile now has a "delete" 11325 parameter which can be set to False to prevent the default 11326 delete-on-close behavior. 11327 11328 - Patch #1581073: add a flag to textwrap that prevents the dropping of 11329 whitespace while wrapping. 11330 11331 - Patch #1603688: ConfigParser.SafeConfigParser now checks values that 11332 are set for invalid interpolation sequences that would lead to 11333 errors on reading back those values. 11334 11335 - Added support for the POSIX.1-2001 (pax) format to 11336 tarfile.py. Extended and cleaned up the test suite. Added a new 11337 testtar.tar. 11338 11339 - Patch #1449244: Support Unicode strings in 11340 email.message.Message.{set_charset,get_content_charset}. 11341 11342 - Patch #1542681: add entries for "with", "as" and "CONTEXTMANAGERS" 11343 to pydoc's help keywords. 11344 11345 - Patch #1555098: use str.join() instead of repeated string 11346 concatenation in robotparser. 11347 11348 - Patch #1635454: the csv.DictWriter class now includes the offending 11349 field names in its exception message if you try to write a record 11350 with a dictionary containing fields not in the CSV field names list. 11351 11352 - Patch #1668100: urllib2 now correctly raises URLError instead of 11353 OSError if accessing a local file via the file:// protocol fails. 11354 11355 - Patch #1677862: Require a space or tab after import in .pth files. 11356 11357 - Patch #1192590: Fix pdb's "ignore" and "condition" commands so they 11358 trap the IndexError caused by passing in an invalid breakpoint 11359 number. 11360 11361 - Patch #1599845: Add an option to disable the implicit calls to 11362 server_bind() and server_activate() in the constructors for 11363 TCPServer, SimpleXMLRPCServer and DocXMLRPCServer. 11364 11365 - Bug #1531963: Make SocketServer.TCPServer's server_address always be 11366 equal to calling getsockname() on the server's socket. Fixed by 11367 patch #1545011. 11368 11369 - Patch #742598: Add .timeout attribute to SocketServer that calls 11370 .handle_timeout() when no requests are received. 11371 11372 - Bug #1651235: When a tuple was passed to a ctypes function call, 11373 Python would crash instead of raising an error. 11374 11375 - Bug #1646630: ctypes.string_at(buf, 0) and ctypes.wstring_at(buf, 0) 11376 returned string up to the first NUL character. 11377 11378 - Patch #957003: Implement smtplib.LMTP. 11379 11380 - Patch #1481079: add support for HTTP_REFERER to CGIHTTPServer. 11381 11382 - Patch #1675424: Added tests for uncovered code in the zipfile 11383 module. The KeyError raised by Zipfile.getinfo for nonexistent 11384 names now has a descriptive message. 11385 11386 - Bug #1115886: os.path.splitext('.cshrc') gives now ('.cshrc', ''). 11387 11388 - unittest now verifies more of its assumptions. In particular, 11389 TestCase and TestSuite subclasses (not instances) are no longer 11390 accepted in TestSuite.addTest(). This should cause no 11391 incompatibility since it never made sense with ordinary subclasses 11392 -- the failure just occurred later, with a more cumbersome 11393 exception. 11394 11395 - Patch #787789: allow passing custom TestRunner instances to 11396 unittest's main() function. 11397 11398 - Patches #1550273, #1550272: fix a few bugs in unittest and add a 11399 comprehensive test suite for the module. 11400 11401 - Patch #1001604: glob.glob() now returns unicode filenames if it was 11402 given a unicode argument and os.listdir() returns unicode filenames. 11403 11404 - Patch #1673619: setup.py identifies extension modules it doesn't 11405 know how to build and those it knows how to build but that fail to 11406 build. 11407 11408 - Patch #912410: Replace HTML entity references for attribute values 11409 in HTMLParser. 11410 11411 - Patch #1663234: you can now run doctest on test files and modules 11412 using "python -m doctest [-v] filename ...". 11413 11414 - Patch #1121142: Implement ZipFile.open. 11415 11416 - Taught setup.py how to locate Berkeley DB on Macs using MacPorts. 11417 11418 - Added heapq.merge() for merging sorted input streams. 11419 11420 - Added collections.namedtuple() for assigning field names to tuples. 11421 11422 - Added itertools.izip_longest(). 11423 11424 - Have the encoding package's search function dynamically import using 11425 absolute import semantics. 11426 11427 - Patch #1647484: Renamed GzipFile's filename attribute to name. 11428 11429 - Patch #1517891: Mode 'a' for ZipFile now creates the file if it 11430 doesn't exist. 11431 11432 - Patch #698833: Support file decryption in zipfile. 11433 11434 - Patch #685268: Consider a package's __path__ in imputil. 11435 11436 - Patch #1463026: Support default namespace in XMLGenerator. 11437 11438 - Patch #1571379: Make trace's --ignore-dir facility work in the face 11439 of relative directory names. 11440 11441 - Bug #1600860: Search for shared python library in LIBDIR, not 11442 lib/python/config, on "linux" and "gnu" systems. 11443 11444 - Patch #1652681: tarfile.py: create nonexistent files in append mode 11445 and allow appending to empty files. 11446 11447 - Bug #1124861: Automatically create pipes if GetStdHandle fails in 11448 subprocess. 11449 11450 - Patch #1634778: add missing encoding aliases for iso8859_15 and 11451 iso8859_16. 11452 11453 - Patch #1638243: the compiler package is now able to correctly 11454 compile a with statement; previously, executing code containing a 11455 with statement compiled by the compiler package crashed the 11456 interpreter. 11457 11458 - Bug #1643943: Fix time.strptime's support for the %U directive. 11459 11460 - Patch #1507247: tarfile.py: use current umask for intermediate 11461 directories. 11462 11463 - Patch #1627441: close sockets properly in urllib2. 11464 11465 - Bug #494589: make ntpath.expandvars behave according to its 11466 docstring. 11467 11468 - Changed platform module API python_version_tuple() to actually 11469 return a tuple (it used to return a list). 11470 11471 - Added new platform module APIs python_branch(), python_revision(), 11472 python_implementation() and linux_distribution(). 11473 11474 - Added support for IronPython and Jython to the platform module. 11475 11476 - The sets module has been deprecated. Use the built-in set/frozenset 11477 types instead. 11478 11479 - Bug #1610795: make ctypes.util.find_library work on BSD systems. 11480 11481 - Fixes for 64-bit Windows: In ctypes.wintypes, correct the 11482 definitions of HANDLE, WPARAM, LPARAM data types. Make 11483 parameterless foreign function calls work. 11484 11485 - The version number of the ctypes package changed to "1.1.0". 11486 11487 - Bug #1627575: logging: Added _open() method to FileHandler which can 11488 be used to reopen files. The FileHandler instance now saves the 11489 encoding (which can be None) in an attribute called "encoding". 11490 11491 - Bug #411881: logging.handlers: bare except clause removed from 11492 SMTPHandler.emit. Now, only ImportError is trapped. 11493 11494 - Bug #411881: logging.handlers: bare except clause removed from 11495 SocketHandler.createSocket. Now, only socket.error is trapped. 11496 11497 - Bug #411881: logging: bare except clause removed from 11498 LogRecord.__init__. Now, only ValueError, TypeError and 11499 AttributeError are trapped. 11500 11501 - Patch #1504073: Fix tarfile.open() for mode "r" with a fileobj 11502 argument. 11503 11504 - Patch #1182394 from Shane Holloway: speed up HMAC.hexdigest. 11505 11506 - Patch #1262036: Prevent TarFiles from being added to themselves 11507 under certain conditions. 11508 11509 - Patch #1230446: tarfile.py: fix ExFileObject so that read() and 11510 tell() work correctly together with readline(). 11511 11512 - Patch #1484695: The tarfile module now raises a HeaderError 11513 exception if a buffer given to frombuf() is invalid. 11514 11515 - Bug #1503765: Fix a problem in logging.config with spaces in comma- 11516 separated lists read from logging config files. 11517 11518 - Patch #1604907: Fix problems in logging.handlers caused at logging 11519 shutdown when syslog handlers fail to initialize because of syslogd 11520 problems. 11521 11522 - Patch #1608267: fix a race condition in os.makedirs() if the 11523 directory to be created is already there. 11524 11525 - Patch #1610437: fix a tarfile bug with long filename headers. 11526 11527 - Patch #1371075: Make ConfigParser accept optional dict type for 11528 ordering, sorting, etc. 11529 11530 - Bug #1563807: _ctypes built on AIX fails with ld ffi error. 11531 11532 - Bug #1598620: A ctypes Structure cannot contain itself. 11533 11534 - Patch #1070046: Marshal new-style objects like InstanceType in 11535 xmlrpclib. 11536 11537 - cStringIO.truncate(-1) now raises an IOError, like StringIO and 11538 regular files. 11539 11540 - Patch #1472877: Fix Tix subwidget name resolution. 11541 11542 - Patch #1594554: Always close a tkSimpleDialog on ok(), even if an 11543 exception occurs. 11544 11545 - Patch #1538878: Don't make tkSimpleDialog dialogs transient if the 11546 parent window is withdrawn. 11547 11548 - Bug #1597824: return the registered function from atexit.register() 11549 to facilitate usage as a decorator. 11550 11551 - Patch #1360200: Use unmangled_version RPM spec field to deal with 11552 file name mangling. 11553 11554 - Patch #1359217: Process 2xx response in an ftplib transfer that 11555 precedes an 1xx response. 11556 11557 - Patch #1355023: support whence argument for GzipFile.seek. 11558 11559 - Patch #1065257: Support passing open files as body in 11560 HTTPConnection.request(). 11561 11562 - Bug #1569790: mailbox.py: Maildir.get_folder() and MH.get_folder() 11563 weren't passing the message factory on to newly created Maildir/MH 11564 objects. 11565 11566 - Patch #1514543: mailbox.py: In the Maildir class, report errors if 11567 there's a filename clash instead of possibly losing a message. 11568 (Patch by David Watson.) 11569 11570 - Patch #1514544: Try to ensure that messages/indexes have been 11571 physically written to disk after calling .flush() or 11572 .close(). (Patch by David Watson.) 11573 11574 - Patch #1592250: Add elide argument to Tkinter.Text.search. 11575 11576 - Patch #838546: Make terminal become controlling in pty.fork(). 11577 11578 - Patch #1351744: Add askyesnocancel helper for tkMessageBox. 11579 11580 - Patch #1060577: Extract list of RPM files from spec file in 11581 bdist_rpm. 11582 11583 - Bug #1586613: fix zlib and bz2 codecs' incremental en/decoders. 11584 11585 - Patch #1583880: fix tarfile's problems with long names and posix/ 11586 GNU modes. 11587 11588 - Bug #1586448: the compiler module now emits the same bytecode for 11589 list comprehensions as the built-in compiler, using the LIST_APPEND 11590 opcode. 11591 11592 - Fix codecs.EncodedFile which did not use file_encoding in 2.5.0, and 11593 fix all codecs file wrappers to work correctly with the "with" 11594 statement (bug #1586513). 11595 11596 - Lib/modulefinder.py now handles absolute and relative imports 11597 correctly. 11598 11599 - Patch #1567274: Support SMTP over TLS. 11600 11601 - Patch #1560695: Add .note.GNU-stack to ctypes' sysv.S so that ctypes 11602 isn't considered as requiring executable stacks. 11603 11604 - ctypes callback functions only support 'fundamental' data types as 11605 result type. Raise an error when something else is used. This is a 11606 partial fix for Bug #1574584. 11607 11608 - Fix turtle so that time.sleep is imported for the entire library. 11609 Allows the demo2 function to be executed on its own instead of only 11610 when the module is run as a script. 11611 11612 - Bug #1565150: Fix subsecond processing for os.utime on Windows. 11613 11614 - Support for MSVC 8 was added to bdist_wininst. 11615 11616 - Bug #1446043: correctly raise a LookupError if an encoding name 11617 given to encodings.search_function() contains a dot. 11618 11619 - Bug #1560617: in pyclbr, return full module name not only for 11620 classes, but also for functions. 11621 11622 - Bug #1457823: cgi.(Sv)FormContentDict's constructor now takes 11623 keep_blank_values and strict_parsing keyword arguments. 11624 11625 - Bug #1566602: correct failure of posixpath unittest when $HOME ends 11626 with a slash. 11627 11628 - Bug #1565661: in webbrowser, split() the command for the default 11629 GNOME browser in case it is a command with args. 11630 11631 - Made the error message for time.strptime when the data and 11632 format do match be more clear. 11633 11634 - Fix a bug in traceback.format_exception_only() that led to an error 11635 being raised when print_exc() was called without an exception set. 11636 In version 2.4, this printed "None", restored that behavior. 11637 11638 - Make webbrowser.BackgroundBrowser usable in Windows (it wasn't 11639 because the close_fds arg to subprocess.Popen is not supported). 11640 11641 - Reverted patch #1504333 to sgmllib because it introduced an infinite 11642 loop. 11643 11644 - Patch #1553314: Fix the inspect.py slowdown that was hurting IPython 11645 & SAGE by adding smarter caching in inspect.getmodule() 11646 11647 - Fix missing import of the types module in logging.config. 11648 11649 - Patch #1550886: Fix decimal module context management implementation 11650 to match the localcontext() example from PEP 343. 11651 11652 - Bug #1545341: The 'classifier' keyword argument to the Distutils 11653 setup() function now accepts tuples as well as lists. 11654 11655 - Bug #1541863: uuid.uuid1 failed to generate unique identifiers on 11656 systems with low clock resolution. 11657 11658 - Bug #1531862: Do not close standard file descriptors in subprocess. 11659 11660 - Fix utf-8-sig incremental decoder, which didn't recognise a BOM when 11661 the first chunk fed to the decoder started with a BOM, but was 11662 longer than 3 bytes. 11663 11664 - The implementation of UnicodeError objects has been simplified 11665 (start and end attributes are now stored directly as Py_ssize_t 11666 members). 11667 11668 - Issue #829951: In the smtplib module, SMTP.starttls() now complies 11669 with RFC 3207 and forgets any knowledge obtained from the server not 11670 obtained from the TLS negotiation itself. Patch contributed by Bill 11671 Fenner. 11672 11673 - Issue #1339: The smtplib.SMTP class has been refactored a bit such 11674 that the SMTP.starttls() caller no longer needs to call ehlo() 11675 beforehand. SMTP.starttls() now raises an exception of the server 11676 does not claim to support starttls. Adds the 11677 SMTP.ehlo_or_helo_if_needed() method. Patch contributed by Bill 11678 Fenner. 11679 11680 - Patch #1089358: Add signal.siginterrupt, a wrapper around 11681 siginterrupt(3). 11682 11683 Extension Modules 11684 ----------------- 11685 11686 - Patch #1657: added select.epoll and select.kqueue. 11687 11688 - Patch #1506171: added operator.methodcaller(). 11689 11690 - Patch #1826: operator.attrgetter() now supports dotted attribute paths. 11691 11692 - Patch #1957: syslogmodule: Release GIL when calling syslog(3). 11693 11694 - Bug #2112: mmap.error is now a subclass of EnvironmentError and not 11695 a direct EnvironmentError. 11696 11697 - Bug #2111: mmap segfaults when trying to write a block opened with 11698 PROT_READ. 11699 11700 - Bug #2063: correct order of utime and stime in os.times() result on 11701 Windows. 11702 11703 - Patch #1736: Fix file name handling of _msi.FCICreate. 11704 11705 - Updated ``big5hkscs`` codec to the HKSCS revision of 2004. 11706 11707 - Issue #1940: make it possible to use curses.filter() before 11708 curses.initscr() as the documentation says. 11709 11710 - Backport of _fileio module from Python 3.0. 11711 11712 - Patch #1087741: mmap.mmap is now a class, not a factory function. It 11713 is also subclassable now. 11714 11715 - Patch #1648: added ``sys.getprofile()`` and ``sys.gettrace()``. 11716 11717 - Patch #1663329: added ``os.closerange()`` function to quickly close 11718 a range of file descriptors without considering errors. 11719 11720 - Patch #976880: ``mmap`` objects now have an ``rfind`` method that 11721 works as expected. ``mmap.find`` also takes an optional ``end`` 11722 parameter. 11723 11724 - _winreg's HKEY object has gained __enter__ and __exit__ methods to 11725 support the context management protocol. The _winreg module also 11726 gained a new function ``ExpandEnvironmentStrings`` to expand 11727 REG_EXPAND_SZ keys. 11728 11729 - itertools.starmap() now accepts any iterable input. Previously, it 11730 required the function inputs to be tuples. 11731 11732 - itertools.chain() now has an alternate constructor, 11733 chain.from_iterable(). 11734 11735 - Issue #1646: Make socket support TIPC. The socket module now has 11736 support for TIPC under Linux, see http://tipc.sf.net/ for more 11737 information. 11738 11739 - Added interface for Windows' WSAIoctl to socket object and added an 11740 example for a simple network sniffer. 11741 11742 - Bug #1301: Bad assert in _tkinter fixed. 11743 11744 - Added bdist_wininst executable for VS 2008. 11745 11746 - Bug #1604: collections.deque.__init__(iterable) now clears any prior 11747 contents before adding elements from the iterable. This fix brings 11748 the behavior into line with that for list.__init__(). 11749 11750 - Added wide char functions to msvcrt module: getwch, getwche, putwch 11751 and ungetwch. The functions accept or return unicode. 11752 11753 - os.access now returns True on Windows for any existing directory. 11754 11755 - Added warnpy3k function to the warnings module. 11756 11757 - Marshal.dumps() now expects exact type matches for int, long, float, 11758 complex, tuple, list, dict, set, and frozenset. Formerly, it would 11759 silently miscode subclasses of those types. Now, it raises a 11760 ValueError instead. 11761 11762 - Patch #1388440: Add set_completion_display_matches_hook and 11763 get_completion_type to readline. 11764 11765 - Bug #1649098: Avoid declaration of zero-sized array declaration in 11766 structure. 11767 11768 - Removed the rgbimg module; been deprecated since Python 2.5. 11769 11770 - Bug #1721309: prevent bsddb module from freeing random memory. 11771 11772 - Bug #1233: fix bsddb.dbshelve.DBShelf append method to work as 11773 intended for RECNO databases. 11774 11775 - pybsddb.sf.net Bug #477182: Load the database flags at database open 11776 time so that opening a database previously created with the DB_DUP 11777 or DB_DUPSORT flag set will keep the proper behavior on subsequent 11778 opens. Specifically: dictionary assignment to a DB object will 11779 replace all values for a given key when the database allows 11780 duplicate values. DB users should use DB.put(k, v) when they want 11781 to store duplicates; not DB[k] = v. 11782 11783 - Add the bsddb.db.DBEnv.lock_id_free method. 11784 11785 - Bug #1686475: Support stat'ing open files on Windows again. 11786 11787 - Patch #1185447: binascii.b2a_qp() now correctly quotes binary 11788 characters with ASCII value less than 32. Also, it correctly quotes 11789 dots only if they occur on a single line, as opposed to the previous 11790 behavior of quoting dots if they are the second character of any 11791 line. 11792 11793 - Bug #1622896: fix a rare corner case where the bz2 module raised an 11794 error in spite of a succesful compression. 11795 11796 - Patch #1654417: make operator.{get,set,del}slice use the full range 11797 of Py_ssize_t. 11798 11799 - Patch #1646728: datetime.fromtimestamp fails with negative 11800 fractional times. With unittest. 11801 11802 - Patch #1490190: posixmodule now includes os.chflags() and 11803 os.lchflags() functions on platforms where the underlying system 11804 calls are available. 11805 11806 - Patch #1494140: Add documentation for the new struct.Struct object. 11807 11808 - Patch #1432399: Support the HCI protocol for bluetooth sockets 11809 11810 - Patch #1657276: Make NETLINK_DNRTMSG conditional. 11811 11812 - Bug #1653736: Complain about keyword arguments to time.isoformat. 11813 11814 - Bug #1486663: don't reject keyword arguments for subclasses of 11815 built-in types. 11816 11817 - Patch #1610575: The struct module now supports the 't' code, for C99 11818 _Bool. 11819 11820 - Patch #1635058: ensure that htonl and friends never accept or return 11821 negative numbers, per the underlying C implementation. 11822 11823 - Patch #1544279: Improve thread-safety of the socket module by moving 11824 the sock_addr_t storage out of the socket object. 11825 11826 - Patch #1019808: fix bug that causes an incorrect error to be 11827 returned when a socket timeout is set and a connection attempt 11828 fails. 11829 11830 - Speed up function calls into the math module. 11831 11832 - Bug #1588217: don't parse "= " as a soft line break in binascii's 11833 a2b_qp() function, instead leave it in the string as quopri.decode() 11834 does. 11835 11836 - Bug #1599782: Fix segfault on bsddb.db.DB().type(). 11837 11838 - Bug #1567666: Emulate GetFileAttributesExA for Win95. 11839 11840 - Patch #1576166: Support os.utime for directories on Windows NT+. 11841 11842 - Patch #1572724: fix typo ('=' instead of '==') in _msi.c. 11843 11844 - Bug #1572832: fix a bug in ISO-2022 codecs which may cause segfault 11845 when encoding non-BMP unicode characters. 11846 11847 - Bug #1556784: allow format strings longer than 127 characters in 11848 datetime's strftime function. 11849 11850 - Fix itertools.count(n) to work with negative numbers again. 11851 11852 - RLIMIT_SBSIZE was added to the resource module where available. 11853 11854 - Bug #1551427: fix a wrong NULL pointer check in the win32 version of 11855 os.urandom(). 11856 11857 - Bug #1548092: fix curses.tparm seg fault on invalid input. 11858 11859 - Patch #1114: fix curses module compilation on 64-bit AIX, & possibly 11860 other 64-bit LP64 platforms where attr_t is not the same size as a 11861 long. (Contributed by Luke Mewburn.) 11862 11863 - Bug #1550714: fix SystemError from itertools.tee on negative value 11864 for n. 11865 11866 - Fixed a few bugs on cjkcodecs: 11867 - gbk and gb18030 codec now handle U+30FB KATAKANA MIDDLE DOT 11868 correctly. 11869 - iso2022_jp_2 codec now encodes into G0 for KS X 1001, GB2312 11870 codepoints to conform the standard. 11871 - iso2022_jp_3 and iso2022_jp_2004 codec can encode JIS X 0213:2 11872 codepoints now. 11873 11874 - Bug #1552726: in readline.c, avoid repeatedly polling in interactive 11875 mode by only placing a timeout on the select() if an input hook has 11876 been defined. This prevents an interactive Python from waking up 10 11877 times per second. Patch by Richard Boulton. 11878 11879 - fixed a bug with bsddb.DB.stat: the flags and txn keyword arguments 11880 were transposed. 11881 11882 - Added support for linking the bsddb module against BerkeleyDB 4.5.x, 11883 4.6.x and 4.7.x. 11884 11885 - Bug #1633621: if curses.resizeterm() or curses.resize_term() is 11886 called, update _curses.LINES, _curses.COLS, curses.LINES and 11887 curses.COLS. 11888 11889 - Fix an off-by-one bug in locale.strxfrm(). 11890 11891 - Fix libffi configure for hppa*-*-linux* | parisc*-*-linux*. 11892 11893 - Build using system ffi library on arm*-linux*. 11894 11895 - Bug #1372: zlibmodule.c: int overflow in PyZlib_decompress 11896 11897 - bsddb module: Fix memory leak when using database cursors on 11898 databases without a DBEnv. 11899 11900 - The sqlite3 module was updated to pysqlite 2.4.1. 11901 11902 IDLE 11903 ---- 11904 11905 - Bug #813342: Start the IDLE subprocess with -Qnew if the parent is 11906 started with that option. 11907 11908 - IDLE: Honor the "Cancel" action in the save dialog (Debian bug 11909 #299092). 11910 11911 Tests 11912 ----- 11913 11914 - Refactor test_logging to use unittest. 11915 11916 - Refactor test_profile and test_cprofile to use the same code to 11917 profile. 11918 11919 - Make test_runpy reentrant by fixing _check_module to clear out any 11920 module being tested. Was causing an error by __import__ doing a 11921 reload on the second run and thus suppressing bytecode recreation. 11922 11923 - Capture socket connection resets and timeouts in test_socket_ssl and 11924 test_urllib2net and raise test.test_support.ResourceDenied. 11925 11926 - Patch #1559413: Fix test_cmd_line if sys.executable contains a 11927 space. 11928 11929 - Added test.test_support.TransientResource which is a context manager 11930 to surround calls to resources that are not guaranteed to work even 11931 if test.test_support.requires says that the resource should exist. 11932 11933 - Added a test for slicing of an exception. 11934 11935 - Added test.test_support.EnvironmentVarGuard. It's a class that 11936 provides a context manager so that one can temporarily set or unset 11937 environment variables. 11938 11939 - Added some tests for modulefinder. 11940 11941 - Converted test_imp to use unittest. 11942 11943 - Fix bsddb test_basics.test06_Transactions to check the version 11944 number properly. 11945 11946 - test.test_support.catch_warning is a new context manager that can be 11947 used to catch the warnings issued by the warning framework. 11948 11949 Tools 11950 ----- 11951 11952 - Tools/scripts/reindent.py now creates the backup file using 11953 shutil.copy to preserve user/group and permissions. Added also a 11954 --nobackup option to not create the backup if the user is concerned 11955 regarding this. Check issue #1050828 for more details. 11956 11957 - Tools/scripts/win_add2path.py was added. The simple script modifes 11958 the PATH environment var of the HKCU tree and adds the python bin 11959 and script directory. 11960 11961 - Tools/18n/pygettext.py was added to the list of scripts installed by 11962 Tools/scripts/setup.py (tracker item 642309). 11963 11964 - Added IronPython and Jython support to pybench (part of which was 11965 patch #1563844). 11966 11967 - Made some minor changes to pybench output to allow the user to see 11968 which Python version is running pybench. 11969 11970 - Added support for the new platform module feature 11971 platform.python_implementation(); this will now be saved in the 11972 benchmark pickle. 11973 11974 Documentation 11975 ------------- 11976 11977 - RFE #1765140: Updated documentation on FileHandler and subclasses to 11978 include new optional delay argument. 11979 11980 - Bug #932563: Added section on getting contextual information into 11981 logging output, and added documentation for the new LoggerAdapter 11982 class. 11983 11984 - Bug #1295: Added information about caching of formatted exception 11985 information in the LogRecord by Formatter.format(). 11986 11987 - Bug #1637365: add subsection about "__name__ == __main__" to the 11988 Python tutorial. 11989 11990 - Patch #1698768: updated the "using Python on the Mac" intro. 11991 11992 - Bug #1569057: Document that calling file.next() when the file is 11993 open for writing is undefined. 11994 11995 - Patch #1489771: the syntax rules in Python Reference Manual were 11996 updated to reflect the current Python syntax. 11997 11998 - Patch #1686451: Fix return type for 11999 PySequence_{Count,Index,Fast_GET_SIZE}. 12000 12001 - Patch #1679379: add documentation for fnmatch.translate(). 12002 12003 - Bug #1629566: clarify the docs on the return values of parsedate() 12004 and parsedate_tz() in email.utils and rfc822. 12005 12006 - Patch #1671450: add a section about subclassing built-in types to the 12007 "extending and embedding" tutorial. 12008 12009 - Bug #1629125: fix wrong data type (int -> Py_ssize_t) in PyDict_Next 12010 docs. 12011 12012 - Bug #1565919: document set types in the Language Reference. 12013 12014 - Bug #1546052: clarify that PyString_FromString(AndSize) copies the 12015 string pointed to by its parameter. 12016 12017 - Bug #1566663: remove obsolete example from datetime docs. 12018 12019 - Bug #1541682: Fix example in the "Refcount details" API docs. 12020 Additionally, remove a faulty example showing PySequence_SetItem 12021 applied to a newly created list object and add notes that this isn't 12022 a good idea. 12023 12024 Tools/Demos 12025 ----------- 12026 12027 - Patch #1552024: add decorator support to unparse.py demo script. 12028 12029 - Make auto-generated python.vim file list built-ins and exceptions in 12030 alphatbetical order. Makes output more deterministic and easier to 12031 tell if the file is stale or not. 12032 12033 - Bug #1546372: Fixed small bugglet in pybench that caused a missing 12034 file not to get reported properly. 12035 12036 Build 12037 ----- 12038 12039 - Have the search path for building extensions follow the declared 12040 order in $CPPFLAGS and $LDFLAGS when adding directories from those 12041 environment variables. 12042 12043 - Bug #1983: Added a check to pyport to verify that sizeof(pid_t) is 12044 smaller or equal sizeof(long). 12045 12046 - Bug #1234: Fixed semaphore errors on AIX 5.2 12047 12048 - Issue #1726: Remove Python/atof.c from PCBuild/pythoncore.vcproj. 12049 12050 - Removed PCbuild8/ directory and added a new build directory for VS 12051 2005 based on the VS 2008 build directory to PC/VS8.0. The script 12052 PCbuild/vs8to9.py was added to sync changes from PCbuild to 12053 PC/VS8.0. 12054 12055 - Moved PCbuild/ directory for VS 2003 to PC/VS7.1 and renamed 12056 PCBuild9/ directory to PCBuild/. 12057 12058 - Bug #1699: Define _BSD_SOURCE only on OpenBSD. 12059 12060 - Bug #1608: use -fwrapv when GCC supports it. This is important, 12061 newer GCC versions may optimize away overflow buffer overflow checks 12062 without this option! 12063 12064 - Patch #1418: Make the AC_REPLACE_FUNCS object files actually work. 12065 12066 - Add a FAST_LOOPS build option that speeds-up looping by trading away 12067 periodic threadstate and signal checking in tight loops. By 12068 default, this option is turned-off. It should only be enabled in 12069 debugged, performance critical applications. 12070 12071 - Patch #786737: Allow building in a tree of symlinks pointing to a 12072 readonly source. 12073 12074 - Bug #1737210: Change Manufacturer of Windows installer to PSF. 12075 12076 - Bug #1746880: Correctly install DLLs into system32 folder on Win64. 12077 12078 - Define _BSD_SOURCE, to get access to POSIX extensions on OpenBSD 12079 4.1+. 12080 12081 - Stop supporting AtheOS and cause a build error in configure for the 12082 platform. 12083 12084 - Bug #1655392: don't add -L/usr/lib/pythonX.Y/config to the LDFLAGS 12085 returned by python-config if Python was built with --enable-shared 12086 because that prevented the shared library from being used. 12087 12088 - Patch #1569798: fix a bug in distutils when building Python from a 12089 directory within sys.exec_prefix. 12090 12091 - Bug #1675511: Use -Kpic instead of -xcode=pic32 on Solaris/x86. 12092 12093 - Disable _XOPEN_SOURCE on NetBSD 1.x. 12094 12095 - configure now checks whether gcc supports the PyArg_ParseTuple 12096 format attribute. 12097 12098 - Bug #1578513: Cross compilation was broken by a change to configure. 12099 Repair so that it's back to how it was in 2.4.3. 12100 12101 - Patch #1576954: Update VC6 build directory; remove redundant files 12102 in VC7. 12103 12104 - Bug #1568842: Fix test for uintptr_t. 12105 12106 - Patch #1540470: for OpenBSD 4.0. 12107 12108 - Fix build failure on kfreebsd and on the hurd. 12109 12110 - Fix the build of the library reference in info format. 12111 12112 - Allow Emacs 22 for building the documentation in info format. 12113 12114 - Makefile.pre.in(buildbottest): Run an optional script 12115 pybuildbot.identify to include some information about the build 12116 environment. 12117 12118 C API 12119 ----- 12120 12121 - Unified naming convention for free lists and their limits. All free 12122 lists in Object/ are named ``free_list``, the counter ``numfree`` 12123 and the upper limit is a macro ``PyName_MAXFREELIST`` inside an 12124 #ifndef block. 12125 12126 - ``PySet_Add()`` can now modify a newly created frozenset. Similarly 12127 to ``PyTuple_SetItem``, it can be used to populate a brand new 12128 frozenset; but it does not steal a reference to the added item. 12129 12130 - Added ``PySet_Check()`` and ``PyFrozenSet_Check()`` to the set API. 12131 12132 - Backport of PyUnicode_FromString(), _FromStringAndSize(), _Format 12133 and _FormatV from Python 3.0. Made PyLong_AsSsize_t and 12134 PyLong_FromSsize_t public functions. 12135 12136 - Patch #1720595: add T_BOOL to the range of structmember types. 12137 12138 - Issue #1534: Added ``PyFloat_GetMax()``, ``PyFloat_GetMin()`` and 12139 ``PyFloat_GetInfo()`` to the float API. 12140 12141 - Issue #1521: On 64bit platforms, using PyArgs_ParseTuple with the t# 12142 of w# format code incorrectly truncated the length to an int, even 12143 when PY_SSIZE_T_CLEAN is set. The str.decode method used to return 12144 incorrect results with huge strings. 12145 12146 - Issue #1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, 12147 Py_TYPE and Py_REFCNT. 12148 12149 - PEP 3123: Provide forward compatibility with Python 3.0, while 12150 keeping backwards compatibility. Add Py_Refcnt, Py_Type, Py_Size, 12151 and PyVarObject_HEAD_INIT. 12152 12153 - Py_ssize_t fields work in structmember when HAVE_LONG_LONG is not 12154 defined. 12155 12156 - Patch #1733960: Allow T_LONGLONG to accept ints. 12157 12158 - T_PYSSIZET can now be used in PyMemberDef lists for Py_ssize_t members. 12159 12160 - Added a new API function ``PyImport_ImportModuleNoBlock``. 12161 12162 - Bug #1637022: Prefix AST symbols with _Py_. 12163 12164 - Fix some leftovers from the conversion from int to Py_ssize_t 12165 (relevant to strings and sequences of more than 2**31 items). 12166 12167 - Make _PyGILState_NoteThreadState() static, it was not used anywhere 12168 outside of pystate.c and should not be necessary. 12169 12170 - ``PyImport_Import`` and ``PyImport_ImportModule`` now always do 12171 absolute imports. In earlier versions they might have used relative 12172 imports under some conditions. 12173 12174 - Added case insensitive comparison methods ``PyOS_stricmp(char*, 12175 char*)`` and ``PyOS_strnicmp(char*, char*, Py_ssize_t)``. 12176 12177 - Bug #1542693: remove semi-colon at end of PyImport_ImportModuleEx 12178 macro so it can be used as an expression. 12179 12180 Windows 12181 ------- 12182 12183 - Patch #1706: Drop support for Win9x, WinME and NT4. Python now 12184 requires Windows 2000 or greater. The _WINVER and NTDDI_VERSION 12185 macros are set to Win2k for x86/32bit builds and WinXP for AMD64 12186 builds. 12187 12188 - Conditionalize definition of _CRT_SECURE_NO_DEPRECATE and 12189 _CRT_NONSTDC_NO_DEPRECATE. 12190 12191 - Bug #1216: Restore support for Visual Studio 2002. 12192 12193 Mac 12194 --- 12195 12196 - cfmfile now raises a DeprecationWarning. 12197 12198 - buildtools now raises a DeprecationWarning. 12199 12200 - Removed the macfs module. It had been deprecated since Python 2.5. 12201 This lead to the deprecation of macostools.touched() as it relied 12202 solely on macfs and was a no-op under OS X. 12203 12204 ---- 12205 12206 **(For information about older versions, consult the HISTORY file.)** 12207 12208