From: Xavier de Gaye Date: Fri, 9 Dec 2016 08:35:49 +0000 (+0100) Subject: Issue #26937: Merge 3.6. X-Git-Tag: v3.7.0a1~1795 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ec80ba469393397eb8ff2f140e3fc76c944494be;p=python Issue #26937: Merge 3.6. --- ec80ba469393397eb8ff2f140e3fc76c944494be diff --cc Misc/NEWS index f992fabe42,ef0d96041f..bb120e545b --- a/Misc/NEWS +++ b/Misc/NEWS @@@ -70,153 -127,126 +70,157 @@@ 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 #26273: Add new :data:`socket.TCP_CONGESTION` (Linux 2.6.13) and - :data:`socket.TCP_USER_TIMEOUT` (Linux 2.6.37) constants. Patch written by - Omar Sandoval. +- Issue #28214: Improved exception reporting for problematic __set_name__ + attributes. -- Issue #28752: Restored the __reduce__() methods of datetime objects. +- Issue #23782: Fixed possible memory leak in _PyTraceback_Add() and exception + loss in PyTraceBack_Here(). -- 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 #28183: Optimize and cleanup dict iteration. -- Issue #20572: The subprocess.Popen.wait method's undocumented - endtime parameter now raises a DeprecationWarning. +- Issue #26081: Added C implementation of asyncio.Future. + Original patch by Yury Selivanov. -- Issue #25659: In ctypes, prevent a crash calling the from_buffer() and - from_buffer_copy() methods on abstract classes like Array. +- Issue #28379: Added sanity checks and tests for PyUnicode_CopyCharacters(). + Patch by Xiang Zhang. -- Issue #19717: Makes Path.resolve() succeed on paths that do not exist. - Patch by Vajrasky Kok +- Issue #28376: The type of long range iterator is now registered as Iterator. + Patch by Oren Milman. -- 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 #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 #28387: Fixed possible crash in _io.TextIOWrapper deallocator when - the garbage collector is invoked in other thread. Based on patch by - Sebastian Cufre. +- Issue #26906: Resolving special methods of uninitialized type now causes + implicit initialization of the type instead of a fail. + +- Issue #18287: PyType_Ready() now checks that tp_name is not NULL. + Original patch by Niklas Koep. + +- Issue #24098: Fixed possible crash when AST is changed in process of + compiling it. + +- Issue #28201: Dict reduces possibility of 2nd conflict in hash table when + hashes have same lower bits. + +- Issue #28350: String constants with null character no longer interned. -- Issue #28600: Optimize loop.call_soon. +- Issue #26617: Fix crash when GC runs during weakref callbacks. -- Issue #28613: Fix get_event_loop() return the current loop if - called from coroutines/callbacks. +- Issue #27942: String constants now interned recursively in tuples and frozensets. -- Issue #28634: Fix asyncio.isfuture() to support unittest.Mock. +- Issue #28289: ImportError.__init__ now resets not specified attributes. -- Issue #26081: Fix refleak in _asyncio.Future.__iter__().throw. +- Issue #21578: Fixed misleading error message when ImportError called with + invalid keyword args. -- Issue #28639: Fix inspect.isawaitable to always return bool - Patch by Justin Mayfield. +- Issue #28203: Fix incorrect type in complex(1.0, {2:3}) error message. + Patch by Soumya Sharma. -- Issue #28652: Make loop methods reject socket kinds they do not support. +- Issue #28086: Single var-positional argument of tuple subtype was passed + unscathed to the C-defined function. Now it is converted to exact tuple. -- Issue #28653: Fix a refleak in functools.lru_cache. +- Issue #28214: Now __set_name__ is looked up on the class instead of the + instance. -- Issue #28703: Fix asyncio.iscoroutinefunction to handle Mock objects. +- Issue #27955: Fallback on reading /dev/urandom device when the getrandom() + syscall fails with EPERM, for example when blocked by SECCOMP. -- Issue #28704: Fix create_unix_server to support Path-like objects - (PEP 519). +- Issue #28192: Don't import readline in isolated mode. -- Issue #28720: Add collections.abc.AsyncGenerator. +- Issue #27441: Remove some redundant assignments to ob_size in longobject.c. + Thanks Oren Milman. -Documentation -------------- +- Issue #27222: Clean up redundant code in long_rshift function. Thanks + Oren Milman. -- Issue #28513: Documented command-line interface of zipfile. +- Upgrade internal unicode databases to Unicode version 9.0.0. -Tests ------ +- Issue #28131: Fix a regression in zipimport's compile_source(). zipimport + should use the same optimization level as the interpreter. -- Issue #28666: Now test.support.rmtree is able to remove unwritable or - unreadable directories. +- Issue #28126: Replace Py_MEMCPY with memcpy(). Visual Studio can properly + optimize memcpy(). -- Issue #23839: Various caches now are cleared before running every test file. +- 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. -Build ------ +- Issue #26182: Raise DeprecationWarning when async and await keywords are + used as variable/attribute/class/function name. -- Issue #10656: Fix out-of-tree building on AIX. Patch by Tristan Carel and - Michael Haubenwallner. +- Issue #26182: Fix a refleak in code that raises DeprecationWarning. -- Issue #26359: Rename --with-optimiations to --enable-optimizations. +- Issue #28721: Fix asynchronous generators aclose() and athrow() to + handle StopAsyncIteration propagation properly. -- Issue #28676: Prevent missing 'getentropy' declaration warning on macOS. - Patch by Gareth Rees. +Library +------- ++- Issue #26937: The chown() method of the tarfile.TarFile class does not fail ++ now when the grp module cannot be imported, as for example on Android ++ platforms. + -What's New in Python 3.6.0 beta 3 -================================= +- Issue #28847: dbm.dumb now supports reading read-only files and no longer + writes the index file when it is not changed. A deprecation warning is now + emitted if the index file is missed and recreated in the 'r' and 'w' modes + (will be an error in future Python releases). -*Release date: 2016-10-31* +- Issue #27030: Unknown escapes consisting of ``'\'`` and an ASCII letter in + re.sub() replacement templates regular expressions now are errors. -Core and Builtins ------------------ +- Issue #28835: Fix a regression introduced in warnings.catch_warnings(): + call warnings.showwarning() if it was overriden inside the context manager. -- 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 #27172: To assist with upgrades from 2.7, the previously documented + deprecation of ``inspect.getfullargspec()`` has been reversed. This decision + may be revisited again after the Python 2.7 branch is no longer officially + supported. -- Issue #28509: dict.update() no longer allocate unnecessary large memory. +- Issue #28740: Add sys.getandroidapilevel(): return the build time API version + of Android as an integer. Function only available on Android. -- Issue #28426: Fixed potential crash in PyUnicode_AsDecodedObject() in debug - build. +- Issue #26273: Add new :data:`socket.TCP_CONGESTION` (Linux 2.6.13) and + :data:`socket.TCP_USER_TIMEOUT` (Linux 2.6.37) constants. Patch written by + Omar Sandoval. -- Issue #28517: Fixed of-by-one error in the peephole optimizer that caused - keeping unreachable code. +- Issue #28752: Restored the __reduce__() methods of datetime objects. -- Issue #28214: Improved exception reporting for problematic __set_name__ - attributes. +- 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 #23782: Fixed possible memory leak in _PyTraceback_Add() and exception - loss in PyTraceBack_Here(). +- Issue #20572: Remove the subprocess.Popen.wait endtime parameter. It was + deprecated in 3.4 and undocumented prior to that. -- Issue #28471: Fix "Python memory allocator called without holding the GIL" - crash in socket.setblocking. +- Issue #25659: In ctypes, prevent a crash calling the from_buffer() and + from_buffer_copy() methods on abstract classes like Array. -Library -------- +- Issue #28548: In the "http.server" module, parse the protocol version if + possible, to avoid using HTTP 0.9 in some error responses. + +- Issue #19717: Makes Path.resolve() succeed on paths that do not exist. + Patch by Vajrasky Kok + +- 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.