.. release date: 2017-06-17
.. bpo: 29591
.. date: 9966
.. nonce: ExKblw
.. original section: Library
.. section: Security

Update expat copy from 2.1.1 to 2.2.0 to get fixes of :cve:`2016-0718` and
:cve:`2016-4472`. See https://sourceforge.net/p/expat/bugs/537/ for more
information.

..

.. bpo: 30682
.. date: 9989
.. nonce: zZm88E
.. section: Core and Builtins

Removed a too-strict assertion that failed for certain f-strings, such as
eval("f'\\\n'") and eval("f'\\\r'").

..

.. bpo: 30604
.. date: 9988
.. nonce: W47hPY
.. section: Core and Builtins

Move co_extra_freefuncs to not be per-thread to avoid crashes

..

.. bpo: 29104
.. date: 9987
.. nonce: u26yCx
.. section: Core and Builtins

Fixed parsing backslashes in f-strings.

..

.. bpo: 27945
.. date: 9986
.. nonce: p29r3O
.. section: Core and Builtins

Fixed various segfaults with dict when input collections are mutated during
searching, inserting or comparing.  Based on patches by Duane Griffin and
Tim Mitchell.

..

.. bpo: 25794
.. date: 9985
.. nonce: xfPwqm
.. section: Core and Builtins

Fixed type.__setattr__() and type.__delattr__() for non-interned attribute
names.  Based on patch by Eryk Sun.

..

.. bpo: 30039
.. date: 9984
.. nonce: e0u4DG
.. section: Core and Builtins

If a KeyboardInterrupt happens when the interpreter is in the middle of
resuming a chain of nested 'yield from' or 'await' calls, it's now correctly
delivered to the innermost frame.

..

.. bpo: 12414
.. date: 9983
.. nonce: T9ix8O
.. section: Core and Builtins

sys.getsizeof() on a code object now returns the sizes which includes the
code struct and sizes of objects which it references. Patch by Donghee Na.

..

.. bpo: 29949
.. date: 9982
.. nonce: DevGPS
.. section: Core and Builtins

Fix memory usage regression of set and frozenset object.

..

.. bpo: 29935
.. date: 9981
.. nonce: vgjdJo
.. section: Core and Builtins

Fixed error messages in the index() method of tuple, list and deque when
pass indices of wrong type.

..

.. bpo: 29859
.. date: 9980
.. nonce: Z1MLcA
.. section: Core and Builtins

Show correct error messages when any of the pthread_* calls in
thread_pthread.h fails.

..

.. bpo: 28876
.. date: 9979
.. nonce: cU-sGT
.. section: Core and Builtins

``bool(range)`` works even if ``len(range)`` raises :exc:`OverflowError`.

..

.. bpo: 29600
.. date: 9978
.. nonce: 77wQ6C
.. section: Core and Builtins

Fix wrapping coroutine return values in StopIteration.

..

.. bpo: 28856
.. date: 9977
.. nonce: AFRmo4
.. section: Core and Builtins

Fix an oversight that %b format for bytes should support objects follow the
buffer protocol.

..

.. bpo: 29714
.. date: 9976
.. nonce: z-BhVd
.. section: Core and Builtins

Fix a regression that bytes format may fail when containing zero bytes
inside.

..

.. bpo: 29478
.. date: 9975
.. nonce: rTQ-qy
.. section: Core and Builtins

If max_line_length=None is specified while using the Compat32 policy, it is
no longer ignored.  Patch by Mircea Cosbuc.

..

.. bpo: 30616
.. date: 9974
.. nonce: I2mDTz
.. section: Library

Functional API of enum allows to create empty enums. Patched by Donghee Na

..

.. bpo: 30038
.. date: 9973
.. nonce: vb4DWk
.. section: Library

Fix race condition between signal delivery and wakeup file descriptor.
Patch by Nathaniel Smith.

..

.. bpo: 23894
.. date: 9972
.. nonce: k2pADV
.. section: Library

lib2to3 now recognizes ``rb'...'`` and ``f'...'`` strings.

..

.. bpo: 23890
.. date: 9971
.. nonce: GCFAAZ
.. section: Library

