1.. bpo: 40791 2.. date: 2020-05-28-06-06-47 3.. nonce: QGZClX 4.. release date: 2020-12-07 5.. section: Security 6 7Add ``volatile`` to the accumulator variable in ``hmac.compare_digest``, 8making constant-time-defeating optimizations less likely. 9 10.. 11 12.. bpo: 42576 13.. date: 2020-12-05-22-34-47 14.. nonce: lEeEl7 15.. section: Core and Builtins 16 17``types.GenericAlias`` will now raise a ``TypeError`` when attempting to 18initialize with a keyword argument. Previously, this would cause the 19interpreter to crash if the interpreter was compiled with debug symbols. 20This does not affect interpreters compiled for release. Patch by Ken Jin. 21 22.. 23 24.. bpo: 42536 25.. date: 2020-12-02-20-23-31 26.. nonce: Kx3ZOu 27.. section: Core and Builtins 28 29Several built-in and standard library types now ensure that their internal 30result tuples are always tracked by the :term:`garbage collector <garbage 31collection>`: 32 33- :meth:`collections.OrderedDict.items() <collections.OrderedDict>` 34 35- :meth:`dict.items` 36 37- :func:`enumerate` 38 39- :func:`functools.reduce` 40 41- :func:`itertools.combinations` 42 43- :func:`itertools.combinations_with_replacement` 44 45- :func:`itertools.permutations` 46 47- :func:`itertools.product` 48 49- :func:`itertools.zip_longest` 50 51- :func:`zip` 52 53Previously, they could have become untracked by a prior garbage collection. 54Patch by Brandt Bucher. 55 56.. 57 58.. bpo: 42500 59.. date: 2020-11-30-14-27-29 60.. nonce: excVKU 61.. section: Core and Builtins 62 63Improve handling of exceptions near recursion limit. Converts a number of 64Fatal Errors in RecursionErrors. 65 66.. 67 68.. bpo: 42246 69.. date: 2020-11-24-14-01-43 70.. nonce: c9k9hj 71.. section: Core and Builtins 72 73PEP 626: After a return, the f_lineno attribute of a frame is always the 74last line executed. 75 76.. 77 78.. bpo: 42435 79.. date: 2020-11-22-14-34-55 80.. nonce: uwlB2W 81.. section: Core and Builtins 82 83Speed up comparison of bytes objects with non-bytes objects when option 84:option:`-b` is specified. Speed up comparison of bytarray objects with 85non-buffer object. 86 87.. 88 89.. bpo: 1635741 90.. date: 2020-11-18-23-46-31 91.. nonce: GVOQ-m 92.. section: Core and Builtins 93 94Port the ``_warnings`` extension module to the multi-phase initialization 95API (:pep:`489`). Patch by Victor Stinner. 96 97.. 98 99.. bpo: 41686 100.. date: 2020-11-17-16-25-50 101.. nonce: hX77kL 102.. section: Core and Builtins 103 104On Windows, the ``SIGINT`` event, ``_PyOS_SigintEvent()``, is now created 105even if Python is configured to not install signal handlers (if 106:c:member:`PyConfig.install_signal_handlers` equals to 0, or 107``Py_InitializeEx(0)``). 108 109.. 110 111.. bpo: 42381 112.. date: 2020-11-16-23-45-56 113.. nonce: G4AWxL 114.. section: Core and Builtins 115 116Allow assignment expressions in set literals and set comprehensions as per 117PEP 572. Patch by Pablo Galindo. 118 119.. 120 121.. bpo: 42202 122.. date: 2020-11-16-18-13-07 123.. nonce: ZxenYD 124.. section: Core and Builtins 125 126Change function parameters annotations internal representation to tuple of 127strings. Patch provided by Yurii Karabas. 128 129.. 130 131.. bpo: 42374 132.. date: 2020-11-16-17-57-09 133.. nonce: t7np1E 134.. section: Core and Builtins 135 136Fix a regression introduced by the new parser, where an unparenthesized 137walrus operator was not allowed within generator expressions. 138 139.. 140 141.. bpo: 42316 142.. date: 2020-11-16-17-30-03 143.. nonce: _DdmpQ 144.. section: Core and Builtins 145 146Allow an unparenthesized walrus in subscript indexes. 147 148.. 149 150.. bpo: 42349 151.. date: 2020-11-13-17-25-44 152.. nonce: JdWxez 153.. section: Core and Builtins 154 155Make sure that the compiler front-end produces a well-formed control flow 156graph. Be be more aggressive in the compiler back-end, as it is now safe to 157do so. 158 159.. 160 161.. bpo: 42296 162.. date: 2020-11-13-13-53-11 163.. nonce: DuGrLJ 164.. section: Core and Builtins 165 166On Windows, fix a regression in signal handling which prevented to interrupt 167a program using CTRL+C. The signal handler can be run in a thread different 168than the Python thread, in which case the test deciding if the thread can 169handle signals is wrong. 170 171.. 172 173.. bpo: 42332 174.. date: 2020-11-12-23-16-14 175.. nonce: fEQIdk 176.. section: Core and Builtins 177 178:class:`types.GenericAlias` objects can now be the targets of weakrefs. 179 180.. 181 182.. bpo: 42282 183.. date: 2020-11-07-21-02-05 184.. nonce: M1W4Wj 185.. section: Core and Builtins 186 187Optimise constant subexpressions that appear as part of named expressions 188(previously the AST optimiser did not descend into named expressions). Patch 189by Nick Coghlan. 190 191.. 192 193.. bpo: 42266 194.. date: 2020-11-04-23-03-25 195.. nonce: G4hGDe 196.. section: Core and Builtins 197 198Fixed a bug with the LOAD_ATTR opcode cache that was not respecting 199monkey-patching a class-level attribute to make it a descriptor. Patch by 200Pablo Galindo. 201 202.. 203 204.. bpo: 40077 205.. date: 2020-11-03-21-58-27 206.. nonce: a9qM1j 207.. section: Core and Builtins 208 209Convert :mod:`queue` to use heap types. 210 211.. 212 213.. bpo: 42246 214.. date: 2020-11-02-15-48-17 215.. nonce: 3CNQEX 216.. section: Core and Builtins 217 218Improved accuracy of line tracing events and f_lineno attribute of Frame 219objects. See PEP 626 for details. 220 221.. 222 223.. bpo: 40077 224.. date: 2020-11-02-14-39-48 225.. nonce: grY9TG 226.. section: Core and Builtins 227 228Convert :mod:`mmap` to use heap types. 229 230.. 231 232.. bpo: 42233 233.. date: 2020-11-01-23-34-56 234.. nonce: zOSzja 235.. section: Core and Builtins 236 237Allow ``GenericAlias`` objects to use :ref:`union type expressions 238<types-union>`. This allows expressions like ``list[int] | dict[float, 239str]`` where previously a ``TypeError`` would have been thrown. This also 240fixes union type expressions not de-duplicating ``GenericAlias`` objects. 241(Contributed by Ken Jin in :issue:`42233`.) 242 243.. 244 245.. bpo: 26131 246.. date: 2020-10-22-17-27-08 247.. nonce: B-Veg7 248.. section: Core and Builtins 249 250The import system triggers a `ImportWarning` when it falls back to using 251`load_module()`. 252 253.. 254 255.. bpo: 5054 256.. date: 2020-12-04-03-51-12 257.. nonce: 53StYZ 258.. section: Library 259 260CGIHTTPRequestHandler.run_cgi() HTTP_ACCEPT improperly parsed. Replace the 261special purpose getallmatchingheaders with generic get_all method and add 262relevant tests. 263 264Original Patch by Martin Panter. Modified by Senthil Kumaran. 265 266.. 267 268.. bpo: 42562 269.. date: 2020-12-03-22-42-03 270.. nonce: 2hPmhi 271.. section: Library 272 273Fix issue when dis failed to parse function that has no line numbers. Patch 274provided by Yurii Karabas. 275 276.. 277 278.. bpo: 17735 279.. date: 2020-12-03-22-22-24 280.. nonce: Qsaaue 281.. section: Library 282 283:func:`inspect.findsource` now raises :exc:`OSError` instead of 284:exc:`IndexError` when :attr:`co_lineno` of a code object is greater than 285the file length. This can happen, for example, when a file is edited after 286it was imported. PR by Irit Katriel. 287 288.. 289 290.. bpo: 42116 291.. date: 2020-12-03-15-42-32 292.. nonce: yIwroP 293.. section: Library 294 295Fix handling of trailing comments by :func:`inspect.getsource`. 296 297.. 298 299.. bpo: 42532 300.. date: 2020-12-02-07-37-59 301.. nonce: ObNep_ 302.. section: Library 303 304Remove unexpected call of ``__bool__`` when passing a ``spec_arg`` argument 305to a Mock. 306 307.. 308 309.. bpo: 38200 310.. date: 2020-11-28-22-52-57 311.. nonce: DuWGlW 312.. section: Library 313 314Added itertools.pairwise() 315 316.. 317 318.. bpo: 41818 319.. date: 2020-11-28-06-34-53 320.. nonce: mFSMc2 321.. section: Library 322 323Fix test_master_read() so that it succeeds on all platforms that either 324raise OSError or return b"" upon reading from master. 325 326.. 327 328.. bpo: 42487 329.. date: 2020-11-28-04-31-20 330.. nonce: iqtC4L 331.. section: Library 332 333ChainMap.__iter__ no longer calls __getitem__ on underlying maps 334 335.. 336 337.. bpo: 42482 338.. date: 2020-11-27-16-46-58 339.. nonce: EJC3sd 340.. section: Library 341 342:class:`~traceback.TracebackException` no longer holds a reference to the 343exception's traceback object. Consequently, instances of TracebackException 344for equivalent but non-equal exceptions now compare as equal. 345 346.. 347 348.. bpo: 41818 349.. date: 2020-11-27-09-19-43 350.. nonce: KWYUbL 351.. section: Library 352 353Make test_openpty() avoid unexpected success due to number of rows and/or 354number of columns being == 0. 355 356.. 357 358.. bpo: 42392 359.. date: 2020-11-26-12-40-16 360.. nonce: GbmdHE 361.. section: Library 362 363Remove loop parameter from ``asyncio.subprocess`` and ``asyncio.tasks`` 364functions. Patch provided by Yurii Karabas. 365 366.. 367 368.. bpo: 42392 369.. date: 2020-11-25-22-44-59 370.. nonce: T_DAEl 371.. section: Library 372 373Remove loop parameter from ``asyncio.open_connection`` and 374``asyncio.start_server`` functions. Patch provided by Yurii Karabas. 375 376.. 377 378.. bpo: 28468 379.. date: 2020-11-24-13-18-05 380.. nonce: 8Gh2d4 381.. section: Library 382 383Add :func:`platform.freedesktop_os_release` function to parse 384freedesktop.org ``os-release`` files. 385 386.. 387 388.. bpo: 42299 389.. date: 2020-11-23-23-42-08 390.. nonce: Fdn4Wf 391.. section: Library 392 393Removed the ``formatter`` module, which was deprecated in Python 3.4. It is 394somewhat obsolete, little used, and not tested. It was originally scheduled 395to be removed in Python 3.6, but such removals were delayed until after 396Python 2.7 EOL. Existing users should copy whatever classes they use into 397their code. Patch by Dong-hee Na and and Terry J. Reedy. 398 399.. 400 401.. bpo: 26131 402.. date: 2020-11-22-12-30-26 403.. nonce: -HsFPG 404.. section: Library 405 406Deprecate zipimport.zipimporter.load_module() in favour of exec_module(). 407 408.. 409 410.. bpo: 41818 411.. date: 2020-11-20-14-44-07 412.. nonce: 33soAw 413.. section: Library 414 415Updated tests for the pty library. test_basic() has been changed to 416test_openpty(); this additionally checks if slave termios and slave winsize 417are being set properly by pty.openpty(). In order to add support for 418FreeBSD, NetBSD, OpenBSD, and Darwin, this also adds test_master_read(), 419which demonstrates that pty.spawn() should not depend on an OSError to exit 420from its copy loop. 421 422.. 423 424.. bpo: 42392 425.. date: 2020-11-20-14-01-29 426.. nonce: -OUzvl 427.. section: Library 428 429Remove loop parameter from ``__init__`` in all ``asyncio.locks`` and 430``asyncio.Queue`` classes. Patch provided by Yurii Karabas. 431 432.. 433 434.. bpo: 15450 435.. date: 2020-11-20-10-38-34 436.. nonce: E-y9PA 437.. section: Library 438 439Make :class:`filecmp.dircmp` respect subclassing. Now the 440:attr:`filecmp.dircmp.subdirs` behaves as expected when subclassing dircmp. 441 442.. 443 444.. bpo: 42413 445.. date: 2020-11-19-20-27-51 446.. nonce: fjHrHx 447.. section: Library 448 449The exception :exc:`socket.timeout` is now an alias of :exc:`TimeoutError`. 450 451.. 452 453.. bpo: 31904 454.. date: 2020-11-19-16-14-36 455.. nonce: 83kf9d 456.. section: Library 457 458Support signal module on VxWorks. 459 460.. 461 462.. bpo: 42406 463.. date: 2020-11-19-10-44-41 464.. nonce: r9rNCj 465.. section: Library 466 467We fixed an issue in `pickle.whichmodule` in which importing 468`multiprocessing` could change the how pickle identifies which module an 469object belongs to, potentially breaking the unpickling of those objects. 470 471.. 472 473.. bpo: 42403 474.. date: 2020-11-19-10-12-39 475.. nonce: t7q5AX 476.. section: Library 477 478Simplify the :mod:`importlib` external bootstrap code: 479``importlib._bootstrap_external`` now uses regular imports to import builtin 480modules. When it is imported, the builtin :func:`__import__()` function is 481already fully working and so can be used to import builtin modules like 482:mod:`sys`. Patch by Victor Stinner. 483 484.. 485 486.. bpo: 1635741 487.. date: 2020-11-19-09-59-07 488.. nonce: 7cMypH 489.. section: Library 490 491Convert _sre module types to heap types (PEP 384). Patch by Erlend E. 492Aasland. 493 494.. 495 496.. bpo: 42375 497.. date: 2020-11-19-04-13-53 498.. nonce: U8bp4s 499.. section: Library 500 501subprocess module update for DragonFlyBSD support. 502 503.. 504 505.. bpo: 41713 506.. date: 2020-11-17-23-00-27 507.. nonce: -Us0tf 508.. section: Library 509 510Port the ``_signal`` extension module to the multi-phase initialization API 511(:pep:`489`). Patch by Victor Stinner and Mohamed Koubaa. 512 513.. 514 515.. bpo: 37205 516.. date: 2020-11-16-15-08-12 517.. nonce: Wh5svI 518.. section: Library 519 520:func:`time.time()`, :func:`time.perf_counter()` and 521:func:`time.monotonic()` functions can no longer fail with a Python fatal 522error, instead raise a regular Python exception on failure. 523 524.. 525 526.. bpo: 42328 527.. date: 2020-11-15-17-02-00 528.. nonce: bqpPlR 529.. section: Library 530 531Fixed :meth:`tkinter.ttk.Style.map`. The function accepts now the 532representation of the default state as empty sequence (as returned by 533``Style.map()``). The structure of the result is now the same on all 534platform and does not depend on the value of ``wantobjects``. 535 536.. 537 538.. bpo: 42345 539.. date: 2020-11-15-15-23-34 540.. nonce: hiIR7x 541.. section: Library 542 543Fix various issues with ``typing.Literal`` parameter handling (flatten, 544deduplicate, use type to cache key). Patch provided by Yurii Karabas. 545 546.. 547 548.. bpo: 37205 549.. date: 2020-11-14-14-34-32 550.. nonce: iDbHrw 551.. section: Library 552 553:func:`time.perf_counter()` on Windows and :func:`time.monotonic()` on macOS 554are now system-wide. Previously, they used an offset computed at startup to 555reduce the precision loss caused by the float type. Use 556:func:`time.perf_counter_ns()` and :func:`time.monotonic_ns()` added in 557Python 3.7 to avoid this precision loss. 558 559.. 560 561.. bpo: 42318 562.. date: 2020-11-14-13-46-27 563.. nonce: wYAcBD 564.. section: Library 565 566Fixed support of non-BMP characters in :mod:`tkinter` on macOS. 567 568.. 569 570.. bpo: 42350 571.. date: 2020-11-13-18-53-50 572.. nonce: rsql7V 573.. section: Library 574 575Fix the :class:`threading.Thread` class at fork: do nothing if the thread is 576already stopped (ex: fork called at Python exit). Previously, an error was 577logged in the child process. 578 579.. 580 581.. bpo: 42333 582.. date: 2020-11-12-18-21-15 583.. nonce: J9vFmV 584.. section: Library 585 586Port _ssl extension module to heap types. 587 588.. 589 590.. bpo: 42014 591.. date: 2020-11-10-15-40-56 592.. nonce: ShM37l 593.. section: Library 594 595The ``onerror`` callback from ``shutil.rmtree`` now receives correct 596function when ``os.open`` fails. 597 598.. 599 600.. bpo: 42237 601.. date: 2020-11-10-14-27-49 602.. nonce: F363jO 603.. section: Library 604 605Fix `os.sendfile()` on illumos. 606 607.. 608 609.. bpo: 42308 610.. date: 2020-11-10-12-09-13 611.. nonce: yaJHH9 612.. section: Library 613 614Add :data:`threading.__excepthook__` to allow retrieving the original value 615of :func:`threading.excepthook` in case it is set to a broken or a different 616value. Patch by Mario Corchero. 617 618.. 619 620.. bpo: 42131 621.. date: 2020-11-06-18-20-47 622.. nonce: l2rjjG 623.. section: Library 624 625Implement PEP 451/spec methods on zipimport.zipimporter: find_spec(), 626create_module(), and exec_module(). 627 628This also allows for the documented deprecation of find_loader(), 629find_module(), and load_module(). 630 631.. 632 633.. bpo: 41877 634.. date: 2020-11-05-16-00-03 635.. nonce: FHbngM 636.. section: Library 637 638Mock objects which are not unsafe will now raise an AttributeError if an 639attribute with the prefix asert, aseert, or assrt is accessed, in addition 640to this already happening for the prefixes assert or assret. 641 642.. 643 644.. bpo: 42264 645.. date: 2020-11-05-13-32-41 646.. nonce: r4KYUU 647.. section: Library 648 649``sqlite3.OptimizedUnicode`` has been undocumented and obsolete since Python 6503.3, when it was made an alias to :class:`str`. It is now deprecated, 651scheduled for removal in Python 3.12. 652 653.. 654 655.. bpo: 42251 656.. date: 2020-11-03-14-15-35 657.. nonce: 6TC32V 658.. section: Library 659 660Added :func:`threading.gettrace` and :func:`threading.getprofile` to 661retrieve the functions set by :func:`threading.settrace` and 662:func:`threading.setprofile` respectively. Patch by Mario Corchero. 663 664.. 665 666.. bpo: 42249 667.. date: 2020-11-03-09-22-56 668.. nonce: vfNO2u 669.. section: Library 670 671Fixed writing binary Plist files larger than 4 GiB. 672 673.. 674 675.. bpo: 42236 676.. date: 2020-11-02-23-05-17 677.. nonce: aJ6ZBR 678.. section: Library 679 680On Unix, the :func:`os.device_encoding` function now returns ``'UTF-8'`` 681rather than the device encoding if the :ref:`Python UTF-8 Mode <utf8-mode>` 682is enabled. 683 684.. 685 686.. bpo: 41754 687.. date: 2020-11-01-15-07-20 688.. nonce: DraSZh 689.. section: Library 690 691webbrowser: Ignore *NotADirectoryError* when calling ``xdg-settings``. 692 693.. 694 695.. bpo: 42183 696.. date: 2020-10-29-11-17-35 697.. nonce: 50ZcIi 698.. section: Library 699 700Fix a stack overflow error for asyncio Task or Future repr(). 701 702The overflow occurs under some circumstances when a Task or Future 703recursively returns itself. 704 705.. 706 707.. bpo: 42140 708.. date: 2020-10-24-04-02-36 709.. nonce: miLqvb 710.. section: Library 711 712Improve asyncio.wait function to create the futures set just one time. 713 714.. 715 716.. bpo: 42133 717.. date: 2020-10-23-15-47-47 718.. nonce: BzizYV 719.. section: Library 720 721Update various modules in the stdlib to fall back on `__spec__.loader` when 722`__loader__` isn't defined on a module. 723 724.. 725 726.. bpo: 26131 727.. date: 2020-10-22-17-26-35 728.. nonce: CAsI3O 729.. section: Library 730 731The `load_module()` methods found in importlib now trigger a 732DeprecationWarning. 733 734.. 735 736.. bpo: 39825 737.. date: 2020-10-20-08-28-26 738.. nonce: n6KnG0 739.. section: Library 740 741Windows: Change ``sysconfig.get_config_var('EXT_SUFFIX')`` to the expected 742full ``platform_tag.extension`` format. Previously it was hard-coded to 743``.pyd``, now it is compatible with ``distutils.sysconfig`` and will result 744in something like ``.cp38-win_amd64.pyd``. This brings windows into 745conformance with the other platforms. 746 747.. 748 749.. bpo: 26389 750.. date: 2020-10-08-23-51-55 751.. nonce: uga44e 752.. section: Library 753 754The :func:`traceback.format_exception`, 755:func:`traceback.format_exception_only`, and 756:func:`traceback.print_exception` functions can now take an exception object 757as a positional-only argument. 758 759.. 760 761.. bpo: 41889 762.. date: 2020-10-01-16-17-11 763.. nonce: qLkNh8 764.. section: Library 765 766Enum: fix regression involving inheriting a multiply-inherited enum 767 768.. 769 770.. bpo: 41861 771.. date: 2020-10-01-15-44-52 772.. nonce: YTqJ7z 773.. section: Library 774 775Convert :mod:`sqlite3` to use heap types (PEP 384). Patch by Erlend E. 776Aasland. 777 778.. 779 780.. bpo: 40624 781.. date: 2020-09-08-03-19-04 782.. nonce: 0-gYfx 783.. section: Library 784 785Added support for the XPath ``!=`` operator in xml.etree 786 787.. 788 789.. bpo: 28850 790.. date: 2020-09-06-21-55-44 791.. nonce: HJNggD 792.. section: Library 793 794Fix :meth:`pprint.PrettyPrinter.format` overrides being ignored for contents 795of small containers. The :func:`pprint._safe_repr` function was removed. 796 797.. 798 799.. bpo: 41625 800.. date: 2020-08-24-16-59-04 801.. nonce: Cc967V 802.. section: Library 803 804Expose the :c:func:`splice` as :func:`os.splice` in the :mod:`os` module. 805Patch by Pablo Galindo 806 807.. 808 809.. bpo: 34215 810.. date: 2020-08-19-20-17-51 811.. nonce: _Cv8c- 812.. section: Library 813 814Clarify the error message for :exc:`asyncio.IncompleteReadError` when 815``expected`` is ``None``. 816 817.. 818 819.. bpo: 41543 820.. date: 2020-08-14-00-39-04 821.. nonce: RpcRjb 822.. section: Library 823 824Add async context manager support for contextlib.nullcontext. 825 826.. 827 828.. bpo: 21041 829.. date: 2020-08-10-15-06-55 830.. nonce: cYz1eL 831.. section: Library 832 833:attr:`pathlib.PurePath.parents` now supports negative indexing. Patch 834contributed by Yaroslav Pankovych. 835 836.. 837 838.. bpo: 41332 839.. date: 2020-07-18-17-39-28 840.. nonce: QRGmA5 841.. section: Library 842 843Added missing connect_accepted_socket() method to 844``asyncio.AbstractEventLoop``. 845 846.. 847 848.. bpo: 12800 849.. date: 2020-07-09-11-32-28 850.. nonce: fNgWwx 851.. section: Library 852 853Extracting a symlink from a tarball should succeed and overwrite the symlink 854if it already exists. The fix is to remove the existing file or symlink 855before extraction. Based on patch by Chris AtLee, Jeffrey Kintscher, and 856Senthil Kumaran. 857 858.. 859 860.. bpo: 40968 861.. date: 2020-06-18-11-35-16 862.. nonce: R8Edbv 863.. section: Library 864 865:mod:`urllib.request` and :mod:`http.client` now send ``http/1.1`` ALPN 866extension during TLS handshake when no custom context is supplied. 867 868.. 869 870.. bpo: 41001 871.. date: 2020-06-17-12-24-26 872.. nonce: 5mi7b0 873.. section: Library 874 875Add func:`os.eventfd` to provide a low level interface for Linux's event 876notification file descriptor. 877 878.. 879 880.. bpo: 40816 881.. date: 2020-05-29-15-25-41 882.. nonce: w61Pob 883.. section: Library 884 885Add AsyncContextDecorator to contextlib to support async context manager as 886a decorator. 887 888.. 889 890.. bpo: 40550 891.. date: 2020-05-08-21-30-54 892.. nonce: i7GWkb 893.. section: Library 894 895Fix time-of-check/time-of-action issue in subprocess.Popen.send_signal. 896 897.. 898 899.. bpo: 39411 900.. date: 2020-01-21-16-38-25 901.. nonce: 9uHFqT 902.. section: Library 903 904Add an ``is_async`` identifier to :mod:`pyclbr`'s ``Function`` objects. 905Patch by Batuhan Taskaya 906 907.. 908 909.. bpo: 35498 910.. date: 2018-12-14-13-29-17 911.. nonce: LEJHl7 912.. section: Library 913 914Add slice support to :attr:`pathlib.PurePath.parents`. 915 916.. 917 918.. bpo: 42238 919.. date: 2020-11-24-22-54-49 920.. nonce: 62EOTu 921.. section: Documentation 922 923Tentative to deprecate ``make suspicious`` by first removing it from the CI 924and documentation builds, but keeping it around for manual uses. 925 926.. 927 928.. bpo: 42153 929.. date: 2020-11-15-13-46-31 930.. nonce: KjBhx3 931.. section: Documentation 932 933Fix the URL for the IMAP protocol documents. 934 935.. 936 937.. bpo: 41028 938.. date: 2020-06-18-23-37-03 939.. nonce: vM8bC8 940.. section: Documentation 941 942Language and version switchers, previously maintained in every cpython 943branches, are now handled by docsbuild-script. 944 945.. 946 947.. bpo: 41473 948.. date: 2020-12-04-11-47-09 949.. nonce: W_updK 950.. section: Tests 951 952Re-enable test_gdb on gdb 9.2 and newer: 953https://bugzilla.redhat.com/show_bug.cgi?id=1866884 bug is fixed in gdb 95410.1. 955 956.. 957 958.. bpo: 42553 959.. date: 2020-12-03-13-32-44 960.. nonce: 2TRE2N 961.. section: Tests 962 963Fix ``test_asyncio.test_call_later()`` race condition: don't measure asyncio 964performance in the ``call_later()`` unit test. The test failed randomly on 965the CI. 966 967.. 968 969.. bpo: 31904 970.. date: 2020-12-01-15-51-19 971.. nonce: iwetj4 972.. section: Tests 973 974Fix test_netrc on VxWorks: create temporary directories using temp_cwd(). 975 976.. 977 978.. bpo: 31904 979.. date: 2020-11-26-11-13-13 980.. nonce: ay4g89 981.. section: Tests 982 983skip test_getaddrinfo_ipv6_scopeid_symbolic and 984test_getnameinfo_ipv6_scopeid_symbolic on VxWorks 985 986.. 987 988.. bpo: 31904 989.. date: 2020-11-25-17-00-53 990.. nonce: ue4hd9 991.. section: Tests 992 993skip test_test of test_mailcap on VxWorks 994 995.. 996 997.. bpo: 31904 998.. date: 2020-11-24-17-26-41 999.. nonce: eug834 1000.. section: Tests 1001 1002add shell requirement for test_pipes 1003 1004.. 1005 1006.. bpo: 31904 1007.. date: 2020-11-23-11-11-29 1008.. nonce: V3sUZk 1009.. section: Tests 1010 1011skip some tests related to fifo on VxWorks 1012 1013.. 1014 1015.. bpo: 31904 1016.. date: 2020-11-20-15-07-18 1017.. nonce: EBJXjJ 1018.. section: Tests 1019 1020Fix test_doctest.py failures for VxWorks. 1021 1022.. 1023 1024.. bpo: 40754 1025.. date: 2020-11-13-21-51-34 1026.. nonce: Ekoxkg 1027.. section: Tests 1028 1029Include ``_testinternalcapi`` module in Windows installer for test suite 1030 1031.. 1032 1033.. bpo: 41561 1034.. date: 2020-09-18-16-14-03 1035.. nonce: uPnwrW 1036.. section: Tests 1037 1038test_ssl: skip test_min_max_version_mismatch when TLS 1.0 is not available 1039 1040.. 1041 1042.. bpo: 31904 1043.. date: 2020-05-20-17-28-46 1044.. nonce: yt83Ge 1045.. section: Tests 1046 1047Fix os module failures for VxWorks RTOS. 1048 1049.. 1050 1051.. bpo: 31904 1052.. date: 2020-05-20-14-28-48 1053.. nonce: yJik6k 1054.. section: Tests 1055 1056Fix fifo test cases for VxWorks RTOS. 1057 1058.. 1059 1060.. bpo: 31904 1061.. date: 2020-11-19-17-01-50 1062.. nonce: 894dk2 1063.. section: Build 1064 1065remove libnet dependency from detect_socket() for VxWorks 1066 1067.. 1068 1069.. bpo: 42398 1070.. date: 2020-11-18-11-58-44 1071.. nonce: Yt5wO8 1072.. section: Build 1073 1074Fix a race condition in "make regen-all" when make -jN option is used to run 1075jobs in parallel. The clinic.py script now only use atomic write to write 1076files. Moveover, generated files are now left unchanged if the content does 1077not change, to not change the file modification time. 1078 1079.. 1080 1081.. bpo: 41617 1082.. date: 2020-11-13-15-04-53 1083.. nonce: 98_oaE 1084.. section: Build 1085 1086Fix building ``pycore_bitutils.h`` internal header on old clang version 1087without ``__builtin_bswap16()`` (ex: Xcode 4.6.3 on Mac OS X 10.7). Patch by 1088Joshua Root and Victor Stinner. 1089 1090.. 1091 1092.. bpo: 38823 1093.. date: 2020-11-12-13-45-15 1094.. nonce: C0z_Fe 1095.. section: Build 1096 1097It is no longer possible to build the ``_ctypes`` extension module without 1098:c:type:`wchar_t` type: remove ``CTYPES_UNICODE`` macro. Anyway, the 1099:c:type:`wchar_t` type is required to build Python. Patch by Victor Stinner. 1100 1101.. 1102 1103.. bpo: 42087 1104.. date: 2020-10-19-15-41-05 1105.. nonce: 2AhRFP 1106.. section: Build 1107 1108Support was removed for AIX 5.3 and below. See :issue:`40680`. 1109 1110.. 1111 1112.. bpo: 40998 1113.. date: 2020-06-17-09-05-02 1114.. nonce: sgqmg9 1115.. section: Build 1116 1117Addressed three compiler warnings found by undefined behavior sanitizer 1118(ubsan). 1119 1120.. 1121 1122.. bpo: 42120 1123.. date: 2020-11-16-22-41-02 1124.. nonce: 9scgko 1125.. section: Windows 1126 1127Remove macro definition of ``copysign`` (to ``_copysign``) in headers. 1128 1129.. 1130 1131.. bpo: 38506 1132.. date: 2020-11-15-23-01-14 1133.. nonce: hhdnuP 1134.. section: Windows 1135 1136The Windows launcher now properly handles Python 3.10 when listing installed 1137Python versions. 1138 1139.. 1140 1141.. bpo: 42504 1142.. date: 2020-12-02-15-48-40 1143.. nonce: RQmMOR 1144.. section: macOS 1145 1146Fix build on macOS Big Sur when MACOSX_DEPLOYMENT_TARGET=11 1147 1148.. 1149 1150.. bpo: 41116 1151.. date: 2020-11-15-16-43-45 1152.. nonce: oCkbrF 1153.. section: macOS 1154 1155Ensure distutils.unixxcompiler.find_library_file can find system provided 1156libraries on macOS 11. 1157 1158.. 1159 1160.. bpo: 41100 1161.. date: 2020-11-01-16-40-23 1162.. nonce: BApztP 1163.. section: macOS 1164 1165Add support for macOS 11 and Apple Silicon systems. 1166 1167It is now possible to build "Universal 2" binaries using 1168"--enable-universalsdk --with-universal-archs=universal2". 1169 1170Binaries build on later macOS versions can be deployed back to older 1171versions (tested up to macOS 10.9), when using the correct deployment 1172target. This is tested using Xcode 11 and later. 1173 1174.. 1175 1176.. bpo: 42232 1177.. date: 2020-11-01-15-10-28 1178.. nonce: 2zI1GN 1179.. section: macOS 1180 1181Added Darwin specific madvise options to mmap module. 1182 1183.. 1184 1185.. bpo: 38443 1186.. date: 2020-10-23-10-26-53 1187.. nonce: vu64tl 1188.. section: macOS 1189 1190The ``--enable-universalsdk`` and ``--with-universal-archs`` options for the 1191configure script now check that the specified architectures can be used. 1192 1193.. 1194 1195.. bpo: 42508 1196.. date: 2020-11-30-19-46-05 1197.. nonce: fE7w4M 1198.. section: IDLE 1199 1200Keep IDLE running on macOS. Remove obsolete workaround that prevented 1201running files with shortcuts when using new universal2 installers built on 1202macOS 11. 1203 1204.. 1205 1206.. bpo: 42426 1207.. date: 2020-11-21-17-21-21 1208.. nonce: kNnPoC 1209.. section: IDLE 1210 1211Fix reporting offset of the RE error in searchengine. 1212 1213.. 1214 1215.. bpo: 42415 1216.. date: 2020-11-20-01-30-27 1217.. nonce: CyD-va 1218.. section: IDLE 1219 1220Get docstrings for IDLE calltips more often by using inspect.getdoc. 1221 1222.. 1223 1224.. bpo: 42212 1225.. date: 2020-11-20-15-11-05 1226.. nonce: sjzgOf 1227.. section: Tools/Demos 1228 1229The smelly.py script now also checks the Python dynamic library and 1230extension modules, not only the Python static library. Make also the script 1231more verbose: explain what it does. 1232 1233.. 1234 1235.. bpo: 36310 1236.. date: 2020-05-03-01-30-46 1237.. nonce: xDxxwY 1238.. section: Tools/Demos 1239 1240Allow :file:`Tools/i18n/pygettext.py` to detect calls to ``gettext`` in 1241f-strings. 1242 1243.. 1244 1245.. bpo: 42423 1246.. date: 2020-11-21-12-27-19 1247.. nonce: ByJHhY 1248.. section: C API 1249 1250The :c:func:`PyType_FromSpecWithBases` and 1251:c:func:`PyType_FromModuleAndSpec` functions now accept a single class as 1252the *bases* argument. 1253 1254.. 1255 1256.. bpo: 1635741 1257.. date: 2020-11-19-17-44-36 1258.. nonce: qBZc3o 1259.. section: C API 1260 1261Port :mod:`select` extension module to multiphase initialization 1262(:pep:`489`). 1263 1264.. 1265 1266.. bpo: 1635741 1267.. date: 2020-11-19-16-54-16 1268.. nonce: 9tVsZt 1269.. section: C API 1270 1271Port _posixsubprocess extension module to multiphase initialization 1272(:pep:`489`). 1273 1274.. 1275 1276.. bpo: 1635741 1277.. date: 2020-11-19-15-33-42 1278.. nonce: 9tVsZt 1279.. section: C API 1280 1281Port _posixshmem extension module to multiphase initialization (:pep:`489`) 1282 1283.. 1284 1285.. bpo: 1635741 1286.. date: 2020-11-19-12-06-43 1287.. nonce: KEfZpn 1288.. section: C API 1289 1290Port _struct extension module to multiphase initialization (:pep:`489`) 1291 1292.. 1293 1294.. bpo: 1635741 1295.. date: 2020-11-19-09-17-01 1296.. nonce: 6F9o6L 1297.. section: C API 1298 1299Port :mod:`spwd` extension module to multiphase initialization (:pep:`489`) 1300 1301.. 1302 1303.. bpo: 1635741 1304.. date: 2020-11-18-20-33-35 1305.. nonce: B4ztSk 1306.. section: C API 1307 1308Port :mod:`gc` extension module to multiphase initialization (:pep:`489`) 1309 1310.. 1311 1312.. bpo: 1635741 1313.. date: 2020-11-18-20-11-13 1314.. nonce: fe3iRb 1315.. section: C API 1316 1317Port _queue extension module to multiphase initialization (:pep:`489`) 1318 1319.. 1320 1321.. bpo: 39573 1322.. date: 2020-11-18-15-21-59 1323.. nonce: VB3G2y 1324.. section: C API 1325 1326Convert :c:func:`Py_TYPE` and :c:func:`Py_SIZE` back to macros to allow 1327using them as an l-value. Many third party C extension modules rely on the 1328ability of using Py_TYPE() and Py_SIZE() to set an object type and size: 1329``Py_TYPE(obj) = type;`` and ``Py_SIZE(obj) = size;``. 1330 1331.. 1332 1333.. bpo: 1635741 1334.. date: 2020-11-18-10-52-38 1335.. nonce: FrWAwJ 1336.. section: C API 1337 1338Port :mod:`symtable` extension module to multiphase initialization 1339(:pep:`489`) 1340 1341.. 1342 1343.. bpo: 1635741 1344.. date: 2020-11-18-09-46-35 1345.. nonce: SH8OIT 1346.. section: C API 1347 1348Port :mod:`grp` and :mod:`pwd` extension modules to multiphase 1349initialization (:pep:`489`) 1350 1351.. 1352 1353.. bpo: 1635741 1354.. date: 2020-11-18-09-16-23 1355.. nonce: gkoI7Y 1356.. section: C API 1357 1358Port _random extension module to multiphase initialization (:pep:`489`) 1359 1360.. 1361 1362.. bpo: 1635741 1363.. date: 2020-11-18-08-45-36 1364.. nonce: VLZfiY 1365.. section: C API 1366 1367Port _hashlib extension module to multiphase initialization (:pep:`489`) 1368 1369.. 1370 1371.. bpo: 41713 1372.. date: 2020-11-17-15-39-10 1373.. nonce: Rq99Vc 1374.. section: C API 1375 1376Removed the undocumented ``PyOS_InitInterrupts()`` function. Initializing 1377Python already implicitly installs signal handlers: see 1378:c:member:`PyConfig.install_signal_handlers`. Patch by Victor Stinner. 1379 1380.. 1381 1382.. bpo: 40170 1383.. date: 2020-11-13-01-40-28 1384.. nonce: uh8lEf 1385.. section: C API 1386 1387The ``Py_TRASHCAN_BEGIN`` macro no longer accesses PyTypeObject attributes, 1388but now can get the condition by calling the new private 1389:c:func:`_PyTrash_cond()` function which hides implementation details. 1390 1391.. 1392 1393.. bpo: 42260 1394.. date: 2020-11-10-14-27-39 1395.. nonce: -Br3Co 1396.. section: C API 1397 1398:c:func:`Py_GetPath`, :c:func:`Py_GetPrefix`, :c:func:`Py_GetExecPrefix`, 1399:c:func:`Py_GetProgramFullPath`, :c:func:`Py_GetPythonHome` and 1400:c:func:`Py_GetProgramName` functions now return ``NULL`` if called before 1401:c:func:`Py_Initialize` (before Python is initialized). Use the new 1402:ref:`Python Initialization Configuration API <init-config>` to get the 1403:ref:`Python Path Configuration. <init-path-config>`. Patch by Victor 1404Stinner. 1405 1406.. 1407 1408.. bpo: 42260 1409.. date: 2020-11-05-18-02-07 1410.. nonce: pAeaNR 1411.. section: C API 1412 1413The :c:func:`PyConfig_Read` function now only parses 1414:c:member:`PyConfig.argv` arguments once: :c:member:`PyConfig.parse_argv` is 1415set to ``2`` after arguments are parsed. Since Python arguments are 1416strippped from :c:member:`PyConfig.argv`, parsing arguments twice would 1417parse the application options as Python options. 1418 1419.. 1420 1421.. bpo: 42262 1422.. date: 2020-11-04-17-22-36 1423.. nonce: fCWzBb 1424.. section: C API 1425 1426Added :c:func:`Py_NewRef` and :c:func:`Py_XNewRef` functions to increment 1427the reference count of an object and return the object. Patch by Victor 1428Stinner. 1429 1430.. 1431 1432.. bpo: 42260 1433.. date: 2020-11-04-16-31-55 1434.. nonce: CmgHtF 1435.. section: C API 1436 1437When :c:func:`Py_Initialize` is called twice, the second call now updates 1438more :mod:`sys` attributes for the configuration, rather than only 1439:data:`sys.argv`. Patch by Victor Stinner. 1440 1441.. 1442 1443.. bpo: 41832 1444.. date: 2020-11-03-19-47-06 1445.. nonce: dL1VJJ 1446.. section: C API 1447 1448The :c:func:`PyType_FromModuleAndSpec` function now accepts NULL ``tp_doc`` 1449slot. 1450 1451.. 1452 1453.. bpo: 1635741 1454.. date: 2020-11-03-11-52-27 1455.. nonce: aDYJKB 1456.. section: C API 1457 1458Added :c:func:`PyModule_AddObjectRef` function: similar to 1459:c:func:`PyModule_AddObject` but don't steal a reference to the value on 1460success. Patch by Victor Stinner. 1461 1462.. 1463 1464.. bpo: 42171 1465.. date: 2020-10-27-21-10-14 1466.. nonce: S3FWTP 1467.. section: C API 1468 1469The :c:data:`METH_FASTCALL` calling convention is added to the limited API. 1470The functions :c:func:`PyModule_AddType`, 1471:c:func:`PyType_FromModuleAndSpec`, :c:func:`PyType_GetModule` and 1472:c:func:`PyType_GetModuleState` are added to the limited API on Windows. 1473 1474.. 1475 1476.. bpo: 42085 1477.. date: 2020-10-19-15-58-16 1478.. nonce: NhEf3W 1479.. section: C API 1480 1481Add dedicated entry to PyAsyncMethods for sending values 1482 1483.. 1484 1485.. bpo: 41073 1486.. date: 2020-07-08-21-01-49 1487.. nonce: VqQZON 1488.. section: C API 1489 1490:c:func:`PyType_GetSlot()` can now accept static types. 1491 1492.. 1493 1494.. bpo: 30459 1495.. date: 2020-05-06-23-54-57 1496.. nonce: N9_Jai 1497.. section: C API 1498 1499:c:func:`PyList_SET_ITEM`, :c:func:`PyTuple_SET_ITEM` and 1500:c:func:`PyCell_SET` macros can no longer be used as l-value or r-value. For 1501example, ``x = PyList_SET_ITEM(a, b, c)`` and ``PyList_SET_ITEM(a, b, c) = 1502x`` now fail with a compiler error. It prevents bugs like ``if 1503(PyList_SET_ITEM (a, b, c) < 0) ...`` test. Patch by Zackery Spytz and 1504Victor Stinner. 1505