.. bpo: 40791 .. date: 2020-05-28-06-06-47 .. nonce: QGZClX .. release date: 2020-12-07 .. section: Security Add ``volatile`` to the accumulator variable in ``hmac.compare_digest``, making constant-time-defeating optimizations less likely. .. .. bpo: 42576 .. date: 2020-12-05-22-34-47 .. nonce: lEeEl7 .. section: Core and Builtins ``types.GenericAlias`` will now raise a ``TypeError`` when attempting to initialize with a keyword argument. Previously, this would cause the interpreter to crash if the interpreter was compiled with debug symbols. This does not affect interpreters compiled for release. Patch by Ken Jin. .. .. bpo: 42536 .. date: 2020-12-02-20-23-31 .. nonce: Kx3ZOu .. section: Core and Builtins Several built-in and standard library types now ensure that their internal result tuples are always tracked by the :term:`garbage collector `: - :meth:`collections.OrderedDict.items() ` - :meth:`dict.items` - :func:`enumerate` - :func:`functools.reduce` - :func:`itertools.combinations` - :func:`itertools.combinations_with_replacement` - :func:`itertools.permutations` - :func:`itertools.product` - :func:`itertools.zip_longest` - :func:`zip` Previously, they could have become untracked by a prior garbage collection. Patch by Brandt Bucher. .. .. bpo: 42500 .. date: 2020-11-30-14-27-29 .. nonce: excVKU .. section: Core and Builtins Improve handling of exceptions near recursion limit. Converts a number of Fatal Errors in RecursionErrors. .. .. bpo: 42246 .. date: 2020-11-24-14-01-43 .. nonce: c9k9hj .. section: Core and Builtins PEP 626: After a return, the f_lineno attribute of a frame is always the last line executed. .. .. bpo: 42435 .. date: 2020-11-22-14-34-55 .. nonce: uwlB2W .. section: Core and Builtins Speed up comparison of bytes objects with non-bytes objects when option :option:`-b` is specified. Speed up comparison of bytarray objects with non-buffer object. .. .. bpo: 1635741 .. date: 2020-11-18-23-46-31 .. nonce: GVOQ-m .. section: Core and Builtins Port the ``_warnings`` extension module to the multi-phase initialization API (:pep:`489`). Patch by Victor Stinner. .. .. bpo: 41686 .. date: 2020-11-17-16-25-50 .. nonce: hX77kL .. section: Core and Builtins On Windows, the ``SIGINT`` event, ``_PyOS_SigintEvent()``, is now created even if Python is configured to not install signal handlers (if :c:member:`PyConfig.install_signal_handlers` equals to 0, or ``Py_InitializeEx(0)``). .. .. bpo: 42381 .. date: 2020-11-16-23-45-56 .. nonce: G4AWxL .. section: Core and Builtins Allow assignment expressions in set literals and set comprehensions as per PEP 572. Patch by Pablo Galindo. .. .. bpo: 42202 .. date: 2020-11-16-18-13-07 .. nonce: ZxenYD .. section: Core and Builtins Change function parameters annotations internal representation to tuple of strings. Patch provided by Yurii Karabas. .. .. bpo: 42374 .. date: 2020-11-16-17-57-09 .. nonce: t7np1E .. section: Core and Builtins Fix a regression introduced by the new parser, where an unparenthesized walrus operator was not allowed within generator expressions. .. .. bpo: 42316 .. date: 2020-11-16-17-30-03 .. nonce: _DdmpQ .. section: Core and Builtins Allow an unparenthesized walrus in subscript indexes. .. .. bpo: 42349 .. date: 2020-11-13-17-25-44 .. nonce: JdWxez .. section: Core and Builtins Make sure that the compiler front-end produces a well-formed control flow graph. Be more aggressive in the compiler back-end, as it is now safe to do so. .. .. bpo: 42296 .. date: 2020-11-13-13-53-11 .. nonce: DuGrLJ .. section: Core and Builtins On Windows, fix a regression in signal handling which prevented to interrupt a program using CTRL+C. The signal handler can be run in a thread different than the Python thread, in which case the test deciding if the thread can handle signals is wrong. .. .. bpo: 42332 .. date: 2020-11-12-23-16-14 .. nonce: fEQIdk .. section: Core and Builtins :class:`types.GenericAlias` objects can now be the targets of weakrefs. .. .. bpo: 42282 .. date: 2020-11-07-21-02-05 .. nonce: M1W4Wj .. section: Core and Builtins Optimise constant subexpressions that appear as part of named expressions (previously the AST optimiser did not descend into named expressions). Patch by Nick Coghlan. .. .. bpo: 42266 .. date: 2020-11-04-23-03-25 .. nonce: G4hGDe .. section: Core and Builtins Fixed a bug with the LOAD_ATTR opcode cache that was not respecting monkey-patching a class-level attribute to make it a descriptor. Patch by Pablo Galindo. .. .. bpo: 40077 .. date: 2020-11-03-21-58-27 .. nonce: a9qM1j .. section: Core and Builtins Convert :mod:`queue` to use heap types. .. .. bpo: 42246 .. date: 2020-11-02-15-48-17 .. nonce: 3CNQEX .. section: Core and Builtins Improved accuracy of line tracing events and f_lineno attribute of Frame objects. See PEP 626 for details. .. .. bpo: 40077 .. date: 2020-11-02-14-39-48 .. nonce: grY9TG .. section: Core and Builtins Convert :mod:`mmap` to use heap types. .. .. bpo: 42233 .. date: 2020-11-01-23-34-56 .. nonce: zOSzja .. section: Core and Builtins Allow ``GenericAlias`` objects to use :ref:`union type expressions `. This allows expressions like ``list[int] | dict[float, str]`` where previously a ``TypeError`` would have been thrown. This also fixes union type expressions not de-duplicating ``GenericAlias`` objects. (Contributed by Ken Jin in :issue:`42233`.) .. .. bpo: 26131 .. date: 2020-10-22-17-27-08 .. nonce: B-Veg7 .. section: Core and Builtins The import system triggers a ``ImportWarning`` when it falls back to using ``load_module()``. .. .. bpo: 5054 .. date: 2020-12-04-03-51-12 .. nonce: 53StYZ .. section: Library CGIHTTPRequestHandler.run_cgi() HTTP_ACCEPT improperly parsed. Replace the special purpose getallmatchingheaders with generic get_all method and add relevant tests. Original Patch by Martin Panter. Modified by Senthil Kumaran. .. .. bpo: 42562 .. date: 2020-12-03-22-42-03 .. nonce: 2hPmhi .. section: Library Fix issue when dis failed to parse function that has no line numbers. Patch provided by Yurii Karabas. .. .. bpo: 17735 .. date: 2020-12-03-22-22-24 .. nonce: Qsaaue .. section: Library :func:`inspect.findsource` now raises :exc:`OSError` instead of :exc:`IndexError` when :attr:`co_lineno` of a code object is greater than the file length. This can happen, for example, when a file is edited after it was imported. PR by Irit Katriel. .. .. bpo: 42116 .. date: 2020-12-03-15-42-32 .. nonce: yIwroP .. section: Library Fix handling of trailing comments by :func:`inspect.getsource`. .. .. bpo: 42532 .. date: 2020-12-02-07-37-59 .. nonce: ObNep_ .. section: Library Remove unexpected call of ``__bool__`` when passing a ``spec_arg`` argument to a Mock. .. .. bpo: 38200 .. date: 2020-11-28-22-52-57 .. nonce: DuWGlW .. section: Library Added itertools.pairwise() .. .. bpo: 41818 .. date: 2020-11-28-06-34-53 .. nonce: mFSMc2 .. section: Library Fix test_master_read() so that it succeeds on all platforms that either raise OSError or return b"" upon reading from master. .. .. bpo: 42487 .. date: 2020-11-28-04-31-20 .. nonce: iqtC4L .. section: Library ChainMap.__iter__ no longer calls __getitem__ on underlying maps .. .. bpo: 42482 .. date: 2020-11-27-16-46-58 .. nonce: EJC3sd .. section: Library :class:`~traceback.TracebackException` no longer holds a reference to the exception's traceback object. Consequently, instances of TracebackException for equivalent but non-equal exceptions now compare as equal. .. .. bpo: 41818 .. date: 2020-11-27-09-19-43 .. nonce: KWYUbL .. section: Library Make test_openpty() avoid unexpected success due to number of rows and/or number of columns being == 0. .. .. bpo: 42392 .. date: 2020-11-26-12-40-16 .. nonce: GbmdHE .. section: Library Remove loop parameter from ``asyncio.subprocess`` and ``asyncio.tasks`` functions. Patch provided by Yurii Karabas. .. .. bpo: 42392 .. date: 2020-11-25-22-44-59 .. nonce: T_DAEl .. section: Library Remove loop parameter from ``asyncio.open_connection`` and ``asyncio.start_server`` functions. Patch provided by Yurii Karabas. .. .. bpo: 28468 .. date: 2020-11-24-13-18-05 .. nonce: 8Gh2d4 .. section: Library Add :func:`platform.freedesktop_os_release` function to parse freedesktop.org ``os-release`` files. .. .. bpo: 42299 .. date: 2020-11-23-23-42-08 .. nonce: Fdn4Wf .. section: Library Removed the ``formatter`` module, which was deprecated in Python 3.4. It is somewhat obsolete, little used, and not tested. It was originally scheduled to be removed in Python 3.6, but such removals were delayed until after Python 2.7 EOL. Existing users should copy whatever classes they use into their code. Patch by Donghee Na and and Terry J. Reedy. .. .. bpo: 26131 .. date: 2020-11-22-12-30-26 .. nonce: -HsFPG .. section: Library Deprecate zipimport.zipimporter.load_module() in favour of exec_module(). .. .. bpo: 41818 .. date: 2020-11-20-14-44-07 .. nonce: 33soAw .. section: Library Updated tests for the pty library. test_basic() has been changed to test_openpty(); this additionally checks if slave termios and slave winsize are being set properly by pty.openpty(). In order to add support for FreeBSD, NetBSD, OpenBSD, and Darwin, this also adds test_master_read(), which demonstrates that pty.spawn() should not depend on an OSError to exit from its copy loop. .. .. bpo: 42392 .. date: 2020-11-20-14-01-29 .. nonce: -OUzvl .. section: Library Remove loop parameter from ``__init__`` in all ``asyncio.locks`` and ``asyncio.Queue`` classes. Patch provided by Yurii Karabas. .. .. bpo: 15450 .. date: 2020-11-20-10-38-34 .. nonce: E-y9PA .. section: Library Make :class:`filecmp.dircmp` respect subclassing. Now the :attr:`filecmp.dircmp.subdirs` behaves as expected when subclassing dircmp. .. .. bpo: 42413 .. date: 2020-11-19-20-27-51 .. nonce: fjHrHx .. section: Library The exception :exc:`socket.timeout` is now an alias of :exc:`TimeoutError`. .. .. bpo: 31904 .. date: 2020-11-19-16-14-36 .. nonce: 83kf9d .. section: Library Support signal module on VxWorks. .. .. bpo: 42406 .. date: 2020-11-19-10-44-41 .. nonce: r9rNCj .. section: Library We fixed an issue in ``pickle.whichmodule`` in which importing ``multiprocessing`` could change the how pickle identifies which module an object belongs to, potentially breaking the unpickling of those objects. .. .. bpo: 42403 .. date: 2020-11-19-10-12-39 .. nonce: t7q5AX .. section: Library Simplify the :mod:`importlib` external bootstrap code: ``importlib._bootstrap_external`` now uses regular imports to import builtin modules. When it is imported, the builtin :func:`__import__()` function is already fully working and so can be used to import builtin modules like :mod:`sys`. Patch by Victor Stinner. .. .. bpo: 1635741 .. date: 2020-11-19-09-59-07 .. nonce: 7cMypH .. section: Library Convert _sre module types to heap types (PEP 384). Patch by Erlend E. Aasland. .. .. bpo: 42375 .. date: 2020-11-19-04-13-53 .. nonce: U8bp4s .. section: Library subprocess module update for DragonFlyBSD support. .. .. bpo: 41713 .. date: 2020-11-17-23-00-27 .. nonce: -Us0tf .. section: Library Port the ``_signal`` extension module to the multi-phase initialization API (:pep:`489`). Patch by Victor Stinner and Mohamed Koubaa. .. .. bpo: 37205 .. date: 2020-11-16-15-08-12 .. nonce: Wh5svI .. section: Library :func:`time.time()`, :func:`time.perf_counter()` and :func:`time.monotonic()` functions can no longer fail with a Python fatal error, instead raise a regular Python exception on failure. .. .. bpo: 42328 .. date: 2020-11-15-17-02-00 .. nonce: bqpPlR .. section: Library Fixed :meth:`tkinter.ttk.Style.map`. The function accepts now the representation of the default state as empty sequence (as returned by ``Style.map()``). The structure of the result is now the same on all platform and does not depend on the value of ``wantobjects``. .. .. bpo: 42345 .. date: 2020-11-15-15-23-34 .. nonce: hiIR7x .. section: Library Fix various issues with ``typing.Literal`` parameter handling (flatten, deduplicate, use type to cache key). Patch provided by Yurii Karabas. .. .. bpo: 37205 .. date: 2020-11-14-14-34-32 .. nonce: iDbHrw .. section: Library :func:`time.perf_counter()` on Windows and :func:`time.monotonic()` on macOS are now system-wide. Previously, they used an offset computed at startup to reduce the precision loss caused by the float type. Use :func:`time.perf_counter_ns()` and :func:`time.monotonic_ns()` added in Python 3.7 to avoid this precision loss. .. .. bpo: 42318 .. date: 2020-11-14-13-46-27 .. nonce: wYAcBD .. section: Library Fixed support of non-BMP characters in :mod:`tkinter` on macOS. .. .. bpo: 42350 .. date: 2020-11-13-18-53-50 .. nonce: rsql7V .. section: Library Fix the :class:`threading.Thread` class at fork: do nothing if the thread is already stopped (ex: fork called at Python exit). Previously, an error was logged in the child process. .. .. bpo: 42333 .. date: 2020-11-12-18-21-15 .. nonce: J9vFmV .. section: Library Port _ssl extension module to heap types. .. .. bpo: 42014 .. date: 2020-11-10-15-40-56 .. nonce: ShM37l .. section: Library The ``onerror`` callback from ``shutil.rmtree`` now receives correct function when ``os.open`` fails. .. .. bpo: 42237 .. date: 2020-11-10-14-27-49 .. nonce: F363jO .. section: Library Fix ``os.sendfile()`` on illumos. .. .. bpo: 42308 .. date: 2020-11-10-12-09-13 .. nonce: yaJHH9 .. section: Library Add :data:`threading.__excepthook__` to allow retrieving the original value of :func:`threading.excepthook` in case it is set to a broken or a different value. Patch by Mario Corchero. .. .. bpo: 42131 .. date: 2020-11-06-18-20-47 .. nonce: l2rjjG .. section: Library Implement PEP 451/spec methods on zipimport.zipimporter: find_spec(), create_module(), and exec_module(). This also allows for the documented deprecation of find_loader(), find_module(), and load_module(). .. .. bpo: 41877 .. date: 2020-11-05-16-00-03 .. nonce: FHbngM .. section: Library Mock objects which are not unsafe will now raise an AttributeError if an attribute with the prefix asert, aseert, or assrt is accessed, in addition to this already happening for the prefixes assert or assret. .. .. bpo: 42264 .. date: 2020-11-05-13-32-41 .. nonce: r4KYUU .. section: Library ``sqlite3.OptimizedUnicode`` has been undocumented and obsolete since Python 3.3, when it was made an alias to :class:`str`. It is now deprecated, scheduled for removal in Python 3.12. .. .. bpo: 42251 .. date: 2020-11-03-14-15-35 .. nonce: 6TC32V .. section: Library Added :func:`threading.gettrace` and :func:`threading.getprofile` to retrieve the functions set by :func:`threading.settrace` and :func:`threading.setprofile` respectively. Patch by Mario Corchero. .. .. bpo: 42249 .. date: 2020-11-03-09-22-56 .. nonce: vfNO2u .. section: Library Fixed writing binary Plist files larger than 4 GiB. .. .. bpo: 42236 .. date: 2020-11-02-23-05-17 .. nonce: aJ6ZBR .. section: Library On Unix, the :func:`os.device_encoding` function now returns ``'UTF-8'`` rather than the device encoding if the :ref:`Python UTF-8 Mode ` is enabled. .. .. bpo: 41754 .. date: 2020-11-01-15-07-20 .. nonce: DraSZh .. section: Library webbrowser: Ignore *NotADirectoryError* when calling ``xdg-settings``. .. .. bpo: 42183 .. date: 2020-10-29-11-17-35 .. nonce: 50ZcIi .. section: Library Fix a stack overflow error for asyncio Task or Future repr(). The overflow occurs under some circumstances when a Task or Future recursively returns itself. .. .. bpo: 42140 .. date: 2020-10-24-04-02-36 .. nonce: miLqvb .. section: Library Improve asyncio.wait function to create the futures set just one time. .. .. bpo: 42133 .. date: 2020-10-23-15-47-47 .. nonce: BzizYV .. section: Library Update various modules in the stdlib to fall back on ``__spec__.loader`` when ``__loader__`` isn't defined on a module. .. .. bpo: 26131 .. date: 2020-10-22-17-26-35 .. nonce: CAsI3O .. section: Library The ``load_module()`` methods found in ``importlib`` now trigger a ``DeprecationWarning``. .. .. bpo: 39825 .. date: 2020-10-20-08-28-26 .. nonce: n6KnG0 .. section: Library Windows: Change ``sysconfig.get_config_var('EXT_SUFFIX')`` to the expected full ``platform_tag.extension`` format. Previously it was hard-coded to ``.pyd``, now it is compatible with ``distutils.sysconfig`` and will result in something like ``.cp38-win_amd64.pyd``. This brings windows into conformance with the other platforms. .. .. bpo: 26389 .. date: 2020-10-08-23-51-55 .. nonce: uga44e .. section: Library The :func:`traceback.format_exception`, :func:`traceback.format_exception_only`, and :func:`traceback.print_exception` functions can now take an exception object as a positional-only argument. .. .. bpo: 41889 .. date: 2020-10-01-16-17-11 .. nonce: qLkNh8 .. section: Library Enum: fix regression involving inheriting a multiply inherited enum .. .. bpo: 41861 .. date: 2020-10-01-15-44-52 .. nonce: YTqJ7z .. section: Library Convert :mod:`sqlite3` to use heap types (PEP 384). Patch by Erlend E. Aasland. .. .. bpo: 40624 .. date: 2020-09-08-03-19-04 .. nonce: 0-gYfx .. section: Library Added support for the XPath ``!=`` operator in xml.etree .. .. bpo: 28850 .. date: 2020-09-06-21-55-44 .. nonce: HJNggD .. section: Library Fix :meth:`pprint.PrettyPrinter.format` overrides being ignored for contents of small containers. The :func:`pprint._safe_repr` function was removed. .. .. bpo: 41625 .. date: 2020-08-24-16-59-04 .. nonce: Cc967V .. section: Library Expose the :c:func:`splice` as :func:`os.splice` in the :mod:`os` module. Patch by Pablo Galindo .. .. bpo: 34215 .. date: 2020-08-19-20-17-51 .. nonce: _Cv8c- .. section: Library Clarify the error message for :exc:`asyncio.IncompleteReadError` when ``expected`` is ``None``. .. .. bpo: 41543 .. date: 2020-08-14-00-39-04 .. nonce: RpcRjb .. section: Library Add async context manager support for contextlib.nullcontext. .. .. bpo: 21041 .. date: 2020-08-10-15-06-55 .. nonce: cYz1eL .. section: Library :attr:`pathlib.PurePath.parents` now supports negative indexing. Patch contributed by Yaroslav Pankovych. .. .. bpo: 41332 .. date: 2020-07-18-17-39-28 .. nonce: QRGmA5 .. section: Library Added missing connect_accepted_socket() method to ``asyncio.AbstractEventLoop``. .. .. bpo: 12800 .. date: 2020-07-09-11-32-28 .. nonce: fNgWwx .. section: Library Extracting a symlink from a tarball should succeed and overwrite the symlink if it already exists. The fix is to remove the existing file or symlink before extraction. Based on patch by Chris AtLee, Jeffrey Kintscher, and Senthil Kumaran. .. .. bpo: 40968 .. date: 2020-06-18-11-35-16 .. nonce: R8Edbv .. section: Library :mod:`urllib.request` and :mod:`http.client` now send ``http/1.1`` ALPN extension during TLS handshake when no custom context is supplied. .. .. bpo: 41001 .. date: 2020-06-17-12-24-26 .. nonce: 5mi7b0 .. section: Library Add :func:`os.eventfd` to provide a low level interface for Linux's event notification file descriptor. .. .. bpo: 40816 .. date: 2020-05-29-15-25-41 .. nonce: w61Pob .. section: Library Add AsyncContextDecorator to contextlib to support async context manager as a decorator. .. .. bpo: 40550 .. date: 2020-05-08-21-30-54 .. nonce: i7GWkb .. section: Library Fix time-of-check/time-of-action issue in subprocess.Popen.send_signal. .. .. bpo: 39411 .. date: 2020-01-21-16-38-25 .. nonce: 9uHFqT .. section: Library Add an ``is_async`` identifier to :mod:`pyclbr`'s ``Function`` objects. Patch by Batuhan Taskaya .. .. bpo: 35498 .. date: 2018-12-14-13-29-17 .. nonce: LEJHl7 .. section: Library Add slice support to :attr:`pathlib.PurePath.parents`. .. .. bpo: 42238 .. date: 2020-11-24-22-54-49 .. nonce: 62EOTu .. section: Documentation Tentative to deprecate ``make suspicious`` by first removing it from the CI and documentation builds, but keeping it around for manual uses. .. .. bpo: 42153 .. date: 2020-11-15-13-46-31 .. nonce: KjBhx3 .. section: Documentation Fix the URL for the IMAP protocol documents. .. .. bpo: 41028 .. date: 2020-06-18-23-37-03 .. nonce: vM8bC8 .. section: Documentation Language and version switchers, previously maintained in every cpython branches, are now handled by docsbuild-script. .. .. bpo: 41473 .. date: 2020-12-04-11-47-09 .. nonce: W_updK .. section: Tests Re-enable test_gdb on gdb 9.2 and newer: https://bugzilla.redhat.com/show_bug.cgi?id=1866884 bug is fixed in gdb 10.1. .. .. bpo: 42553 .. date: 2020-12-03-13-32-44 .. nonce: 2TRE2N .. section: Tests Fix ``test_asyncio.test_call_later()`` race condition: don't measure asyncio performance in the ``call_later()`` unit test. The test failed randomly on the CI. .. .. bpo: 31904 .. date: 2020-12-01-15-51-19 .. nonce: iwetj4 .. section: Tests Fix test_netrc on VxWorks: create temporary directories using temp_cwd(). .. .. bpo: 31904 .. date: 2020-11-26-11-13-13 .. nonce: ay4g89 .. section: Tests skip test_getaddrinfo_ipv6_scopeid_symbolic and test_getnameinfo_ipv6_scopeid_symbolic on VxWorks .. .. bpo: 31904 .. date: 2020-11-25-17-00-53 .. nonce: ue4hd9 .. section: Tests skip test_test of test_mailcap on VxWorks .. .. bpo: 31904 .. date: 2020-11-24-17-26-41 .. nonce: eug834 .. section: Tests add shell requirement for test_pipes .. .. bpo: 31904 .. date: 2020-11-23-11-11-29 .. nonce: V3sUZk .. section: Tests skip some tests related to fifo on VxWorks .. .. bpo: 31904 .. date: 2020-11-20-15-07-18 .. nonce: EBJXjJ .. section: Tests Fix test_doctest.py failures for VxWorks. .. .. bpo: 40754 .. date: 2020-11-13-21-51-34 .. nonce: Ekoxkg .. section: Tests Include ``_testinternalcapi`` module in Windows installer for test suite .. .. bpo: 41561 .. date: 2020-09-18-16-14-03 .. nonce: uPnwrW .. section: Tests test_ssl: skip test_min_max_version_mismatch when TLS 1.0 is not available .. .. bpo: 31904 .. date: 2020-05-20-17-28-46 .. nonce: yt83Ge .. section: Tests Fix os module failures for VxWorks RTOS. .. .. bpo: 31904 .. date: 2020-05-20-14-28-48 .. nonce: yJik6k .. section: Tests Fix fifo test cases for VxWorks RTOS. .. .. bpo: 31904 .. date: 2020-11-19-17-01-50 .. nonce: 894dk2 .. section: Build remove libnet dependency from detect_socket() for VxWorks .. .. bpo: 42398 .. date: 2020-11-18-11-58-44 .. nonce: Yt5wO8 .. section: Build Fix a race condition in "make regen-all" when make -jN option is used to run jobs in parallel. The clinic.py script now only use atomic write to write files. Moveover, generated files are now left unchanged if the content does not change, to not change the file modification time. .. .. bpo: 41617 .. date: 2020-11-13-15-04-53 .. nonce: 98_oaE .. section: Build Fix building ``pycore_bitutils.h`` internal header on old clang version without ``__builtin_bswap16()`` (ex: Xcode 4.6.3 on Mac OS X 10.7). Patch by Joshua Root and Victor Stinner. .. .. bpo: 38823 .. date: 2020-11-12-13-45-15 .. nonce: C0z_Fe .. section: Build It is no longer possible to build the ``_ctypes`` extension module without :c:type:`wchar_t` type: remove ``CTYPES_UNICODE`` macro. Anyway, the :c:type:`wchar_t` type is required to build Python. Patch by Victor Stinner. .. .. bpo: 42087 .. date: 2020-10-19-15-41-05 .. nonce: 2AhRFP .. section: Build Support was removed for AIX 5.3 and below. See :issue:`40680`. .. .. bpo: 40998 .. date: 2020-06-17-09-05-02 .. nonce: sgqmg9 .. section: Build Addressed three compiler warnings found by undefined behavior sanitizer (ubsan). .. .. bpo: 42120 .. date: 2020-11-16-22-41-02 .. nonce: 9scgko .. section: Windows Remove macro definition of ``copysign`` (to ``_copysign``) in headers. .. .. bpo: 38506 .. date: 2020-11-15-23-01-14 .. nonce: hhdnuP .. section: Windows The Windows launcher now properly handles Python 3.10 when listing installed Python versions. .. .. bpo: 42504 .. date: 2020-12-02-15-48-40 .. nonce: RQmMOR .. section: macOS Fix build on macOS Big Sur when MACOSX_DEPLOYMENT_TARGET=11 .. .. bpo: 41116 .. date: 2020-11-15-16-43-45 .. nonce: oCkbrF .. section: macOS Ensure distutils.unixxcompiler.find_library_file can find system provided libraries on macOS 11. .. .. bpo: 41100 .. date: 2020-11-01-16-40-23 .. nonce: BApztP .. section: macOS Add support for macOS 11 and Apple Silicon systems. It is now possible to build "Universal 2" binaries using "--enable-universalsdk --with-universal-archs=universal2". Binaries build on later macOS versions can be deployed back to older versions (tested up to macOS 10.9), when using the correct deployment target. This is tested using Xcode 11 and later. .. .. bpo: 42232 .. date: 2020-11-01-15-10-28 .. nonce: 2zI1GN .. section: macOS Added Darwin specific madvise options to mmap module. .. .. bpo: 38443 .. date: 2020-10-23-10-26-53 .. nonce: vu64tl .. section: macOS The ``--enable-universalsdk`` and ``--with-universal-archs`` options for the configure script now check that the specified architectures can be used. .. .. bpo: 42508 .. date: 2020-11-30-19-46-05 .. nonce: fE7w4M .. section: IDLE Keep IDLE running on macOS. Remove obsolete workaround that prevented running files with shortcuts when using new universal2 installers built on macOS 11. .. .. bpo: 42426 .. date: 2020-11-21-17-21-21 .. nonce: kNnPoC .. section: IDLE Fix reporting offset of the RE error in searchengine. .. .. bpo: 42415 .. date: 2020-11-20-01-30-27 .. nonce: CyD-va .. section: IDLE Get docstrings for IDLE calltips more often by using inspect.getdoc. .. .. bpo: 42212 .. date: 2020-11-20-15-11-05 .. nonce: sjzgOf .. section: Tools/Demos The smelly.py script now also checks the Python dynamic library and extension modules, not only the Python static library. Make also the script more verbose: explain what it does. .. .. bpo: 36310 .. date: 2020-05-03-01-30-46 .. nonce: xDxxwY .. section: Tools/Demos Allow :file:`Tools/i18n/pygettext.py` to detect calls to ``gettext`` in f-strings. .. .. bpo: 42423 .. date: 2020-11-21-12-27-19 .. nonce: ByJHhY .. section: C API The :c:func:`PyType_FromSpecWithBases` and :c:func:`PyType_FromModuleAndSpec` functions now accept a single class as the *bases* argument. .. .. bpo: 1635741 .. date: 2020-11-19-17-44-36 .. nonce: qBZc3o .. section: C API Port :mod:`select` extension module to multiphase initialization (:pep:`489`). .. .. bpo: 1635741 .. date: 2020-11-19-16-54-16 .. nonce: 9tVsZt .. section: C API Port _posixsubprocess extension module to multiphase initialization (:pep:`489`). .. .. bpo: 1635741 .. date: 2020-11-19-15-33-42 .. nonce: 9tVsZt .. section: C API Port _posixshmem extension module to multiphase initialization (:pep:`489`) .. .. bpo: 1635741 .. date: 2020-11-19-12-06-43 .. nonce: KEfZpn .. section: C API Port _struct extension module to multiphase initialization (:pep:`489`) .. .. bpo: 1635741 .. date: 2020-11-19-09-17-01 .. nonce: 6F9o6L .. section: C API Port :mod:`!spwd` extension module to multiphase initialization (:pep:`489`) .. .. bpo: 1635741 .. date: 2020-11-18-20-33-35 .. nonce: B4ztSk .. section: C API Port :mod:`gc` extension module to multiphase initialization (:pep:`489`) .. .. bpo: 1635741 .. date: 2020-11-18-20-11-13 .. nonce: fe3iRb .. section: C API Port _queue extension module to multiphase initialization (:pep:`489`) .. .. bpo: 39573 .. date: 2020-11-18-15-21-59 .. nonce: VB3G2y .. section: C API Convert :c:func:`Py_TYPE` and :c:func:`Py_SIZE` back to macros to allow using them as an l-value. Many third party C extension modules rely on the ability of using Py_TYPE() and Py_SIZE() to set an object type and size: ``Py_TYPE(obj) = type;`` and ``Py_SIZE(obj) = size;``. .. .. bpo: 1635741 .. date: 2020-11-18-10-52-38 .. nonce: FrWAwJ .. section: C API Port :mod:`symtable` extension module to multiphase initialization (:pep:`489`) .. .. bpo: 1635741 .. date: 2020-11-18-09-46-35 .. nonce: SH8OIT .. section: C API Port :mod:`grp` and :mod:`pwd` extension modules to multiphase initialization (:pep:`489`) .. .. bpo: 1635741 .. date: 2020-11-18-09-16-23 .. nonce: gkoI7Y .. section: C API Port _random extension module to multiphase initialization (:pep:`489`) .. .. bpo: 1635741 .. date: 2020-11-18-08-45-36 .. nonce: VLZfiY .. section: C API Port _hashlib extension module to multiphase initialization (:pep:`489`) .. .. bpo: 41713 .. date: 2020-11-17-15-39-10 .. nonce: Rq99Vc .. section: C API Removed the undocumented ``PyOS_InitInterrupts()`` function. Initializing Python already implicitly installs signal handlers: see :c:member:`PyConfig.install_signal_handlers`. Patch by Victor Stinner. .. .. bpo: 40170 .. date: 2020-11-13-01-40-28 .. nonce: uh8lEf .. section: C API The ``Py_TRASHCAN_BEGIN`` macro no longer accesses PyTypeObject attributes, but now can get the condition by calling the new private :c:func:`!_PyTrash_cond()` function which hides implementation details. .. .. bpo: 42260 .. date: 2020-11-10-14-27-39 .. nonce: -Br3Co .. section: C API :c:func:`Py_GetPath`, :c:func:`Py_GetPrefix`, :c:func:`Py_GetExecPrefix`, :c:func:`Py_GetProgramFullPath`, :c:func:`Py_GetPythonHome` and :c:func:`Py_GetProgramName` functions now return ``NULL`` if called before :c:func:`Py_Initialize` (before Python is initialized). Use the new :ref:`Python Initialization Configuration API ` to get the :ref:`Python Path Configuration. `. Patch by Victor Stinner. .. .. bpo: 42260 .. date: 2020-11-05-18-02-07 .. nonce: pAeaNR .. section: C API The :c:func:`PyConfig_Read` function now only parses :c:member:`PyConfig.argv` arguments once: :c:member:`PyConfig.parse_argv` is set to ``2`` after arguments are parsed. Since Python arguments are strippped from :c:member:`PyConfig.argv`, parsing arguments twice would parse the application options as Python options. .. .. bpo: 42262 .. date: 2020-11-04-17-22-36 .. nonce: fCWzBb .. section: C API Added :c:func:`Py_NewRef` and :c:func:`Py_XNewRef` functions to increment the reference count of an object and return the object. Patch by Victor Stinner. .. .. bpo: 42260 .. date: 2020-11-04-16-31-55 .. nonce: CmgHtF .. section: C API When :c:func:`Py_Initialize` is called twice, the second call now updates more :mod:`sys` attributes for the configuration, rather than only :data:`sys.argv`. Patch by Victor Stinner. .. .. bpo: 41832 .. date: 2020-11-03-19-47-06 .. nonce: dL1VJJ .. section: C API The :c:func:`PyType_FromModuleAndSpec` function now accepts NULL ``tp_doc`` slot. .. .. bpo: 1635741 .. date: 2020-11-03-11-52-27 .. nonce: aDYJKB .. section: C API Added :c:func:`PyModule_AddObjectRef` function: similar to :c:func:`PyModule_AddObject` but don't steal a reference to the value on success. Patch by Victor Stinner. .. .. bpo: 42171 .. date: 2020-10-27-21-10-14 .. nonce: S3FWTP .. section: C API The :c:macro:`METH_FASTCALL` calling convention is added to the limited API. The functions :c:func:`PyModule_AddType`, :c:func:`PyType_FromModuleAndSpec`, :c:func:`PyType_GetModule` and :c:func:`PyType_GetModuleState` are added to the limited API on Windows. .. .. bpo: 42085 .. date: 2020-10-19-15-58-16 .. nonce: NhEf3W .. section: C API Add dedicated entry to PyAsyncMethods for sending values .. .. bpo: 41073 .. date: 2020-07-08-21-01-49 .. nonce: VqQZON .. section: C API :c:func:`PyType_GetSlot()` can now accept static types. .. .. bpo: 30459 .. date: 2020-05-06-23-54-57 .. nonce: N9_Jai .. section: C API :c:func:`PyList_SET_ITEM`, :c:func:`PyTuple_SET_ITEM` and :c:func:`PyCell_SET` macros can no longer be used as l-value or r-value. For example, ``x = PyList_SET_ITEM(a, b, c)`` and ``PyList_SET_ITEM(a, b, c) = x`` now fail with a compiler error. It prevents bugs like ``if (PyList_SET_ITEM (a, b, c) < 0) ...`` test. Patch by Zackery Spytz and Victor Stinner.