diff options
Diffstat (limited to 'Misc')
-rw-r--r-- | Misc/ACKS | 30 | ||||
-rw-r--r-- | Misc/HISTORY | 20 | ||||
-rw-r--r-- | Misc/NEWS | 1694 | ||||
-rw-r--r-- | Misc/README.valgrind | 3 | ||||
-rw-r--r-- | Misc/SpecialBuilds.txt | 8 | ||||
-rw-r--r-- | Misc/coverity_model.c | 5 |
6 files changed, 1506 insertions, 254 deletions
@@ -154,6 +154,7 @@ Finn Bock Paul Boddie Matthew Boedicker Robin Boerdijk +Nikolay Bogoychev David Bolen Wouter Bolsterlee Gawain Bolton @@ -240,6 +241,7 @@ Octavian Cerna Michael Cetrulo Dave Chambers Pascal Chambon +Nicholas Chammas John Chandler Hye-Shik Chang Jeffrey Chang @@ -304,15 +306,18 @@ Greg Couch David Cournapeau Julien Courteau Steve Cousins +Francisco Couzo Alex Coventry Matthew Dixon Cowles Ryan Coyner Christopher A. Craig Jeremy Craven Laura Creighton +Tyler Crompton Simon Cross Felipe Cruz Drew Csillag +Alessandro Cucci Joaquin Cuenca Abela John Cugini Tom Culliton @@ -356,6 +361,7 @@ Humberto Diogenes Yves Dionne Daniel Dittmar Josip Djolonga +Walter Dörwald Jaromir Dolecek Ismail Donmez Robert Donohue @@ -383,7 +389,6 @@ Eugene Dvurechenski Karmen Dykstra Josip Dzolonga Maxim Dzumanenko -Walter Dörwald Hans Eckardt Rodolpho Eckhardt Ulrich Eckhardt @@ -541,6 +546,7 @@ Michael Guravage Lars Gustäbel Thomas Güttler Jonas H. +Joseph Hackman Barry Haddow Philipp Hagemeister Paul ten Hagen @@ -778,6 +784,7 @@ Damon Kohler Marko Kohtala Vajrasky Kok Guido Kollerie +Jacek Kołodziej Jacek Konieczny Arkady Koplyarov Peter A. Koren @@ -789,6 +796,7 @@ Daniel Kozan Jerzy Kozera Maksim Kozyarchuk Stefan Krah +Rolf Krahl Bob Kras Sebastian Kreft Holger Krekel @@ -821,6 +829,7 @@ Torsten Landschoff Tino Lange Glenn Langford Andrew Langmead +Wolfgang Langner Detlef Lannert Soren Larsen Amos Latteier @@ -882,24 +891,27 @@ Eric Lindvall Gregor Lingl Everett Lipman Mirko Liss +Alexander Liu Nick Lockwood Stephanie Lockwood +Martin von Löwis Hugo Lopes Tavares Guillermo López-Anglada Anne Lord +Alex LordThorsen Tom Loredo Justin Love Ned Jackson Lovely Peter Lovett Chalmer Lowe Jason Lowe -Martin von Löwis Tony Lownds Ray Loyzaga Kang-Hao (Kenny) Lu Lukas Lueg Loren Luke Fredrik Lundh +Mike Lundy Zhongyue Luo Mark Lutz Taras Lyapun @@ -990,6 +1002,7 @@ Damien Miller Jason V. Miller Jay T. Miller Katie Miller +Oren Milman Roman Milner Julien Miotte Andrii V. Mishkovskyi @@ -1139,9 +1152,11 @@ Ronny Pfannschmidt Geoff Philbrick Gavrie Philipson Adrian Phillips +Dusty Phillips Christopher J. Phoenix James Pickering Neale Pickett +Steve Piercy Jim St. Pierre Dan Pierson Martijn Pieters @@ -1192,6 +1207,7 @@ Shorya Raj Jeff Ramnani Varpu Rantala Brodie Rao +Rémi Rampin Senko Rasic Antti Rasinen Nikolaus Rath @@ -1242,6 +1258,7 @@ Mark Roddy Kevin Rodgers Sean Rodman Giampaolo Rodola +Mauro S. M. Rodrigues Elson Rodriguez Adi Roiban Luis Rojas @@ -1284,6 +1301,7 @@ Bernt Røskar Brenna Constantina S. Patrick Sabin Sébastien Sablé +Amit Saha Suman Saha Hajime Saitou George Sakkis @@ -1390,6 +1408,7 @@ Mark Smith Roy Smith Ryan Smith-Roberts Rafal Smotrzyk +Josh Snider Eric Snow Dirk Soede Nir Soffer @@ -1417,11 +1436,13 @@ Greg Stein Marek Stepniowski Baruch Sterin Chris Stern +Eli Stevens Alex Stewart Victor Stinner Richard Stoakley Peter Stoehr Casper Stoel +Daniel Stokes Michael Stone Serhiy Storchaka Ken Stox @@ -1446,6 +1467,7 @@ Péter Szabó John Szakmeister Amir Szekely Maciej Szulik +Joel Taddei Arfrever Frehtes Taifersar Arahesis Hideaki Takahashi Takase Arihiro @@ -1457,8 +1479,10 @@ William Tanksley Christian Tanzer Steven Taschuk Amy Taylor +Julian Taylor Monty Taylor Anatoly Techtonik +Martin Teichmann Gustavo Temple Mikhail Terekhov Victor Terrón @@ -1639,6 +1663,7 @@ Arnon Yaari Alakshendra Yadav Hirokazu Yamamoto Ka-Ping Yee +Chi Hsuan Yen Jason Yeo EungJun Yi Bob Yodlowski @@ -1667,4 +1692,3 @@ Gennadiy Zlobin Doug Zongker Peter Åstrand evilzero -Chi Hsuan Yen diff --git a/Misc/HISTORY b/Misc/HISTORY index 98e9041..5995d3a 100644 --- a/Misc/HISTORY +++ b/Misc/HISTORY @@ -1131,7 +1131,7 @@ Library and http.client. Patch by EungJun Yi. - Issue #14777: tkinter may return undecoded UTF-8 bytes as a string when - accessing the Tk clipboard. Modify clipboad_get() to first request type + accessing the Tk clipboard. Modify clipboard_get() to first request type UTF8_STRING when no specific type is requested in an X11 windowing environment, falling back to the current default type STRING if that fails. Original patch by Thomas Kluyver. @@ -5693,7 +5693,7 @@ Library for reading). - hashlib has two new constant attributes: algorithms_guaranteed and - algorithms_avaiable that respectively list the names of hash algorithms + algorithms_available that respectively list the names of hash algorithms guaranteed to exist in all Python implementations and the names of hash algorithms available in the current process. @@ -7344,7 +7344,7 @@ Library - Issue #2846: Add support for gzip.GzipFile reading zero-padded files. Patch by Brian Curtin. -- Issue #7681: Use floor division in appropiate places in the wave module. +- Issue #7681: Use floor division in appropriate places in the wave module. - Issue #5372: Drop the reuse of .o files in Distutils' ccompiler (since Extension extra options may change the output without changing the .c @@ -10921,7 +10921,7 @@ Platforms - Support for BeOS and AtheOS was removed (according to PEP 11). -- Support for RiscOS, Irix, Tru64 was removed (alledgedly). +- Support for RiscOS, Irix, Tru64 was removed (allegedly). Tools/Demos ----------- @@ -12912,7 +12912,7 @@ Library - Bug #947906: An object oriented interface has been added to the calendar module. It's possible to generate HTML calendar now and the module can be called as a script (e.g. via ``python -mcalendar``). Localized month and - weekday names can be ouput (even if an exotic encoding is used) using + weekday names can be output (even if an exotic encoding is used) using special classes that use unicode. Build @@ -13295,7 +13295,7 @@ Library ``True`` for ``!=``, and raises ``TypeError`` for other comparison operators. Because datetime is a subclass of date, comparing only the base class (date) members can still be done, if that's desired, by - forcing using of the approprate date method; e.g., + forcing using of the appropriate date method; e.g., ``a_date.__eq__(a_datetime)`` is true if and only if the year, month and day members of ``a_date`` and ``a_datetime`` are equal. @@ -23770,7 +23770,7 @@ Netscape on Windows/Mac). - copy.py: Make sure the objects returned by __getinitargs__() are kept alive (in the memo) to avoid a certain kind of nasty crash. (Not -easily reproducable because it requires a later call to +easily reproducible because it requires a later call to __getinitargs__() to return a tuple that happens to be allocated at the same address.) @@ -27402,7 +27402,7 @@ bullet-proof, after reports of (minor) trouble on certain platforms. There is now a script to patch Makefile and config.c to add a new optional built-in module: Addmodule.sh. Read the script before using! -Useing Addmodule.sh, all optional modules can now be configured at +Using Addmodule.sh, all optional modules can now be configured at compile time using Configure.py, so there are no modules left that require dynamic loading. @@ -27833,9 +27833,9 @@ SOCKET: symbolic constant definitions for socket options SUNAUDIODEV: symbolic constant definitions for sunaudiodef (sun only) -SV: symbolic constat definitions for sv (sgi only) +SV: symbolic constant definitions for sv (sgi only) -CD: symbolic constat definitions for cd (sgi only) +CD: symbolic constant definitions for cd (sgi only) New demos @@ -2,16 +2,47 @@ Python News +++++++++++ -What's New in Python 3.5.3 release candidate 1? -=============================================== +What's New in Python 3.6.0 beta 1 +================================= -Release date: TBA +*Release date: XXXX-XX-XX* Core and Builtins ----------------- - Issue #26307: The profile-opt build now applys PGO to the built-in modules. +- 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. + +- Issue #27921: Disallow backslashes in f-strings. This is a temporary + restriction: in beta 2, backslashes will only be disallowed inside + the braces (where the expressions are). This is a breaking change + from the 3.6 alpha releases. + +- Implement the frame evaluation part of 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(). @@ -22,6 +53,22 @@ Core and Builtins after use of 'def' in _PyState_AddModule(). Initial patch by Christian Heimes. +- 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 of non-module types returned from ``Py_create_mod``. Patch by Xiang Zhang. @@ -34,36 +81,37 @@ 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. +Library +------- -- Issue #27083: Respect the PYTHONCASEOK environment variable under Windows. +- 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 #27514: Make having too many statically nested blocks a SyntaxError - instead of SystemError. +- Issue #27778: Expose the Linux ``getrandom()`` syscall as a new + :func:`os.getrandom` function. This change is part of the :pep:`524`. -- Issue #27473: Fixed possible integer overflow in bytes and bytearray - concatenations. Patch by Xiang Zhang. +- Issue #27691: Fix ssl module's parsing of GEN_RID subject alternative name + fields in X.509 certs. -- Issue #27507: Add integer overflow check in bytearray.extend(). Patch by - Xiang Zhang. +- 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 #27581: Don't rely on wrapping for overflow check in - PySequence_Tuple(). Patch by Xiang Zhang. - -- Issue #27443: __length_hint__() of bytearray iterators no longer return a - negative integer for a resized bytearray. +- Issue #26798: Add BLAKE2 (blake2b and blake2s) to hashlib. -Library -------- +- Issue #25596: Optimized glob() and iglob() functions in the + glob module; they are now about 3--6 times faster. -- Issue #27691: Fix ssl module's parsing of GEN_RID subject alternative name - fields in X.509 certs. +- 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). @@ -71,8 +119,31 @@ Library - 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. @@ -94,25 +165,194 @@ 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. + +C API +----- + +- Issue #26027: Add support for path-like objects in PyUnicode_FSConverter(). + +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 #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. + +Windows +------- + +- 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. @@ -131,6 +371,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 @@ -138,6 +381,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. @@ -145,6 +397,113 @@ 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. @@ -155,22 +514,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 #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 #26243: Only the level argument to zlib.compress() is keyword argument + now. The first argument is positional-only. -- 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 #27038: Expose the DirEntry type as os.DirEntry. Code patch by + Jelle Zijlstra. + +- 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 @@ -189,9 +580,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(). @@ -199,43 +596,69 @@ 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. 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 #27477: IDLE search dialogs now use ttk widgets. -- 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: make command line "idle-test> python test_help.py" work. + __file__ is relative when python is started in the file's directory. - Issue #27452: add line counter and crc to IDLE configHandler test dump. +- 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 #27372: Test_idle no longer changes the locale. + - Issue #27365: Allow non-ascii chars in IDLE NEWS.txt, for contributor names. - Issue #27245: IDLE: Cleanly delete custom themes and key bindings. 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 #27442: Expose the Android API level that python was built against, in + sysconfig.get_config_vars() as 'ANDROID_API_LEVEL'. -- Issue #27369: In test_pyexpat, avoid testing an error message detail that - changed in Expat 2.2.0. +- 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 ----------- @@ -245,71 +668,322 @@ Tools/Demos - Issue #27418: Fixed Tools/importbench/importbench.py. -Windows +Documentation +------------- + +- 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 #27469: Adds a shell extension to the launcher so that drag and drop - works correctly. +- 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 #27309: Enabled proper Windows styles in python[w].exe manifest. +- Issue #25455: Fixed crashes in repr of recursive ElementTree.Element and + functools.partial objects. -Build ------ +- Issue #27294: Improved repr for Tkinter event objects. -- Issue #27713: Suppress spurious build warnings when updating importlib's - bootstrap files. Patch by Xiang Zhang +- Issue #20508: Improve exception message of IPv{4,6}Network.__getitem__. + Patch by Gareth Rees. -- 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. +- [Security] Issue #26556: Update expat to 2.1.1, fixes CVE-2015-1283. -- Issue #27453: CPP invocation in configure must use CPPFLAGS. Patch by - Chi Hsuan Yen. +- [Security] Fix TLS stripping vulnerability in smtplib, CVE-2016-0772. + Reported by Team Oststrom. -- Issue #27641: The configure script now inserts comments into the makefile - to prevent the pgen and _freeze_importlib executables from being cross- - compiled. +- Issue #21386: Implement missing IPv4Address.is_global property. It was + documented since 07a5610bae9d. Initial patch by Roger Luethi. -- Issue #26662: Set PYTHON_FOR_GEN in configure as the Python program to be - used for file generation during the build. +- Issue #27029: Removed deprecated support of universal newlines mode from + ZipFile.open(). -- Issue #10910: Avoid C++ compilation errors on FreeBSD and OS X. - Also update FreedBSD version checks for the original ctype UTF-8 workaround. +- 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 #27186: Add os.PathLike support to DirEntry (part of PEP 519). + Initial patch by Jelle Zijlstra. -What's New in Python 3.5.2? -=========================== +- Issue #20900: distutils register command now decodes HTTP responses + correctly. Initial patch by ingrid. -Release date: 2016-06-26 +- Issue #27186: Add os.PathLike support to pathlib, removing its provisional + status (part of PEP 519). Initial patch by Dusty Phillips. -Core and Builtins ------------------ +- Issue #27186: Add support for os.PathLike objects to os.fsencode() and + os.fsdecode() (part of PEP 519). -- Issue #26930: Update Windows builds to use OpenSSL 1.0.2h. +- Issue #27186: Introduce os.PathLike and os.fspath() (part of PEP 519). + +- 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 #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 #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. + +- Issue #27164: In the zlib module, allow decompressing raw Deflate streams + with a predefined zdict. Based on patch by Xiang Zhang. + +- 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 #21272: Use _sysconfigdata.py to initialize distutils.sysconfig. + +- 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. @@ -318,11 +992,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. @@ -332,11 +1012,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. @@ -345,9 +1040,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. @@ -360,11 +1087,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. @@ -373,15 +1126,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. @@ -408,7 +1154,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__. @@ -417,80 +1166,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(). @@ -498,6 +1274,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. @@ -507,6 +1286,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. @@ -521,6 +1312,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 @@ -532,6 +1331,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`. @@ -545,6 +1349,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. @@ -580,26 +1390,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. @@ -612,16 +1450,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. @@ -643,24 +1510,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. @@ -677,7 +1559,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. @@ -685,19 +1567,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. @@ -718,6 +1620,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. @@ -728,13 +1634,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. @@ -747,13 +1661,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 @@ -761,8 +1690,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. @@ -774,6 +1717,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(). @@ -795,6 +1741,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. @@ -810,6 +1759,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. @@ -829,71 +1975,119 @@ 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. + +- Issue #24988: Idle ScrolledList context menus (used in debugger) + now work on Mac Aqua. Patch by Mark Roseman. + +- Issue #24801: Make right-click for context menu work on Mac Aqua. + Patch by Mark Roseman. + +- 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 #24136: Document the new PEP 448 unpacking syntax of 3.5. - - Issue #26736: Used HTTPS for external links in the documentation if possible. - Issue #6953: Rework the Readline module documentation to group related @@ -902,8 +2096,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 @@ -915,6 +2109,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. @@ -923,31 +2120,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. @@ -966,22 +2182,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. @@ -1008,6 +2226,8 @@ Windows - Issue #26065: Excludes venv from library when generating embeddable distro. +- Issue #25022: Removed very outdated PC/example_nt/ directory. + Tools/Demos ----------- @@ -1024,11 +2244,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? @@ -1450,9 +2680,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 @@ -1782,12 +3009,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. @@ -1798,6 +3019,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. @@ -1809,7 +3033,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? ================================== @@ -1970,6 +3193,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. @@ -2090,8 +3316,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.) @@ -2512,8 +3738,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 @@ -4561,7 +5787,7 @@ Tools/Demos - Issue #22120: For functions using an unsigned integer return converter, Argument Clinic now generates a cast to that type for the comparison - to -1 in the generated code. (This supresses a compilation warning.) + to -1 in the generated code. (This suppresses a compilation warning.) - Issue #18974: Tools/scripts/diff.py now uses argparse instead of optparse. @@ -5661,7 +6887,7 @@ Core and Builtins - Issue #19466: Clear the frames of daemon threads earlier during the Python shutdown to call objects destructors. So "unclosed file" resource - warnings are now corretly emitted for daemon threads. + warnings are now correctly emitted for daemon threads. - Issue #19514: Deduplicate some _Py_IDENTIFIER declarations. Patch by Andrei Dorian Duma. @@ -6591,7 +7817,7 @@ Library - Issue #18709: Fix CVE-2013-4238. The SSL module now handles NULL bytes inside subjectAltName correctly. Formerly the module has used OpenSSL's - GENERAL_NAME_print() function to get the string represention of ASN.1 + GENERAL_NAME_print() function to get the string representation of ASN.1 strings for ``rfc822Name`` (email), ``dNSName`` (DNS) and ``uniformResourceIdentifier`` (URI). @@ -6684,7 +7910,7 @@ IDLE Documentation ------------- -- Issue #18743: Fix references to non-existant "StringIO" module. +- Issue #18743: Fix references to non-existent "StringIO" module. - Issue #18783: Removed existing mentions of Python long type in docstrings, error messages and comments. @@ -7623,7 +8849,7 @@ Library specifically addresses a stack misalignment issue on x86 and issues on some more recent platforms. -- Issue #8862: Fixed curses cleanup when getkey is interrputed by a signal. +- Issue #8862: Fixed curses cleanup when getkey is interrupted by a signal. - Issue #17443: imaplib.IMAP4_stream was using the default unbuffered IO in subprocess, but the imap code assumes buffered IO. In Python2 this diff --git a/Misc/README.valgrind b/Misc/README.valgrind index b5a9a32..908f137 100644 --- a/Misc/README.valgrind +++ b/Misc/README.valgrind @@ -2,6 +2,9 @@ This document describes some caveats about the use of Valgrind with Python. Valgrind is used periodically by Python developers to try to ensure there are no memory leaks or invalid memory reads/writes. +UPDATE: Python 3.6 now supports PYTHONMALLOC=malloc environment variable which +can be used to force the usage of the malloc() allocator of the C library. + If you don't want to read about the details of using Valgrind, there are still two things you must do to suppress the warnings. First, you must use a suppressions file. One is supplied in diff --git a/Misc/SpecialBuilds.txt b/Misc/SpecialBuilds.txt index 3004174..4b673fd 100644 --- a/Misc/SpecialBuilds.txt +++ b/Misc/SpecialBuilds.txt @@ -65,9 +65,9 @@ sys.getobjects(max[, type]) simply by virtue of being in the list. envvar PYTHONDUMPREFS - If this envvar exists, Py_Finalize() arranges to print a list of all + If this envvar exists, Py_FinalizeEx() arranges to print a list of all still-live heap objects. This is printed twice, in different formats, - before and after Py_Finalize has cleaned up everything it can clean up. The + before and after Py_FinalizeEx has cleaned up everything it can clean up. The first output block produces the repr() of each object so is more informative; however, a lot of stuff destined to die is still alive then. The second output block is much harder to work with (repr() can't be invoked @@ -144,7 +144,7 @@ Special gimmicks: envvar PYTHONMALLOCSTATS If this envvar exists, a report of pymalloc summary statistics is printed to - stderr whenever a new arena is allocated, and also by Py_Finalize(). + stderr whenever a new arena is allocated, and also by Py_FinalizeEx(). Changed in 2.5: The number of extra bytes allocated is 4*sizeof(size_t). Before it was 16 on all boxes, reflecting that Python couldn't make use of @@ -179,7 +179,7 @@ Each type object grows three new members: */ int tp_maxalloc; -Allocation and deallocation code keeps these counts up to date. Py_Finalize() +Allocation and deallocation code keeps these counts up to date. Py_FinalizeEx() displays a summary of the info returned by sys.getcounts() (see below), along with assorted other special allocation counts (like the number of tuple allocations satisfied by a tuple free-list, the number of 1-character strings diff --git a/Misc/coverity_model.c b/Misc/coverity_model.c index 488604c..d17c607 100644 --- a/Misc/coverity_model.c +++ b/Misc/coverity_model.c @@ -22,7 +22,6 @@ #define assert(op) /* empty */ typedef int sdigit; typedef long Py_ssize_t; -typedef long long PY_LONG_LONG; typedef unsigned short wchar_t; typedef struct {} PyObject; typedef struct {} grammar; @@ -63,7 +62,7 @@ PyObject *PyLong_FromLong(long ival) return NULL; } -PyObject *PyLong_FromLongLong(PY_LONG_LONG ival) +PyObject *PyLong_FromLongLong(long long ival) { return PyLong_FromLong((long)ival); } @@ -94,7 +93,7 @@ wchar_t *Py_DecodeLocale(const char* arg, size_t *size) } /* Parser/pgenmain.c */ -grammar *getgrammar(char *filename) +grammar *getgrammar(const char *filename) { grammar *g; __coverity_tainted_data_sink__(filename); |