From: Victor Stinner Date: Mon, 21 Nov 2016 15:39:01 +0000 (+0100) Subject: Merge 3.6 X-Git-Tag: v3.7.0a1~1920 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=065507f03a0b40ecf24da7498fd69b3274e6846a;p=python Merge 3.6 --- 065507f03a0b40ecf24da7498fd69b3274e6846a diff --cc Misc/NEWS index e5752e4746,ab846a6206..ddaae95bec --- a/Misc/NEWS +++ b/Misc/NEWS @@@ -35,123 -29,120 +35,128 @@@ Core and Builtin - Issue #28583: PyDict_SetDefault didn't combine split table when needed. Patch by Xiang Zhang. -- Issue #27243: Change PendingDeprecationWarning -> DeprecationWarning. - As it was agreed in the issue, __aiter__ returning an awaitable - should result in PendingDeprecationWarning in 3.5 and in - DeprecationWarning in 3.6. +- Issue #28128: Deprecation warning for invalid str and byte escape + sequences now prints better information about where the error + occurs. Patch by Serhiy Storchaka and Eric Smith. -- Issue #26182: Fix a refleak in code that raises DeprecationWarning. +- Issue #28509: dict.update() no longer allocate unnecessary large memory. -- Issue #28721: Fix asynchronous generators aclose() and athrow() to - handle StopAsyncIteration propagation properly. +- Issue #28426: Fixed potential crash in PyUnicode_AsDecodedObject() in debug + build. -Library -------- +- Issue #28517: Fixed of-by-one error in the peephole optimizer that caused + keeping unreachable code. -- Issue #28727: Regular expression patterns, _sre.SRE_Pattern objects created - by re.compile(), become comparable (only x==y and x!=y operators). This - change should fix the issue #18383: don't duplicate warning filters when the - warnings module is reloaded (thing usually only done in unit tests). +- Issue #28214: Improved exception reporting for problematic __set_name__ + attributes. -- Issue #20572: The subprocess.Popen.wait method's undocumented - endtime parameter now raises a DeprecationWarning. +- Issue #23782: Fixed possible memory leak in _PyTraceback_Add() and exception + loss in PyTraceBack_Here(). -- Issue #25659: In ctypes, prevent a crash calling the from_buffer() and - from_buffer_copy() methods on abstract classes like Array. +- Issue #28183: Optimize and cleanup dict iteration. -- Issue #19717: Makes Path.resolve() succeed on paths that do not exist. - Patch by Vajrasky Kok +- Issue #26081: Added C implementation of asyncio.Future. + Original patch by Yury Selivanov. -- Issue #28563: Fixed possible DoS and arbitrary code execution when handle - plural form selections in the gettext module. The expression parser now - supports exact syntax supported by GNU gettext. +- Issue #28379: Added sanity checks and tests for PyUnicode_CopyCharacters(). + Patch by Xiang Zhang. -- Issue #28387: Fixed possible crash in _io.TextIOWrapper deallocator when - the garbage collector is invoked in other thread. Based on patch by - Sebastian Cufre. +- Issue #28376: The type of long range iterator is now registered as Iterator. + Patch by Oren Milman. -- Issue #28600: Optimize loop.call_soon. +- Issue #28376: Creating instances of range_iterator by calling range_iterator + type now is disallowed. Calling iter() on range instance is the only way. + Patch by Oren Milman. -- Issue #28613: Fix get_event_loop() return the current loop if - called from coroutines/callbacks. +- Issue #26906: Resolving special methods of uninitialized type now causes + implicit initialization of the type instead of a fail. -- Issue #28634: Fix asyncio.isfuture() to support unittest.Mock. +- Issue #18287: PyType_Ready() now checks that tp_name is not NULL. + Original patch by Niklas Koep. -- Issue #26081: Fix refleak in _asyncio.Future.__iter__().throw. +- Issue #24098: Fixed possible crash when AST is changed in process of + compiling it. -- Issue #28639: Fix inspect.isawaitable to always return bool - Patch by Justin Mayfield. +- Issue #28201: Dict reduces possibility of 2nd conflict in hash table when + hashes have same lower bits. -- Issue #28652: Make loop methods reject socket kinds they do not support. +- Issue #28350: String constants with null character no longer interned. -- Issue #28653: Fix a refleak in functools.lru_cache. +- Issue #26617: Fix crash when GC runs during weakref callbacks. -- Issue #28703: Fix asyncio.iscoroutinefunction to handle Mock objects. +- Issue #27942: String constants now interned recursively in tuples and frozensets. -- Issue #28704: Fix create_unix_server to support Path-like objects - (PEP 519). +- Issue #28289: ImportError.__init__ now resets not specified attributes. -- Issue #28720: Add collections.abc.AsyncGenerator. +- Issue #21578: Fixed misleading error message when ImportError called with + invalid keyword args. -Documentation -------------- +- Issue #28203: Fix incorrect type in complex(1.0, {2:3}) error message. + Patch by Soumya Sharma. -- Issue #28513: Documented command-line interface of zipfile. +- Issue #28086: Single var-positional argument of tuple subtype was passed + unscathed to the C-defined function. Now it is converted to exact tuple. -Tests ------ +- Issue #28214: Now __set_name__ is looked up on the class instead of the + instance. -- Issue #28666: Now test.support.rmtree is able to remove unwritable or - unreadable directories. +- Issue #27955: Fallback on reading /dev/urandom device when the getrandom() + syscall fails with EPERM, for example when blocked by SECCOMP. -- Issue #23839: Various caches now are cleared before running every test file. +- Issue #28192: Don't import readline in isolated mode. -Build ------ +- Issue #27441: Remove some redundant assignments to ob_size in longobject.c. + Thanks Oren Milman. -- Issue #10656: Fix out-of-tree building on AIX. Patch by Tristan Carel and - Michael Haubenwallner. +- Issue #27222: Clean up redundant code in long_rshift function. Thanks + Oren Milman. -- Issue #26359: Rename --with-optimiations to --enable-optimizations. +- Upgrade internal unicode databases to Unicode version 9.0.0. -- Issue #28676: Prevent missing 'getentropy' declaration warning on macOS. - Patch by Gareth Rees. +- Issue #28131: Fix a regression in zipimport's compile_source(). zipimport + should use the same optimization level as the interpreter. +- Issue #28126: Replace Py_MEMCPY with memcpy(). Visual Studio can properly + optimize memcpy(). -What's New in Python 3.6.0 beta 3 -================================= +- 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. -*Release date: 2016-10-31* +- Issue #26182: Raise DeprecationWarning when async and await keywords are + used as variable/attribute/class/function name. -Core and Builtins ------------------ +- Issue #26182: Fix a refleak in code that raises DeprecationWarning. -- Issue #28128: Deprecation warning for invalid str and byte escape - sequences now prints better information about where the error - occurs. Patch by Serhiy Storchaka and Eric Smith. +- Issue #28721: Fix asynchronous generators aclose() and athrow() to + handle StopAsyncIteration propagation properly. -- Issue #28509: dict.update() no longer allocate unnecessary large memory. +Library +------- -- Issue #28426: Fixed potential crash in PyUnicode_AsDecodedObject() in debug - build. ++- Issue #28727: Regular expression patterns, _sre.SRE_Pattern objects created ++ by re.compile(), become comparable (only x==y and x!=y operators). This ++ change should fix the issue #18383: don't duplicate warning filters when the ++ warnings module is reloaded (thing usually only done in unit tests). + -- Issue #28517: Fixed of-by-one error in the peephole optimizer that caused - keeping unreachable code. +- Issue #20572: Remove the subprocess.Popen.wait endtime parameter. It was + deprecated in 3.4 and undocumented prior to that. -- Issue #28214: Improved exception reporting for problematic __set_name__ - attributes. +- Issue #25659: In ctypes, prevent a crash calling the from_buffer() and + from_buffer_copy() methods on abstract classes like Array. -- Issue #23782: Fixed possible memory leak in _PyTraceback_Add() and exception - loss in PyTraceBack_Here(). +- Issue #28548: In the "http.server" module, parse the protocol version if + possible, to avoid using HTTP 0.9 in some error responses. -- Issue #28471: Fix "Python memory allocator called without holding the GIL" - crash in socket.setblocking. +- Issue #19717: Makes Path.resolve() succeed on paths that do not exist. + Patch by Vajrasky Kok -Library -------- +- Issue #28563: Fixed possible DoS and arbitrary code execution when handle + plural form selections in the gettext module. The expression parser now + supports exact syntax supported by GNU gettext. + +- Issue #28387: Fixed possible crash in _io.TextIOWrapper deallocator when + the garbage collector is invoked in other thread. Based on patch by + Sebastian Cufre. - Issue #27517: LZMA compressor and decompressor no longer raise exceptions if given empty data twice. Patch by Benjamin Fogle.