From: Benjamin Peterson Date: Thu, 18 Feb 2016 06:18:20 +0000 (-0800) Subject: merge 3.4 (closes #25939) X-Git-Tag: v3.6.0a1~602^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1378f7ca68329e6eebdd1b47bcb7b86fca2aff24;p=python merge 3.4 (closes #25939) --- 1378f7ca68329e6eebdd1b47bcb7b86fca2aff24 diff --cc Misc/NEWS index 6446e7d520,f9ccc0458a..20be1177da --- a/Misc/NEWS +++ b/Misc/NEWS @@@ -64,102 -74,101 +64,104 @@@ Core and Builtin __bytes__, __trunc__, and __float__ returning instances of subclasses of bytes, int, and float to subclasses of bytes, int, and float correspondingly. -- Issue #25388: Fixed tokenizer crash when processing undecodable source code - with a null byte. +- Issue #26171: Fix possible integer overflow and heap corruption in + zipimporter.get_data(). -- Issue #22995: Default implementation of __reduce__ and __reduce_ex__ now - rejects builtin types with not defined __new__. +- Issue #25660: Fix TAB key behaviour in REPL with readline. -- 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. +- Issue #25887: Raise a RuntimeError when a coroutine object is awaited + more than once. -- Issue #24402: Fix input() to prompt to the redirected stdout when - sys.stdout.fileno() fails. -- Issue #24806: Prevent builtin types that are not allowed to be subclassed from - being subclassed through multiple inheritance. +Library +------- -- Issue #24848: Fixed a number of bugs in UTF-7 decoding of misformed data. ++- Issue #25939: On Windows open the cert store readonly in ssl.enum_certificates. + -- Issue #25280: Import trace messages emitted in verbose (-v) mode are no - longer formatted twice. +- Issue #25995: os.walk() no longer uses FDs proportional to the tree depth. -- Issue #25003: os.urandom() doesn't use getentropy() on Solaris because - getentropy() is blocking, whereas os.urandom() should not block. getentropy() - is supported since Solaris 11.3. +- 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 #25182: The stdprinter (used as sys.stderr before the io module is - imported at startup) now uses the backslashreplace error handler. +- Issue #25911: Restored support of bytes paths in os.walk() on Windows. -- Issue #24891: Fix a race condition at Python startup if the file descriptor - of stdin (0), stdout (1) or stderr (2) is closed while Python is creating - sys.stdin, sys.stdout and sys.stderr objects. These attributes are now set - to None if the creation of the object failed, instead of raising an OSError - exception. Initial patch written by Marco Paolini. +- Issue #26045: Add UTF-8 suggestion to error message when posting a + non-Latin-1 string with http.client. -- Issue #21167: NAN operations are now handled correctly when python is - compiled with ICC even if -fp-model strict is not specified. +- Issue #12923: Reset FancyURLopener's redirect counter even if there is an + exception. Based on patches by Brian Brazil and Daniel Rocco. -- Issue #4395: Better testing and documentation of binary operators. - Patch by Martin Panter. +- Issue #25945: Fixed a crash when unpickle the functools.partial object with + wrong state. Fixed a leak in failed functools.partial constructor. + "args" and "keywords" attributes of functools.partial have now always types + tuple and dict correspondingly. -- Issue #24467: Fixed possible buffer over-read in bytearray. The bytearray - object now always allocates place for trailing null byte and it's buffer now - is always null-terminated. +- Issue #26202: copy.deepcopy() now correctly copies range() objects with + non-atomic attributes. -- Issue #24115: Update uses of PyObject_IsTrue(), PyObject_Not(), - PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains() - to check for and handle errors correctly. +- Issue #23076: Path.glob() now raises a ValueError if it's called with an + invalid pattern. Patch by Thomas Nyberg. -- Issue #24257: Fixed system error in the comparison of faked - types.SimpleNamespace. +- Issue #19883: Fixed possible integer overflows in zipimport. -- Issue #22939: Fixed integer overflow in iterator object. Patch by - Clement Rouault. +- Issue #26227: On Windows, getnameinfo(), gethostbyaddr() and + gethostbyname_ex() functions of the socket module now decode the hostname + from the ANSI code page rather than UTF-8. -- Issue #23985: Fix a possible buffer overrun when deleting a slice from - the front of a bytearray and then appending some other bytes data. +- Issue #26147: xmlrpc now works with strings not encodable with used + non-UTF-8 encoding. -- Issue #24102: Fixed exception type checking in standard error handlers. +- Issue #25935: Garbage collector now breaks reference loops with OrderedDict. -- Issue #23757: PySequence_Tuple() incorrectly called the concrete list API - when the data was a list subclass. +- Issue #16620: Fixed AttributeError in msilib.Directory.glob(). -- Issue #24407: Fix crash when dict is mutated while being updated. +- Issue #26013: Added compatibility with broken protocol 2 pickles created + in old Python 3 versions (3.4.3 and lower). -- Issue #24096: Make warnings.warn_explicit more robust against mutation of the - warnings.filters list. +- Issue #25850: Use cross-compilation by default for 64-bit Windows. -- Issue #23996: Avoid a crash when a delegated generator raises an - unnormalized StopIteration exception. Patch by Stefan Behnel. +- Issue #17633: Improve zipimport's support for namespace packages. -- Issue #24022: Fix tokenizer crash when processing undecodable source code. +- Issue #24705: Fix sysconfig._parse_makefile not expanding ${} vars + appearing before $() vars. -- Issue #23309: Avoid a deadlock at shutdown if a daemon thread is aborted - while it is holding a lock to a buffered I/O object, and the main thread - tries to use the same I/O object (typically stdout or stderr). A fatal - error is emitted instead. +- Issue #22138: Fix mock.patch behavior when patching descriptors. Restore + original values after patching. Patch contributed by Sean McCully. -- Issue #22977: Fixed formatting Windows error messages on Wine. - Patch by Martin Panter. +- Issue #25672: In the ssl module, enable the SSL_MODE_RELEASE_BUFFERS mode + option if it is safe to do so. + +- Issue #22570: Add 'path' attribute to pathlib.Path objects, + returning the same as str(), to make it more similar to DirEntry. + Library code can now write getattr(p, 'path', p) to get the path as + a string from a Path, a DirEntry, or a plain string. This is + essentially a small one-off protocol. -- Issue #23803: Fixed str.partition() and str.rpartition() when a separator - is wider then partitioned string. +- Issue #26012: Don't traverse into symlinks for ** pattern in + pathlib.Path.[r]glob(). -- Issue #23192: Fixed generator lambdas. Patch by Bruno Cauet. +- Issue #24120: Ignore PermissionError when traversing a tree with + pathlib.Path.[r]glob(). Patch by Ulrich Petri. -- Issue #23629: Fix the default __sizeof__ implementation for variable-sized - objects. +- Issue #25447: fileinput now uses sys.stdin as-is if it does not have a + buffer attribute (restores backward compatibility). -- Issue #24044: Fix possible null pointer dereference in list.sort in out of - memory conditions. +- Issue #25447: Copying the lru_cache() wrapper object now always works, + independedly from the type of the wrapped object (by returning the original + object unchanged). -- Issue #21354: PyCFunction_New function is exposed by python DLL again. +- Issue #24103: Fixed possible use after free in ElementTree.XMLPullParser. -Library -------- +- Issue #25860: os.fwalk() no longer skips remaining directories when error + occurs. Original patch by Samson Lee. + +- Issue #25914: Fixed and simplified OrderedDict.__sizeof__. + +- Issue #25902: Fixed various refcount issues in ElementTree iteration. + +- 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. - Issue #24903: Fix regression in number of arguments compileall accepts when '-d' is specified. The check on the number of arguments has been dropped