.. bpo: 42938
.. date: 2021-01-18-09-27-31
.. nonce: 4Zn4Mp
.. release date: 2021-02-02
.. section: Security

Avoid static buffers when computing the repr of :class:`ctypes.c_double` and
:class:`ctypes.c_longdouble` values.

..

.. bpo: 42990
.. date: 2021-01-30-11-31-44
.. nonce: 69h_zK
.. section: Core and Builtins

Refactor the ``PyEval_`` family of functions.

* An new function ``_PyEval_Vector`` is added to simplify calls to Python from C.
* ``_PyEval_EvalCodeWithName`` is removed
* ``PyEval_EvalCodeEx`` is retained as part of the API, but is not used internally

..

.. bpo: 38631
.. date: 2021-01-29-17-48-44
.. nonce: jR-3kC
.. section: Core and Builtins

Replace :c:func:`Py_FatalError` calls in the compiler with regular
:exc:`SystemError` exceptions. Patch by Victor Stinner.

..

.. bpo: 42997
.. date: 2021-01-24-20-19-55
.. nonce: QUOPgP
.. section: Core and Builtins

Improve error message for missing ":" before blocks. Patch by Pablo Galindo.

..

.. bpo: 43017
.. date: 2021-01-24-18-02-05
.. nonce: emEcXX
.. section: Core and Builtins

Improve error message in the parser when using un-parenthesised tuples in
comprehensions. Patch by Pablo Galindo.

..

.. bpo: 42986
.. date: 2021-01-20-23-44-15
.. nonce: sWoaGf
.. section: Core and Builtins

Fix parser crash when reporting syntax errors in f-string with newlines.
Patch by Pablo Galindo.

..

.. bpo: 40176
.. date: 2021-01-20-22-31-01
.. nonce: anjyWw
.. section: Core and Builtins

Syntax errors for unterminated string literals now point to the start of the
string instead of reporting EOF/EOL.

..

.. bpo: 42927
.. date: 2021-01-15-20-05-56
.. nonce: GI-l-7
.. section: Core and Builtins

The inline cache for ``LOAD_ATTR`` now also optimizes access to attributes
defined by ``__slots__``. This makes reading such attribute up to 30%
faster.

..

.. bpo: 42864
.. date: 2021-01-14-23-15-34
.. nonce: QgOAQ1
.. section: Core and Builtins

Improve error messages in the parser when parentheses are not closed. Patch
by Pablo Galindo.

..

.. bpo: 42924
.. date: 2021-01-13-14-06-01
.. nonce: _WS1Ok
.. section: Core and Builtins

Fix ``bytearray`` repetition incorrectly copying data from the start of the
buffer, even if the data is offset within the buffer (e.g. after reassigning
a slice at the start of the ``bytearray`` to a shorter byte string).

..

.. bpo: 42882
.. date: 2021-01-11-17-58-52
.. nonce: WfTdfg
.. section: Core and Builtins

Fix the :c:func:`!_PyUnicode_FromId` function (_Py_IDENTIFIER(var) API) when
:c:func:`Py_Initialize` / :c:func:`Py_Finalize` is called multiple times:
preserve ``_PyRuntime.unicode_ids.next_index`` value.

..

.. bpo: 42827
.. date: 2021-01-06-17-06-37
.. nonce: jtRR0D
.. section: Core and Builtins

Fix a crash when working out the error line of a :exc:`SyntaxError` in some
multi-line expressions.

..

.. bpo: 42823
.. date: 2021-01-04-18-17-07
.. nonce: dcSynu
.. section: Core and Builtins

frame.f_lineno is correct even if frame.f_trace is set to True

..

.. bpo: 37324
.. date: 2020-12-12-20-09-12
.. nonce: jB-9_U
.. section: Core and Builtins

Remove deprecated aliases to :ref:`collections-abstract-base-classes` from
the :mod:`collections` module.

..

.. bpo: 41994
.. date: 2020-10-10-14-16-03
.. nonce: Xop8sV
.. section: Core and Builtins

Fixed possible leak in ``import`` when ``sys.modules`` is not a ``dict``.

..

.. bpo: 27772
.. date: 2018-12-20-23-59-23
.. nonce: idHEcj
.. section: Core and Builtins

