diff options
Diffstat (limited to 'Misc/NEWS')
-rw-r--r-- | Misc/NEWS | 2029 |
1 files changed, 1737 insertions, 292 deletions
@@ -2,23 +2,168 @@ Python News +++++++++++ -What's New in Python 3.5.3 release candidate 1? -=============================================== +What's New in Python 3.6.0 beta 2 +================================= -Release date: TBA +*Release date: XXXX-XX-XX* Core and Builtins ----------------- +- Upgrade internal unicode databases to Unicode version 9.0.0. + - Issue #28131: Fix a regression in zipimport's compile_source(). zipimport should use the same optimization level as the interpreter. -- Issue #25221: Fix corrupted result from PyLong_FromLong(0) when - Python is compiled with NSMALLPOSINTS = 0. +- Issue #28126: Replace Py_MEMCPY with memcpy(). Visual Studio can properly + optimize memcpy(). + +- Issue #28120: Fix dict.pop() for splitted dictionary when trying to remove a + "pending key" (Not yet inserted in split-table). Patch by Xiang Zhang. + +- Issue #26182: Raise DeprecationWarning when async and await keywords are + used as variable/attribute/class/function name. + +Library +------- + +- Issue #28075: Check for ERROR_ACCESS_DENIED in Windows implementation of + os.stat(). Patch by Eryk Sun. + +- Issue #22493: Warning message emitted by using inline flags in the middle of + regular expression now contains a (truncated) regex pattern. + Patch by Tim Graham. + +- Issue #25270: Prevent codecs.escape_encode() from raising SystemError when + an empty bytestring is passed. + +- Issue #28181: Get antigravity over HTTPS. Patch by Kaartic Sivaraam. + +- Issue #25895: Enable WebSocket URL schemes in urllib.parse.urljoin. + Patch by Gergely Imreh and Markus Holtermann. + +- Issue #28114: Fix a crash in parse_envlist() when env contains byte strings. + Patch by Eryk Sun. + +- Issue #27599: Fixed buffer overrun in binascii.b2a_qp() and binascii.a2b_qp(). + +- Issue #27906: Fix socket accept exhaustion during high TCP traffic. + Patch by Kevin Conway. + +- Issue #28174: Handle when SO_REUSEPORT isn't properly supported. + Patch by Seth Michael Larson. + +- Issue #26654: Inspect functools.partial in asyncio.Handle.__repr__. + Patch by iceboy. + +- Issue #26909: Fix slow pipes IO in asyncio. + Patch by INADA Naoki. + +- Issue #28176: Fix callbacks race in asyncio.SelectorLoop.sock_connect. + +- Issue #27759: Fix selectors incorrectly retain invalid file descriptors. + Patch by Mark Williams. + +Build +----- + +- Issue #15819: Remove redundant include search directory option for building + outside the source tree. + + +What's New in Python 3.6.0 beta 1 +================================= + +*Release date: 2016-09-12* + +Core and Builtins +----------------- + +- Issue #23722: The __class__ cell used by zero-argument super() is now + initialized from type.__new__ rather than __build_class__, so class methods + relying on that will now work correctly when called from metaclass methods + during class creation. Patch by Martin Teichmann. + +- Issue #25221: Fix corrupted result from PyLong_FromLong(0) when Python + is compiled with NSMALLPOSINTS = 0. + +- Issue #27080: Implement formatting support for PEP 515. Initial patch + by Chris Angelico. + +- Issue #27199: In tarfile, expose copyfileobj bufsize to improve throughput. + Patch by Jason Fried. + +- Issue #27948: In f-strings, only allow backslashes inside the braces + (where the expressions are). This is a breaking change from the 3.6 + alpha releases, where backslashes are allowed anywhere in an + f-string. Also, require that expressions inside f-strings be + enclosed within literal braces, and not escapes like + f'\x7b"hi"\x7d'. + +- Issue #28046: Remove platform-specific directories from sys.path. + +- Issue #28071: Add early-out for differencing from an empty set. - Issue #25758: Prevents zipimport from unnecessarily encoding a filename (patch by Eryk Sun) +- Issue #25856: The __module__ attribute of extension classes and functions + now is interned. This leads to more compact pickle data with protocol 4. + +- Issue #27213: Rework CALL_FUNCTION* opcodes to produce shorter and more + efficient bytecode. Patch by Demur Rumed, design by Serhiy Storchaka, + reviewed by Serhiy Storchaka and Victor Stinner. + +- Issue #26331: Implement tokenizing support for PEP 515. Patch by Georg Brandl. + +- Issue #27999: Make "global after use" a SyntaxError, and ditto for nonlocal. + Patch by Ivan Levkivskyi. + +- Issue #28003: Implement PEP 525 -- Asynchronous Generators. + +- Issue #27985: Implement PEP 526 -- Syntax for Variable Annotations. + Patch by Ivan Levkivskyi. + +- Issue #26058: Add a new private version to the builtin dict type, incremented + at each dictionary creation and at each dictionary change. Implementation of + the PEP 509. + +- Issue #27364: A backslash-character pair that is not a valid escape sequence + now generates a DeprecationWarning. Patch by Emanuel Barry. + +- Issue #27350: `dict` implementation is changed like PyPy. It is more compact + and preserves insertion order. + (Concept developed by Raymond Hettinger and patch by Inada Naoki.) + +- Issue #27911: Remove unnecessary error checks in + ``exec_builtin_or_dynamic()``. + +- Issue #27078: Added BUILD_STRING opcode. Optimized f-strings evaluation. + +- Issue #17884: Python now requires systems with inttypes.h and stdint.h + +- Issue #27961: Require platforms to support ``long long``. Python hasn't + compiled without ``long long`` for years, so this is basically a formality. + +- Issue #27355: Removed support for Windows CE. It was never finished, + and Windows CE is no longer a relevant platform for Python. + +- Implement PEP 523. + +- Issue #27870: A left shift of zero by a large integer no longer attempts + to allocate large amounts of memory. + +- Issue #25402: In int-to-decimal-string conversion, improve the estimate + of the intermediate memory required, and remove an unnecessarily strict + overflow check. Patch by Serhiy Storchaka. + +- Issue #27214: In long_invert, be more careful about modifying object + returned by long_add, and remove an unnecessary check for small longs. + Thanks Oren Milman for analysis and patch. + +- Issue #27506: Support passing the bytes/bytearray.translate() "delete" + argument by keyword. + - Issue #27812: Properly clear out a generator's frame's backreference to the generator to prevent crashes in frame.clear(). @@ -29,7 +174,21 @@ Core and Builtins after use of 'def' in _PyState_AddModule(). Initial patch by Christian Heimes. -- Issue #26020: set literal evaluation order did not match documented behaviour. +- Issue #27792: The modulo operation applied to ``bool`` and other + ``int`` subclasses now always returns an ``int``. Previously + the return type depended on the input values. Patch by Xiang Zhang. + +- Issue #26984: int() now always returns an instance of exact int. + +- Issue #25604: Fix a minor bug in integer true division; this bug could + potentially have caused off-by-one-ulp results on platforms with + unreliable ldexp implementations. + +- Issue #24254: Make class definition namespace ordered by default. + +- Issue #27662: Fix an overflow check in ``List_New``: the original code was + checking against ``Py_SIZE_MAX`` instead of the correct upper bound of + ``Py_SSIZE_T_MAX``. Patch by Xiang Zhang. - Issue #27782: Multi-phase extension module import now correctly allows the ``m_methods`` field to be used to add module level functions to instances @@ -43,59 +202,82 @@ Core and Builtins runpy.run_module() is found in sys.modules after parent packages are imported, but before the submodule is executed. +- Issue #27157: Make only type() itself accept the one-argument form. + Patch by Eryk Sun and Emanuel Barry. + - Issue #27558: Fix a SystemError in the implementation of "raise" statement. In a brand new thread, raise a RuntimeError since there is no active exception to reraise. Patch written by Xiang Zhang. -- Issue #27419: Standard __import__() no longer look up "__import__" in globals - or builtins for importing submodules or "from import". Fixed handling an - error of non-string package name. +- Issue #28008: Implement PEP 530 -- asynchronous comprehensions. -- Issue #27083: Respect the PYTHONCASEOK environment variable under Windows. +Library +------- -- Issue #27514: Make having too many statically nested blocks a SyntaxError - instead of SystemError. +- Issue #28037: Use sqlite3_get_autocommit() instead of setting + Connection->inTransaction manually. -- Issue #27473: Fixed possible integer overflow in bytes and bytearray - concatenations. Patch by Xiang Zhang. +- Issue #25283: Attributes tm_gmtoff and tm_zone are now available on + all platforms in the return values of time.localtime() and + time.gmtime(). -- Issue #27507: Add integer overflow check in bytearray.extend(). Patch by - Xiang Zhang. +- Issue #24454: Regular expression match object groups are now + accessible using __getitem__. "mo[x]" is equivalent to + "mo.group(x)". -- Issue #27581: Don't rely on wrapping for overflow check in - PySequence_Tuple(). Patch by Xiang Zhang. +- Issue #10740: sqlite3 no longer implicitly commit an open transaction + before DDL statements. -- Issue #27443: __length_hint__() of bytearray iterators no longer return a - negative integer for a resized bytearray. +- Issue #17941: Add a *module* parameter to collections.namedtuple(). -Library -------- +- Issue #22493: Inline flags now should be used only at the start of the + regular expression. Deprecation warning is emitted if uses them in the + middle of the regular expression. -- Issue #28075: Check for ERROR_ACCESS_DENIED in Windows implementation of - os.stat(). Patch by Eryk Sun. +- Issue #26885: xmlrpc now supports unmarshalling additional data types used + by Apache XML-RPC implementation for numerics and None. -- Issue #25270: Prevent codecs.escape_encode() from raising SystemError when - an empty bytestring is passed. +- Issue #28070: Fixed parsing inline verbose flag in regular expressions. -- Issue #28181: Get antigravity over HTTPS. Patch by Kaartic Sivaraam. +- Issue #19500: Add client-side SSL session resumption to the ssl module. -- Issue #25895: Enable WebSocket URL schemes in urllib.parse.urljoin. - Patch by Gergely Imreh and Markus Holtermann. +- Issue #28022: Deprecate ssl-related arguments in favor of SSLContext. The + deprecation include manual creation of SSLSocket and certfile/keyfile + (or similar) in ftplib, httplib, imaplib, smtplib, poplib and urllib. -- Issue #27599: Fixed buffer overrun in binascii.b2a_qp() and binascii.a2b_qp(). +- Issue #28043: SSLContext has improved default settings: OP_NO_SSLv2, + OP_NO_SSLv3, OP_NO_COMPRESSION, OP_CIPHER_SERVER_PREFERENCE, + OP_SINGLE_DH_USE, OP_SINGLE_ECDH_USE and HIGH ciphers without MD5. -- Issue #19003:m email.generator now replaces only \r and/or \n line - endings, per the RFC, instead of all unicode line endings. +- Issue #24693: Changed some RuntimeError's in the zipfile module to more + appropriate types. Improved some error messages and debugging output. + +- Issue #17909: ``json.load`` and ``json.loads`` now support binary input + encoded as UTF-8, UTF-16 or UTF-32. Patch by Serhiy Storchaka. + +- Issue #27137: the pure Python fallback implementation of ``functools.partial`` + now matches the behaviour of its accelerated C counterpart for subclassing, + pickling and text representation purposes. Patch by Emanuel Barry and + Serhiy Storchaka. - Issue #28019: itertools.count() no longer rounds non-integer step in range between 1.0 and 2.0 to 1. +- Issue #18401: Pdb now supports the 'readrc' keyword argument to control + whether .pdbrc files should be read. Patch by Martin Matusiak and + Sam Kimbrel. + - Issue #25969: Update the lib2to3 grammar to handle the unpacking generalizations added in 3.5. - Issue #14977: mailcap now respects the order of the lines in the mailcap files ("first match"), as required by RFC 1542. Patch by Michael Lazar. +- Issue #28025: Convert all ssl module constants to IntEnum and IntFlags. + SSLContext properties now return flags and enums. + +- Issue #433028: Added support of modifier spans in regular expressions. + - Issue #24594: Validates persist parameter when opening MSI database - Issue #17582: xml.etree.ElementTree nows preserves whitespaces in attributes @@ -104,9 +286,19 @@ Library - Issue #28047: Fixed calculation of line length used for the base64 CTE in the new email policies. +- Issue #27576: Fix call order in OrderedDict.__init__(). + +- email.generator.DecodedGenerator now supports the policy keyword. + +- Issue #28027: Remove undocumented modules from ``Lib/plat-*``: IN, CDROM, + DLFCN, TYPES, CDIO, and STROPTS. + - Issue #27445: Don't pass str(_charset) to MIMEText.set_payload(). Patch by Claude Paroz. +- Issue #24277: The new email API is no longer provisional, and the docs + have been reorganized and rewritten to emphasize the new API. + - Issue #22450: urllib now includes an "Accept: */*" header among the default headers. This makes the results of REST API requests more consistent and predictable especially when proxy servers are involved. @@ -115,6 +307,10 @@ Library between runs given the same Grammar.txt input regardless of the hash randomization setting. +- Issue #28005: Allow ImportErrors in encoding implementation to propagate. + +- Issue #26667: Support path-like objects in importlib.util. + - Issue #27570: Avoid zero-length memcpy() etc calls with null source pointers in the "ctypes" and "array" modules. @@ -122,19 +318,72 @@ Library characters, not on arbitrary unicode line breaks. This also fixes a bug in HTTP header parsing. +- Issue 27331: The email.mime classes now all accept an optional policy keyword. + - Issue 27988: Fix email iter_attachments incorrect mutation of payload list. +- Issue #16113: Add SHA-3 and SHAKE support to hashlib module. + +- Eliminate a tautological-pointer-compare warning in _scproxy.c. + +- Issue #27776: The :func:`os.urandom` function does now block on Linux 3.17 + and newer until the system urandom entropy pool is initialized to increase + the security. This change is part of the :pep:`524`. + +- Issue #27778: Expose the Linux ``getrandom()`` syscall as a new + :func:`os.getrandom` function. This change is part of the :pep:`524`. + - Issue #27691: Fix ssl module's parsing of GEN_RID subject alternative name fields in X.509 certs. +- Issue #18844: Add random.choices(). + +- Issue #25761: Improved error reporting about truncated pickle data in + C implementation of unpickler. UnpicklingError is now raised instead of + AttributeError and ValueError in some cases. + +- Issue #26798: Add BLAKE2 (blake2b and blake2s) to hashlib. + +- Issue #26032: Optimized globbing in pathlib by using os.scandir(); it is now + about 1.5--4 times faster. + +- Issue #25596: Optimized glob() and iglob() functions in the + glob module; they are now about 3--6 times faster. + +- Issue #27928: Add scrypt (password-based key derivation function) to + hashlib module (requires OpenSSL 1.1.0). + - Issue #27850: Remove 3DES from ssl module's default cipher list to counter measure sweet32 attack (CVE-2016-2183). - Issue #27766: Add ChaCha20 Poly1305 to ssl module's default ciper list. (Required OpenSSL 1.1.0 or LibreSSL). +- Issue #25387: Check return value of winsound.MessageBeep. + +- Issue #27866: Add SSLContext.get_ciphers() method to get a list of all + enabled ciphers. + +- Issue #27744: Add AF_ALG (Linux Kernel crypto) to socket module. + - Issue #26470: Port ssl and hashlib module to OpenSSL 1.1.0. +- Issue #11620: Fix support for SND_MEMORY in winsound.PlaySound. Based on a + patch by Tim Lesher. + +- Issue #11734: Add support for IEEE 754 half-precision floats to the + struct module. Based on a patch by Eli Stevens. + +- Issue #27919: Deprecated ``extra_path`` distribution option in distutils + packaging. + +- Issue #23229: Add new ``cmath`` constants: ``cmath.inf`` and ``cmath.nan`` to + match ``math.inf`` and ``math.nan``, and also ``cmath.infj`` and + ``cmath.nanj`` to match the format used by complex repr. + +- Issue #27842: The csv.DictReader now returns rows of type OrderedDict. + (Contributed by Steve Holden.) + - Remove support for passing a file descriptor to os.access. It never worked but previously didn't raise. @@ -156,25 +405,276 @@ Library - Issue #10513: Fix a regression in Connection.commit(). Statements should not be reset after a commit. +- Issue #12319: Chunked transfer encoding support added to + http.client.HTTPConnection requests. The + urllib.request.AbstractHTTPHandler class does not enforce a Content-Length + header any more. If a HTTP request has a file or iterable body, but no + Content-Length header, the library now falls back to use chunked transfer- + encoding. + - A new version of typing.py from https://github.com/python/typing: - Collection (only for 3.6) (Issue #27598) - Add FrozenSet to __all__ (upstream #261) - fix crash in _get_type_vars() (upstream #259) - Remove the dict constraint in ForwardRef._eval_type (upstream #252) +- Issue #27832: Make ``_normalize`` parameter to ``Fraction`` constuctor + keyword-only, so that ``Fraction(2, 3, 4)`` now raises ``TypeError``. + - Issue #27539: Fix unnormalised ``Fraction.__pow__`` result in the case of negative exponent and negative base. - Issue #21718: cursor.description is now available for queries using CTEs. +- Issue #27819: In distutils sdists, simply produce the "gztar" (gzipped tar + format) distributions on all platforms unless "formats" is supplied. + - Issue #2466: posixpath.ismount now correctly recognizes mount points which the user does not have permission to access. +- Issue #9998: On Linux, ctypes.util.find_library now looks in LD_LIBRARY_PATH + for shared libraries. + +- Issue #27573: exit message for code.interact is now configurable. + +- Issue #27930: Improved behaviour of logging.handlers.QueueListener. + Thanks to Paulo Andrade and Petr Viktorin for the analysis and patch. + +- Issue #6766: Distributed reference counting added to multiprocessing + to support nesting of shared values / proxy objects. + +- Issue #21201: Improves readability of multiprocessing error message. Thanks + to Wojciech Walczak for patch. + +- asyncio: Add set_protocol / get_protocol to Transports. + +- Issue #27456: asyncio: Set TCP_NODELAY by default. + +IDLE +---- + +- Issue #15308: Add 'interrupt execution' (^C) to Shell menu. + Patch by Roger Serwy, updated by Bayard Randel. + +- Issue #27922: Stop IDLE tests from 'flashing' gui widgets on the screen. + +- Issue #27891: Consistently group and sort imports within idlelib modules. + +- Issue #17642: add larger font sizes for classroom projection. + +- Add version to title of IDLE help window. + +- Issue #25564: In section on IDLE -- console differences, mention that + using exec means that __builtins__ is defined for each statement. + +- Issue #27821: Fix 3.6.0a3 regression that prevented custom key sets + from being selected when no custom theme was defined. + +C API +----- + +- Issue #26900: Excluded underscored names and other private API from limited API. + +- Issue #26027: Add support for path-like objects in PyUnicode_FSConverter() & + PyUnicode_FSDecoder(). + +Tests +----- + +- Issue #27427: Additional tests for the math module. Patch by Francisco Couzo. + +- Issue #27953: Skip math and cmath tests that fail on OS X 10.4 due to a + poor libm implementation of tan. + +- Issue #26040: Improve test_math and test_cmath coverage and rigour. Patch by + Jeff Allen. + +- Issue #27787: Call gc.collect() before checking each test for "dangling + threads", since the dangling threads are weak references. + +Build +----- + +- Issue #27566: Fix clean target in freeze makefile (patch by Lisa Roach) + +- Issue #27705: Update message in validate_ucrtbase.py + +- Issue #27976: Deprecate building _ctypes with the bundled copy of libffi on + non-OSX UNIX platforms. + +- Issue #27983: Cause lack of llvm-profdata tool when using clang as + required for PGO linking to be a configure time error rather than + make time when --with-optimizations is enabled. Also improve our + ability to find the llvm-profdata tool on MacOS and some Linuxes. + +- Issue #21590: Support for DTrace and SystemTap probes. + +- Issue #26307: The profile-opt build now applys PGO to the built-in modules. + +- Issue #26539: Add the --with-optimizations flag to turn on LTO and PGO build + support when available. + +- Issue #27917: Set platform triplets for Android builds. + +- Issue #25825: Update references to the $(LIBPL) installation path on AIX. + This path was changed in 3.2a4. + +- Update OS X installer to use SQLite 3.14.1 and XZ 5.2.2. + +- Issue #21122: Fix LTO builds on OS X. + +- Issue #17128: Build OS X installer with a private copy of OpenSSL. + Also provide a sample Install Certificates command script to install a + set of root certificates from the third-party certifi module. + +Tools/Demos +----------- + +- Issue #27952: Get Tools/scripts/fixcid.py working with Python 3 and the + current "re" module, avoid invalid Python backslash escapes, and fix a bug + parsing escaped C quote signs. + +Windows +------- + +- Issue #28065: Update xz dependency to 5.2.2 and build it from source. + +- Issue #25144: Ensures TargetDir is set before continuing with custom + install. + +- Issue #1602: Windows console doesn't input or print Unicode (PEP 528) + +- Issue #27781: Change file system encoding on Windows to UTF-8 (PEP 529) + +- Issue #27731: Opt-out of MAX_PATH on Windows 10 + +- Issue #6135: Adds encoding and errors parameters to subprocess. + +- Issue #27959: Adds oem encoding, alias ansi to mbcs, move aliasmbcs to + codec lookup. + +- Issue #27982: The functions of the winsound module now accept keyword + arguments. + +- Issue #20366: Build full text search support into SQLite on Windows. + +- Issue #27756: Adds new icons for Python files and processes on Windows. + Designs by Cherry Wang. + +- Issue #27883: Update sqlite to 3.14.1.0 on Windows. + + +What's New in Python 3.6.0 alpha 4 +================================== + +*Release date: 2016-08-15* + +Core and Builtins +----------------- + +- Issue #27704: Optimized creating bytes and bytearray from byte-like objects + and iterables. Speed up to 3 times for short objects. Original patch by + Naoki Inada. + +- Issue #26823: Large sections of repeated lines in tracebacks are now + abbreviated as "[Previous line repeated {count} more times]" by the builtin + traceback rendering. Patch by Emanuel Barry. + +- Issue #27574: Decreased an overhead of parsing keyword arguments in functions + implemented with using Argument Clinic. + +- Issue #22557: Now importing already imported modules is up to 2.5 times + faster. + +- Issue #17596: Include <wincrypt.h> to help with Min GW building. + +- Issue #17599: On Windows, rename the privately defined REPARSE_DATA_BUFFER + structure to avoid conflicting with the definition from Min GW. + +- Issue #27507: Add integer overflow check in bytearray.extend(). Patch by + Xiang Zhang. + +- Issue #27581: Don't rely on wrapping for overflow check in + PySequence_Tuple(). Patch by Xiang Zhang. + +- Issue #1621: Avoid signed integer overflow in list and tuple operations. + Patch by Xiang Zhang. + +- Issue #27419: Standard __import__() no longer look up "__import__" in globals + or builtins for importing submodules or "from import". Fixed a crash if + raise a warning about unabling to resolve package from __spec__ or + __package__. + +- Issue #27083: Respect the PYTHONCASEOK environment variable under Windows. + +- Issue #27514: Make having too many statically nested blocks a SyntaxError + instead of SystemError. + +- Issue #27366: Implemented PEP 487 (Simpler customization of class creation). + Upon subclassing, the __init_subclass__ classmethod is called on the base + class. Descriptors are initialized with __set_name__ after class creation. + +Library +------- + +- Issue #26027, #27524: Add PEP 519/__fspath__() support to the os and os.path + modules. Includes code from Jelle Zijlstra. + +- Issue #27598: Add Collections to collections.abc. + Patch by Ivan Levkivskyi, docs by Neil Girdhar. + +- Issue #25958: Support "anti-registration" of special methods from + various ABCs, like __hash__, __iter__ or __len__. All these (and + several more) can be set to None in an implementation class and the + behavior will be as if the method is not defined at all. + (Previously, this mechanism existed only for __hash__, to make + mutable classes unhashable.) Code contributed by Andrew Barnert and + Ivan Levkivskyi. + +- Issue #16764: Support keyword arguments to zlib.decompress(). Patch by + Xiang Zhang. + +- Issue #27736: Prevent segfault after interpreter re-initialization due + to ref count problem introduced in code for Issue #27038 in 3.6.0a3. + Patch by Xiang Zhang. + +- Issue #25628: The *verbose* and *rename* parameters for + collections.namedtuple are now keyword-only. + +- Issue #12345: Add mathematical constant tau to math and cmath. See also + PEP 628. + +- Issue #26823: traceback.StackSummary.format now abbreviates large sections of + repeated lines as "[Previous line repeated {count} more times]" (this change + then further affects other traceback display operations in the module). Patch + by Emanuel Barry. + +- Issue #27664: Add to concurrent.futures.thread.ThreadPoolExecutor() + the ability to specify a thread name prefix. + +- Issue #27181: Add geometric_mean and harmonic_mean to statistics module. + +- Issue #27573: code.interact now prints an message when exiting. + +- Issue #6422: Add autorange method to timeit.Timer objects. + - Issue #27773: Correct some memory management errors server_hostname in _ssl.wrap_socket(). - Issue #26750: unittest.mock.create_autospec() now works properly for - subclasses of property() and other data descriptors. + subclasses of property() and other data descriptors. Removes the never + publicly used, never documented unittest.mock.DescriptorTypes tuple. + +- Issue #26754: Undocumented support of general bytes-like objects + as path in compile() and similar functions is now deprecated. + +- Issue #26800: Undocumented support of general bytes-like objects + as paths in os functions is now deprecated. + +- Issue #26981: Add _order_ compatibility shim to enum.Enum for + Python 2/3 code bases. + +- Issue #27661: Added tzinfo keyword argument to datetime.combine. - In the curses module, raise an error if window.getstr() or window.instr() is passed a negative value. @@ -193,6 +693,9 @@ Library HTTP_PROXY variable when REQUEST_METHOD environment is set, which indicates that the script is in CGI mode. +- Issue #7063: Remove dead code from the "array" module's slice handling. + Patch by Chuck. + - Issue #27656: Do not assume sched.h defines any SCHED_* constants. - Issue #27130: In the "zlib" module, fix handling of large buffers @@ -200,6 +703,15 @@ Library were limited to 4 GiB, and compression and decompression operations did not properly handle results of 4 GiB. +- Issue #24773: Implemented PEP 495 (Local Time Disambiguation). + +- Expose the EPOLLEXCLUSIVE constant (when it is defined) in the select module. + +- Issue #27567: Expose the EPOLLRDHUP and POLLRDHUP constants in the select + module. + +- Issue #1621: Avoid signed int negation overflow in the "audioop" module. + - Issue #27533: Release GIL in nt._isdir - Issue #17711: Fixed unpickling by the persistent ID with protocol 0. @@ -207,6 +719,112 @@ Library - Issue #27522: Avoid an unintentional reference cycle in email.feedparser. +- Issue #27512: Fix a segfault when os.fspath() called an __fspath__() method + that raised an exception. Patch by Xiang Zhang. + +IDLE +---- + +- Issue #27714: text_textview and test_autocomplete now pass when re-run + in the same process. This occurs when test_idle fails when run with the + -w option but without -jn. Fix warning from test_config. + +- Issue #27621: Put query response validation error messages in the query + box itself instead of in a separate massagebox. Redo tests to match. + Add Mac OSX refinements. Original patch by Mark Roseman. + +- Issue #27620: Escape key now closes Query box as cancelled. + +- Issue #27609: IDLE: tab after initial whitespace should tab, not + autocomplete. This fixes problem with writing docstrings at least + twice indented. + +- Issue #27609: Explicitly return None when there are also non-None + returns. In a few cases, reverse a condition and eliminate a return. + +- Issue #25507: IDLE no longer runs buggy code because of its tkinter imports. + Users must include the same imports required to run directly in Python. + +- Issue #27173: Add 'IDLE Modern Unix' to the built-in key sets. + Make the default key set depend on the platform. + Add tests for the changes to the config module. + +- Issue #27452: add line counter and crc to IDLE configHandler test dump. + +Tests +----- + +- Issue #25805: Skip a test in test_pkgutil as needed that doesn't work when + ``__name__ == __main__``. Patch by SilentGhost. + +- Issue #27472: Add test.support.unix_shell as the path to the default shell. + +- Issue #27369: In test_pyexpat, avoid testing an error message detail that + changed in Expat 2.2.0. + +- Issue #27594: Prevent assertion error when running test_ast with coverage + enabled: ensure code object has a valid first line number. + Patch suggested by Ivan Levkivskyi. + +Windows +------- + +- Issue #27647: Update bundled Tcl/Tk to 8.6.6. + +- Issue #27610: Adds PEP 514 metadata to Windows installer + +- Issue #27469: Adds a shell extension to the launcher so that drag and drop + works correctly. + +- Issue #27309: Enables proper Windows styles in python[w].exe manifest. + +Build +----- + +- Issue #27713: Suppress spurious build warnings when updating importlib's + bootstrap files. Patch by Xiang Zhang + +- Issue #25825: Correct the references to Modules/python.exp, which is + required on AIX. The references were accidentally changed in 3.5.0a1. + +- Issue #27453: CPP invocation in configure must use CPPFLAGS. Patch by + Chi Hsuan Yen. + +- Issue #27641: The configure script now inserts comments into the makefile + to prevent the pgen and _freeze_importlib executables from being cross- + compiled. + +- Issue #26662: Set PYTHON_FOR_GEN in configure as the Python program to be + used for file generation during the build. + +- Issue #10910: Avoid C++ compilation errors on FreeBSD and OS X. + Also update FreedBSD version checks for the original ctype UTF-8 workaround. + +What's New in Python 3.6.0 alpha 3 +================================== + +*Release date: 2016-07-11* + +Core and Builtins +----------------- + +- Issue #27473: Fixed possible integer overflow in bytes and bytearray + concatenations. Patch by Xiang Zhang. + +- Issue #23034: The output of a special Python build with defined COUNT_ALLOCS, + SHOW_ALLOC_COUNT or SHOW_TRACK_COUNT macros is now off by default. It can + be re-enabled using the "-X showalloccount" option. It now outputs to stderr + instead of stdout. + +- Issue #27443: __length_hint__() of bytearray iterators no longer return a + negative integer for a resized bytearray. + +- Issue #27007: The fromhex() class methods of bytes and bytearray subclasses + now return an instance of corresponding subclass. + +Library +------- + - Issue #26844: Fix error message for imp.find_module() to refer to 'path' instead of 'name'. Patch by Lev Maximov. @@ -217,22 +835,54 @@ Library confirming the netscape cookie format and making it consistent with documentation. -- Issue #26664: Fix activate.fish by removing mis-use of ``$``. +- Issue #21708: Deprecated dbm.dumb behavior that differs from common dbm + behavior: creating a database in 'r' and 'w' modes and modifying a database + in 'r' mode. + +- Issue #26721: Change the socketserver.StreamRequestHandler.wfile attribute + to implement BufferedIOBase. In particular, the write() method no longer + does partial writes. + +- Issue #22115: Added methods trace_add, trace_remove and trace_info in the + tkinter.Variable class. They replace old methods trace_variable, trace, + trace_vdelete and trace_vinfo that use obsolete Tcl commands and might + not work in future versions of Tcl. Fixed old tracing methods: + trace_vdelete() with wrong mode no longer break tracing, trace_vinfo() now + always returns a list of pairs of strings, tracing in the "u" mode now works. + +- Issue #26243: Only the level argument to zlib.compress() is keyword argument + now. The first argument is positional-only. -- Issue #22115: Fixed tracing Tkinter variables: trace_vdelete() with wrong - mode no longer break tracing, trace_vinfo() now always returns a list of - pairs of strings, tracing in the "u" mode now works. +- Issue #27038: Expose the DirEntry type as os.DirEntry. Code patch by + Jelle Zijlstra. -- Fix a scoping issue in importlib.util.LazyLoader which triggered an - UnboundLocalError when lazy-loading a module that was already put into - sys.modules. +- Issue #27186: Update os.fspath()/PyOS_FSPath() to check the return value of + __fspath__() to be either str or bytes. + +- Issue #18726: All optional parameters of the dump(), dumps(), + load() and loads() functions and JSONEncoder and JSONDecoder class + constructors in the json module are now keyword-only. + +- Issue #27319: Methods selection_set(), selection_add(), selection_remove() + and selection_toggle() of ttk.TreeView now allow passing multiple items as + multiple arguments instead of passing them as a tuple. Deprecated + undocumented ability of calling the selection() method with arguments. - Issue #27079: Fixed curses.ascii functions isblank(), iscntrl() and ispunct(). +- Issue #27294: Numerical state in the repr for Tkinter event objects is now + represented as a combination of known flags. + +- Issue #27177: Match objects in the re module now support index-like objects + as group indices. Based on patches by Jeroen Demeyer and Xiang Zhang. + - Issue #26754: Some functions (compile() etc) accepted a filename argument encoded as an iterable of integers. Now only strings and byte-like objects are accepted. +- Issue #26536: socket.ioctl now supports SIO_LOOPBACK_FAST_PATH. Patch by + Daniel Stokes. + - Issue #27048: Prevents distutils failing on Windows when environment variables contain non-ASCII characters @@ -251,9 +901,15 @@ Library Linux. Truncate size to INT_MAX and loop until we collected enough random bytes, instead of casting a directly Py_ssize_t to int. +- Issue #16864: sqlite3.Cursor.lastrowid now supports REPLACE statement. + Initial patch by Alex LordThorsen. + - Issue #26386: Fixed ttk.TreeView selection operations with item id's containing spaces. +- Issue #8637: Honor a pager set by the env var MANPAGER (in preference to + one set by the env var PAGER). + - [Security] Issue #22636: Avoid shell injection problems with ctypes.util.find_library(). @@ -261,54 +917,31 @@ Library locale encoding, and fix get_begidx() and get_endidx() to return code point indexes. -- Issue #26930: Update Windows builds to use OpenSSL 1.0.2h. - - Issue #27392: Add loop.connect_accepted_socket(). Patch by Jim Fulton. -- Issue #27930: Improved behaviour of logging.handlers.QueueListener. - Thanks to Paulo Andrade and Petr Viktorin for the analysis and patch. - -- Issue #21201: Improves readability of multiprocessing error message. Thanks - to Wojciech Walczak for patch. - -- Issue #27456: asyncio: Set TCP_NODELAY by default. - -- Issue #27906: Fix socket accept exhaustion during high TCP traffic. - Patch by Kevin Conway. - -- Issue #28174: Handle when SO_REUSEPORT isn't properly supported. - Patch by Seth Michael Larson. - -- Issue #26654: Inspect functools.partial in asyncio.Handle.__repr__. - Patch by iceboy. - -- Issue #26909: Fix slow pipes IO in asyncio. - Patch by INADA Naoki. - -- Issue #28176: Fix callbacks race in asyncio.SelectorLoop.sock_connect. - -- Issue #27759: Fix selectors incorrectly retain invalid file descriptors. - Patch by Mark Williams. - IDLE ---- -- Issue #27922: Stop IDLE tests from 'flashing' gui widgets on the screen. +- Issue #27477: IDLE search dialogs now use ttk widgets. -- Add version to title of IDLE help window. +- Issue #27173: Add 'IDLE Modern Unix' to the built-in key sets. + Make the default key set depend on the platform. + Add tests for the changes to the config module. -- Issue #25564: In section on IDLE -- console differences, mention that - using exec means that __builtins__ is defined for each statement. +- Issue #27452: make command line "idle-test> python test_help.py" work. + __file__ is relative when python is started in the file's directory. -- Issue #27714: text_textview and test_autocomplete now pass when re-run - in the same process. This occurs when test_idle fails when run with the - -w option but without -jn. Fix warning from test_config. +- Issue #27452: add line counter and crc to IDLE configHandler test dump. -- Issue #25507: IDLE no longer runs buggy code because of its tkinter imports. - Users must include the same imports required to run directly in Python. +- Issue #27380: IDLE: add query.py with base Query dialog and ttk widgets. + Module had subclasses SectionName, ModuleName, and HelpSource, which are + used to get information from users by configdialog and file =>Load Module. + Each subclass has itw own validity checks. Using ModuleName allows users + to edit bad module names instead of starting over. + Add tests and delete the two files combined into the new one. -- Issue #27452: add line counter and crc to IDLE configHandler test dump. +- Issue #27372: Test_idle no longer changes the locale. - Issue #27365: Allow non-ascii chars in IDLE NEWS.txt, for contributor names. @@ -316,120 +949,368 @@ IDLE Previously, when IDLE was started from a console or by import, a cascade of warnings was emitted. Patch by Serhiy Storchaka. +- Issue #24137: Run IDLE, test_idle, and htest with tkinter default root + disabled. Fix code and tests that fail with this restriction. Fix htests to + not create a second and redundant root and mainloop. + +- Issue #27310: Fix IDLE.app failure to launch on OS X due to vestigial import. + C API ----- - Issue #26754: PyUnicode_FSDecoder() accepted a filename argument encoded as - an iterable of integers. Now only strings and bytes-like objects are accepted. + an iterable of integers. Now only strings and byte-like objects are accepted. -Tests +Build ----- -- Issue #27787: Call gc.collect() before checking each test for "dangling - threads", since the dangling threads are weak references. +- Issue #28066: Fix the logic that searches build directories for generated + include files when building outside the source tree. -- Issue #27369: In test_pyexpat, avoid testing an error message detail that - changed in Expat 2.2.0. +- Issue #27442: Expose the Android API level that python was built against, in + sysconfig.get_config_vars() as 'ANDROID_API_LEVEL'. + +- Issue #27434: The interpreter that runs the cross-build, found in PATH, must + now be of the same feature version (e.g. 3.6) as the source being built. + +- Issue #26930: Update Windows builds to use OpenSSL 1.0.2h. + +- Issue #23968: Rename the platform directory from plat-$(MACHDEP) to + plat-$(PLATFORM_TRIPLET). + Rename the config directory (LIBPL) from config-$(LDVERSION) to + config-$(LDVERSION)-$(PLATFORM_TRIPLET). + Install the platform specifc _sysconfigdata module into the platform + directory and rename it to include the ABIFLAGS. + +- Don't use largefile support for GNU/Hurd. Tools/Demos ----------- -- Issue #27952: Get Tools/scripts/fixcid.py working with Python 3 and the - current "re" module, avoid invalid Python backslash escapes, and fix a bug - parsing escaped C quote signs. - - Issue #27332: Fixed the type of the first argument of module-level functions generated by Argument Clinic. Patch by Petr Viktorin. - Issue #27418: Fixed Tools/importbench/importbench.py. -Windows +Documentation +------------- + +- Issue #19489: Moved the search box from the sidebar to the header and footer + of each page. Patch by Ammar Askar. + +- Issue #27285: Update documentation to reflect the deprecation of ``pyvenv`` + and normalize on the term "virtual environment". Patch by Steve Piercy. + +Tests +----- + +- Issue #27027: Added test.support.is_android that is True when this is an + Android build. + + +What's New in Python 3.6.0 alpha 2 +================================== + +*Release date: 2016-06-13* + +Core and Builtins +----------------- + +- Issue #27095: Simplified MAKE_FUNCTION and removed MAKE_CLOSURE opcodes. + Patch by Demur Rumed. + +- Issue #27190: Raise NotSupportedError if sqlite3 is older than 3.3.1. + Patch by Dave Sawyer. + +- Issue #27286: Fixed compiling BUILD_MAP_UNPACK_WITH_CALL opcode. Calling + function with generalized unpacking (PEP 448) and conflicting keyword names + could cause undefined behavior. + +- Issue #27140: Added BUILD_CONST_KEY_MAP opcode. + +- Issue #27186: Add support for os.PathLike objects to open() (part of PEP 519). + +- Issue #27066: Fixed SystemError if a custom opener (for open()) returns a + negative number without setting an exception. + +- Issue #26983: float() now always return an instance of exact float. + The deprecation warning is emitted if __float__ returns an instance of + a strict subclass of float. In a future versions of Python this can + be an error. + +- Issue #27097: Python interpreter is now about 7% faster due to optimized + instruction decoding. Based on patch by Demur Rumed. + +- Issue #26647: Python interpreter now uses 16-bit wordcode instead of bytecode. + Patch by Demur Rumed. + +- Issue #23275: Allow assigning to an empty target list in round brackets: + () = iterable. + +- Issue #27243: Update the __aiter__ protocol: instead of returning + an awaitable that resolves to an asynchronous iterator, the asynchronous + iterator should be returned directly. Doing the former will trigger a + PendingDeprecationWarning. + + +Library ------- -- Issue #25144: Ensures TargetDir is set before continuing with custom - install. +- Comment out socket (SO_REUSEPORT) and posix (O_SHLOCK, O_EXLOCK) constants + exposed on the API which are not implemented on GNU/Hurd. They would not + work at runtime anyway. -- Issue #27469: Adds a shell extension to the launcher so that drag and drop - works correctly. +- Issue #25455: Fixed crashes in repr of recursive ElementTree.Element and + functools.partial objects. -- Issue #27309: Enabled proper Windows styles in python[w].exe manifest. +- Issue #27294: Improved repr for Tkinter event objects. -Build ------ +- Issue #20508: Improve exception message of IPv{4,6}Network.__getitem__. + Patch by Gareth Rees. -- Issue #28066: Fix the logic that searches build directories for generated - include files when building outside the source tree. +- [Security] Issue #26556: Update expat to 2.1.1, fixes CVE-2015-1283. -- Issue #15819: Remove redundant include search directory option for building - outside the source tree. +- [Security] Fix TLS stripping vulnerability in smtplib, CVE-2016-0772. + Reported by Team Oststrom. -- Issue #27566: Fix clean target in freeze makefile (patch by Lisa Roach) +- Issue #21386: Implement missing IPv4Address.is_global property. It was + documented since 07a5610bae9d. Initial patch by Roger Luethi. -- Issue #27705: Update message in validate_ucrtbase.py +- Issue #27029: Removed deprecated support of universal newlines mode from + ZipFile.open(). -- Issue #27983: Cause lack of llvm-profdata tool when using clang as - required for PGO linking to be a configure time error rather than - make time when --with-optimizations is enabled. Also improve our - ability to find the llvm-profdata tool on MacOS and some Linuxes. +- Issue #27030: Unknown escapes consisting of ``'\'`` and an ASCII letter in + regular expressions now are errors. The re.LOCALE flag now can be used + only with bytes patterns. -- Issue #26307: The profile-opt build now applys PGO to the built-in modules. +- Issue #27186: Add os.PathLike support to DirEntry (part of PEP 519). + Initial patch by Jelle Zijlstra. -- Issue #26359: Add the --with-optimizations configure flag. +- Issue #20900: distutils register command now decodes HTTP responses + correctly. Initial patch by ingrid. -- Issue #27713: Suppress spurious build warnings when updating importlib's - bootstrap files. Patch by Xiang Zhang +- Issue #27186: Add os.PathLike support to pathlib, removing its provisional + status (part of PEP 519). Initial patch by Dusty Phillips. -- Issue #25825: Correct the references to Modules/python.exp and ld_so_aix, - which are required on AIX. This updates references to an installation path - that was changed in 3.2a4, and undoes changed references to the build tree - that were made in 3.5.0a1. +- Issue #27186: Add support for os.PathLike objects to os.fsencode() and + os.fsdecode() (part of PEP 519). -- Issue #27453: CPP invocation in configure must use CPPFLAGS. Patch by - Chi Hsuan Yen. +- Issue #27186: Introduce os.PathLike and os.fspath() (part of PEP 519). -- Issue #27641: The configure script now inserts comments into the makefile - to prevent the pgen and _freeze_importlib executables from being cross- - compiled. +- A new version of typing.py provides several new classes and + features: @overload outside stubs, Reversible, DefaultDict, Text, + ContextManager, Type[], NewType(), TYPE_CHECKING, and numerous bug + fixes (note that some of the new features are not yet implemented in + mypy or other static analyzers). Also classes for PEP 492 + (Awaitable, AsyncIterable, AsyncIterator) have been added (in fact + they made it into 3.5.1 but were never mentioned). -- Issue #26662: Set PYTHON_FOR_GEN in configure as the Python program to be - used for file generation during the build. +- Issue #25738: Stop http.server.BaseHTTPRequestHandler.send_error() from + sending a message body for 205 Reset Content. Also, don't send Content + header fields in responses that don't have a body. Patch by Susumu + Koshiba. -- Issue #10910: Avoid C++ compilation errors on FreeBSD and OS X. - Also update FreedBSD version checks for the original ctype UTF-8 workaround. +- Issue #21313: Fix the "platform" module to tolerate when sys.version + contains truncated build information. + +- [Security] Issue #26839: On Linux, :func:`os.urandom` now calls + ``getrandom()`` with ``GRND_NONBLOCK`` to fall back on reading + ``/dev/urandom`` if the urandom entropy pool is not initialized yet. Patch + written by Colm Buckley. +- Issue #23883: Added missing APIs to __all__ to match the documented APIs + for the following modules: cgi, mailbox, mimetypes, plistlib and smtpd. + Patches by Jacek Kołodziej. -What's New in Python 3.5.2? -=========================== +- Issue #27164: In the zlib module, allow decompressing raw Deflate streams + with a predefined zdict. Based on patch by Xiang Zhang. -Release date: 2016-06-26 +- Issue #24291: Fix wsgiref.simple_server.WSGIRequestHandler to completely + write data to the client. Previously it could do partial writes and + truncate data. Also, wsgiref.handler.ServerHandler can now handle stdout + doing partial writes, but this is deprecated. -Core and Builtins ------------------ +- Issue #21272: Use _sysconfigdata.py to initialize distutils.sysconfig. -- Issue #26930: Update Windows builds to use OpenSSL 1.0.2h. +- Issue #19611: :mod:`inspect` now reports the implicit ``.0`` parameters + generated by the compiler for comprehension and generator expression scopes + as if they were positional-only parameters called ``implicit0``. + Patch by Jelle Zijlstra. + +- Issue #26809: Add ``__all__`` to :mod:`string`. Patch by Emanuel Barry. + +- Issue #26373: subprocess.Popen.communicate now correctly ignores + BrokenPipeError when the child process dies before .communicate() + is called in more/all circumstances. + +- signal, socket, and ssl module IntEnum constant name lookups now return a + consistent name for values having multiple names. Ex: signal.Signals(6) + now refers to itself as signal.SIGALRM rather than flipping between that + and signal.SIGIOT based on the interpreter's hash randomization seed. + +- Issue #27167: Clarify the subprocess.CalledProcessError error message text + when the child process died due to a signal. + +- Issue #25931: Don't define socketserver.Forking* names on platforms such + as Windows that do not support os.fork(). + +- Issue #21776: distutils.upload now correctly handles HTTPError. + Initial patch by Claudiu Popa. + +- Issue #26526: Replace custom parse tree validation in the parser + module with a simple DFA validator. + +- Issue #27114: Fix SSLContext._load_windows_store_certs fails with + PermissionError + +- Issue #18383: Avoid creating duplicate filters when using filterwarnings + and simplefilter. Based on patch by Alex Shkop. + +- Issue #23026: winreg.QueryValueEx() now return an integer for REG_QWORD type. + +- Issue #26741: subprocess.Popen destructor now emits a ResourceWarning warning + if the child process is still running. + +- Issue #27056: Optimize pickle.load() and pickle.loads(), up to 10% faster + to deserialize a lot of small objects. + +- Issue #21271: New keyword only parameters in reset_mock call. + +IDLE +---- + +- Issue #5124: Paste with text selected now replaces the selection on X11. + This matches how paste works on Windows, Mac, most modern Linux apps, + and ttk widgets. Original patch by Serhiy Storchaka. + +- Issue #24750: Switch all scrollbars in IDLE to ttk versions. + Where needed, minimal tests are added to cover changes. + +- Issue #24759: IDLE requires tk 8.5 and availability ttk widgets. + Delete now unneeded tk version tests and code for older versions. + Add test for IDLE syntax colorizoer. + +- Issue #27239: idlelib.macosx.isXyzTk functions initialize as needed. + +- Issue #27262: move Aqua unbinding code, which enable context menus, to maxosx. + +- Issue #24759: Make clear in idlelib.idle_test.__init__ that the directory + is a private implementation of test.test_idle and tool for maintainers. + +- Issue #27196: Stop 'ThemeChanged' warnings when running IDLE tests. + These persisted after other warnings were suppressed in #20567. + Apply Serhiy Storchaka's update_idletasks solution to four test files. + Record this additional advice in idle_test/README.txt + +- Issue #20567: Revise idle_test/README.txt with advice about avoiding + tk warning messages from tests. Apply advice to several IDLE tests. + +- Issue #24225: Update idlelib/README.txt with new file names + and event handlers. + +- Issue #27156: Remove obsolete code not used by IDLE. Replacements: + 1. help.txt, replaced by help.html, is out-of-date and should not be used. + Its dedicated viewer has be replaced by the html viewer in help.py. + 2. ``import idlever; I = idlever.IDLE_VERSION`` is the same as + ``import sys; I = version[:version.index(' ')]`` + 3. After ``ob = stackviewer.VariablesTreeItem(*args)``, + ``ob.keys() == list(ob.object.keys)``. + 4. In macosc, runningAsOSXAPP == isAquaTk; idCarbonAquaTk == isCarbonTk + +- Issue #27117: Make colorizer htest and turtledemo work with dark themes. + Move code for configuring text widget colors to a new function. + +- Issue #24225: Rename many `idlelib/*.py` and `idle_test/test_*.py` files. + Edit files to replace old names with new names when the old name + referred to the module rather than the class it contained. + See the issue and IDLE section in What's New in 3.6 for more. + +- Issue #26673: When tk reports font size as 0, change to size 10. + Such fonts on Linux prevented the configuration dialog from opening. + +- Issue #21939: Add test for IDLE's percolator. + Original patch by Saimadhav Heblikar. + +- Issue #21676: Add test for IDLE's replace dialog. + Original patch by Saimadhav Heblikar. + +- Issue #18410: Add test for IDLE's search dialog. + Original patch by Westley Martínez. + +- Issue #21703: Add test for undo delegator. Patch mostly by + Saimadhav Heblikar . + +- Issue #27044: Add ConfigDialog.remove_var_callbacks to stop memory leaks. + +- Issue #23977: Add more asserts to test_delegator. + +Documentation +------------- + +- Issue #16484: Change the default PYTHONDOCS URL to "https:", and fix the + resulting links to use lowercase. Patch by Sean Rodman, test by Kaushik + Nadikuditi. + +- Issue #24136: Document the new PEP 448 unpacking syntax of 3.5. + +- Issue #22558: Add remaining doc links to source code for Python-coded modules. + Patch by Yoni Lavi. Tests ----- -- Issue #26867: Ubuntu's openssl OP_NO_SSLv3 is forced on by default; fix test. +- Issue #25285: regrtest now uses subprocesses when the -j1 command line option + is used: each test file runs in a fresh child process. Before, the -j1 option + was ignored. -IDLE +- Issue #25285: Tools/buildbot/test.bat script now uses -j1 by default to run + each test file in fresh child process. + +Windows +------- + +- Issue #27064: The py.exe launcher now defaults to Python 3. + The Windows launcher ``py.exe`` no longer prefers an installed + Python 2 version over Python 3 by default when used interactively. + +Build +----- + +- Issue #27229: Fix the cross-compiling pgen rule for in-tree builds. Patch + by Xavier de Gaye. + +- Issue #26930: Update OS X 10.5+ 32-bit-only installer to build + and link with OpenSSL 1.0.2h. + +Misc ---- -- Issue #27365: Allow non-ascii in idlelib/NEWS.txt - minimal part for 3.5.2. +- Issue #17500, and https://github.com/python/pythondotorg/issues/945: Remove + unused and outdated icons. +C API +----- -What's New in Python 3.5.2 release candidate 1? -=============================================== +- Issue #27186: Add the PyOS_FSPath() function (part of PEP 519). + +- Issue #26282: PyArg_ParseTupleAndKeywords() now supports positional-only + parameters. + +Tools/Demos +----------- + +- Issue #26282: Argument Clinic now supports positional-only and keyword + parameters in the same function. + + +What's New in Python 3.6.0 alpha 1? +=================================== -Release date: 2016-06-12 +Release date: 2016-05-16 Core and Builtins ----------------- -- Issue #27066: Fixed SystemError if a custom opener (for open()) returns a - negative number without setting an exception. - - Issue #20041: Fixed TypeError when frame.f_trace is set to None. Patch by Xavier de Gaye. @@ -438,11 +1319,17 @@ Core and Builtins - Issue #26991: Fix possible refleak when creating a function with annotations. -- Issue #27039: Fixed bytearray.remove() for values greater than 127. Patch by - Joe Jevnik. +- Issue #27039: Fixed bytearray.remove() for values greater than 127. Based on + patch by Joe Jevnik. - Issue #23640: int.from_bytes() no longer bypasses constructors for subclasses. +- Issue #27005: Optimized the float.fromhex() class method for exact float. + It is now 2 times faster. + +- Issue #18531: Single var-keyword argument of dict subtype was passed + unscathed to the C-defined function. Now it is converted to exact dict. + - Issue #26811: gc.get_objects() no longer contains a broken tuple with NULL pointer. @@ -452,11 +1339,26 @@ Core and Builtins interpolation in .pypirc files, matching behavior in Python 2.7 and Setuptools 19.0. +- Issue #26249: Memory functions of the :c:func:`PyMem_Malloc` domain + (:c:data:`PYMEM_DOMAIN_MEM`) now use the :ref:`pymalloc allocator <pymalloc>` + rather than system :c:func:`malloc`. Applications calling + :c:func:`PyMem_Malloc` without holding the GIL can now crash: use + ``PYTHONMALLOC=debug`` environment variable to validate the usage of memory + allocators in your application. + +- Issue #26802: Optimize function calls only using unpacking like + ``func(*tuple)`` (no other positional argument, no keyword): avoid copying + the tuple. Patch written by Joe Jevnik. + - Issue #26659: Make the builtin slice type support cycle collection. - Issue #26718: super.__init__ no longer leaks memory if called multiple times. NOTE: A direct call of super.__init__ is not endorsed! +- Issue #27138: Fix the doc comment for FileFinder.find_spec(). + +- Issue #27147: Mention PEP 420 in the importlib docs. + - Issue #25339: PYTHONIOENCODING now has priority over locale in setting the error handler for stdin and stdout. @@ -465,9 +1367,41 @@ Core and Builtins bytearray, list, tuple, set, frozenset, dict, OrderedDict, corresponding views and os.scandir() iterator. +- Issue #26574: Optimize ``bytes.replace(b'', b'.')`` and + ``bytearray.replace(b'', b'.')``. Patch written by Josh Snider. + - Issue #26581: If coding cookie is specified multiple times on a line in Python source code file, only the first one is taken to account. +- Issue #19711: Add tests for reloading namespace packages. + +- Issue #21099: Switch applicable importlib tests to use PEP 451 API. + +- Issue #26563: Debug hooks on Python memory allocators now raise a fatal + error if functions of the :c:func:`PyMem_Malloc` family are called without + holding the GIL. + +- Issue #26564: On error, the debug hooks on Python memory allocators now use + the :mod:`tracemalloc` module to get the traceback where a memory block was + allocated. + +- Issue #26558: The debug hooks on Python memory allocator + :c:func:`PyObject_Malloc` now detect when functions are called without + holding the GIL. + +- Issue #26516: Add :envvar:`PYTHONMALLOC` environment variable to set the + Python memory allocators and/or install debug hooks. + +- Issue #26516: The :c:func:`PyMem_SetupDebugHooks` function can now also be + used on Python compiled in release mode. + +- Issue #26516: The :envvar:`PYTHONMALLOCSTATS` environment variable can now + also be used on Python compiled in release mode. It now has no effect if + set to an empty string. + +- Issue #26516: In debug mode, debug hooks are now also installed on Python + memory allocators when Python is configured without pymalloc. + - Issue #26464: Fix str.translate() when string is ASCII and first replacements removes character, but next replacement uses a non-ASCII character or a string longer than 1 character. Regression introduced in Python 3.5.0. @@ -480,11 +1414,37 @@ Core and Builtins - Issue #26302: Correct behavior to reject comma as a legal character for cookie names. +- Issue #26136: Upgrade the warning when a generator raises StopIteration + from PendingDeprecationWarning to DeprecationWarning. Patch by Anish + Shah. + +- Issue #26204: The compiler now ignores all constant statements: bytes, str, + int, float, complex, name constants (None, False, True), Ellipsis + and ast.Constant; not only str and int. For example, ``1.0`` is now ignored + in ``def f(): 1.0``. + - Issue #4806: Avoid masking the original TypeError exception when using star (*) unpacking in function calls. Based on patch by Hagen Fürstenau and Daniel Urban. -- Issue #27138: Fix the doc comment for FileFinder.find_spec(). +- Issue #26146: Add a new kind of AST node: ``ast.Constant``. It can be used + by external AST optimizers, but the compiler does not emit directly such + node. + +- Issue #23601: Sped-up allocation of dict key objects by using Python's + small object allocator. (Contributed by Julian Taylor.) + +- Issue #18018: Import raises ImportError instead of SystemError if a relative + import is attempted without a known parent package. + +- Issue #25843: When compiling code, don't merge constants if they are equal + but have a different types. For example, ``f1, f2 = lambda: 1, lambda: 1.0`` + is now correctly compiled to two different functions: ``f1()`` returns ``1`` + (``int``) and ``f2()`` returns ``1.0`` (``float``), even if ``1`` and ``1.0`` + are equal. + +- Issue #26107: The format of the ``co_lnotab`` attribute of code objects + changes to support negative line number delta. - Issue #26154: Add a new private _PyThreadState_UncheckedGet() function to get the current Python thread state, but don't issue a fatal error if it is NULL. @@ -493,15 +1453,8 @@ Core and Builtins Python 3.5.1 to hide the exact implementation of atomic C types, to avoid compiler issues. -- Issue #26194: Deque.insert() gave odd results for bounded deques that had - reached their maximum size. Now an IndexError will be raised when attempting - to insert into a full deque. - -- Issue #25843: When compiling code, don't merge constants if they are equal - but have a different types. For example, ``f1, f2 = lambda: 1, lambda: 1.0`` - is now correctly compiled to two different functions: ``f1()`` returns ``1`` - (``int``) and ``f2()`` returns ``1.0`` (``int``), even if ``1`` and ``1.0`` - are equal. +- Issue #25791: If __package__ != __spec__.parent or if neither __package__ or + __spec__ are defined then ImportWarning is raised. - Issue #22995: [UPDATE] Comment out the one of the pickleability tests in _PyObject_GetState() due to regressions observed in Cython-based projects. @@ -528,7 +1481,10 @@ Core and Builtins - Issue #25709: Fixed problem with in-place string concatenation and utf-8 cache. -- Issue #27147: Mention PEP 420 in the importlib docs. +- Issue #5319: New Py_FinalizeEx() API allowing Python to set an exit status + of 120 on failure to flush buffered streams. + +- Issue #25485: telnetlib.Telnet is now a context manager. - Issue #24097: Fixed crash in object.__reduce__() if slot name is freed inside __getattr__. @@ -537,80 +1493,107 @@ Core and Builtins __bytes__, __trunc__, and __float__ returning instances of subclasses of bytes, int, and float to subclasses of bytes, int, and float correspondingly. -- Issue #26478: Fix semantic bugs when using binary operators with dictionary - views and tuples. +- Issue #25630: Fix a possible segfault during argument parsing in functions + that accept filesystem paths. -- Issue #26171: Fix possible integer overflow and heap corruption in - zipimporter.get_data(). +- Issue #23564: Fixed a partially broken sanity check in the _posixsubprocess + internals regarding how fds_to_pass were passed to the child. The bug had + no actual impact as subprocess.py already avoided it. -- Issue #25660: Fix TAB key behaviour in REPL with readline. +- Issue #25388: Fixed tokenizer crash when processing undecodable source code + with a null byte. -- Issue #25887: Raise a RuntimeError when a coroutine object is awaited - more than once. +- Issue #25462: The hash of the key now is calculated only once in most + operations in C implementation of OrderedDict. -- Issue #27243: Update the __aiter__ protocol: instead of returning - an awaitable that resolves to an asynchronous iterator, the asynchronous - iterator should be returned directly. Doing the former will trigger a - PendingDeprecationWarning. +- Issue #22995: Default implementation of __reduce__ and __reduce_ex__ now + rejects builtin types with not defined __new__. +- Issue #24802: Avoid buffer overreads when int(), float(), compile(), exec() + and eval() are passed bytes-like objects. These objects are not + necessarily terminated by a null byte, but the functions assumed they were. -Library -------- +- Issue #25555: Fix parser and AST: fill lineno and col_offset of "arg" node + when compiling AST from Python objects. -- [Security] Issue #26556: Update expat to 2.1.1, fixes CVE-2015-1283. +- Issue #24726: Fixed a crash and leaking NULL in repr() of OrderedDict that + was mutated by direct calls of dict methods. -- [Security] Fix TLS stripping vulnerability in smtplib, CVE-2016-0772. - Reported by Team Oststrom +- Issue #25449: Iterating OrderedDict with keys with unstable hash now raises + KeyError in C implementations as well as in Python implementation. -- Issue #21386: Implement missing IPv4Address.is_global property. It was - documented since 07a5610bae9d. Initial patch by Roger Luethi. +- Issue #25395: Fixed crash when highly nested OrderedDict structures were + garbage collected. -- Issue #20900: distutils register command now decodes HTTP responses - correctly. Initial patch by ingrid. +- Issue #25401: Optimize bytes.fromhex() and bytearray.fromhex(): they are now + between 2x and 3.5x faster. -- A new version of typing.py provides several new classes and - features: @overload outside stubs, Reversible, DefaultDict, Text, - ContextManager, Type[], NewType(), TYPE_CHECKING, and numerous bug - fixes (note that some of the new features are not yet implemented in - mypy or other static analyzers). Also classes for PEP 492 - (Awaitable, AsyncIterable, AsyncIterator) have been added (in fact - they made it into 3.5.1 but were never mentioned). +- Issue #25399: Optimize bytearray % args using the new private _PyBytesWriter + API. Formatting is now between 2.5 and 5 times faster. -- Issue #25738: Stop http.server.BaseHTTPRequestHandler.send_error() from - sending a message body for 205 Reset Content. Also, don't send Content - header fields in responses that don't have a body. Patch by Susumu - Koshiba. +- Issue #25274: sys.setrecursionlimit() now raises a RecursionError if the new + recursion limit is too low depending at the current recursion depth. Modify + also the "lower-water mark" formula to make it monotonic. This mark is used + to decide when the overflowed flag of the thread state is reset. -- Issue #21313: Fix the "platform" module to tolerate when sys.version - contains truncated build information. +- Issue #24402: Fix input() to prompt to the redirected stdout when + sys.stdout.fileno() fails. -- [Security] Issue #26839: On Linux, :func:`os.urandom` now calls - ``getrandom()`` with ``GRND_NONBLOCK`` to fall back on reading - ``/dev/urandom`` if the urandom entropy pool is not initialized yet. Patch - written by Colm Buckley. +- Issue #25349: Optimize bytes % args using the new private _PyBytesWriter API. + Formatting is now up to 2 times faster. -- Issue #27164: In the zlib module, allow decompressing raw Deflate streams - with a predefined zdict. Based on patch by Xiang Zhang. +- Issue #24806: Prevent builtin types that are not allowed to be subclassed from + being subclassed through multiple inheritance. -- Issue #24291: Fix wsgiref.simple_server.WSGIRequestHandler to completely - write data to the client. Previously it could do partial writes and - truncate data. Also, wsgiref.handler.ServerHandler can now handle stdout - doing partial writes, but this is deprecated. +- Issue #25301: The UTF-8 decoder is now up to 15 times as fast for error + handlers: ``ignore``, ``replace`` and ``surrogateescape``. -- Issue #26809: Add ``__all__`` to :mod:`string`. Patch by Emanuel Barry. +- Issue #24848: Fixed a number of bugs in UTF-7 decoding of misformed data. -- Issue #26373: subprocess.Popen.communicate now correctly ignores - BrokenPipeError when the child process dies before .communicate() - is called in more/all circumstances. +- Issue #25267: The UTF-8 encoder is now up to 75 times as fast for error + handlers: ``ignore``, ``replace``, ``surrogateescape``, ``surrogatepass``. + Patch co-written with Serhiy Storchaka. -- Issue #21776: distutils.upload now correctly handles HTTPError. - Initial patch by Claudiu Popa. +- Issue #25280: Import trace messages emitted in verbose (-v) mode are no + longer formatted twice. -- Issue #27114: Fix SSLContext._load_windows_store_certs fails with - PermissionError +- Issue #25227: Optimize ASCII and latin1 encoders with the ``surrogateescape`` + error handler: the encoders are now up to 3 times as fast. Initial patch + written by Serhiy Storchaka. -- Issue #18383: Avoid creating duplicate filters when using filterwarnings - and simplefilter. Based on patch by Alex Shkop. +- Issue #25003: On Solaris 11.3 or newer, os.urandom() now uses the + getrandom() function instead of the getentropy() function. The getentropy() + function is blocking to generate very good quality entropy, os.urandom() + doesn't need such high-quality entropy. + +- Issue #9232: Modify Python's grammar to allow trailing commas in the + argument list of a function declaration. For example, "def f(\*, a = + 3,): pass" is now legal. Patch from Mark Dickinson. + +- Issue #24965: Implement PEP 498 "Literal String Interpolation". This + allows you to embed expressions inside f-strings, which are + converted to normal strings at run time. Given x=3, then + f'value={x}' == 'value=3'. Patch by Eric V. Smith. + +- Issue #26478: Fix semantic bugs when using binary operators with dictionary + views and tuples. + +- Issue #26171: Fix possible integer overflow and heap corruption in + zipimporter.get_data(). + +- Issue #25660: Fix TAB key behaviour in REPL with readline. + +- Issue #26288: Optimize PyLong_AsDouble. + +- Issues #26289 and #26315: Optimize floor and modulo division for + single-digit longs. Microbenchmarks show 2-2.5x improvement. Built-in + 'divmod' function is now also ~10% faster. + +- Issue #25887: Raise a RuntimeError when a coroutine object is awaited + more than once. + +Library +------- - Issue #27057: Fix os.set_inheritable() on Android, ioctl() is blocked by SELinux and fails with EACCESS. The function now falls back to fcntl(). @@ -618,6 +1601,9 @@ Library - Issue #27014: Fix infinite recursion using typing.py. Thanks to Kalle Tuure! +- Issue #27031: Removed dummy methods in Tkinter widget classes: tk_menuBar() + and tk_bindForTraversal(). + - Issue #14132: Fix urllib.request redirect handling when the target only has a query string. Original fix by Ján Janech. @@ -627,6 +1613,18 @@ Library to be ASCII-encodable, otherwise a UnicodeEncodeError is raised. Based on patch by Christian Heimes. +- Issue #27033: The default value of the decode_data parameter for + smtpd.SMTPChannel and smtpd.SMTPServer constructors is changed to False. + +- Issue #27034: Removed deprecated class asynchat.fifo. + +- Issue #26870: Added readline.set_auto_history(), which can stop entries + being automatically added to the history list. Based on patch by Tyler + Crompton. + +- Issue #26039: zipfile.ZipFile.open() can now be used to write data into a ZIP + file, as well as for extracting data. Patch by Thomas Kluyver. + - Issue #26892: Honor debuglevel flag in urllib.request.HTTPHandler. Patch contributed by Chi Hsuan Yen. @@ -641,6 +1639,14 @@ Library - Issue #26977: Removed unnecessary, and ignored, call to sum of squares helper in statistics.pvariance. +- Issue #26002: Use bisect in statistics.median instead of a linear search. + Patch by Upendra Kuma. + +- Issue #25974: Make use of new Decimal.as_integer_ratio() method in statistics + module. Patch by Stefan Krah. + +- Issue #26996: Add secrets module as described in PEP 506. + - Issue #26881: The modulefinder module now supports extended opcode arguments. - Issue #23815: Fixed crashes related to directly created instances of types in @@ -652,6 +1658,11 @@ Library - Issue #26873: xmlrpc now raises ResponseError on unsupported type tags instead of silently return incorrect result. +- Issue #26915: The __contains__ methods in the collections ABCs now check + for identity before checking equality. This better matches the behavior + of the concrete classes, allows sensible handling of NaNs, and makes it + easier to reason about container invariants. + - Issue #26711: Fixed the comparison of plistlib.Data with other types. - Issue #24114: Fix an uninitialized variable in `ctypes.util`. @@ -665,6 +1676,12 @@ Library names that happen to have a bypassed hostname as a suffix. Patch by Xiang Zhang. +- Issue #24902: Print server URL on http.server startup. Initial patch by + Felix Kaiser. + +- Issue #25788: fileinput.hook_encoded() now supports an "errors" argument + for passing to open. Original patch by Joseph Hackman. + - Issue #26634: recursive_repr() now sets __qualname__ of wrapper. Patch by Xiang Zhang. @@ -700,26 +1717,54 @@ Library - Issue #26717: Stop encoding Latin-1-ized WSGI paths with UTF-8. Patch by Anthony Sottile. +- Issue #26782: Add STARTUPINFO to subprocess.__all__ on Windows. + +- Issue #26404: Add context manager to socketserver. Patch by Aviv Palivoda. + - Issue #26735: Fix :func:`os.urandom` on Solaris 11.3 and newer when reading more than 1,024 bytes: call ``getrandom()`` multiple times with a limit of 1024 bytes per call. +- Issue #26585: Eliminate http.server._quote_html() and use + html.escape(quote=False). Patch by Xiang Zhang. + +- Issue #26685: Raise OSError if closing a socket fails. + - Issue #16329: Add .webm to mimetypes.types_map. Patch by Giampaolo Rodola'. - Issue #13952: Add .csv to mimetypes.types_map. Patch by Geoff Wilson. +- Issue #26587: the site module now allows .pth files to specify files to be + added to sys.path (e.g. zip files). + +- Issue #25609: Introduce contextlib.AbstractContextManager and + typing.ContextManager. + - Issue #26709: Fixed Y2038 problem in loading binary PLists. - Issue #23735: Handle terminal resizing with Readline 6.3+ by installing our own SIGWINCH handler. Patch by Eric Price. +- Issue #25951: Change SSLSocket.sendall() to return None, as explicitly + documented for plain socket objects. Patch by Aviv Palivoda. + - Issue #26586: In http.server, respond with "413 Request header fields too large" if there are too many header fields to parse, rather than killing the connection and raising an unhandled exception. Patch by Xiang Zhang. +- Issue #26676: Added missing XMLPullParser to ElementTree.__all__. + - Issue #22854: Change BufferedReader.writable() and BufferedWriter.readable() to always return False. +- Issue #26492: Exhausted iterator of array.array now conforms with the behavior + of iterators of other mutable sequences: it lefts exhausted even if iterated + array is extended. + +- Issue #26641: doctest.DocFileTest and doctest.testfile() now support + packages (module splitted into multiple directories) for the package + parameter. + - Issue #25195: Fix a regression in mock.MagicMock. _Call is a subclass of tuple (changeset 3603bae63c13 only works for classes) so we need to implement __ne__ ourselves. Patch by Andrew Plummer. @@ -732,16 +1777,45 @@ Library - Issue #26616: Fixed a bug in datetime.astimezone() method. -- Issue #21925: :func:`warnings.formatwarning` now catches exceptions on - ``linecache.getline(...)`` to be able to log :exc:`ResourceWarning` emitted - late during the Python shutdown process. +- Issue #26637: The :mod:`importlib` module now emits an :exc:`ImportError` + rather than a :exc:`TypeError` if :func:`__import__` is tried during the + Python shutdown process but :data:`sys.path` is already cleared (set to + ``None``). + +- Issue #21925: :func:`warnings.formatwarning` now catches exceptions when + calling :func:`linecache.getline` and + :func:`tracemalloc.get_object_traceback` to be able to log + :exc:`ResourceWarning` emitted late during the Python shutdown process. + +- Issue #23848: On Windows, faulthandler.enable() now also installs an + exception handler to dump the traceback of all Python threads on any Windows + exception, not only on UNIX signals (SIGSEGV, SIGFPE, SIGABRT). + +- Issue #26530: Add C functions :c:func:`_PyTraceMalloc_Track` and + :c:func:`_PyTraceMalloc_Untrack` to track memory blocks using the + :mod:`tracemalloc` module. Add :c:func:`_PyTraceMalloc_GetTraceback` to get + the traceback of an object. + +- Issue #26588: The _tracemalloc now supports tracing memory allocations of + multiple address spaces (domains). - Issue #24266: Ctrl+C during Readline history search now cancels the search mode when compiled with Readline 7. +- Issue #26590: Implement a safe finalizer for the _socket.socket type. It now + releases the GIL to close the socket. + +- Issue #18787: spwd.getspnam() now raises a PermissionError if the user + doesn't have privileges. + - Issue #26560: Avoid potential ValueError in BaseHandler.start_response. Initial patch by Peter Inglesby. +- Issue #26567: Add a new function :c:func:`PyErr_ResourceWarning` function to + pass the destroyed object. Add a *source* attribute to + :class:`warnings.WarningMessage`. Add warnings._showwarnmsg() which uses + tracemalloc to get the traceback where source object was allocated. + - [Security] Issue #26313: ssl.py _load_windows_store_certs fails if windows cert store is empty. Patch by Baji. @@ -763,24 +1837,39 @@ Library - Issue #23718: Fixed parsing time in week 0 before Jan 1. Original patch by Tamás Bence Gedai. +- Issue #26323: Add Mock.assert_called() and Mock.assert_called_once() + methods to unittest.mock. Patch written by Amit Saha. + - Issue #20589: Invoking Path.owner() and Path.group() on Windows now raise NotImplementedError instead of ImportError. - Issue #26177: Fixed the keys() method for Canvas and Scrollbar widgets. -- Issue #15068: Got rid of excessive buffering in the fileinput module. - The bufsize parameter is no longer used. +- Issue #15068: Got rid of excessive buffering in fileinput. + The bufsize parameter is now deprecated and ignored. + +- Issue #19475: Added an optional argument timespec to the datetime + isoformat() method to choose the precision of the time component. - Issue #2202: Fix UnboundLocalError in AbstractDigestAuthHandler.get_algorithm_impls. Initial patch by Mathieu Dupuy. +- Issue #26167: Minimized overhead in copy.copy() and copy.deepcopy(). + Optimized copying and deepcopying bytearrays, NotImplemented, slices, + short lists, tuples, dicts, sets. + - Issue #25718: Fixed pickling and copying the accumulate() iterator with total is None. - Issue #26475: Fixed debugging output for regular expressions with the (?x) flag. +- Issue #26482: Allowed pickling recursive dequeues. + +- Issue #26335: Make mmap.write() return the number of bytes written like + other write methods. Patch by Jakub Stasiak. + - Issue #26457: Fixed the subnets() methods in IP network classes for the case when resulting prefix length is equal to maximal prefix length. Based on patch by Xiang Zhang. @@ -797,7 +1886,7 @@ Library - Issue #26186: Remove an invalid type check in importlib.util.LazyLoader. -- Issue #26367: importlib.__import__() raises SystemError like +- Issue #26367: importlib.__import__() raises ImportError like builtins.__import__() when ``level`` is specified but without an accompanying package specified. @@ -805,19 +1894,39 @@ Library the connected socket) when verify_request() returns false. Patch by Aviv Palivoda. +- Issue #23430: Change the socketserver module to only catch exceptions + raised from a request handler that are derived from Exception (instead of + BaseException). Therefore SystemExit and KeyboardInterrupt no longer + trigger the handle_error() method, and will now to stop a single-threaded + server. + - [Security] Issue #25939: On Windows open the cert store readonly in ssl.enum_certificates. - Issue #25995: os.walk() no longer uses FDs proportional to the tree depth. +- Issue #25994: Added the close() method and the support of the context manager + protocol for the os.scandir() iterator. + +- Issue #23992: multiprocessing: make MapResult not fail-fast upon exception. + +- Issue #26243: Support keyword arguments to zlib.compress(). Patch by Aviv + Palivoda. + - Issue #26117: The os.scandir() iterator now closes file descriptor not only when the iteration is finished, but when it was failed with error. +- Issue #25949: __dict__ for an OrderedDict instance is now created only when + needed. + - Issue #25911: Restored support of bytes paths in os.walk() on Windows. - Issue #26045: Add UTF-8 suggestion to error message when posting a non-Latin-1 string with http.client. +- Issue #26039: Added zipfile.ZipInfo.from_file() and zipinfo.ZipInfo.is_dir(). + Patch by Thomas Kluyver. + - Issue #12923: Reset FancyURLopener's redirect counter even if there is an exception. Based on patches by Brian Brazil and Daniel Rocco. @@ -838,6 +1947,10 @@ Library gethostbyname_ex() functions of the socket module now decode the hostname from the ANSI code page rather than UTF-8. +- Issue #26099: The site module now writes an error into stderr if + sitecustomize module can be imported but executing the module raise an + ImportError. Same change for usercustomize. + - Issue #26147: xmlrpc now works with strings not encodable with used non-UTF-8 encoding. @@ -848,13 +1961,21 @@ Library - Issue #26013: Added compatibility with broken protocol 2 pickles created in old Python 3 versions (3.4.3 and lower). +- Issue #26129: Deprecated accepting non-integers in grp.getgrgid(). + - Issue #25850: Use cross-compilation by default for 64-bit Windows. -- Issue #17633: Improve zipimport's support for namespace packages. +- Issue #25822: Add docstrings to the fields of urllib.parse results. + Patch contributed by Swati Jaiswal. + +- Issue #22642: Convert trace module option parsing mechanism to argparse. + Patch contributed by SilentGhost. - Issue #24705: Fix sysconfig._parse_makefile not expanding ${} vars appearing before $() vars. +- Issue #26069: Remove the deprecated apis in the trace module. + - Issue #22138: Fix mock.patch behavior when patching descriptors. Restore original values after patching. Patch contributed by Sean McCully. @@ -867,13 +1988,28 @@ Library - Issue #24120: Ignore PermissionError when traversing a tree with pathlib.Path.[r]glob(). Patch by Ulrich Petri. +- Issue #21815: Accept ] characters in the data portion of imap responses, + in order to handle the flags with square brackets accepted and produced + by servers such as gmail. + - Issue #25447: fileinput now uses sys.stdin as-is if it does not have a buffer attribute (restores backward compatibility). +- Issue #25971: Optimized creating Fractions from floats by 2 times and from + Decimals by 3 times. + +- Issue #25802: Document as deprecated the remaining implementations of + importlib.abc.Loader.load_module(). + +- Issue #25928: Add Decimal.as_integer_ratio(). + - Issue #25447: Copying the lru_cache() wrapper object now always works, - independedly from the type of the wrapped object (by returning the original + independently from the type of the wrapped object (by returning the original object unchanged). +- Issue #25768: Have the functions in compileall return booleans instead of + ints and add proper documentation and tests for the return values. + - Issue #24103: Fixed possible use after free in ElementTree.XMLPullParser. - Issue #25860: os.fwalk() no longer skips remaining directories when error @@ -881,8 +2017,22 @@ Library - Issue #25914: Fixed and simplified OrderedDict.__sizeof__. +- Issue #25869: Optimized deepcopying ElementTree; it is now 20 times faster. + +- Issue #25873: Optimized iterating ElementTree. Iterating elements + Element.iter() is now 40% faster, iterating text Element.itertext() + is now up to 2.5 times faster. + - Issue #25902: Fixed various refcount issues in ElementTree iteration. +- Issue #22227: The TarFile iterator is reimplemented using generator. + This implementation is simpler that using class. + +- Issue #25638: Optimized ElementTree.iterparse(); it is now 2x faster. + Optimized ElementTree parsing; it is now 10% faster. + +- Issue #25761: Improved detecting errors in broken pickle data. + - Issue #25717: Restore the previous behaviour of tolerating most fstat() errors when opening files. This was a regression in 3.5a1, and stopped anonymous temporary files from working in special cases. @@ -894,6 +2044,9 @@ Library - Issue #25764: In the subprocess module, preserve any exception caused by fork() failure when preexec_fn is used. +- Issue #25771: Tweak the exception message for importlib.util.resolve_name() + when 'package' isn't specified but necessary. + - Issue #6478: _strptime's regexp cache now is reset after changing timezone with time.tzset(). @@ -915,6 +2068,9 @@ Library - Issue #10131: Fixed deep copying of minidom documents. Based on patch by Marian Ganisin. +- Issue #7990: dir() on ElementTree.Element now lists properties: "tag", + "text", "tail" and "attrib". Original patch by Santoso Wijaya. + - Issue #25725: Fixed a reference leak in pickle.loads() when unpickling invalid data including tuple instructions. @@ -930,6 +2086,203 @@ Library - Issue #25624: ZipFile now always writes a ZIP_STORED header for directory entries. Patch by Dingyuan Wang. +- Issue #25626: Change three zlib functions to accept sizes that fit in + Py_ssize_t, but internally cap those sizes to UINT_MAX. This resolves a + regression in 3.5 where GzipFile.read() failed to read chunks larger than 2 + or 4 GiB. The change affects the zlib.Decompress.decompress() max_length + parameter, the zlib.decompress() bufsize parameter, and the + zlib.Decompress.flush() length parameter. + +- Issue #25583: Avoid incorrect errors raised by os.makedirs(exist_ok=True) + when the OS gives priority to errors such as EACCES over EEXIST. + +- Issue #25593: Change semantics of EventLoop.stop() in asyncio. + +- Issue #6973: When we know a subprocess.Popen process has died, do + not allow the send_signal(), terminate(), or kill() methods to do + anything as they could potentially signal a different process. + +- Issue #23883: Added missing APIs to __all__ to match the documented APIs + for the following modules: calendar, csv, enum, fileinput, ftplib, logging, + optparse, tarfile, threading and wave. Also added a + test.support.check__all__() helper. Patches by Jacek Kołodziej, Mauro + S. M. Rodrigues and Joel Taddei. + +- Issue #25590: In the Readline completer, only call getattr() once per + attribute. Also complete names of attributes such as properties and slots + which are listed by dir() but not yet created on an instance. + +- Issue #25498: Fix a crash when garbage-collecting ctypes objects created + by wrapping a memoryview. This was a regression made in 3.5a1. Based + on patch by Eryksun. + +- Issue #25584: Added "escape" to the __all__ list in the glob module. + +- Issue #25584: Fixed recursive glob() with patterns starting with '\*\*'. + +- Issue #25446: Fix regression in smtplib's AUTH LOGIN support. + +- Issue #18010: Fix the pydoc web server's module search function to handle + exceptions from importing packages. + +- Issue #25554: Got rid of circular references in regular expression parsing. + +- Issue #18973: Command-line interface of the calendar module now uses argparse + instead of optparse. + +- Issue #25510: fileinput.FileInput.readline() now returns b'' instead of '' + at the end if the FileInput was opened with binary mode. + Patch by Ryosuke Ito. + +- Issue #25503: Fixed inspect.getdoc() for inherited docstrings of properties. + Original patch by John Mark Vandenberg. + +- Issue #25515: Always use os.urandom as a source of randomness in uuid.uuid4. + +- Issue #21827: Fixed textwrap.dedent() for the case when largest common + whitespace is a substring of smallest leading whitespace. + Based on patch by Robert Li. + +- Issue #25447: The lru_cache() wrapper objects now can be copied and pickled + (by returning the original object unchanged). + +- Issue #25390: typing: Don't crash on Union[str, Pattern]. + +- Issue #25441: asyncio: Raise error from drain() when socket is closed. + +- Issue #25410: Cleaned up and fixed minor bugs in C implementation of + OrderedDict. + +- Issue #25411: Improved Unicode support in SMTPHandler through better use of + the email package. Thanks to user simon04 for the patch. + +- Move the imp module from a PendingDeprecationWarning to DeprecationWarning. + +- Issue #25407: Remove mentions of the formatter module being removed in + Python 3.6. + +- Issue #25406: Fixed a bug in C implementation of OrderedDict.move_to_end() + that caused segmentation fault or hang in iterating after moving several + items to the start of ordered dict. + +- Issue #25382: pickletools.dis() now outputs implicit memo index for the + MEMOIZE opcode. + +- Issue #25357: Add an optional newline paramer to binascii.b2a_base64(). + base64.b64encode() uses it to avoid a memory copy. + +- Issue #24164: Objects that need calling ``__new__`` with keyword arguments, + can now be pickled using pickle protocols older than protocol version 4. + +- Issue #25364: zipfile now works in threads disabled builds. + +- Issue #25328: smtpd's SMTPChannel now correctly raises a ValueError if both + decode_data and enable_SMTPUTF8 are set to true. + +- Issue #16099: RobotFileParser now supports Crawl-delay and Request-rate + extensions. Patch by Nikolay Bogoychev. + +- Issue #25316: distutils raises OSError instead of DistutilsPlatformError + when MSVC is not installed. + +- Issue #25380: Fixed protocol for the STACK_GLOBAL opcode in + pickletools.opcodes. + +- Issue #23972: Updates asyncio datagram create method allowing reuseport + and reuseaddr socket options to be set prior to binding the socket. + Mirroring the existing asyncio create_server method the reuseaddr option + for datagram sockets defaults to True if the O/S is 'posix' (except if the + platform is Cygwin). Patch by Chris Laws. + +- Issue #25304: Add asyncio.run_coroutine_threadsafe(). This lets you + submit a coroutine to a loop from another thread, returning a + concurrent.futures.Future. By Vincent Michel. + +- Issue #25232: Fix CGIRequestHandler to split the query from the URL at the + first question mark (?) rather than the last. Patch from Xiang Zhang. + +- Issue #24657: Prevent CGIRequestHandler from collapsing slashes in the + query part of the URL as if it were a path. Patch from Xiang Zhang. + +- Issue #25287: Don't add crypt.METHOD_CRYPT to crypt.methods if it's not + supported. Check if it is supported, it may not be supported on OpenBSD for + example. + +- Issue #23600: Default implementation of tzinfo.fromutc() was returning + wrong results in some cases. + +- Issue #25203: Failed readline.set_completer_delims() no longer left the + module in inconsistent state. + +- Issue #25011: rlcompleter now omits private and special attribute names unless + the prefix starts with underscores. + +- Issue #25209: rlcompleter now can add a space or a colon after completed + keyword. + +- Issue #22241: timezone.utc name is now plain 'UTC', not 'UTC-00:00'. + +- Issue #23517: fromtimestamp() and utcfromtimestamp() methods of + datetime.datetime now round microseconds to nearest with ties going to + nearest even integer (ROUND_HALF_EVEN), as round(float), instead of rounding + towards -Infinity (ROUND_FLOOR). + +- Issue #23552: Timeit now warns when there is substantial (4x) variance + between best and worst times. Patch from Serhiy Storchaka. + +- Issue #24633: site-packages/README -> README.txt. + +- Issue #24879: help() and pydoc can now list named tuple fields in the + order they were defined rather than alphabetically. The ordering is + determined by the _fields attribute if present. + +- Issue #24874: Improve speed of itertools.cycle() and make its + pickle more compact. + +- Fix crash in itertools.cycle.__setstate__() when the first argument wasn't + a list. + +- Issue #20059: urllib.parse raises ValueError on all invalid ports. + Patch by Martin Panter. + +- Issue #24360: Improve __repr__ of argparse.Namespace() for invalid + identifiers. Patch by Matthias Bussonnier. + +- Issue #23426: run_setup was broken in distutils. + Patch from Alexander Belopolsky. + +- Issue #13938: 2to3 converts StringTypes to a tuple. Patch from Mark Hammond. + +- Issue #2091: open() accepted a 'U' mode string containing '+', but 'U' can + only be used with 'r'. Patch from Jeff Balogh and John O'Connor. + +- Issue #8585: improved tests for zipimporter2. Patch from Mark Lawrence. + +- Issue #18622: unittest.mock.mock_open().reset_mock would recurse infinitely. + Patch from Nicola Palumbo and Laurent De Buyst. + +- Issue #24426: Fast searching optimization in regular expressions now works + for patterns that starts with capturing groups. Fast searching optimization + now can't be disabled at compile time. + +- Issue #23661: unittest.mock side_effects can now be exceptions again. This + was a regression vs Python 3.4. Patch from Ignacio Rossi + +- Issue #13248: Remove deprecated inspect.getmoduleinfo function. + +- Issue #25578: Fix (another) memory leak in SSLSocket.getpeercer(). + +- Issue #25530: Disable the vulnerable SSLv3 protocol by default when creating + ssl.SSLContext. + +- Issue #25569: Fix memory leak in SSLSocket.getpeercert(). + +- Issue #25471: Sockets returned from accept() shouldn't appear to be + nonblocking. + +- Issue #25319: When threading.Event is reinitialized, the underlying condition + should use a regular lock rather than a recursive lock. + - Skip getaddrinfo if host is already resolved. Patch by A. Jesse Jiryu Davis. @@ -949,73 +2302,118 @@ Library - Issue #27041: asyncio: Add loop.create_future method -- Issue #27223: asyncio: Fix _read_ready and _write_ready to respect - _conn_lost. - Patch by Łukasz Langa. - -- Issue #22970: asyncio: Fix inconsistency cancelling Condition.wait. - Patch by David Coles. - IDLE ---- -- Issue #5124: Paste with text selected now replaces the selection on X11. - This matches how paste works on Windows, Mac, most modern Linux apps, - and ttk widgets. Original patch by Serhiy Storchaka. +- Issue #20640: Add tests for idlelib.configHelpSourceEdit. + Patch by Saimadhav Heblikar. -- Issue #24759: Make clear in idlelib.idle_test.__init__ that the directory - is a private implementation of test.test_idle and tool for maintainers. +- In the 'IDLE-console differences' section of the IDLE doc, clarify + how running with IDLE affects sys.modules and the standard streams. -- Issue #27196: Stop 'ThemeChanged' warnings when running IDLE tests. - These persisted after other warnings were suppressed in #20567. - Apply Serhiy Storchaka's update_idletasks solution to four test files. - Record this additional advice in idle_test/README.txt +- Issue #25507: fix incorrect change in IOBinding that prevented printing. + Augment IOBinding htest to include all major IOBinding functions. -- Issue #20567: Revise idle_test/README.txt with advice about avoiding - tk warning messages from tests. Apply advice to several IDLE tests. +- Issue #25905: Revert unwanted conversion of ' to ’ RIGHT SINGLE QUOTATION + MARK in README.txt and open this and NEWS.txt with 'ascii'. + Re-encode CREDITS.txt to utf-8 and open it with 'utf-8'. -- Issue #27117: Make colorizer htest and turtledemo work with dark themes. - Move code for configuring text widget colors to a new function. +- Issue #15348: Stop the debugger engine (normally in a user process) + before closing the debugger window (running in the IDLE process). + This prevents the RuntimeErrors that were being caught and ignored. -- Issue #26673: When tk reports font size as 0, change to size 10. - Such fonts on Linux prevented the configuration dialog from opening. +- Issue #24455: Prevent IDLE from hanging when a) closing the shell while the + debugger is active (15347); b) closing the debugger with the [X] button + (15348); and c) activating the debugger when already active (24455). + The patch by Mark Roseman does this by making two changes. + 1. Suspend and resume the gui.interaction method with the tcl vwait + mechanism intended for this purpose (instead of root.mainloop & .quit). + 2. In gui.run, allow any existing interaction to terminate first. -- Issue #21939: Add test for IDLE's percolator. - Original patch by Saimadhav Heblikar. +- Change 'The program' to 'Your program' in an IDLE 'kill program?' message + to make it clearer that the program referred to is the currently running + user program, not IDLE itself. -- Issue #21676: Add test for IDLE's replace dialog. - Original patch by Saimadhav Heblikar. +- Issue #24750: Improve the appearance of the IDLE editor window status bar. + Patch by Mark Roseman. -- Issue #18410: Add test for IDLE's search dialog. - Original patch by Westley Martínez. +- Issue #25313: Change the handling of new built-in text color themes to better + address the compatibility problem introduced by the addition of IDLE Dark. + Consistently use the revised idleConf.CurrentTheme everywhere in idlelib. -- Issue #21703: Add test for IDLE's undo delegator. - Original patch by Saimadhav Heblikar . +- Issue #24782: Extension configuration is now a tab in the IDLE Preferences + dialog rather than a separate dialog. The former tabs are now a sorted + list. Patch by Mark Roseman. -- Issue #27044: Add ConfigDialog.remove_var_callbacks to stop memory leaks. +- Issue #22726: Re-activate the config dialog help button with some content + about the other buttons and the new IDLE Dark theme. -- Issue #23977: Add more asserts to test_delegator. +- Issue #24820: IDLE now has an 'IDLE Dark' built-in text color theme. + It is more or less IDLE Classic inverted, with a cobalt blue background. + Strings, comments, keywords, ... are still green, red, orange, ... . + To use it with IDLEs released before November 2015, hit the + 'Save as New Custom Theme' button and enter a new name, + such as 'Custom Dark'. The custom theme will work with any IDLE + release, and can be modified. -- Issue #20640: Add tests for idlelib.configHelpSourceEdit. - Patch by Saimadhav Heblikar. +- Issue #25224: README.txt is now an idlelib index for IDLE developers and + curious users. The previous user content is now in the IDLE doc chapter. + 'IDLE' now means 'Integrated Development and Learning Environment'. -- In the 'IDLE-console differences' section of the IDLE doc, clarify - how running with IDLE affects sys.modules and the standard streams. +- Issue #24820: Users can now set breakpoint colors in + Settings -> Custom Highlighting. Original patch by Mark Roseman. -- Issue #25507: fix incorrect change in IOBinding that prevented printing. - Augment IOBinding htest to include all major IOBinding functions. +- Issue #24972: Inactive selection background now matches active selection + background, as configured by users, on all systems. Found items are now + always highlighted on Windows. Initial patch by Mark Roseman. -- Issue #25905: Revert unwanted conversion of ' to ’ RIGHT SINGLE QUOTATION - MARK in README.txt and open this and NEWS.txt with 'ascii'. - Re-encode CREDITS.txt to utf-8 and open it with 'utf-8'. +- Issue #24570: Idle: make calltip and completion boxes appear on Macs + affected by a tk regression. Initial patch by Mark Roseman. -Documentation -------------- +- Issue #24988: Idle ScrolledList context menus (used in debugger) + now work on Mac Aqua. Patch by Mark Roseman. -- Issue #19489: Moved the search box from the sidebar to the header and footer - of each page. Patch by Ammar Askar. +- Issue #24801: Make right-click for context menu work on Mac Aqua. + Patch by Mark Roseman. -- Issue #24136: Document the new PEP 448 unpacking syntax of 3.5. +- Issue #25173: Associate tkinter messageboxes with a specific widget. + For Mac OSX, make them a 'sheet'. Patch by Mark Roseman. + +- Issue #25198: Enhance the initial html viewer now used for Idle Help. + * Properly indent fixed-pitch text (patch by Mark Roseman). + * Give code snippet a very Sphinx-like light blueish-gray background. + * Re-use initial width and height set by users for shell and editor. + * When the Table of Contents (TOC) menu is used, put the section header + at the top of the screen. + +- Issue #25225: Condense and rewrite Idle doc section on text colors. + +- Issue #21995: Explain some differences between IDLE and console Python. + +- Issue #22820: Explain need for *print* when running file from Idle editor. + +- Issue #25224: Doc: augment Idle feature list and no-subprocess section. + +- Issue #25219: Update doc for Idle command line options. + Some were missing and notes were not correct. + +- Issue #24861: Most of idlelib is private and subject to change. + Use idleib.idle.* to start Idle. See idlelib.__init__.__doc__. + +- Issue #25199: Idle: add synchronization comments for future maintainers. + +- Issue #16893: Replace help.txt with help.html for Idle doc display. + The new idlelib/help.html is rstripped Doc/build/html/library/idle.html. + It looks better than help.txt and will better document Idle as released. + The tkinter html viewer that works for this file was written by Rose Roseman. + The now unused EditorWindow.HelpDialog class and helt.txt file are deprecated. + +- Issue #24199: Deprecate unused idlelib.idlever with possible removal in 3.6. + +- Issue #24790: Remove extraneous code (which also create 2 & 3 conflicts). + +Documentation +------------- - Issue #26736: Used HTTPS for external links in the documentation if possible. @@ -1025,8 +2423,8 @@ Documentation - Issue #23606: Adds note to ctypes documentation regarding cdll.msvcrt. -- Issue #25500: Fix documentation to not claim that __import__ is searched for - in the global scope. +- Issue #24952: Clarify the default size argument of stack_size() in + the "threading" and "_thread" modules. Patch from Mattip. - Issue #26014: Update 3.x packaging documentation: * "See also" links to the new docs are now provided in the legacy pages @@ -1038,6 +2436,9 @@ Tests - Issue #21916: Added tests for the turtle module. Patch by ingrid, Gregory Loyse and Jelle Zijlstra. +- Issue #26295: When using "python3 -m test --testdir=TESTDIR", regrtest + doesn't add "test." prefix to test module names. + - Issue #26523: The multiprocessing thread pool (multiprocessing.dummy.Pool) was untested. @@ -1046,31 +2447,50 @@ Tests - Issue #26325: Added test.support.check_no_resource_warning() to check that no ResourceWarning is emitted. -- Issue #25940: Changed test_ssl to use self-signed.pythontest.net. This +- Issue #25940: Changed test_ssl to use its internal local server more. This avoids relying on svn.python.org, which recently changed root certificate. - Issue #25616: Tests for OrderedDict are extracted from test_collections into separate file test_ordered_dict. +- Issue #25449: Added tests for OrderedDict subclasses. + +- Issue #25188: Add -P/--pgo to test.regrtest to suppress error output when + running the test suite for the purposes of a PGO build. Initial patch by + Alecsandru Patrascu. + +- Issue #22806: Add ``python -m test --list-tests`` command to list tests. + +- Issue #18174: ``python -m test --huntrleaks ...`` now also checks for leak of + file descriptors. Patch written by Richard Oudkerk. + +- Issue #25260: Fix ``python -m test --coverage`` on Windows. Remove the + list of ignored directories. + +- ``PCbuild\rt.bat`` now accepts an unlimited number of arguments to pass along + to regrtest.py. Previously there was a limit of 9. + - Issue #26583: Skip test_timestamp_overflow in test_import if bytecode files cannot be written. Build ----- +- Issue #21277: Don't try to link _ctypes with a ffi_convenience library. + - Issue #26884: Fix linking extension modules for cross builds. Patch by Xavier de Gaye. +- Issue #26932: Fixed support of RTLD_* constants defined as enum values, + not via macros (in particular on Android). Patch by Chi Hsuan Yen. + - Issue #22359: Disable the rules for running _freeze_importlib and pgen when cross-compiling. The output of these programs is normally saved with the source code anyway, and is still regenerated when doing a native build. Patch by Xavier de Gaye. -- Issue #27229: Fix the cross-compiling pgen rule for in-tree builds. Patch - by Xavier de Gaye. - - Issue #21668: Link audioop, _datetime, _ctypes_test modules to libm, - except on Mac OS X. Patch written by Xavier de Gaye. + except on Mac OS X. Patch written by Chi Hsuan Yen. - Issue #25702: A --with-lto configure option has been added that will enable link time optimizations at build time during a make profile-opt. @@ -1089,22 +2509,24 @@ Build - Issue #26465: Update Windows builds to use OpenSSL 1.0.2g. -- Issue #24421: Compile Modules/_math.c once, before building extensions. - Previously it could fail to compile properly if the math and cmath builds - were concurrent. - - Issue #25348: Added ``--pgo`` and ``--pgo-job`` arguments to ``PCbuild\build.bat`` for building with Profile-Guided Optimization. The - old ``PCbuild\build_pgo.bat`` script is now deprecated, and simply calls - ``PCbuild\build.bat --pgo %*``. + old ``PCbuild\build_pgo.bat`` script is removed. - Issue #25827: Add support for building with ICC to ``configure``, including a new ``--with-icc`` flag. - Issue #25696: Fix installation of Python on UNIX with make -j9. -- Issue #26930: Update OS X 10.5+ 32-bit-only installer to build - and link with OpenSSL 1.0.2h. +- Issue #24986: It is now possible to build Python on Windows without errors + when external libraries are not available. + +- Issue #24421: Compile Modules/_math.c once, before building extensions. + Previously it could fail to compile properly if the math and cmath builds + were concurrent. + +- Issue #26465: Update OS X 10.5+ 32-bit-only installer to build + and link with OpenSSL 1.0.2g. - Issue #26268: Update Windows builds to use OpenSSL 1.0.2f. @@ -1131,6 +2553,8 @@ Windows - Issue #26065: Excludes venv from library when generating embeddable distro. +- Issue #25022: Removed very outdated PC/example_nt/ directory. + Tools/Demos ----------- @@ -1147,11 +2571,21 @@ Tools/Demos - Issue #26316: Fix variable name typo in Argument Clinic. -Misc ----- +- Issue #25440: Fix output of python-config --extension-suffix. -- Issue #17500, and https://github.com/python/pythondotorg/issues/945: Remove - unused and outdated icons. +- Issue #25154: The pyvenv script has been deprecated in favour of + `python3 -m venv`. + +C API +----- + +- Issue #26312: SystemError is now raised in all programming bugs with using + PyArg_ParseTupleAndKeywords(). RuntimeError did raised before in some + programming bugs. + +- Issue #26198: ValueError is now raised instead of TypeError on buffer + overflow in parsing "es#" and "et#" format units. SystemError is now raised + instead of TypeError on programmical error in parsing format string. What's New in Python 3.5.1 final? @@ -1463,7 +2897,7 @@ Library - Issue #24774: Fix docstring in http.server.test. Patch from Chiu-Hsiang Hsu. - Issue #21159: Improve message in configparser.InterpolationMissingOptionError. - Patch from Łukasz Langa. + Patch from �?ukasz Langa. - Issue #20362: Honour TestCase.longMessage correctly in assertRegex. Patch from Ilia Kurenkov. @@ -1573,9 +3007,6 @@ IDLE Documentation ------------- -- Issue #22558: Add remaining doc links to source code for Python-coded modules. - Patch by Yoni Lavi. - - Issue #12067: Rewrite Comparisons section in the Expressions chapter of the language reference. Some of the details of comparing mixed types were incorrect or ambiguous. NotImplemented is only relevant at a lower level @@ -1905,12 +3336,6 @@ Library - Issue #24631: Fixed regression in the timeit module with multiline setup. -- Issue #18622: unittest.mock.mock_open().reset_mock would recurse infinitely. - Patch from Nicola Palumbo and Laurent De Buyst. - -- Issue #23661: unittest.mock side_effects can now be exceptions again. This - was a regression vs Python 3.4. Patch from Ignacio Rossi - - Issue #24608: chunk.Chunk.read() now always returns bytes, not str. - Issue #18684: Fixed reading out of the buffer in the re module. @@ -1921,6 +3346,9 @@ Library - Issue #15014: SMTP.auth() and SMTP.login() now support RFC 4954's optional initial-response argument to the SMTP AUTH command. +- Issue #6549: Remove hyphen from ttk.Style().element options. Only return result + from ttk.Style().configure if a result was generated or a query submitted. + - Issue #24669: Fix inspect.getsource() for 'async def' functions. Patch by Kai Groner. @@ -1932,7 +3360,6 @@ Build - Issue #24603: Update Windows builds and OS X 10.5 installer to use OpenSSL 1.0.2d. - What's New in Python 3.5.0 beta 3? ================================== @@ -2093,6 +3520,9 @@ Core and Builtins - Issue #24268: PEP 489: Multi-phase extension module initialization. Patch by Petr Viktorin. +- Issue #23359: Optimize set object internals by specializing the + hash table search into a lookup function and an insert function. + - Issue #23955: Add pyvenv.cfg option to suppress registry/environment lookup for generating sys.path on Windows. @@ -2213,8 +3643,8 @@ Library - Issue #1322: platform.dist() and platform.linux_distribution() functions are now deprecated. Initial patch by Vajrasky Kok. -- Issue #22486: Added the math.gcd() function. The fractions.gcd() function - now is deprecated. Based on patch by Mark Dickinson. +- Issue #22486: Added the math.gcd() function. The fractions.gcd() function now is + deprecated. Based on patch by Mark Dickinson. - Issue #24064: Property() docstrings are now writeable. (Patch by Berker Peksag.) @@ -2635,8 +4065,8 @@ Library writer failed in BufferedRWPair.close(). - Issue #23622: Unknown escapes in regular expressions that consist of ``'\'`` - and ASCII letter now raise a deprecation warning and will be forbidden in - Python 3.6. + and an ASCII letter now raise a deprecation warning and will be forbidden + in Python 3.6. - Issue #23671: string.Template now allows specifying the "self" parameter as a keyword argument. string.Formatter now allows specifying the "self" and @@ -3395,7 +4825,7 @@ Library Based on patch by Martin Panter. - Issue #17293: uuid.getnode() now determines MAC address on AIX using netstat. - Based on patch by Aivars Kalvāns. + Based on patch by Aivars Kalv�?ns. - Issue #22769: Fixed ttk.Treeview.tag_has() when called without arguments. @@ -5801,6 +7231,9 @@ Core and Builtins - Issue #19369: Optimized the usage of __length_hint__(). +- Issue #28026: Raise ImportError when exec_module() exists but + create_module() is missing. + - Issue #18603: Ensure that PyOS_mystricmp and PyOS_mystrnicmp are in the Python executable and not removed by the linker's optimizer. @@ -6688,6 +8121,9 @@ Library - Issue #16809: Tkinter's splitlist() and split() methods now accept Tcl_Obj argument. +- Issue #17211: Yield a namedtuple in pkgutil. + Patch by Ramchandra Apte. + - Issue #18324: set_payload now correctly handles binary input. This also supersedes the previous fixes for #14360, #1717, and #16564. @@ -6697,6 +8133,8 @@ Library - Issue #17119: Fixed integer overflows when processing large strings and tuples in the tkinter module. +- Issue #15352: Rebuild frozen modules when marshal.c is changed. + - Issue #18747: Re-seed OpenSSL's pseudo-random number generator after fork. A pthread_atfork() parent handler is used to seed the PRNG with pid, time and some stack data. @@ -6904,6 +8342,9 @@ Core and Builtins - Issue #18137: Detect integer overflow on precision in float.__format__() and complex.__format__(). +- Issue #15767: Introduce ModuleNotFoundError which is raised when a module + could not be found. + - Issue #18183: Fix various unicode operations on strings with large unicode codepoints. @@ -8824,6 +10265,10 @@ C-API PyImport_ExecCodeModuleWithPathnames() (and thus by extension PyImport_ExecCodeModule() and PyImport_ExecCodeModuleEx()). +- Issue #15767: Added PyErr_SetImportErrorSubclass(). + +- PyErr_SetImportError() now sets TypeError when its msg argument is set. + - Issue #9369: The types of `char*` arguments of PyObject_CallFunction() and PyObject_CallMethod() now changed to `const char*`. Based on patches by Jörg Müller and Lars Buitinck. |