1.. date: 2024-04-04-13-42-59 2.. gh-issue: 117494 3.. nonce: GPQH64 4.. release date: 2024-04-09 5.. section: Core and Builtins 6 7Refactored the instruction sequence data structure out of compile.c into 8instruction_sequence.c. 9 10.. 11 12.. date: 2024-04-03-13-44-04 13.. gh-issue: 116968 14.. nonce: zgcdG2 15.. section: Core and Builtins 16 17Introduce a unified 16-bit backoff counter type (``_Py_BackoffCounter``), 18shared between the Tier 1 adaptive specializer and the Tier 2 optimizer. The 19API used for adaptive specialization counters is changed but the behavior is 20(supposed to be) identical. 21 22The behavior of the Tier 2 counters is changed: 23 24* There are no longer dynamic thresholds (we never varied these). 25* All counters now use the same exponential backoff. 26* The counter for ``JUMP_BACKWARD`` starts counting down from 16. 27* The ``temperature`` in side exits starts counting down from 64. 28 29.. 30 31.. date: 2024-04-03-09-49-15 32.. gh-issue: 117431 33.. nonce: WAqRgc 34.. section: Core and Builtins 35 36Improve the performance of the following :class:`bytes` and 37:class:`bytearray` methods by adapting them to the :c:macro:`METH_FASTCALL` 38calling convention: 39 40* :meth:`!endswith` 41* :meth:`!startswith` 42 43.. 44 45.. date: 2024-04-02-17-37-35 46.. gh-issue: 117431 47.. nonce: vDKAOn 48.. section: Core and Builtins 49 50Improve the performance of the following :class:`str` methods by adapting 51them to the :c:macro:`METH_FASTCALL` calling convention: 52 53* :meth:`~str.count` 54* :meth:`~str.endswith` 55* :meth:`~str.find` 56* :meth:`~str.index` 57* :meth:`~str.rfind` 58* :meth:`~str.rindex` 59* :meth:`~str.startswith` 60 61.. 62 63.. date: 2024-04-02-10-04-57 64.. gh-issue: 117411 65.. nonce: YdyVmG 66.. section: Core and Builtins 67 68Move ``PyFutureFeatures`` to an internal header and make it private. 69 70.. 71 72.. date: 2024-04-02-06-16-49 73.. gh-issue: 109120 74.. nonce: X485oN 75.. section: Core and Builtins 76 77Added handle of incorrect star expressions, e.g ``f(3, *)``. Patch by 78Grigoryev Semyon 79 80.. 81 82.. date: 2024-03-26-17-22-38 83.. gh-issue: 117266 84.. nonce: Kwh79O 85.. section: Core and Builtins 86 87Fix crashes for certain user-created subclasses of :class:`ast.AST`. Such 88classes are now expected to set the ``_field_types`` attribute. 89 90.. 91 92.. date: 2024-03-25-17-04-54 93.. gh-issue: 99108 94.. nonce: 8bjdO6 95.. section: Core and Builtins 96 97Updated the :mod:`hashlib` built-in `HACL\* project`_ C code from upstream 98that we use for many implementations when they are not present via OpenSSL 99in a given build. This also avoids the rare potential for a C symbol name 100one definition rule linking issue. 101 102.. _HACL\* project: https://github.com/hacl-star/hacl-star 103 104.. 105 106.. date: 2024-03-25-12-51-12 107.. gh-issue: 117108 108.. nonce: tNqDEo 109.. section: Core and Builtins 110 111Change the old space bit of objects in the young generation from 0 to 112gcstate->visited, so that any objects created during GC will have the old 113bit set correctly if they get moved into the old generation. 114 115.. 116 117.. date: 2024-03-21-12-10-11 118.. gh-issue: 117108 119.. nonce: _6jIrB 120.. section: Core and Builtins 121 122The cycle GC now chooses the size of increments based on the total heap 123size, instead of the rate of object creation. This ensures that it can keep 124up with growing heaps. 125 126.. 127 128.. date: 2024-03-13-16-55-25 129.. gh-issue: 116735 130.. nonce: o3w6y8 131.. section: Core and Builtins 132 133For ``INSTRUMENTED_CALL_FUNCTION_EX``, set ``arg0`` to 134``sys.monitoring.MISSING`` instead of ``None`` for :monitoring-event:`CALL` 135event. 136 137.. 138 139.. date: 2024-03-12-20-31-57 140.. gh-issue: 113964 141.. nonce: bJppzg 142.. section: Core and Builtins 143 144Starting new threads and process creation through :func:`os.fork` are now 145only prevented once all non-daemon threads exit. 146 147.. 148 149.. date: 2024-03-11-22-05-56 150.. gh-issue: 116626 151.. nonce: GsyczB 152.. section: Core and Builtins 153 154Ensure ``INSTRUMENTED_CALL_FUNCTION_EX`` always emits 155:monitoring-event:`CALL` 156 157.. 158 159.. date: 2024-03-11-00-45-39 160.. gh-issue: 116554 161.. nonce: gYumG5 162.. section: Core and Builtins 163 164``list.sort()`` now exploits more cases of partial ordering, particularly 165those with long descending runs with sub-runs of equal values. Those are 166recognized as single runs now (previously, each block of repeated values 167caused a new run to be created). 168 169.. 170 171.. date: 2024-03-07-16-12-39 172.. gh-issue: 114099 173.. nonce: ujdjn2 174.. section: Core and Builtins 175 176Added a Loader that can discover extension modules in an iOS-style 177Frameworks folder. 178 179.. 180 181.. date: 2024-02-25-14-17-25 182.. gh-issue: 115775 183.. nonce: CNbGbJ 184.. section: Core and Builtins 185 186Compiler populates the new ``__static_attributes__`` field on a class with 187the names of attributes of this class which are accessed through self.X from 188any function in its body. 189 190.. 191 192.. date: 2024-02-24-03-39-09 193.. gh-issue: 115776 194.. nonce: THJXqg 195.. section: Core and Builtins 196 197The array of values, the ``PyDictValues`` struct is now embedded in the 198object during allocation. This provides better performance in the common 199case, and does not degrade as much when the object's ``__dict__`` is 200materialized. 201 202.. 203 204.. date: 2024-01-07-04-22-51 205.. gh-issue: 108362 206.. nonce: oB9Gcf 207.. section: Core and Builtins 208 209Implement an incremental cyclic garbage collector. By collecting the old 210generation in increments, there is no need for a full heap scan. This can 211hugely reduce maximum pause time for programs with large heaps. 212 213Reduce the number of generations from three to two. The old generation is 214split into two spaces, "visited" and "pending". 215 216Collection happens in two steps:: * An increment is formed from the young 217generation and a small part of the pending space. * This increment is 218scanned and the survivors moved to the end of the visited space. 219 220When the collecting space becomes empty, the two spaces are swapped. 221 222.. 223 224.. date: 2023-10-14-00-05-17 225.. gh-issue: 109870 226.. nonce: oKpJ3P 227.. section: Core and Builtins 228 229Dataclasses now calls :func:`exec` once per dataclass, instead of once per 230method being added. This can speed up dataclass creation by up to 20%. 231 232.. 233 234.. date: 2022-10-05-09-33-48 235.. gh-issue: 97901 236.. nonce: BOLluU 237.. section: Core and Builtins 238 239Mime type ``text/rtf`` is now supported by :mod:`mimetypes`. 240 241.. 242 243.. bpo: 24612 244.. date: 2021-09-04-22-33-01 245.. nonce: SsTuUX 246.. section: Core and Builtins 247 248Improve the :exc:`SyntaxError` that happens when 'not' appears after an 249operator. Patch by Pablo Galindo 250 251.. 252 253.. date: 2024-04-08-20-26-15 254.. gh-issue: 117648 255.. nonce: NzVEa7 256.. section: Library 257 258Improve performance of :func:`os.path.join` and :func:`os.path.expanduser`. 259 260.. 261 262.. date: 2024-04-06-16-42-34 263.. gh-issue: 117584 264.. nonce: hqk9Hn 265.. section: Library 266 267Raise :exc:`TypeError` for non-paths in :func:`posixpath.relpath`. 268 269.. 270 271.. date: 2024-04-03-18-36-53 272.. gh-issue: 117467 273.. nonce: l6rWlj 274.. section: Library 275 276Preserve mailbox ownership when rewriting in :func:`mailbox.mbox.flush`. 277Patch by Tony Mountifield. 278 279.. 280 281.. date: 2024-04-02-20-30-12 282.. gh-issue: 114848 283.. nonce: YX4pEc 284.. section: Library 285 286Raise :exc:`FileNotFoundError` when ``getcwd()`` returns '(unreachable)', 287which can happen on Linux >= 2.6.36 with glibc < 2.27. 288 289.. 290 291.. date: 2024-04-02-13-13-46 292.. gh-issue: 117459 293.. nonce: jiIZmH 294.. section: Library 295 296:meth:`asyncio.asyncio.run_coroutine_threadsafe` now keeps the traceback of 297:class:`CancelledError`, :class:`TimeoutError` and 298:class:`InvalidStateError` which are raised in the coroutine. 299 300.. 301 302.. date: 2024-03-29-21-43-19 303.. gh-issue: 117381 304.. nonce: fT0JFM 305.. section: Library 306 307Fix error message for :func:`ntpath.commonpath`. 308 309.. 310 311.. date: 2024-03-29-15-58-01 312.. gh-issue: 117337 313.. nonce: 7w3Qwp 314.. section: Library 315 316Deprecate undocumented :func:`!glob.glob0` and :func:`!glob.glob1` 317functions. Use :func:`glob.glob` and pass a directory to its *root_dir* 318argument instead. 319 320.. 321 322.. date: 2024-03-29-15-04-13 323.. gh-issue: 117349 324.. nonce: OB9kQQ 325.. section: Library 326 327Optimise several functions in :mod:`os.path`. 328 329.. 330 331.. date: 2024-03-29-12-07-26 332.. gh-issue: 117348 333.. nonce: WjCYvK 334.. section: Library 335 336Refactored :meth:`configparser.RawConfigParser._read` to reduce cyclometric 337complexity and improve comprehensibility. 338 339.. 340 341.. date: 2024-03-28-19-13-20 342.. gh-issue: 117335 343.. nonce: d6uKJu 344.. section: Library 345 346Raise TypeError for non-sequences for :func:`ntpath.commonpath`. 347 348.. 349 350.. date: 2024-03-28-17-55-22 351.. gh-issue: 66449 352.. nonce: 4jhuEV 353.. section: Library 354 355:class:`configparser.ConfigParser` now accepts unnamed sections before named 356ones, if configured to do so. 357 358.. 359 360.. date: 2024-03-28-13-54-20 361.. gh-issue: 88014 362.. nonce: zJz31I 363.. section: Library 364 365In documentation of :class:`gzip.GzipFile` in module gzip, explain data type 366of optional constructor argument *mtime*, and recommend ``mtime = 0`` for 367generating deterministic streams. 368 369.. 370 371.. date: 2024-03-27-21-05-52 372.. gh-issue: 117310 373.. nonce: Bt2wox 374.. section: Library 375 376Fixed an unlikely early & extra ``Py_DECREF`` triggered crash in :mod:`ssl` 377when creating a new ``_ssl._SSLContext`` if CPython was built implausibly 378such that the default cipher list is empty **or** the SSL library it was 379linked against reports a failure from its C ``SSL_CTX_set_cipher_list()`` 380API. 381 382.. 383 384.. date: 2024-03-27-16-43-42 385.. gh-issue: 117294 386.. nonce: wbXNFv 387.. section: Library 388 389A ``DocTestCase`` now reports as skipped if all examples in the doctest are 390skipped. 391 392.. 393 394.. date: 2024-03-26-11-48-39 395.. gh-issue: 98966 396.. nonce: SayV9y 397.. section: Library 398 399In :mod:`subprocess`, raise a more informative message when 400``stdout=STDOUT``. 401 402.. 403 404.. date: 2024-03-25-21-15-56 405.. gh-issue: 117225 406.. nonce: oOaZXb 407.. section: Library 408 409doctest: only print "and X failed" when non-zero, don't pluralise "1 items". 410Patch by Hugo van Kemenade. 411 412.. 413 414.. date: 2024-03-25-00-20-16 415.. gh-issue: 117205 416.. nonce: yV7xGb 417.. section: Library 418 419Speed up :func:`compileall.compile_dir` by 20% when using multiprocessing by 420increasing ``chunksize``. 421 422.. 423 424.. date: 2024-03-23-14-26-18 425.. gh-issue: 117178 426.. nonce: vTisTG 427.. section: Library 428 429Fix regression in lazy loading of self-referential modules, introduced in 430gh-114781. 431 432.. 433 434.. date: 2024-03-23-13-40-13 435.. gh-issue: 112383 436.. nonce: XuHf3G 437.. section: Library 438 439Fix :mod:`dis` module's handling of ``ENTER_EXECUTOR`` instructions. 440 441.. 442 443.. date: 2024-03-23-12-28-05 444.. gh-issue: 117182 445.. nonce: a0KANW 446.. section: Library 447 448Lazy-loading of modules that modify their own ``__class__`` no longer 449reverts the ``__class__`` to :class:`types.ModuleType`. 450 451.. 452 453.. date: 2024-03-21-17-07-38 454.. gh-issue: 117084 455.. nonce: w1mTpT 456.. section: Library 457 458Fix :mod:`zipfile` extraction for directory entries with the name containing 459backslashes on Windows. 460 461.. 462 463.. date: 2024-03-21-09-57-57 464.. gh-issue: 117114 465.. nonce: Qu-p55 466.. section: Library 467 468Make :func:`os.path.isdevdrive` available on all platforms. For those that 469do not offer Dev Drives, it will always return ``False``. 470 471.. 472 473.. date: 2024-03-21-07-27-36 474.. gh-issue: 117110 475.. nonce: 9K1InX 476.. section: Library 477 478Fix a bug that prevents subclasses of :class:`typing.Any` to be instantiated 479with arguments. Patch by Chris Fu. 480 481.. 482 483.. date: 2024-03-20-23-07-58 484.. gh-issue: 109653 485.. nonce: uu3lrX 486.. section: Library 487 488Deferred select imports in importlib.metadata and importlib.resources for a 48914% speedup. 490 491.. 492 493.. date: 2024-03-20-16-10-29 494.. gh-issue: 70647 495.. nonce: FpD6Ar 496.. section: Library 497 498Start the deprecation period for the current behavior of 499:func:`datetime.datetime.strptime` and :func:`time.strptime` which always 500fails to parse a date string with a :exc:`ValueError` involving a day of 501month such as ``strptime("02-29", "%m-%d")`` when a year is **not** 502specified and the date happen to be February 29th. This should help avoid 503users finding new bugs every four years due to a natural mistaken assumption 504about the API when parsing partial date values. 505 506.. 507 508.. date: 2024-03-19-19-42-25 509.. gh-issue: 116987 510.. nonce: ZVKUH1 511.. section: Library 512 513Fixed :func:`inspect.findsource` for class code objects. 514 515.. 516 517.. date: 2024-03-19-14-35-57 518.. gh-issue: 114099 519.. nonce: siNSpK 520.. section: Library 521 522Modify standard library to allow for iOS platform differences. 523 524.. 525 526.. date: 2024-03-19-11-08-26 527.. gh-issue: 90872 528.. nonce: ghys95 529.. section: Library 530 531On Windows, :meth:`subprocess.Popen.wait` no longer calls 532``WaitForSingleObject()`` with a negative timeout: pass ``0`` ms if the 533timeout is negative. Patch by Victor Stinner. 534 535.. 536 537.. date: 2024-03-18-14-36-50 538.. gh-issue: 116957 539.. nonce: dTCs4f 540.. section: Library 541 542configparser: Don't leave ConfigParser values in an invalid state (stored as 543a list instead of a str) after an earlier read raised DuplicateSectionError 544or DuplicateOptionError. 545 546.. 547 548.. date: 2024-03-17-18-12-39 549.. gh-issue: 115538 550.. nonce: PBiRQB 551.. section: Library 552 553:class:`!_io.WindowsConsoleIO` now emit a warning if a boolean value is 554passed as a filedescriptor argument. 555 556.. 557 558.. date: 2024-03-14-20-59-28 559.. gh-issue: 90095 560.. nonce: 7UaJ1U 561.. section: Library 562 563Ignore empty lines and comments in ``.pdbrc`` 564 565.. 566 567.. date: 2024-03-14-17-24-59 568.. gh-issue: 106531 569.. nonce: 9ehywi 570.. section: Library 571 572Refreshed zipfile._path from `zipp 3.18 573<https://zipp.readthedocs.io/en/latest/history.html#v3-18-0>`_, providing 574better compatibility for PyPy, better glob performance for deeply nested 575zipfiles, and providing internal access to ``CompleteDirs.inject`` for use 576in other tests (like importlib.resources). 577 578.. 579 580.. date: 2024-03-14-17-21-25 581.. gh-issue: 63207 582.. nonce: LV16SL 583.. section: Library 584 585On Windows, :func:`time.time` now uses the 586``GetSystemTimePreciseAsFileTime()`` clock to have a resolution better than 5871 us, instead of the ``GetSystemTimeAsFileTime()`` clock which has a 588resolution of 15.6 ms. Patch by Victor Stinner. 589 590.. 591 592.. date: 2024-03-14-14-01-46 593.. gh-issue: 116764 594.. nonce: moB3Lc 595.. section: Library 596 597Restore support of ``None`` and other false values in :mod:`urllib.parse` 598functions :func:`~urllib.parse.parse_qs` and 599:func:`~urllib.parse.parse_qsl`. Also, they now raise a TypeError for 600non-zero integers and non-empty sequences. 601 602.. 603 604.. date: 2024-03-14-10-01-23 605.. gh-issue: 116811 606.. nonce: _h5iKP 607.. section: Library 608 609In ``PathFinder.invalidate_caches``, delegate to 610``MetadataPathFinder.invalidate_caches``. 611 612.. 613 614.. date: 2024-03-14-09-38-51 615.. gh-issue: 116647 616.. nonce: h0d_zj 617.. section: Library 618 619Fix recursive child in dataclasses 620 621.. 622 623.. date: 2024-03-14-01-38-44 624.. gh-issue: 113171 625.. nonce: VFnObz 626.. section: Library 627 628Fixed various false positives and false negatives in 629 630* :attr:`ipaddress.IPv4Address.is_private` (see these docs for details) 631* :attr:`ipaddress.IPv4Address.is_global` 632* :attr:`ipaddress.IPv6Address.is_private` 633* :attr:`ipaddress.IPv6Address.is_global` 634 635Also in the corresponding :class:`ipaddress.IPv4Network` and 636:class:`ipaddress.IPv6Network` attributes. 637 638.. 639 640.. date: 2024-03-13-15-45-54 641.. gh-issue: 63283 642.. nonce: OToJnG 643.. section: Library 644 645In :mod:`encodings.idna`, any capitalization of the ACE prefix 646(``xn--``) is now acceptable. Patch by Pepijn de Vos and Zackery Spytz. 647 648.. 649 650.. date: 2024-03-12-19-32-17 651.. gh-issue: 71042 652.. nonce: oI0Ron 653.. section: Library 654 655Add :func:`platform.android_ver`, which provides device and OS information 656on Android. 657 658.. 659 660.. date: 2024-03-12-17-53-14 661.. gh-issue: 73468 662.. nonce: z4ZzvJ 663.. section: Library 664 665Added new :func:`math.fma` function, wrapping C99's ``fma()`` operation: 666fused multiply-add function. Patch by Mark Dickinson and Victor Stinner. 667 668.. 669 670.. date: 2024-03-11-17-04-55 671.. gh-issue: 116608 672.. nonce: 30f58- 673.. section: Library 674 675The :mod:`importlib.resources` functions 676:func:`~importlib.resources.is_resource`, 677:func:`~importlib.resources.open_binary`, 678:func:`~importlib.resources.open_text`, 679:func:`~importlib.resources.path`, 680:func:`~importlib.resources.read_binary`, and 681:func:`~importlib.resources.read_text` are un-deprecated, and support 682subdirectories via multiple positional arguments. The 683:func:`~importlib.resources.contents` function also allows subdirectories, 684but remains deprecated. 685 686.. 687 688.. date: 2024-03-08-11-31-49 689.. gh-issue: 116484 690.. nonce: VMAsU7 691.. section: Library 692 693Change automatically generated :class:`tkinter.Checkbutton` widget names to 694avoid collisions with automatically generated 695:class:`tkinter.ttk.Checkbutton` widget names within the same parent widget. 696 697.. 698 699.. date: 2024-03-07-11-10-27 700.. gh-issue: 114314 701.. nonce: iEhAMH 702.. section: Library 703 704In :mod:`ctypes`, ctype data is now stored in type objects directly rather 705than in a dict subclass. This is an internal change that should not affect 706usage. 707 708.. 709 710.. date: 2024-03-06-18-30-37 711.. gh-issue: 116401 712.. nonce: 3Wcda2 713.. section: Library 714 715Fix blocking :func:`os.fwalk` and :func:`shutil.rmtree` on opening named 716pipe. 717 718.. 719 720.. date: 2024-03-05-19-56-29 721.. gh-issue: 71052 722.. nonce: PMDK-- 723.. section: Library 724 725Implement :func:`ctypes.util.find_library` on Android. 726 727.. 728 729.. date: 2024-03-01-20-23-57 730.. gh-issue: 90535 731.. nonce: wXm-jC 732.. section: Library 733 734Fix support of *interval* values > 1 in 735:class:`logging.TimedRotatingFileHandler` for ``when='MIDNIGHT'`` and 736``when='Wx'``. 737 738.. 739 740.. date: 2024-02-26-10-06-50 741.. gh-issue: 113308 742.. nonce: MbvOFt 743.. section: Library 744 745Remove some internal protected parts from :mod:`uuid`: 746``_has_uuid_generate_time_safe``, ``_netbios_getnode``, 747``_ipconfig_getnode``, and ``_load_system_functions``. They were unused. 748 749.. 750 751.. date: 2024-02-18-09-50-31 752.. gh-issue: 115627 753.. nonce: HGchj0 754.. section: Library 755 756Fix the :mod:`ssl` module error handling of connection terminate by peer. It 757now throws an OSError with the appropriate error code instead of an 758EOFError. 759 760.. 761 762.. date: 2024-02-01-08-09-20 763.. gh-issue: 114847 764.. nonce: -JrWrR 765.. section: Library 766 767Speed up :func:`os.path.realpath` on non-Windows platforms. 768 769.. 770 771.. date: 2024-02-01-03-09-38 772.. gh-issue: 114271 773.. nonce: raCkt5 774.. section: Library 775 776Fix a race in ``threading.Thread.join()``. 777 778``threading._MainThread`` now always represents the main thread of the main 779interpreter. 780 781``PyThreadState.on_delete`` and ``PyThreadState.on_delete_data`` have been 782removed. 783 784.. 785 786.. date: 2024-01-22-15-50-58 787.. gh-issue: 113538 788.. nonce: v2wrwg 789.. section: Library 790 791Add :meth:`asyncio.Server.close_clients` and 792:meth:`asyncio.Server.abort_clients` methods which allow to more forcefully 793close an asyncio server. 794 795.. 796 797.. date: 2024-01-02-22-47-12 798.. gh-issue: 85287 799.. nonce: ZC5DLj 800.. section: Library 801 802Changes Unicode codecs to return UnicodeEncodeError or UnicodeDecodeError, 803rather than just UnicodeError. 804 805.. 806 807.. date: 2023-12-28-22-52-45 808.. gh-issue: 113548 809.. nonce: j6TJ7O 810.. section: Library 811 812:mod:`pdb` now allows CLI arguments to ``pdb -m``. 813 814.. 815 816.. date: 2023-12-11-00-51-51 817.. gh-issue: 112948 818.. nonce: k-OKp5 819.. section: Library 820 821Make completion of :mod:`pdb` similar to Python REPL 822 823.. 824 825.. date: 2023-06-16-19-17-06 826.. gh-issue: 105866 827.. nonce: 0NBveV 828.. section: Library 829 830Fixed ``_get_slots`` bug which caused error when defining dataclasses with 831slots and a weakref_slot. 832 833.. 834 835.. date: 2023-05-06-05-00-42 836.. gh-issue: 96471 837.. nonce: S3X5I- 838.. section: Library 839 840Add :py:class:`asyncio.Queue` termination with 841:py:meth:`~asyncio.Queue.shutdown` method. 842 843.. 844 845.. date: 2022-06-22-14-45-32 846.. gh-issue: 89739 847.. nonce: CqZcRL 848.. section: Library 849 850The :mod:`zipimport` module can now read ZIP64 files. 851 852.. 853 854.. bpo: 33533 855.. date: 2020-10-02-17-35-19 856.. nonce: GLIhM5 857.. section: Library 858 859:func:`asyncio.as_completed` now returns an object that is both an 860asynchronous iterator and plain iterator. The new asynchronous iteration 861pattern allows for easier correlation between prior tasks and their 862completed results. This is a closer match to 863:func:`concurrent.futures.as_completed`'s iteration pattern. Patch by Justin 864Arthur. 865 866.. 867 868.. bpo: 27578 869.. date: 2020-06-11-16-20-33 870.. nonce: CIA-fu 871.. section: Library 872 873:func:`inspect.getsource` (and related functions) work with empty module 874files, returning ``'\n'`` (or reasonable equivalent) instead of raising 875``OSError``. Patch by Kernc. 876 877.. 878 879.. bpo: 37141 880.. date: 2019-09-26-17-52-52 881.. nonce: onYY2- 882.. section: Library 883 884Accept an iterable of separators in :meth:`asyncio.StreamReader.readuntil`, 885stopping when one of them is encountered. 886 887.. 888 889.. date: 2019-08-27-01-03-26 890.. gh-issue: 66543 891.. nonce: _TRpYr 892.. section: Library 893 894Make :func:`mimetypes.guess_type` properly parsing of URLs with only a host 895name, URLs containing fragment or query, and filenames with only a UNC 896sharepoint on Windows. Based on patch by Dong-hee Na. 897 898.. 899 900.. bpo: 15010 901.. date: 2019-08-12-19-08-06 902.. nonce: 3bY2CF 903.. section: Library 904 905:meth:`unittest.TestLoader.discover` now saves the original value of 906``unittest.TestLoader._top_level_dir`` and restores it at the end of the 907call. 908 909.. 910 911.. date: 2024-03-20-15-12-37 912.. gh-issue: 115977 913.. nonce: IMLi6K 914.. section: Documentation 915 916Remove compatibility references to Emscripten. 917 918.. 919 920.. date: 2024-03-20-12-41-47 921.. gh-issue: 114099 922.. nonce: ad_Ck9 923.. section: Documentation 924 925Add an iOS platform guide, and flag modules not available on iOS. 926 927.. 928 929.. date: 2022-04-15-13-15-23 930.. gh-issue: 91565 931.. nonce: OznXwC 932.. section: Documentation 933 934Changes to documentation files and config outputs to reflect the new 935location for reporting bugs - i.e. GitHub rather than bugs.python.org. 936 937.. 938 939.. date: 2024-03-25-21-31-49 940.. gh-issue: 83434 941.. nonce: U7Z8cY 942.. section: Tests 943 944Disable JUnit XML output (``--junit-xml=FILE`` command line option) in 945regrtest when hunting for reference leaks (``-R`` option). Patch by Victor 946Stinner. 947 948.. 949 950.. date: 2024-03-24-23-49-25 951.. gh-issue: 117187 952.. nonce: eMLT5n 953.. section: Tests 954 955Fix XML tests for vanilla Expat <2.6.0. 956 957.. 958 959.. date: 2024-03-21-11-32-29 960.. gh-issue: 116333 961.. nonce: F-9Ram 962.. section: Tests 963 964Tests of TLS related things (error codes, etc) were updated to be more 965lenient about specific error message strings and behaviors as seen in the 966BoringSSL and AWS-LC forks of OpenSSL. 967 968.. 969 970.. date: 2024-03-20-14-19-32 971.. gh-issue: 117089 972.. nonce: WwR1Z1 973.. section: Tests 974 975Consolidated tests for importlib.metadata in their own ``metadata`` package. 976 977.. 978 979.. date: 2024-03-13-12-06-49 980.. gh-issue: 115979 981.. nonce: zsNpQD 982.. section: Tests 983 984Update test_importlib so that it passes under WASI SDK 21. 985 986.. 987 988.. date: 2024-03-11-23-20-28 989.. gh-issue: 112536 990.. nonce: Qv1RrX 991.. section: Tests 992 993Add --tsan to test.regrtest for running TSAN tests in reasonable execution 994times. Patch by Donghee Na. 995 996.. 997 998.. date: 2024-03-06-11-00-36 999.. gh-issue: 116307 1000.. nonce: Uij0t_ 1001.. section: Tests 1002 1003Added import helper ``isolated_modules`` as ``CleanImport`` does not remove 1004modules imported during the context. Use it in importlib.resources tests to 1005avoid leaving ``mod`` around to impede importlib.metadata tests. 1006 1007.. 1008 1009.. date: 2024-03-13-16-16-43 1010.. gh-issue: 114736 1011.. nonce: ZhmauG 1012.. section: Build 1013 1014Have WASI builds use WASI SDK 21. 1015 1016.. 1017 1018.. date: 2024-03-08-17-05-15 1019.. gh-issue: 115983 1020.. nonce: ZQqk0Q 1021.. section: Build 1022 1023Skip building test modules that must be built as shared under WASI. 1024 1025.. 1026 1027.. date: 2024-03-06-17-26-55 1028.. gh-issue: 71052 1029.. nonce: vLbu9u 1030.. section: Build 1031 1032Add Android build script and instructions. 1033 1034.. 1035 1036.. date: 2024-03-28-22-12-00 1037.. gh-issue: 117267 1038.. nonce: K_tki1 1039.. section: Windows 1040 1041Ensure ``DirEntry.stat().st_ctime`` behaves consistently with 1042:func:`os.stat` during the deprecation period of ``st_ctime`` by containing 1043the same value as ``st_birthtime``. After the deprecation period, 1044``st_ctime`` will be the metadata change time (or unavailable through 1045``DirEntry``), and only ``st_birthtime`` will contain the creation time. 1046 1047.. 1048 1049.. date: 2024-03-14-20-46-23 1050.. gh-issue: 116195 1051.. nonce: Cu_rYs 1052.. section: Windows 1053 1054Improves performance of :func:`os.getppid` by using an alternate system API 1055when available. Contributed by vxiiduu. 1056 1057.. 1058 1059.. date: 2024-03-14-09-14-21 1060.. gh-issue: 88494 1061.. nonce: Bwfmp7 1062.. section: Windows 1063 1064On Windows, :func:`time.monotonic` now uses the 1065``QueryPerformanceCounter()`` clock to have a resolution better than 1 us, 1066instead of the ``GetTickCount64()`` clock which has a resolution of 15.6 ms. 1067Patch by Victor Stinner. 1068 1069.. 1070 1071.. date: 2024-03-14-01-58-22 1072.. gh-issue: 116773 1073.. nonce: H2UldY 1074.. section: Windows 1075 1076Fix instances of ``<_overlapped.Overlapped object at 0xXXX> still has 1077pending operation at deallocation, the process may crash``. 1078 1079.. 1080 1081.. date: 2024-02-24-23-03-43 1082.. gh-issue: 91227 1083.. nonce: sL4zWC 1084.. section: Windows 1085 1086Fix the asyncio ProactorEventLoop implementation so that sending a datagram 1087to an address that is not listening does not prevent receiving any more 1088datagrams. 1089 1090.. 1091 1092.. date: 2024-02-08-14-48-15 1093.. gh-issue: 115119 1094.. nonce: qMt32O 1095.. section: Windows 1096 1097Switched from vendored ``libmpdecimal`` code to a separately-hosted external 1098package in the ``cpython-source-deps`` repository when building the 1099``_decimal`` module. 1100 1101.. 1102 1103.. date: 2024-04-08-18-53-33 1104.. gh-issue: 117642 1105.. nonce: _-tYH_ 1106.. section: C API 1107 1108Fix :pep:`737` implementation for ``%#T`` and ``%#N``. 1109 1110.. 1111 1112.. date: 2024-03-22-19-29-24 1113.. gh-issue: 87193 1114.. nonce: u7O-jY 1115.. section: C API 1116 1117:c:func:`_PyBytes_Resize` can now be called for bytes objects with reference 1118count > 1, including 1-byte bytes objects. It creates a new bytes object and 1119destroys the old one if it has reference count > 1. 1120 1121.. 1122 1123.. date: 2024-03-20-13-13-22 1124.. gh-issue: 117021 1125.. nonce: 0Q5jBx 1126.. section: C API 1127 1128Fix integer overflow in :c:func:`PyLong_AsPid` on non-Windows 64-bit 1129platforms. 1130 1131.. 1132 1133.. date: 2024-03-19-09-49-04 1134.. gh-issue: 115756 1135.. nonce: 4Ls_Tl 1136.. section: C API 1137 1138:c:func:`!PyCode_GetFirstFree` is an ustable API now and has been renamed to 1139:c:func:`PyUnstable_Code_GetFirstFree`. (Contributed by Bogdan Romanyuk in 1140:gh:`115781`) 1141 1142.. 1143 1144.. date: 2024-03-18-10-58-47 1145.. gh-issue: 116869 1146.. nonce: lN0GBl 1147.. section: C API 1148 1149Add ``test_cext`` test: build a C extension to check if the Python C API 1150emits C compiler warnings. Patch by Victor Stinner. 1151 1152.. 1153 1154.. date: 2024-03-18-09-58-46 1155.. gh-issue: 116869 1156.. nonce: LFDVKM 1157.. section: C API 1158 1159Make the C API compatible with ``-Werror=declaration-after-statement`` 1160compiler flag again. Patch by Victor Stinner. 1161 1162.. 1163 1164.. date: 2024-03-17-22-42-21 1165.. gh-issue: 116936 1166.. nonce: tNrzfm 1167.. section: C API 1168 1169Add :c:func:`PyType_GetModuleByDef` to the limited C API. Patch by Victor 1170Stinner. 1171 1172.. 1173 1174.. date: 2024-03-16-12-21-00 1175.. gh-issue: 116809 1176.. nonce: JL786L 1177.. section: C API 1178 1179Restore removed private ``_PyErr_ChainExceptions1()`` function. Patch by 1180Victor Stinner. 1181 1182.. 1183 1184.. date: 2024-03-15-23-57-33 1185.. gh-issue: 115754 1186.. nonce: zLdv82 1187.. section: C API 1188 1189In the limited C API version 3.13, getting ``Py_None``, ``Py_False``, 1190``Py_True``, ``Py_Ellipsis`` and ``Py_NotImplemented`` singletons is now 1191implemented as function calls at the stable ABI level to hide implementation 1192details. Getting these constants still return borrowed references. Patch by 1193Victor Stinner. 1194 1195.. 1196 1197.. date: 2024-03-15-23-55-24 1198.. gh-issue: 115754 1199.. nonce: xnzc__ 1200.. section: C API 1201 1202Add :c:func:`Py_GetConstant` and :c:func:`Py_GetConstantBorrowed` functions 1203to get constants. For example, ``Py_GetConstant(Py_CONSTANT_ZERO)`` returns 1204a :term:`strong reference` to the constant zero. Patch by Victor Stinner. 1205 1206.. 1207 1208.. date: 2024-03-14-22-30-07 1209.. gh-issue: 111696 1210.. nonce: 76UMKi 1211.. section: C API 1212 1213Add support for ``%T``, ``%T#``, ``%N`` and ``%N#`` formats to 1214:c:func:`PyUnicode_FromFormat`: format the fully qualified name of an object 1215type and of a type: call :c:func:`PyType_GetModuleName`. See :pep:`737` for 1216more information. Patch by Victor Stinner. 1217 1218.. 1219 1220.. date: 2024-03-14-18-00-32 1221.. gh-issue: 111696 1222.. nonce: L6oIPq 1223.. section: C API 1224 1225Add :c:func:`PyType_GetModuleName` function to get the type's module name. 1226Equivalent to getting the ``type.__module__`` attribute. Patch by Eric Snow 1227and Victor Stinner. 1228 1229.. 1230 1231.. date: 2024-03-14-15-17-11 1232.. gh-issue: 111696 1233.. nonce: YmnvAi 1234.. section: C API 1235 1236Add :c:func:`PyType_GetFullyQualifiedName` function to get the type's fully 1237qualified name. Equivalent to ``f"{type.__module__}.{type.__qualname__}"``, 1238or ``type.__qualname__`` if ``type.__module__`` is not a string or is equal 1239to ``"builtins"``. Patch by Victor Stinner. 1240 1241.. 1242 1243.. date: 2024-03-14-10-33-58 1244.. gh-issue: 85283 1245.. nonce: LOgmdU 1246.. section: C API 1247 1248The ``fcntl``, ``grp``, ``pwd``, ``termios``, ``_statistics`` and 1249``_testconsole`` C extensions are now built with the :ref:`limited C API 1250<limited-c-api>`. Patch by Victor Stinner. 1251 1252.. 1253 1254.. date: 2024-02-28-15-50-01 1255.. gh-issue: 111140 1256.. nonce: mpwcUg 1257.. section: C API 1258 1259Add additional flags to :c:func:`PyLong_AsNativeBytes` and 1260:c:func:`PyLong_FromNativeBytes` to allow the caller to determine how to 1261handle edge cases around values that fill the entire buffer. 1262 1263.. 1264 1265.. date: 2023-12-12-19-48-31 1266.. gh-issue: 113024 1267.. nonce: rXcQs7 1268.. section: C API 1269 1270Add :c:func:`PyObject_GenericHash` function. 1271