unittest.TestCase.assertRaises() now manually breaks a reference cycle to
not keep objects alive longer than expected.

..

.. bpo: 30149
.. date: 9970
.. nonce: hE649r
.. section: Library

inspect.signature() now supports callables with variable-argument parameters
wrapped with partialmethod. Patch by Donghee Na.

..

.. bpo: 30645
.. date: 9969
.. nonce: oYzbbW
.. section: Library

Fix path calculation in imp.load_package(), fixing it for cases when a
package is only shipped with bytecodes. Patch by Alexandru Ardelean.

..

.. bpo: 29931
.. date: 9968
.. nonce: tfcTwK
.. section: Library

Fixed comparison check for ipaddress.ip_interface objects. Patch by Sanjay
Sundaresan.

..

.. bpo: 30605
.. date: 9967
.. nonce: XqGz1r
.. section: Library

re.compile() no longer raises a BytesWarning when compiling a bytes instance
with misplaced inline modifier.  Patch by Roy Williams.

..

.. bpo: 24484
.. date: 9965
.. nonce: fNS32j
.. section: Library

Avoid race condition in multiprocessing cleanup (#2159)

..

.. bpo: 28994
.. date: 9964
.. nonce: 9vzun1
.. section: Library

The traceback no longer displayed for SystemExit raised in a callback
registered by atexit.

..

.. bpo: 30508
.. date: 9963
.. nonce: wNWRS2
.. section: Library

Don't log exceptions if Task/Future "cancel()" method was called.

..

.. bpo: 28556
.. date: 9962
.. nonce: mESP7G
.. section: Library

Updates to typing module: Add generic AsyncContextManager, add support for
ContextManager on all versions. Original PRs by Jelle Zijlstra and Ivan
Levkivskyi

..

.. bpo: 29870
.. date: 9961
.. nonce: p960Ih
.. section: Library

Fix ssl sockets leaks when connection is aborted in asyncio/ssl
implementation. Patch by Michaël Sghaïer.

..

.. bpo: 29743
.. date: 9960
.. nonce: en2P4s
.. section: Library

Closing transport during handshake process leaks open socket. Patch by
Nikolay Kim

..

.. bpo: 27585
.. date: 9959
.. nonce: 0Ugqqu
.. section: Library

Fix waiter cancellation in asyncio.Lock. Patch by Mathieu Sornay.

..

.. bpo: 30418
.. date: 9958
.. nonce: EwISQm
.. section: Library

On Windows, subprocess.Popen.communicate() now also ignore EINVAL on
stdin.write() if the child process is still running but closed the pipe.

..

.. bpo: 29822
.. date: 9957
.. nonce: G7dX13
.. section: Library

inspect.isabstract() now works during __init_subclass__.  Patch by Nate
Soares.

..

.. bpo: 29581
.. date: 9956
.. nonce: gHCrxP
.. section: Library

ABCMeta.__new__ now accepts ``**kwargs``, allowing abstract base classes to
use keyword parameters in __init_subclass__. Patch by Nate Soares.

..

.. bpo: 30557
.. date: 9955
.. nonce: uykrLf
.. section: Library

faulthandler now correctly filters and displays exception codes on Windows

..

.. bpo: 30378
.. date: 9954
.. nonce: R_19_5
.. section: Library

Fix the problem that logging.handlers.SysLogHandler cannot handle IPv6
addresses.

..

.. bpo: 29960
.. date: 9953
.. nonce: g0wr3r
.. section: Library

Preserve generator state when _random.Random.setstate() raises an exception.
Patch by Bryan Olson.

..

.. bpo: 30414
.. date: 9952
.. nonce: jGl1Lb
.. section: Library

multiprocessing.Queue._feed background running thread do not break from main
loop on exception.

..

.. bpo: 30003
.. date: 9951
.. nonce: BOl9HE
.. section: Library

Fix handling escape characters in HZ codec.  Based on patch by Ma Lin.

..

.. bpo: 30301
.. date: 9950
.. nonce: ywOkjN
.. section: Library

Fix AttributeError when using SimpleQueue.empty() under *spawn* and
*forkserver* start methods.

..

.. bpo: 30329
.. date: 9949
.. nonce: EuT36N
.. section: Library

imaplib and poplib now catch the Windows socket WSAEINVAL error (code 10022)
on shutdown(SHUT_RDWR): An invalid operation was attempted. This error
occurs sometimes on SSL connections.

..

.. bpo: 30375
.. date: 9948
.. nonce: 9c8qM7
.. section: Library

Warnings emitted when compile a regular expression now always point to the
line in the user code.  Previously they could point into inners of the re
module if emitted from inside of groups or conditionals.

..

.. bpo: 30048
.. date: 9947
.. nonce: ELRx8R
.. section: Library

Fixed ``Task.cancel()`` can be ignored when the task is running coroutine
and the coroutine returned without any more ``await``.

..

.. bpo: 30266
.. date: 9946
.. nonce: YJzHAH
.. section: Library

contextlib.AbstractContextManager now supports anti-registration by setting
__enter__ = None or __exit__ = None, following the pattern introduced in
bpo-25958. Patch by Jelle Zijlstra.

..

.. bpo: 30298
.. date: 9945
.. nonce: ZN-bWo
.. section: Library

Weaken the condition of deprecation warnings for inline modifiers. Now
allowed several subsequential inline modifiers at the start of the pattern
(e.g. ``'(?i)(?s)...'``).  In verbose mode whitespaces and comments now are
allowed before and between inline modifiers (e.g. ``'(?x) (?i) (?s)...'``).

..

.. bpo: 29990
.. date: 9944
.. nonce: HWV6KE
.. section: Library

Fix range checking in GB18030 decoder.  Original patch by Ma Lin.

..

.. bpo: 26293
.. date: 9943
.. nonce: wig0YG
.. section: Library

Change resulted because of zipfile breakage. (See also: bpo-29094)

..

.. bpo: 30243
.. date: 9942
.. nonce: RHQt0v
.. section: Library

Removed the __init__ methods of _json's scanner and encoder. Misusing them
could cause memory leaks or crashes.  Now scanner and encoder objects are
completely initialized in the __new__ methods.

..

.. bpo: 30185
.. date: 9941
.. nonce: Tiu1n8
.. section: Library

Avoid KeyboardInterrupt tracebacks in forkserver helper process when Ctrl-C
is received.

..

.. bpo: 28556
.. date: 9940
.. nonce: 51gjbP
.. section: Library

Various updates to typing module: add typing.NoReturn type, use
WrapperDescriptorType, minor bug-fixes.  Original PRs by Jim
Fasarakis-Hilliard and Ivan Levkivskyi.

..

.. bpo: 30205
.. date: 9939
.. nonce: BsxO34
.. section: Library

Fix getsockname() for unbound AF_UNIX sockets on Linux.

..

.. bpo: 30070
.. date: 9938
.. nonce: XM_B41
.. section: Library

Fixed leaks and crashes in errors handling in the parser module.

..

.. bpo: 30061
.. date: 9937
.. nonce: 2w_dX9
.. section: Library

Fixed crashes in IOBase methods __next__() and readlines() when readline()
or __next__() respectively return non-sizeable object. Fixed possible other
errors caused by not checking results of PyObject_Size(), PySequence_Size(),
or PyMapping_Size().

..

.. bpo: 30017
.. date: 9936
.. nonce: cKBuhU
.. section: Library

Allowed calling the close() method of the zip entry writer object multiple
times.  Writing to a closed writer now always produces a ValueError.

..

.. bpo: 30068
.. date: 9935
.. nonce: n4q47r
.. section: Library

_io._IOBase.readlines will check if it's closed first when hint is present.

..

.. bpo: 29694
.. date: 9934
.. nonce: LWKxb1
.. section: Library

Fixed race condition in pathlib mkdir with flags parents=True.  Patch by
Armin Rigo.

..

.. bpo: 29692
.. date: 9933
.. nonce: oyWrAE
.. section: Library

Fixed arbitrary unchaining of RuntimeError exceptions in
contextlib.contextmanager.  Patch by Siddharth Velankar.

..

.. bpo: 29998
.. date: 9932
.. nonce: poeIKD
.. section: Library

Pickling and copying ImportError now preserves name and path attributes.

..

.. bpo: 29953
.. date: 9931
.. nonce: Q1hSt-
.. section: Library

Fixed memory leaks in the replace() method of datetime and time objects when
pass out of bound fold argument.

..

.. bpo: 29942
.. date: 9930
.. nonce: CsGNuT
.. section: Library

Fix a crash in itertools.chain.from_iterable when encountering long runs of
empty iterables.

..

.. bpo: 27863
.. date: 9929
.. nonce: pPYHHI
.. section: Library

Fixed multiple crashes in ElementTree caused by race conditions and wrong
types.

..

.. bpo: 28699
.. date: 9928
.. nonce: wZztZP
.. section: Library

Fixed a bug in pools in multiprocessing.pool that raising an exception at
the very first of an iterable may swallow the exception or make the program
hang. Patch by Davin Potts and Xiang Zhang.

..

.. bpo: 25803
.. date: 9927
.. nonce: CPDR0W
.. section: Library

Avoid incorrect errors raised by Path.mkdir(exist_ok=True) when the OS gives
priority to errors such as EACCES over EEXIST.

..

.. bpo: 29861
.. date: 9926
.. nonce: t2ZoRK
.. section: Library

Release references to tasks, their arguments and their results as soon as
they are finished in multiprocessing.Pool.

..

.. bpo: 29884
.. date: 9925
.. nonce: kWXR8W
.. section: Library

faulthandler: Restore the old sigaltstack during teardown. Patch by
Christophe Zeitouny.

..

.. bpo: 25455
.. date: 9924
.. nonce: ZsahHN
.. section: Library

Fixed crashes in repr of recursive buffered file-like objects.

..

.. bpo: 29800
.. date: 9923
.. nonce: d2xASa
.. section: Library

Fix crashes in partial.__repr__ if the keys of partial.keywords are not
strings.  Patch by Michael Seifert.

..

.. bpo: 29742
.. date: 9922
.. nonce: 8hqfEO
.. section: Library

get_extra_info() raises exception if get called on closed ssl transport.
Patch by Nikolay Kim.

..

.. bpo: 8256
.. date: 9921
.. nonce: jAwGQH
.. section: Library

Fixed possible failing or crashing input() if attributes "encoding" or
"errors" of sys.stdin or sys.stdout are not set or are not strings.

..

.. bpo: 28298
.. date: 9920
.. nonce: xfm84U
.. section: Library

Fix a bug that prevented array 'Q', 'L' and 'I' from accepting big intables
(objects that have __int__) as elements.  Patch by Oren Milman.

..

.. bpo: 28231
.. date: 9919
.. nonce: MG1X09
.. section: Library

The zipfile module now accepts path-like objects for external paths.

..

.. bpo: 26915
.. date: 9918
.. nonce: qShJZO
.. section: Library

index() and count() methods of collections.abc.Sequence now check identity
before checking equality when do comparisons.

..

.. bpo: 29615
.. date: 9917
.. nonce: OpFKzg
.. section: Library

SimpleXMLRPCDispatcher no longer chains KeyError (or any other exception) to
exception(s) raised in the dispatched methods. Patch by Petr Motejlek.

..

.. bpo: 30177
.. date: 9916
.. nonce: JGIJNL
.. section: Library

path.resolve(strict=False) no longer cuts the path after the first element
not present in the filesystem.  Patch by Antoine Pietri.

..

.. bpo: 15786
.. date: 9915
.. nonce: _XRbaR
.. section: IDLE

Fix several problems with IDLE's autocompletion box. The following should
now work: clicking on selection box items; using the scrollbar; selecting an
item by hitting Return. Hangs on MacOSX should no longer happen. Patch by
Louie Lu.

..

.. bpo: 25514
.. date: 9914
.. nonce: 882pXa
.. section: IDLE

Add doc subsubsection about IDLE failure to start. Popup no-connection
message directs users to this section.

..

.. bpo: 30642
.. date: 9913
.. nonce: 3Zujzt
.. section: IDLE

Fix reference leaks in IDLE tests. Patches by Louie Lu and Terry Jan Reedy.

..

.. bpo: 30495
.. date: 9912
.. nonce: I3i5vL
.. section: IDLE

Add docstrings for textview.py and use PEP8 names. Patches by Cheryl Sabella
and Terry Jan Reedy.

..

.. bpo: 30290
.. date: 9911
.. nonce: fZ3kod
.. section: IDLE

Help-about: use pep8 names and add tests. Increase coverage to 100%. Patches
by Louie Lu, Cheryl Sabella, and Terry Jan Reedy.

..

.. bpo: 30303
.. date: 9910
.. nonce: 2L2F-4
.. section: IDLE

Add _utest option to textview; add new tests. Increase coverage to 100%.
Patches by Louie Lu and Terry Jan Reedy.

..

.. bpo: 27867
.. date: 9909
.. nonce: B46BRE
.. section: C API

Function PySlice_GetIndicesEx() no longer replaced with a macro if
Py_LIMITED_API is not set.

..

.. bpo: 29941
.. date: 9908
.. nonce: ylh45A
.. section: Build

Add ``--with-assertions`` configure flag to explicitly enable C ``assert()``
checks. Defaults to off. ``--with-pydebug`` implies ``--with-assertions``.

..

.. bpo: 28787
.. date: 9907
.. nonce: vhH_6a
.. section: Build

Fix out-of-tree builds of Python when configured with ``--with--dtrace``.

..

.. bpo: 29243
.. date: 9906
.. nonce: WDK4hT
.. section: Build

Prevent unnecessary rebuilding of Python during ``make test``, ``make
install`` and some other make targets when configured with
``--enable-optimizations``.

..

.. bpo: 23404
.. date: 9905
.. nonce: PdYVWg
.. section: Build

Don't regenerate generated files based on file modification time anymore:
the action is now explicit. Replace ``make touch`` with ``make regen-all``.

..

.. bpo: 29643
.. date: 9904
.. nonce: 4WLIJQ
.. section: Build

Fix ``--enable-optimization`` didn't work.

..

.. bpo: 30176
.. date: 9903
.. nonce: VivmCg
.. section: Documentation

Add missing attribute related constants in curses documentation.

..

.. bpo: 30052
.. date: 9902
.. nonce: TpmpaF
.. section: Documentation

the link targets for :func:`bytes` and :func:`bytearray` are now their
respective type definitions, rather than the corresponding builtin function
entries. Use :ref:`bytes <func-bytes>` and :ref:`bytearray <func-bytearray>`
to reference the latter.
In order to ensure this and future cross-reference updates are applied
automatically, the daily documentation builds now disable the default output
caching features in Sphinx.

..

.. bpo: 26985
.. date: 9901
.. nonce: NB5_9S
.. section: Documentation

Add missing info of code object in inspect documentation.

..

.. bpo: 29367
.. date: 9900
.. nonce: 4dOKL0
.. section: Tools/Demos

python-gdb.py now supports also ``method-wrapper`` (``wrapperobject``)
objects.

..

.. bpo: 30357
.. date: 9899
.. nonce: n4CPEa
.. section: Tests

test_thread: setUp() now uses support.threading_setup() and
support.threading_cleanup() to wait until threads complete to avoid random
side effects on following tests. Initial patch written by Grzegorz Grzywacz.

..

.. bpo: 30197
.. date: 9898
.. nonce: c5wRfu
.. section: Tests

Enhanced functions swap_attr() and swap_item() in the test.support module.
They now work when delete replaced attribute or item inside the with
statement.  The old value of the attribute or item (or None if it doesn't
exist) now will be assigned to the target of the "as" clause, if there is
one.

..

.. bpo: 30687
.. date: 9897
.. nonce: 8mqHnu
.. section: Windows

Locate msbuild.exe on Windows when building rather than vcvarsall.bat

..

.. bpo: 30450
.. date: 9896
.. nonce: qsaK8y
.. section: Windows

The build process on Windows no longer depends on Subversion, instead
pulling external code from GitHub via a Python script.  If Python 3.6 is not
found on the system (via ``py -3.6``), NuGet is used to download a copy of
32-bit Python.
