1.. bpo: 39184 2.. date: 2020-02-07-23-54-18 3.. nonce: v-ue-v 4.. release date: 2020-02-25 5.. section: Security 6 7Add audit events to functions in `fcntl`, `msvcrt`, `os`, `resource`, 8`shutil`, `signal` and `syslog`. 9 10.. 11 12.. bpo: 39401 13.. date: 2020-01-28-20-54-09 14.. nonce: he7h_A 15.. section: Security 16 17Avoid unsafe DLL load at startup on Windows 7 and earlier. 18 19.. 20 21.. bpo: 39184 22.. date: 2020-01-07-00-42-08 23.. nonce: fe7NgK 24.. section: Security 25 26Add audit events to command execution functions in os and pty modules. 27 28.. 29 30.. bpo: 39382 31.. date: 2020-02-18-01-40-13 32.. nonce: OLSJu9 33.. section: Core and Builtins 34 35Fix a use-after-free in the single inheritance path of ``issubclass()``, 36when the ``__bases__`` of an object has a single reference, and so does its 37first item. Patch by Yonatan Goldschmidt. 38 39.. 40 41.. bpo: 39573 42.. date: 2020-02-14-10-08-53 43.. nonce: BIIX2M 44.. section: Core and Builtins 45 46Update clinic tool to use :c:func:`Py_IS_TYPE`. Patch by Dong-hee Na. 47 48.. 49 50.. bpo: 39619 51.. date: 2020-02-13-07-35-00 52.. nonce: inb_master_chroot 53.. section: Core and Builtins 54 55Enable use of :func:`os.chroot` on HP-UX systems. 56 57.. 58 59.. bpo: 39573 60.. date: 2020-02-13-01-30-22 61.. nonce: uTFj1m 62.. section: Core and Builtins 63 64Add :c:func:`Py_IS_TYPE` static inline function to check whether the object 65*o* type is *type*. 66 67.. 68 69.. bpo: 39606 70.. date: 2020-02-11-23-59-07 71.. nonce: a72Sxc 72.. section: Core and Builtins 73 74Fix regression caused by fix for bpo-39386, that prevented calling 75``aclose`` on an async generator that had already been closed or exhausted. 76 77.. 78 79.. bpo: 39579 80.. date: 2020-02-07-15-18-35 81.. nonce: itNmC0 82.. section: Core and Builtins 83 84Change the ending column offset of `Attribute` nodes constructed in 85`ast_for_dotted_name` to point at the end of the current node and not at the 86end of the last `NAME` node. 87 88.. 89 90.. bpo: 1635741 91.. date: 2020-02-07-12-57-40 92.. nonce: ySW6gq 93.. section: Core and Builtins 94 95Port _crypt extension module to multiphase initialization (:pep:`489`). 96 97.. 98 99.. bpo: 1635741 100.. date: 2020-02-06-09-00-35 101.. nonce: oaxe1j 102.. section: Core and Builtins 103 104Port _contextvars extension module to multiphase initialization 105(:pep:`489`). 106 107.. 108 109.. bpo: 39510 110.. date: 2020-02-04-10-27-41 111.. nonce: PMIh-f 112.. section: Core and Builtins 113 114Fix segfault in ``readinto()`` method on closed BufferedReader. 115 116.. 117 118.. bpo: 39502 119.. date: 2020-01-30-14-36-31 120.. nonce: IJu0rl 121.. section: Core and Builtins 122 123Fix :func:`time.localtime` on 64-bit AIX to support years before 1902 and 124after 2038. Patch by M Felt. 125 126.. 127 128.. bpo: 39492 129.. date: 2020-01-30-01-14-42 130.. nonce: eTuy0F 131.. section: Core and Builtins 132 133Fix a reference cycle in the C Pickler that was preventing the garbage 134collection of deleted, pickled objects. 135 136.. 137 138.. bpo: 39453 139.. date: 2020-01-25-23-51-17 140.. nonce: xCOkYk 141.. section: Core and Builtins 142 143Fixed a possible crash in :meth:`list.__contains__` when a list is changed 144during comparing items. Patch by Dong-hee Na. 145 146.. 147 148.. bpo: 39434 149.. date: 2020-01-24-01-07-04 150.. nonce: S5ehj9 151.. section: Core and Builtins 152 153:term:`floor division` of float operation now has a better performance. Also 154the message of :exc:`ZeroDivisionError` for this operation is updated. Patch 155by Dong-hee Na. 156 157.. 158 159.. bpo: 1635741 160.. date: 2020-01-19-11-06-30 161.. nonce: 0mjsfm 162.. section: Core and Builtins 163 164Port _codecs extension module to multiphase initialization (:pep:`489`). 165 166.. 167 168.. bpo: 1635741 169.. date: 2020-01-18-11-06-28 170.. nonce: OKROOt 171.. section: Core and Builtins 172 173Port _bz2 extension module to multiphase initialization (:pep:`489`). 174 175.. 176 177.. bpo: 1635741 178.. date: 2020-01-16-12-00-04 179.. nonce: fuqoBG 180.. section: Core and Builtins 181 182Port _abc extension module to multiphase initialization (:pep:`489`). 183 184.. 185 186.. bpo: 39320 187.. date: 2020-01-15-15-50-22 188.. nonce: oWARyk 189.. section: Core and Builtins 190 191Replace two complex bytecodes for building dicts with two simpler ones. The 192new bytecodes ``DICT_MERGE`` and ``DICT_UPDATE`` have been added The old 193bytecodes ``BUILD_MAP_UNPACK`` and ``BUILD_MAP_UNPACK_WITH_CALL`` have been 194removed. 195 196.. 197 198.. bpo: 39219 199.. date: 2020-01-05-13-36-08 200.. nonce: uHtKd4 201.. section: Core and Builtins 202 203Syntax errors raised in the tokenizer now always set correct "text" and 204"offset" attributes. 205 206.. 207 208.. bpo: 36051 209.. date: 2019-12-30-15-56-07 210.. nonce: imaVlq 211.. section: Core and Builtins 212 213Drop the GIL during large ``bytes.join`` operations. Patch by Bruce Merry. 214 215.. 216 217.. bpo: 38960 218.. date: 2019-12-03-16-41-22 219.. nonce: kvoFM0 220.. section: Core and Builtins 221 222Fix DTrace build issues on FreeBSD. Patch by David Carlier. 223 224.. 225 226.. bpo: 37207 227.. date: 2019-06-09-10-54-31 228.. nonce: bLjgLR 229.. section: Core and Builtins 230 231Speed up calls to ``range()`` by about 30%, by using the PEP 590 232``vectorcall`` calling convention. Patch by Mark Shannon. 233 234.. 235 236.. bpo: 36144 237.. date: 2019-03-02-23-03-34 238.. nonce: LRl4LS 239.. section: Core and Builtins 240 241:class:`dict` (and :class:`collections.UserDict`) objects now support PEP 242584's merge (``|``) and update (``|=``) operators. Patch by Brandt Bucher. 243 244.. 245 246.. bpo: 32856 247.. date: 2018-02-16-10-44-24 248.. nonce: UjR8SD 249.. section: Core and Builtins 250 251Optimized the idiom for assignment a temporary variable in comprehensions. 252Now ``for y in [expr]`` in comprehensions is as fast as a simple assignment 253``y = expr``. 254 255.. 256 257.. bpo: 30566 258.. date: 2020-02-24-03-45-28 259.. nonce: qROxty 260.. section: Library 261 262Fix :exc:`IndexError` when trying to decode an invalid string with punycode 263codec. 264 265.. 266 267.. bpo: 39649 268.. date: 2020-02-23-21-27-10 269.. nonce: qiubSp 270.. section: Library 271 272Remove obsolete check for `__args__` in bdb.Bdb.format_stack_entry. 273 274.. 275 276.. bpo: 39648 277.. date: 2020-02-22-12-49-04 278.. nonce: Y-9N7F 279.. section: Library 280 281Expanded :func:`math.gcd` and :func:`math.lcm` to handle multiple arguments. 282 283.. 284 285.. bpo: 39681 286.. date: 2020-02-21-13-58-40 287.. nonce: zN8hf0 288.. section: Library 289 290Fix a regression where the C pickle module wouldn't allow unpickling from a 291file-like object that doesn't expose a readinto() method. 292 293.. 294 295.. bpo: 35950 296.. date: 2020-02-21-02-42-41 297.. nonce: 9G3-wl 298.. section: Library 299 300Raise :exc:`io.UnsupportedOperation` in :meth:`io.BufferedReader.truncate` 301when it is called on a read-only :class:`io.BufferedReader` instance. 302 303.. 304 305.. bpo: 39479 306.. date: 2020-02-18-12-37-16 307.. nonce: j3UcCq 308.. section: Library 309 310Add :func:`math.lcm` function: least common multiple. 311 312.. 313 314.. bpo: 39674 315.. date: 2020-02-18-12-31-24 316.. nonce: S_zqVM 317.. section: Library 318 319Revert "Do not expose abstract collection classes in the collections module" 320change (bpo-25988). Aliases to ABC like collections.Mapping are kept in 321Python 3.9 to ease transition from Python 2.7, but will be removed in Python 3223.10. 323 324.. 325 326.. bpo: 39104 327.. date: 2020-02-16-18-49-16 328.. nonce: cI5MJY 329.. section: Library 330 331Fix hanging ProcessPoolExcutor on ``shutdown(wait=False)`` when a task has 332failed pickling. 333 334.. 335 336.. bpo: 39627 337.. date: 2020-02-13-18-14-15 338.. nonce: Q0scyQ 339.. section: Library 340 341Fixed TypedDict totality check for inherited keys. 342 343.. 344 345.. bpo: 39474 346.. date: 2020-02-12-12-01-26 347.. nonce: RZMEUH 348.. section: Library 349 350Fixed starting position of AST for expressions like ``(a)(b)``, ``(a)[b]`` 351and ``(a).b``. 352 353.. 354 355.. bpo: 21016 356.. date: 2020-02-12-10-04-39 357.. nonce: bFXPH7 358.. section: Library 359 360The :mod:`pydoc` and :mod:`trace` modules now use the :mod:`sysconfig` 361module to get the path to the Python standard library, to support uncommon 362installation path like ``/usr/lib64/python3.9/`` on Fedora. Patch by Jan 363Matějek. 364 365.. 366 367.. bpo: 39590 368.. date: 2020-02-09-05-51-05 369.. nonce: rf98GU 370.. section: Library 371 372Collections.deque now holds strong references during deque.__contains__ and 373deque.count, fixing crashes. 374 375.. 376 377.. bpo: 39586 378.. date: 2020-02-08-13-37-00 379.. nonce: nfTPxX 380.. section: Library 381 382The distutils ``bdist_msi`` command is deprecated in Python 3.9, use 383``bdist_wheel`` (wheel packages) instead. 384 385.. 386 387.. bpo: 39595 388.. date: 2020-02-07-23-14-14 389.. nonce: DHwddE 390.. section: Library 391 392Improved performance of zipfile.Path for files with a large number of 393entries. Also improved performance and fixed minor issue as published with 394`importlib_metadata 1.5 395<https://importlib-metadata.readthedocs.io/en/latest/changelog%20(links).html#v1-5-0>`_. 396 397.. 398 399.. bpo: 39350 400.. date: 2020-02-06-13-34-52 401.. nonce: wRwup1 402.. section: Library 403 404Fix regression in :class:`fractions.Fraction` if the numerator and/or the 405denominator is an :class:`int` subclass. The :func:`math.gcd` function is 406now used to normalize the *numerator* and *denominator*. :func:`math.gcd` 407always return a :class:`int` type. Previously, the GCD type depended on 408*numerator* and *denominator*. 409 410.. 411 412.. bpo: 39567 413.. date: 2020-02-06-10-23-32 414.. nonce: VpFBxt 415.. section: Library 416 417Added audit for :func:`os.walk`, :func:`os.fwalk`, :meth:`pathlib.Path.glob` 418and :meth:`pathlib.Path.rglob`. 419 420.. 421 422.. bpo: 39559 423.. date: 2020-02-05-18-29-14 424.. nonce: L8i5YB 425.. section: Library 426 427Remove unused, undocumented argument ``getters`` from :func:`uuid.getnode` 428 429.. 430 431.. bpo: 38149 432.. date: 2020-02-05-11-24-16 433.. nonce: GWsjHE 434.. section: Library 435 436:func:`sys.audit` is now called only once per call of :func:`glob.glob` and 437:func:`glob.iglob`. 438 439.. 440 441.. bpo: 39546 442.. date: 2020-02-03-15-12-51 443.. nonce: _Kj0Pn 444.. section: Library 445 446Fix a regression in :class:`~argparse.ArgumentParser` where 447``allow_abbrev=False`` was ignored for long options that used a prefix 448character other than "-". 449 450.. 451 452.. bpo: 39450 453.. date: 2020-02-02-14-46-34 454.. nonce: 48R274 455.. section: Library 456 457Striped whitespace from docstring before returning it from 458:func:`unittest.case.shortDescription`. 459 460.. 461 462.. bpo: 12915 463.. date: 2020-02-02-10-08-25 464.. nonce: d6r50- 465.. section: Library 466 467A new function ``resolve_name`` has been added to the ``pkgutil`` module. 468This resolves a string of the form ``'a.b.c.d'`` or ``'a.b:c.d'`` to an 469object. In the example, ``a.b`` is a package/module and ``c.d`` is an object 470within that package/module reached via recursive attribute access. 471 472.. 473 474.. bpo: 39353 475.. date: 2020-01-30-09-07-16 476.. nonce: wTl9hc 477.. section: Library 478 479The :func:`binascii.crc_hqx` function is no longer deprecated. 480 481.. 482 483.. bpo: 39493 484.. date: 2020-01-30-01-13-19 485.. nonce: CbFRi7 486.. section: Library 487 488Mark ``typing.IO.closed`` as a property 489 490.. 491 492.. bpo: 39491 493.. date: 2020-01-29-22-47-12 494.. nonce: tdl17b 495.. section: Library 496 497Add :data:`typing.Annotated` and ``include_extras`` parameter to 498:func:`typing.get_type_hints` as part of :pep:`593`. Patch by Till 499Varoquaux, documentation by Till Varoquaux and Konstantin Kashin. 500 501.. 502 503.. bpo: 39485 504.. date: 2020-01-29-14-58-27 505.. nonce: Zy3ot6 506.. section: Library 507 508Fix a bug in :func:`unittest.mock.create_autospec` that would complain about 509the wrong number of arguments for custom descriptors defined in an extension 510module returning functions. 511 512.. 513 514.. bpo: 38932 515.. date: 2020-01-25-13-41-27 516.. nonce: 1pu_8I 517.. section: Library 518 519Mock fully resets child objects on reset_mock(). Patch by Vegard Stikbakke 520 521.. 522 523.. bpo: 39082 524.. date: 2020-01-24-13-24-35 525.. nonce: qKgrq_ 526.. section: Library 527 528Allow AsyncMock to correctly patch static/class methods 529 530.. 531 532.. bpo: 39432 533.. date: 2020-01-23-16-08-58 534.. nonce: Cee6mi 535.. section: Library 536 537Implement PEP-489 algorithm for non-ascii "PyInit\_..." symbol names in 538distutils to make it export the correct init symbol also on Windows. 539 540.. 541 542.. bpo: 18819 543.. date: 2020-01-20-10-06-19 544.. nonce: H4qsoS 545.. section: Library 546 547Omit ``devmajor`` and ``devminor`` fields for non-device files in 548:mod:`tarfile` archives, enabling bit-for-bit compatibility with GNU 549``tar(1)``. 550 551.. 552 553.. bpo: 39349 554.. date: 2020-01-19-04-12-34 555.. nonce: 7CV-LC 556.. section: Library 557 558Added a new *cancel_futures* parameter to 559:meth:`concurrent.futures.Executor.shutdown` that cancels all pending 560futures which have not started running, instead of waiting for them to 561complete before shutting down the executor. 562 563.. 564 565.. bpo: 39274 566.. date: 2020-01-15-23-13-03 567.. nonce: lpc0-n 568.. section: Library 569 570``bool(fraction.Fraction)`` now returns a boolean even if (numerator != 0) 571does not return a boolean (ex: numpy number). 572 573.. 574 575.. bpo: 34793 576.. date: 2019-12-09-17-24-29 577.. nonce: D82Dyu 578.. section: Library 579 580Remove support for ``with (await asyncio.lock):`` and ``with (yield from 581asyncio.lock):``. The same is correct for ``asyncio.Condition`` and 582``asyncio.Semaphore``. 583 584.. 585 586.. bpo: 25597 587.. date: 2019-09-12-12-11-05 588.. nonce: mPMzVx 589.. section: Library 590 591Ensure, if ``wraps`` is supplied to :class:`unittest.mock.MagicMock`, it is 592used to calculate return values for the magic methods instead of using the 593default return values. Patch by Karthikeyan Singaravelan. 594 595.. 596 597.. bpo: 36350 598.. date: 2019-03-18-16-17-59 599.. nonce: udRSWE 600.. section: Library 601 602`inspect.Signature.parameters` and `inspect.BoundArguments.arguments` are 603now dicts instead of OrderedDicts. Patch contributed by Rémi Lapeyre. 604 605.. 606 607.. bpo: 35727 608.. date: 2019-01-12-20-39-34 609.. nonce: FWrbHn 610.. section: Library 611 612Fix sys.exit() and sys.exit(None) exit code propagation when used in 613multiprocessing.Process. 614 615.. 616 617.. bpo: 32173 618.. date: 2017-12-04-10-14-23 619.. nonce: e0C5dF 620.. section: Library 621 622* Add `lazycache` function to `__all__`. 623* Use `dict.clear` to clear the cache. 624* Refactoring `getline` function and `checkcache` function. 625 626.. 627 628.. bpo: 17422 629.. date: 2020-02-19-11-13-47 630.. nonce: g7_9zz 631.. section: Documentation 632 633The language reference now specifies restrictions on class namespaces. 634Adapted from a patch by Ethan Furman. 635 636.. 637 638.. bpo: 39572 639.. date: 2020-02-18-18-37-07 640.. nonce: CCtzy1 641.. section: Documentation 642 643Updated documentation of ``total`` flag of ``TypedDict``. 644 645.. 646 647.. bpo: 39654 648.. date: 2020-02-18-07-42-20 649.. nonce: MoT1jI 650.. section: Documentation 651 652In pyclbr doc, update 'class' to 'module' where appropriate and add 653readmodule comment. Patch by Hakan Çelik. 654 655.. 656 657.. bpo: 39153 658.. date: 2020-01-27-22-24-51 659.. nonce: Pjl8jV 660.. section: Documentation 661 662Clarify refcounting semantics for the following functions: - 663PyObject_SetItem - PyMapping_SetItemString - PyDict_SetItem - 664PyDict_SetItemString 665 666.. 667 668.. bpo: 39392 669.. date: 2020-01-27-18-18-42 670.. nonce: oiqcLO 671.. section: Documentation 672 673Explain that when filling with turtle, overlap regions may be left unfilled. 674 675.. 676 677.. bpo: 39369 678.. date: 2020-01-17-13-59-21 679.. nonce: Bx5yE3 680.. section: Documentation 681 682Update mmap readline method description. The fact that the readline method 683does update the file position should not be ignored since this might give 684the impression for the programmer that it doesn't update it. 685 686.. 687 688.. bpo: 9056 689.. date: 2018-09-28-18-13-08 690.. nonce: -sFOwU 691.. section: Documentation 692 693Include subsection in TOC for PDF version of docs. 694 695.. 696 697.. bpo: 38325 698.. date: 2020-02-11-00-38-32 699.. nonce: HgmfoE 700.. section: Tests 701 702Skip tests on non-BMP characters of test_winconsoleio. 703 704.. 705 706.. bpo: 39502 707.. date: 2020-01-30-15-04-54 708.. nonce: chbpII 709.. section: Tests 710 711Skip test_zipfile.test_add_file_after_2107() if :func:`time.localtime` fails 712with :exc:`OverflowError`. It is the case on AIX 6.1 for example. 713 714.. 715 716.. bpo: 39489 717.. date: 2020-01-29-19-17-02 718.. nonce: HKPzv- 719.. section: Build 720 721Remove ``COUNT_ALLOCS`` special build. 722 723.. 724 725.. bpo: 39553 726.. date: 2020-02-04-19-50-53 727.. nonce: _EnweA 728.. section: Windows 729 730Delete unused code related to SxS manifests. 731 732.. 733 734.. bpo: 39439 735.. date: 2020-01-24-03-15-05 736.. nonce: sFxGfR 737.. section: Windows 738 739Honor the Python path when a virtualenv is active on Windows. 740 741.. 742 743.. bpo: 39393 744.. date: 2020-01-20-23-42-53 745.. nonce: gWlJDG 746.. section: Windows 747 748Improve the error message when attempting to load a DLL with unresolved 749dependencies. 750 751.. 752 753.. bpo: 38883 754.. date: 2020-01-11-22-53-55 755.. nonce: X7FRaN 756.. section: Windows 757 758:meth:`~pathlib.Path.home()` and :meth:`~pathlib.Path.expanduser()` on 759Windows now prefer :envvar:`USERPROFILE` and no longer use :envvar:`HOME`, 760which is not normally set for regular user accounts. This makes them again 761behave like :func:`os.path.expanduser`, which was changed to ignore 762:envvar:`HOME` in 3.8, see :issue:`36264`. 763 764.. 765 766.. bpo: 39185 767.. date: 2020-01-02-01-11-53 768.. nonce: T4herN 769.. section: Windows 770 771The build.bat script has additional options for very-quiet output (-q) and 772very-verbose output (-vv) 773 774.. 775 776.. bpo: 39663 777.. date: 2020-02-17-21-09-03 778.. nonce: wexcsH 779.. section: IDLE 780 781Add tests for pyparse find_good_parse_start(). 782 783.. 784 785.. bpo: 39600 786.. date: 2020-02-10-17-09-48 787.. nonce: X6NsyM 788.. section: IDLE 789 790In the font configuration window, remove duplicated font names. 791 792.. 793 794.. bpo: 30780 795.. date: 2020-01-27-16-44-29 796.. nonce: nR80qu 797.. section: IDLE 798 799Add remaining configdialog tests for buttons and highlights and keys tabs. 800 801.. 802 803.. bpo: 39388 804.. date: 2020-01-25-02-26-45 805.. nonce: x4TQNh 806.. section: IDLE 807 808IDLE Settings Cancel button now cancels pending changes 809 810.. 811 812.. bpo: 38792 813.. date: 2019-11-13-23-51-39 814.. nonce: xhTC5a 815.. section: IDLE 816 817Close an IDLE shell calltip if a :exc:`KeyboardInterrupt` or shell restart 818occurs. Patch by Zackery Spytz. 819 820.. 821 822.. bpo: 35081 823.. date: 2020-02-12-21-38-49 824.. nonce: 5tj1yC 825.. section: C API 826 827Move the ``bytes_methods.h`` header file to the internal C API as 828``pycore_bytes_methods.h``: it only contains private symbols (prefixed by 829``_Py``), except of the ``PyDoc_STRVAR_shared()`` macro. 830 831.. 832 833.. bpo: 35081 834.. date: 2020-02-12-21-24-02 835.. nonce: at7BjN 836.. section: C API 837 838Move the ``dtoa.h`` header file to the internal C API as ``pycore_dtoa.h``: 839it only contains private functions (prefixed by ``_Py``). The :mod:`math` 840and :mod:`cmath` modules must now be compiled with the ``Py_BUILD_CORE`` 841macro defined. 842 843.. 844 845.. bpo: 39573 846.. date: 2020-02-07-10-41-53 847.. nonce: EG9VDI 848.. section: C API 849 850Add :c:func:`Py_SET_SIZE` function to set the size of an object. 851 852.. 853 854.. bpo: 39500 855.. date: 2020-02-07-09-35-43 856.. nonce: xRAEgX 857.. section: C API 858 859:c:func:`PyUnicode_IsIdentifier` does not call :c:func:`Py_FatalError` 860anymore if the string is not ready. 861 862.. 863 864.. bpo: 39573 865.. date: 2020-02-07-03-39-03 866.. nonce: Oa8cL1 867.. section: C API 868 869Add :c:func:`Py_SET_TYPE` function to set the type of an object. 870 871.. 872 873.. bpo: 39573 874.. date: 2020-02-07-00-23-44 875.. nonce: nRD1q7 876.. section: C API 877 878Add a :c:func:`Py_SET_REFCNT` function to set the reference counter of an 879object. 880 881.. 882 883.. bpo: 39542 884.. date: 2020-02-05-13-14-20 885.. nonce: 5mleGX 886.. section: C API 887 888Convert :c:func:`PyType_HasFeature`, :c:func:`PyType_Check` and 889:c:func:`PyType_CheckExact` macros to static inline functions. 890 891.. 892 893.. bpo: 39542 894.. date: 2020-02-05-12-40-51 895.. nonce: si-_Zq 896.. section: C API 897 898In the limited C API, ``PyObject_INIT()`` and ``PyObject_INIT_VAR()`` are 899now defined as aliases to :c:func:`PyObject_Init` and 900:c:func:`PyObject_InitVar` to make their implementation opaque. It avoids to 901leak implementation details in the limited C API. Exclude the following 902functions from the limited C API: ``_Py_NewReference()``, 903``_Py_ForgetReference()``, ``_PyTraceMalloc_NewReference()`` and 904``_Py_GetRefTotal()``. 905 906.. 907 908.. bpo: 39542 909.. date: 2020-02-05-12-00-18 910.. nonce: RJCUKR 911.. section: C API 912 913Exclude trashcan mechanism from the limited C API: it requires access to 914PyTypeObject and PyThreadState structure fields, whereas these structures 915are opaque in the limited C API. 916 917.. 918 919.. bpo: 39511 920.. date: 2020-01-31-16-35-21 921.. nonce: nv9yEn 922.. section: C API 923 924The :c:func:`PyThreadState_Clear` function now calls the 925:c:member:`PyThreadState.on_delete` callback. Previously, that happened in 926:c:func:`PyThreadState_Delete`. 927 928.. 929 930.. bpo: 38076 931.. date: 2020-01-17-11-37-05 932.. nonce: cxfw2x 933.. section: C API 934 935Fix to clear the interpreter state only after clearing module globals to 936guarantee module state access from C Extensions during runtime destruction 937 938.. 939 940.. bpo: 39245 941.. date: 2020-01-07-13-46-40 942.. nonce: G7wog6 943.. section: C API 944 945The Vectorcall API (PEP 590) was made public, adding the functions 946``PyObject_Vectorcall``, ``PyObject_VectorcallMethod``, 947``PyVectorcall_Function``, ``PyObject_CallOneArg``, 948``PyObject_CallMethodNoArgs``, ``PyObject_CallMethodOneArg``, 949``PyObject_FastCallDict``, and the flag ``Py_TPFLAGS_HAVE_VECTORCALL``. 950