In string formatting, preceding the *width* field by ``'0'`` no longer
affects the default alignment for strings.

..

.. bpo: 43108
.. date: 2021-02-02-20-23-31
.. nonce: lqcCZ6
.. section: Library

Fixed a reference leak in the :mod:`curses` module. Patch by Pablo Galindo

..

.. bpo: 43077
.. date: 2021-01-30-15-20-06
.. nonce: Owk61z
.. section: Library

Update the bundled pip to 21.0.1 and setuptools to 52.0.0.

..

.. bpo: 41282
.. date: 2021-01-27-20-49-32
.. nonce: SEPdV0
.. section: Library

Deprecate ``distutils`` in documentation and add warning on import.

..

.. bpo: 43014
.. date: 2021-01-24-00-37-40
.. nonce: BVPhEr
.. section: Library

Improve performance of :mod:`tokenize` by 20-30%.  Patch by Anthony Sottile.

..

.. bpo: 42323
.. date: 2021-01-20-12-10-47
.. nonce: PONB8e
.. section: Library

Fix :func:`math.nextafter` for NaN on AIX.

..

.. bpo: 42955
.. date: 2021-01-18-11-59-46
.. nonce: CSWLC9
.. section: Library

Add :data:`sys.stdlib_module_names`, containing the list of the standard
library module names. Patch by Victor Stinner.

..

.. bpo: 42944
.. date: 2021-01-18-10-41-44
.. nonce: RrONvy
.. section: Library

Fix ``random.Random.sample`` when ``counts`` argument is not ``None``.

..

.. bpo: 42934
.. date: 2021-01-15-11-48-00
.. nonce: ILKoOI
.. section: Library

Use :class:`~traceback.TracebackException`'s new ``compact`` param in
:class:`~unittest.TestResult` to reduce time and memory consumed by
traceback formatting.

..

.. bpo: 42931
.. date: 2021-01-15-00-23-50
.. nonce: QD6U2B
.. section: Library

Add :func:`randbytes` to ``random.__all__``.

..

.. bpo: 38250
.. date: 2021-01-14-15-07-16
.. nonce: 1fvhOk
.. section: Library

[Enum] Flags consisting of a single bit are now considered canonical, and
will be the only flags returned from listing and iterating over a Flag class
or a Flag member.  Multi-bit flags are considered aliases; they will be
returned from lookups and operations that result in their value. Iteration
for both Flag and Flag members is in definition order.

..

.. bpo: 42877
.. date: 2021-01-13-12-55-41
.. nonce: Fi1zEG
.. section: Library

Added the ``compact`` parameter to the constructor of
:class:`traceback.TracebackException` to reduce time and memory for use
cases that only need to call :func:`TracebackException.format` and
:func:`TracebackException.format_exception_only`.

..

.. bpo: 42923
.. date: 2021-01-13-12-15-13
.. nonce: zBiNls
.. section: Library

The :c:func:`Py_FatalError` function and the :mod:`faulthandler` module now
dump the list of extension modules on a fatal error.

..

.. bpo: 42848
.. date: 2021-01-12-19-34-06
.. nonce: 5G8oBl
.. section: Library

Removed recursion from :class:`~traceback.TracebackException` to allow it to
handle long exception chains.

..

.. bpo: 42901
.. date: 2021-01-11-17-36-59
.. nonce: gFd-ta
.. section: Library

[Enum] move member creation from ``EnumMeta.__new__`` to
``_proto_member.__set_name__``, allowing members to be created and visible
in ``__init_subclass__``.

..

.. bpo: 42780
.. date: 2021-01-08-15-49-20
.. nonce: rtqi6B
.. section: Library

Fix os.set_inheritable() for O_PATH file descriptors on Linux.

..

.. bpo: 42866
.. date: 2021-01-08-10-57-21
.. nonce: Y1DnrO
.. section: Library

Fix a reference leak in the ``getcodec()`` function of CJK codecs. Patch by
Victor Stinner.

..

.. bpo: 42846
.. date: 2021-01-07-23-31-17
.. nonce: kukDjw
.. section: Library

Convert the 6 CJK codec extension modules (_codecs_cn, _codecs_hk,
_codecs_iso2022, _codecs_jp, _codecs_kr and _codecs_tw) to the multiphase
initialization API (:pep:`489`). Patch by Victor Stinner.

..

.. bpo: 42851
.. date: 2021-01-07-11-44-22
.. nonce: uyQFyd
.. section: Library

remove __init_subclass__ support for Enum members

..

.. bpo: 42834
.. date: 2021-01-05-23-55-24
.. nonce: LxRnZC
.. section: Library

Make internal caches of the ``_json`` module compatible with
subinterpreters.

..

.. bpo: 41748
.. date: 2021-01-05-21-26-29
.. nonce: KdC0w3
.. section: Library

Fix HTMLParser parsing rules for element attributes containing commas with
spaces. Patch by Karl Dubost.

..

.. bpo: 40810
.. date: 2021-01-05-00-52-30
.. nonce: JxQqPe
.. section: Library

Require SQLite 3.7.15 or newer. Patch by Erlend E. Aasland.

..

.. bpo: 1635741
.. date: 2021-01-04-15-05-40
.. nonce: EOCfZY
.. section: Library

Convert the _multibytecodec extension module (CJK codecs) to multi-phase
initialization (:pep:`489`).  Patch by Erlend E. Aasland.

..

.. bpo: 42802
.. date: 2021-01-01-15-29-16
.. nonce: Lw-bzl
.. section: Library

The distutils ``bdist_wininst`` command deprecated in Python 3.8 has been
removed. The distutils ``bdist_wheel`` command is now recommended to
distribute binary packages on Windows.

..

.. bpo: 24464
.. date: 2020-12-30-14-56-25
.. nonce: vbNVHe
.. section: Library

The undocumented built-in function ``sqlite3.enable_shared_cache`` is now
deprecated, scheduled for removal in Python 3.12.  Its use is strongly
discouraged by the SQLite3 documentation.  Patch by Erlend E. Aasland.

..

.. bpo: 42384
.. date: 2020-11-17-14-32-39
.. nonce: 1ZnQSn
.. section: Library

Make pdb populate sys.path[0] exactly the same as regular python execution.

..

.. bpo: 42383
.. date: 2020-11-17-14-30-12
.. nonce: ubl0Y_
.. section: Library

Fix pdb: previously pdb would fail to restart the debugging target if it was
specified using a relative path and the current directory changed.

..

.. bpo: 42005
.. date: 2020-10-11-13-48-03
.. nonce: Jq6Az-
.. section: Library

Fix CLI of :mod:`cProfile` and :mod:`profile` to catch
:exc:`BrokenPipeError`.

..

.. bpo: 41604
.. date: 2020-08-21-15-24-14
.. nonce: rTXleO
.. section: Library

Don't decrement the reference count of the previous user_ptr when
set_panel_userptr fails.

..

.. bpo: 41149
.. date: 2020-06-28-16-13-02
.. nonce: jiZWtJ
.. section: Library

Allow executing callables that have a boolean value of ``False`` when passed
to :class:`Threading.thread` as the target. Patch contributed by Barney
Stratford.

..

.. bpo: 38307
.. date: 2020-03-16-03-03-21
.. nonce: 2cmw2i
.. section: Library

Add an 'end_lineno' attribute to the Class and Function objects that appear
in the tree returned by pyclbr functions.  This and the existing 'lineno'
attribute define the extent of class and def statements.  Patch by Aviral
Srivastava.

..

.. bpo: 39273
.. date: 2020-01-13-23-37-58
.. nonce: m5hzxV
.. section: Library

The ``BUTTON5_*`` constants are now exposed in the :mod:`curses` module if
available.

..

.. bpo: 33289
.. date: 2018-04-23-13-44-10
.. nonce: anBnUr
.. section: Library

Correct call to :mod:`tkinter.colorchooser` to return RGB triplet of ints
instead of floats.  Patch by Cheryl Sabella.

..

.. bpo: 40304
.. date: 2021-01-20-23-03-49
.. nonce: -LK7Ps
.. section: Documentation

Fix doc for type(name, bases, dict).  Patch by Boris Verkhovskiy and Éric
Araujo.

..

.. bpo: 42811
.. date: 2021-01-04-22-14-22
.. nonce: HY2beA
.. section: Documentation

Updated importlib.util.resolve_name() doc to use __spec__.parent instead of
__package__. (Thanks Yair Frid.)

..

.. bpo: 40823
.. date: 2020-05-30-13-39-22
.. nonce: yB7K5w
.. section: Tests

Use :meth:`unittest.TestLoader().loadTestsFromTestCase` instead of
:meth:`unittest.makeSuite` in :mod:`sqlite3` tests. Patch by Erlend E.
Aasland.

..

.. bpo: 40810
.. date: 2020-05-30-10-56-38
.. nonce: LPqDLQ
.. section: Tests

In :mod:`sqlite3`, fix ``CheckTraceCallbackContent`` for SQLite pre 3.7.15.

..

.. bpo: 43031
.. date: 2021-01-26-14-48-40
.. nonce: 44nK9U
.. section: Build

Pass ``--timeout=$(TESTTIMEOUT)`` option to the default profile task
``./python -m test --pgo`` command.

..

.. bpo: 36143
.. date: 2021-01-18-20-52-06
.. nonce: kgnIYo
.. section: Build

``make regen-all`` now also runs ``regen-keyword``. Patch by Victor Stinner.

..

.. bpo: 42874
.. date: 2021-01-12-10-06-50
.. nonce: XKK61g
.. section: Build

Removed the grep -q and -E flags in the tzpath validation section of the
configure script to better accommodate users of some platforms (specifically
Solaris 10).

..

.. bpo: 31904
.. date: 2021-01-11-23-26-00
.. nonce: ty8f3h
.. section: Build

Add library search path by wr-cc in add_cross_compiling_paths() for VxWorks.

..

.. bpo: 42856
.. date: 2021-01-07-12-51-38
.. nonce: n3cMHV
.. section: Build

Add ``--with-wheel-pkg-dir=PATH`` option to the ``./configure`` script. If
specified, the :mod:`ensurepip` module looks for ``setuptools`` and ``pip``
wheel packages in this directory: if both are present, these wheel packages
are used instead of ensurepip bundled wheel packages.

Some Linux distribution packaging policies recommend against bundling
dependencies. For example, Fedora installs wheel packages in the
``/usr/share/python-wheels/`` directory and don't install the
``ensurepip._bundled`` package.

..

.. bpo: 41837
.. date: 2021-01-05-20-36-40
.. nonce: bmS7vB
.. section: Windows

Updated Windows installer to include OpenSSL 1.1.1i

..

.. bpo: 42584
.. date: 2020-12-07-11-40-52
.. nonce: AsYnVX
.. section: Windows

Upgrade Windows installer to use SQLite 3.34.0.

..

.. bpo: 42504
.. date: 2021-01-26-14-36-11
.. nonce: ZxWt71
.. section: macOS

Ensure that the value of
sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') is always a string,
even in when the value is parsable as an integer.

..

.. bpo: 43008
.. date: 2021-01-26-18-12-17
.. nonce: mbQUc7
.. section: IDLE

Make IDLE invoke :func:`sys.excepthook` in normal, 2-process mode. Patch by
Ken Hilton.

..

.. bpo: 33065
.. date: 2021-01-10-01-25-43
.. nonce: zmyHYJ
.. section: IDLE

Fix problem debugging user classes with __repr__ method.

..

.. bpo: 23544
.. date: 2019-11-14-23-41-07
.. nonce: 3etemb
.. section: IDLE

Disable Debug=>Stack Viewer when user code is running or Debugger is active,
to prevent hang or crash.  Patch by Zackery Spytz.

..

.. bpo: 32631
.. date: 2019-06-30-20-31-09
.. nonce: e7_4BG
.. section: IDLE

Finish zzdummy example extension module: make menu entries work; add
docstrings and tests with 100% coverage.

..

.. bpo: 42979
.. date: 2021-01-28-01-11-59
.. nonce: JrGkrm
.. section: C API

When Python is built in debug mode (with C assertions), calling a type slot
like ``sq_length`` (``__len__()`` in Python) now fails with a fatal error if
the slot succeeded with an exception set, or failed with no exception set.
The error message contains the slot, the type name, and the current
exception (if an exception is set). Patch by Victor Stinner.

..

.. bpo: 43030
.. date: 2021-01-27-10-27-47
.. nonce: loDcD_
.. section: C API

Fixed a compiler warning in :c:func:`Py_UNICODE_ISSPACE()` on platforms with
signed :c:type:`wchar_t`.
