1.. bpo: 38945 2.. date: 2019-12-01-22-44-40 3.. nonce: ztmNXc 4.. release date: 2019-12-18 5.. section: Security 6 7Newline characters have been escaped when performing uu encoding to prevent 8them from overflowing into to content section of the encoded file. This 9prevents malicious or accidental modification of data during the decoding 10process. 11 12.. 13 14.. bpo: 37228 15.. date: 2019-11-21-21-36-54 16.. nonce: yBZnFG 17.. section: Security 18 19Due to significant security concerns, the *reuse_address* parameter of 20:meth:`asyncio.loop.create_datagram_endpoint` is no longer supported. This 21is because of the behavior of ``SO_REUSEADDR`` in UDP. For more details, see 22the documentation for ``loop.create_datagram_endpoint()``. (Contributed by 23Kyle Stanley, Antoine Pitrou, and Yury Selivanov in :issue:`37228`.) 24 25.. 26 27.. bpo: 38804 28.. date: 2019-11-15-00-54-42 29.. nonce: vjbM8V 30.. section: Security 31 32Fixes a ReDoS vulnerability in :mod:`http.cookiejar`. Patch by Ben Caller. 33 34.. 35 36.. bpo: 39028 37.. date: 2019-12-17-23-20-51 38.. nonce: SND4TB 39.. section: Core and Builtins 40 41Slightly improve the speed of keyword argument parsing with many kwargs by 42strengthening the assumption that kwargs are interned strings. 43 44.. 45 46.. bpo: 39080 47.. date: 2019-12-17-21-45-36 48.. nonce: OrxEVS 49.. section: Core and Builtins 50 51Fix the value of *end_col_offset* for Starred Expression AST nodes when they 52are among the elements in the *args* attribute of Call AST nodes. 53 54.. 55 56.. bpo: 39031 57.. date: 2019-12-12-21-05-43 58.. nonce: imlCYZ 59.. section: Core and Builtins 60 61When parsing an "elif" node, lineno and col_offset of the node now point to 62the "elif" keyword and not to its condition, making it consistent with the 63"if" node. Patch by Lysandros Nikolaou. 64 65.. 66 67.. bpo: 20443 68.. date: 2019-12-09-17-05-53 69.. nonce: 8OyT5P 70.. section: Core and Builtins 71 72In Python 3.9.0a1, sys.argv[0] was made an absolute path if a filename was 73specified on the command line. Revert this change, since most users expect 74sys.argv to be unmodified. 75 76.. 77 78.. bpo: 39008 79.. date: 2019-12-09-10-38-51 80.. nonce: Rrp6f1 81.. section: Core and Builtins 82 83:c:func:`PySys_Audit` now requires ``Py_ssize_t`` to be used for size 84arguments in the format string, regardless of whether ``PY_SSIZE_T_CLEAN`` 85was defined at include time. 86 87.. 88 89.. bpo: 38673 90.. date: 2019-12-01-00-17-44 91.. nonce: K_Tze- 92.. section: Core and Builtins 93 94In REPL mode, don't switch to PS2 if the line starts with comment or 95whitespace. Based on work by Batuhan Taşkaya. 96 97.. 98 99.. bpo: 38922 100.. date: 2019-11-26-12-20-34 101.. nonce: i6ja-i 102.. section: Core and Builtins 103 104Calling ``replace`` on a code object now raises the ``code.__new__`` audit 105event. 106 107.. 108 109.. bpo: 38920 110.. date: 2019-11-26-09-16-47 111.. nonce: Vx__sT 112.. section: Core and Builtins 113 114Add audit hooks for when :func:`sys.excepthook` and 115:func:`sys.unraisablehook` are invoked. 116 117.. 118 119.. bpo: 38892 120.. date: 2019-11-22-22-18-50 121.. nonce: LS586s 122.. section: Core and Builtins 123 124Improve documentation for audit events table and functions. 125 126.. 127 128.. bpo: 38852 129.. date: 2019-11-22-09-55-21 130.. nonce: y7oPEa 131.. section: Core and Builtins 132 133Set the thread stack size to 8 Mb for debug builds on android platforms. 134 135.. 136 137.. bpo: 38858 138.. date: 2019-11-21-09-02-49 139.. nonce: bDLH04 140.. section: Core and Builtins 141 142Each Python subinterpreter now has its own "small integer singletons": 143numbers in [-5; 257] range. It is no longer possible to change the number of 144small integers at build time by overriding ``NSMALLNEGINTS`` and 145``NSMALLPOSINTS`` macros: macros should now be modified manually in 146``pycore_pystate.h`` header file. 147 148.. 149 150.. bpo: 36854 151.. date: 2019-11-20-12-01-37 152.. nonce: Zga_md 153.. section: Core and Builtins 154 155The garbage collector state becomes per interpreter 156(``PyInterpreterState.gc``), rather than being global 157(``_PyRuntimeState.gc``). 158 159.. 160 161.. bpo: 38835 162.. date: 2019-11-18-16-37-49 163.. nonce: -U4se1 164.. section: Core and Builtins 165 166The ``PyFPE_START_PROTECT()`` and ``PyFPE_END_PROTECT()`` macros are empty: 167they have been doing nothing for the last year, so stop using them. 168 169.. 170 171.. bpo: 38328 172.. date: 2019-11-11-23-44-15 173.. nonce: IFrrjq 174.. section: Core and Builtins 175 176Sped up the creation time of constant :class:`list` and :class:`set` 177displays. Patch by Brandt Bucher. 178 179.. 180 181.. bpo: 38707 182.. date: 2019-11-08-00-36-10 183.. nonce: SZL036 184.. section: Core and Builtins 185 186``MainThread.native_id`` is now correctly reset in child processes spawned 187using :class:`multiprocessing.Process`, instead of retaining the parent's 188value. 189 190.. 191 192.. bpo: 38629 193.. date: 2019-10-29-17-11-15 194.. nonce: 3qinhF 195.. section: Core and Builtins 196 197Added ``__floor__`` and ``__ceil__`` methods to float object. Patch by 198Batuhan Taşkaya. 199 200.. 201 202.. bpo: 27145 203.. date: 2019-09-06-16-40-12 204.. nonce: njuCXU 205.. section: Core and Builtins 206 207int + int and int - int operators can now return small integer singletons. 208Patch by hongweipeng. 209 210.. 211 212.. bpo: 38021 213.. date: 2019-09-03-19-16-57 214.. nonce: KnUhdB 215.. section: Core and Builtins 216 217Provide a platform tag for AIX that is sufficient for PEP425 binary 218distribution identification. Patch by Michael Felt. 219 220.. 221 222.. bpo: 35409 223.. date: 2019-07-13-18-01-13 224.. nonce: ozbcsR 225.. section: Core and Builtins 226 227Ignore GeneratorExit exceptions when throwing an exception into the aclose 228coroutine of an asynchronous generator. 229 230.. 231 232.. bpo: 33387 233.. date: 2018-03-13-14-46-03 234.. nonce: v821M7 235.. section: Core and Builtins 236 237Removed WITH_CLEANUP_START, WITH_CLEANUP_FINISH, BEGIN_FINALLY, END_FINALLY, 238CALL_FINALLY and POP_FINALLY bytecodes. Replaced with RERAISE and 239WITH_EXCEPT_START bytecodes. The compiler now generates different code for 240exceptional and non-exceptional branches for 'with' and 'try-except' 241statements. For 'try-finally' statements the 'finally' block is replicated 242for each exit from the 'try' body. 243 244.. 245 246.. bpo: 39033 247.. date: 2019-12-13-18-54-49 248.. nonce: cepuyD 249.. section: Library 250 251Fix :exc:`NameError` in :mod:`zipimport`. Patch by Karthikeyan Singaravelan. 252 253.. 254 255.. bpo: 39022 256.. date: 2019-12-10-23-34-48 257.. nonce: QDtIxI 258.. section: Library 259 260Update importlib.metadata to include improvements from importlib_metadata 2611.3 including better serialization of EntryPoints and improved documentation 262for custom finders. 263 264.. 265 266.. bpo: 39006 267.. date: 2019-12-09-14-40-09 268.. nonce: v4VsPg 269.. section: Library 270 271Fix asyncio when the ssl module is missing: only check for ssl.SSLSocket 272instance if the ssl module is available. 273 274.. 275 276.. bpo: 38708 277.. date: 2019-12-07-22-25-39 278.. nonce: rZTUfk 279.. section: Library 280 281Fix a potential IndexError in email parser when parsing an empty msg-id. 282 283.. 284 285.. bpo: 38698 286.. date: 2019-12-07-21-49-50 287.. nonce: HxoSym 288.. section: Library 289 290Add a new ``InvalidMessageID`` token to email parser to represent invalid 291Message-ID headers. Also, add defects when there is remaining value after 292parsing the header. 293 294.. 295 296.. bpo: 38994 297.. date: 2019-12-07-18-58-44 298.. nonce: IJYhz_ 299.. section: Library 300 301Implement ``__class_getitem__`` for ``os.PathLike``, ``pathlib.Path``. 302 303.. 304 305.. bpo: 38979 306.. date: 2019-12-07-16-32-42 307.. nonce: q0sIHy 308.. section: Library 309 310Return class from ``ContextVar.__class_getitem__`` to simplify subclassing. 311 312.. 313 314.. bpo: 38978 315.. date: 2019-12-07-13-40-52 316.. nonce: R3gHZI 317.. section: Library 318 319Implement ``__class_getitem__`` on asyncio objects (Future, Task, Queue). 320Patch by Batuhan Taskaya. 321 322.. 323 324.. bpo: 38916 325.. date: 2019-12-06-18-47-56 326.. nonce: K-raU8 327.. section: Library 328 329:class:`array.array`: Remove ``tostring()`` and ``fromstring()`` methods. 330They were aliases to ``tobytes()`` and ``frombytes()``, deprecated since 331Python 3.2. 332 333.. 334 335.. bpo: 38986 336.. date: 2019-12-06-15-11-42 337.. nonce: bg6iZt 338.. section: Library 339 340Make repr of C accelerated TaskWakeupMethWrapper the same as of pure Python 341version. 342 343.. 344 345.. bpo: 38982 346.. date: 2019-12-05-18-21-26 347.. nonce: W3u-03 348.. section: Library 349 350Fix asyncio ``PidfdChildWatcher``: handle ``waitpid()`` error. If 351``waitpid()`` is called elsewhere, ``waitpid()`` call fails with 352:exc:`ChildProcessError`: use return code 255 in this case, and log a 353warning. It ensures that the pidfd file descriptor is closed if this error 354occurs. 355 356.. 357 358.. bpo: 38529 359.. date: 2019-12-05-16-13-25 360.. nonce: yvQgx3 361.. section: Library 362 363Drop too noisy asyncio warning about deletion of a stream without explicit 364``.close()`` call. 365 366.. 367 368.. bpo: 27413 369.. date: 2019-12-05-02-02-58 370.. nonce: 212Th2 371.. section: Library 372 373Added ability to pass through ``ensure_ascii`` options to json.dumps in the 374``json.tool`` command-line interface. 375 376.. 377 378.. bpo: 38634 379.. date: 2019-12-04-15-56-28 380.. nonce: pq0ZWa 381.. section: Library 382 383The :mod:`readline` module now detects if Python is linked to libedit at 384runtime on all platforms. Previously, the check was only done on macOS. 385 386.. 387 388.. bpo: 33684 389.. date: 2019-12-04-15-28-40 390.. nonce: QeSmQP 391.. section: Library 392 393Fix ``json.tool`` failed to read a JSON file with non-ASCII characters when 394locale encoding is not UTF-8. 395 396.. 397 398.. bpo: 38698 399.. date: 2019-12-02-10-35-19 400.. nonce: WZnAPQ 401.. section: Library 402 403Prevent UnboundLocalError to pop up in parse_message_id. 404 405parse_message_id() was improperly using a token defined inside an exception 406handler, which was raising `UnboundLocalError` on parsing an invalid value. 407Patch by Claudiu Popa. 408 409.. 410 411.. bpo: 38927 412.. date: 2019-11-27-17-47-00 413.. nonce: qT7xKY 414.. section: Library 415 416Use ``python -m pip`` instead of ``pip`` to upgrade dependencies in venv. 417 418.. 419 420.. bpo: 26730 421.. date: 2019-11-27-16-30-02 422.. nonce: 56cdBn 423.. section: Library 424 425Fix ``SpooledTemporaryFile.rollover()`` might corrupt the file when it is in 426text mode. Patch by Serhiy Storchaka. 427 428.. 429 430.. bpo: 38881 431.. date: 2019-11-22-20-03-46 432.. nonce: 7HV1Q0 433.. section: Library 434 435random.choices() now raises a ValueError when all the weights are zero. 436 437.. 438 439.. bpo: 38876 440.. date: 2019-11-22-10-58-58 441.. nonce: qqy1Vp 442.. section: Library 443 444Raise pickle.UnpicklingError when loading an item from memo for invalid 445input. 446 447The previous code was raising a `KeyError` for both the Python and C 448implementation. This was caused by the specified index of an invalid input 449which did not exist in the memo structure, where the pickle stores what 450objects it has seen. The malformed input would have caused either a `BINGET` 451or `LONG_BINGET` load from the memo, leading to a `KeyError` as the 452determined index was bogus. Patch by Claudiu Popa 453 454.. 455 456.. bpo: 38688 457.. date: 2019-11-22-10-45-03 458.. nonce: iKx23z 459.. section: Library 460 461Calling func:`shutil.copytree` to copy a directory tree from one directory 462to another subdirectory resulted in an endless loop and a RecursionError. A 463fix was added to consume an iterator and create the list of the entries to 464be copied, avoiding the recursion for newly created directories. Patch by 465Bruno P. Kinoshita. 466 467.. 468 469.. bpo: 38863 470.. date: 2019-11-21-16-30-00 471.. nonce: RkdTjf 472.. section: Library 473 474Improve :func:`is_cgi` function in :mod:`http.server`, which enables 475processing the case that cgi directory is a child of another directory other 476than root. 477 478.. 479 480.. bpo: 37838 481.. date: 2019-11-21-11-39-17 482.. nonce: lRFcEC 483.. section: Library 484 485:meth:`typing.get_type_hints` properly handles functions decorated with 486:meth:`functools.wraps`. 487 488.. 489 490.. bpo: 38870 491.. date: 2019-11-20-22-43-48 492.. nonce: rLVZEv 493.. section: Library 494 495Expose :func:`ast.unparse` as a function of the :mod:`ast` module that can 496be used to unparse an :class:`ast.AST` object and produce a string with code 497that would produce an equivalent :class:`ast.AST` object when parsed. Patch 498by Pablo Galindo and Batuhan Taskaya. 499 500.. 501 502.. bpo: 38859 503.. date: 2019-11-19-16-30-46 504.. nonce: AZUzL8 505.. section: Library 506 507AsyncMock now returns StopAsyncIteration on the exhaustion of a side_effects 508iterable. Since PEP-479 its Impossible to raise a StopIteration exception 509from a coroutine. 510 511.. 512 513.. bpo: 38857 514.. date: 2019-11-19-16-28-25 515.. nonce: YPUkU9 516.. section: Library 517 518AsyncMock fix for return values that are awaitable types. This also covers 519side_effect iterable values that happened to be awaitable, and wraps 520callables that return an awaitable type. Before these awaitables were being 521awaited instead of being returned as is. 522 523.. 524 525.. bpo: 38834 526.. date: 2019-11-18-17-08-23 527.. nonce: abcdef 528.. section: Library 529 530:class:`typing.TypedDict` subclasses now track which keys are optional using 531the ``__required_keys__`` and ``__optional_keys__`` attributes, to enable 532runtime validation by downstream projects. Patch by Zac Hatfield-Dodds. 533 534.. 535 536.. bpo: 38821 537.. date: 2019-11-16-23-26-25 538.. nonce: -albNN 539.. section: Library 540 541Fix unhandled exceptions in :mod:`argparse` when internationalizing error 542messages for arguments with ``nargs`` set to special (non-integer) values. 543Patch by Federico Bond. 544 545.. 546 547.. bpo: 38820 548.. date: 2019-11-16-16-09-07 549.. nonce: ivhUSV 550.. section: Library 551 552Make Python compatible with OpenSSL 3.0.0. :func:`ssl.SSLSocket.getpeercert` 553no longer returns IPv6 addresses with a trailing new line. 554 555.. 556 557.. bpo: 38811 558.. date: 2019-11-15-18-06-04 559.. nonce: AmdQ6M 560.. section: Library 561 562Fix an unhandled exception in :mod:`pathlib` when :meth:`os.link` is 563missing. Patch by Toke Høiland-Jørgensen. 564 565.. 566 567.. bpo: 38686 568.. date: 2019-11-06-15-26-15 569.. nonce: HNFBce 570.. section: Library 571 572Added support for multiple ``qop`` values in 573:class:`urllib.request.AbstractDigestAuthHandler`. 574 575.. 576 577.. bpo: 38712 578.. date: 2019-11-05-21-10-12 579.. nonce: ezJ0TP 580.. section: Library 581 582Add the Linux-specific :func:`signal.pidfd_send_signal` function, which 583allows sending a signal to a process identified by a file descriptor rather 584than a pid. 585 586.. 587 588.. bpo: 38348 589.. date: 2019-10-02-18-15-28 590.. nonce: _-5eq2 591.. section: Library 592 593Add ``-i`` and ``--indent`` (indentation level), and ``--no-type-comments`` 594(type comments) command line options to ast parsing tool. 595 596.. 597 598.. bpo: 37523 599.. date: 2019-10-02-02-55-37 600.. nonce: GguwJ6 601.. section: Library 602 603Change :class:`zipfile.ZipExtFile` to raise ``ValueError`` when trying to 604access the underlying file object after it has been closed. This new 605behavior is consistent with how accessing closed files is handled in other 606parts of Python. 607 608.. 609 610.. bpo: 38045 611.. date: 2019-09-30-12-09-41 612.. nonce: VDRtd3 613.. section: Library 614 615Improve the performance of :func:`enum._decompose` in :mod:`enum`. Patch by 616hongweipeng. 617 618.. 619 620.. bpo: 36820 621.. date: 2019-05-06-15-34-17 622.. nonce: Eh5mIB 623.. section: Library 624 625Break cycle generated when saving an exception in socket.py, codeop.py and 626dyld.py as they keep alive not only the exception but user objects through 627the ``__traceback__`` attribute. Patch by Mario Corchero. 628 629.. 630 631.. bpo: 36406 632.. date: 2019-03-24-12-12-27 633.. nonce: mCEkOl 634.. section: Library 635 636Handle namespace packages in :mod:`doctest`. Patch by Karthikeyan 637Singaravelan. 638 639.. 640 641.. bpo: 34776 642.. date: 2018-09-23-14-24-37 643.. nonce: 1SrQe3 644.. section: Library 645 646Fix dataclasses to support forward references in type annotations 647 648.. 649 650.. bpo: 20928 651.. date: 2018-03-30-16-18-12 652.. nonce: ieXu6I 653.. section: Library 654 655ElementTree supports recursive XInclude processing. Patch by Stefan Behnel. 656 657.. 658 659.. bpo: 29636 660.. date: 2018-02-22-11-24-33 661.. nonce: ogGRE2 662.. section: Library 663 664Add whitespace options for formatting JSON with the ``json.tool`` CLI. The 665following mutually exclusive options are now supported: ``--indent`` for 666setting the indent level in spaces; ``--tab`` for indenting with tabs; 667``--no-indent`` for suppressing newlines; and ``--compact`` for suppressing 668all whitespace. The default behavior remains the same as ``--indent=4``. 669 670.. 671 672.. bpo: 38928 673.. date: 2019-11-27-17-51-27 674.. nonce: AfgvfO 675.. section: Documentation 676 677Correct when venv's ``upgrade_dependencies()`` and ``--upgrade-deps`` are 678added. 679 680.. 681 682.. bpo: 38899 683.. date: 2019-11-22-15-57-29 684.. nonce: 4aYPW2 685.. section: Documentation 686 687Update documentation to state that to activate virtual environments under 688fish one should use `source`, not `.` as documented at 689https://fishshell.com/docs/current/cmds/source.html. 690 691.. 692 693.. bpo: 22377 694.. date: 2019-10-01-10-53-46 695.. nonce: 5ni-iC 696.. section: Documentation 697 698Improves documentation of the values that :meth:`datetime.datetime.strptime` 699accepts for ``%Z``. Patch by Karl Dubost. 700 701.. 702 703.. bpo: 38546 704.. date: 2019-12-18-14-52-08 705.. nonce: 2kxNuM 706.. section: Tests 707 708Fix test_ressources_gced_in_workers() of test_concurrent_futures: explicitly 709stop the manager to prevent leaking a child process running in the 710background after the test completes. 711 712.. 713 714.. bpo: 38546 715.. date: 2019-12-17-15-27-07 716.. nonce: 82JwN2 717.. section: Tests 718 719Multiprocessing and concurrent.futures tests now stop the resource tracker 720process when tests complete. 721 722.. 723 724.. bpo: 38614 725.. date: 2019-12-10-14-26-23 726.. nonce: 89JpNh 727.. section: Tests 728 729Replace hardcoded timeout constants in tests with new :mod:`test.support` 730constants: :data:`~test.support.LOOPBACK_TIMEOUT`, 731:data:`~test.support.INTERNET_TIMEOUT`, :data:`~test.support.SHORT_TIMEOUT` 732and :data:`~test.support.LONG_TIMEOUT`. It becomes easier to adjust these 733four timeout constants for all tests at once, rather than having to adjust 734every single test file. 735 736.. 737 738.. bpo: 38547 739.. date: 2019-12-09-11-32-34 740.. nonce: Juw54e 741.. section: Tests 742 743Fix test_pty: if the process is the session leader, closing the master file 744descriptor raises a SIGHUP signal: simply ignore SIGHUP when running the 745tests. 746 747.. 748 749.. bpo: 38992 750.. date: 2019-12-08-15-11-06 751.. nonce: cVoHOZ 752.. section: Tests 753 754Fix a test for :func:`math.fsum` that was failing due to constant folding. 755 756.. 757 758.. bpo: 38991 759.. date: 2019-12-07-00-52-09 760.. nonce: JE3_o- 761.. section: Tests 762 763:mod:`test.support`: :func:`~test.support.run_python_until_end`, 764:func:`~test.support.assert_python_ok` and 765:func:`~test.support.assert_python_failure` functions no longer strip 766whitespaces from stderr. Remove ``test.support.strip_python_stderr()`` 767function. 768 769.. 770 771.. bpo: 38965 772.. date: 2019-12-04-17-08-55 773.. nonce: yqax3m 774.. section: Tests 775 776Fix test_faulthandler on GCC 10. Use the "volatile" keyword in 777``faulthandler._stack_overflow()`` to prevent tail call optimization on any 778compiler, rather than relying on compiler specific pragma. 779 780.. 781 782.. bpo: 38875 783.. date: 2019-11-21-09-11-06 784.. nonce: wSZJal 785.. section: Tests 786 787test_capi: trashcan tests now require the test "cpu" resource. 788 789.. 790 791.. bpo: 38841 792.. date: 2019-11-20-16-08-19 793.. nonce: 5F5Lbw 794.. section: Tests 795 796Skip asyncio test_create_datagram_endpoint_existing_sock_unix on platforms 797lacking a functional bind() for named unix domain sockets. 798 799.. 800 801.. bpo: 38692 802.. date: 2019-11-20-15-42-06 803.. nonce: aqAvyF 804.. section: Tests 805 806Skip the test_posix.test_pidfd_open() test if ``os.pidfd_open()`` fails with 807a :exc:`PermissionError`. This situation can happen in a Linux sandbox using 808a syscall whitelist which doesn't allow the ``pidfd_open()`` syscall yet. 809 810.. 811 812.. bpo: 38839 813.. date: 2019-11-18-22-10-55 814.. nonce: di6tXv 815.. section: Tests 816 817Fix some unused functions in tests. Patch by Adam Johnson. 818 819.. 820 821.. bpo: 38669 822.. date: 2019-11-04-02-54-16 823.. nonce: pazXZ8 824.. section: Tests 825 826Raise :exc:`TypeError` when passing target as a string with 827:meth:`unittest.mock.patch.object`. 828 829.. 830 831.. bpo: 37957 832.. date: 2019-10-30-00-01-43 833.. nonce: X1r78F 834.. section: Tests 835 836test.regrtest now can receive a list of test patterns to ignore (using the 837-i/--ignore argument) or a file with a list of patterns to ignore (using the 838--ignore-file argument). Patch by Pablo Galindo. 839 840.. 841 842.. bpo: 37404 843.. date: 2019-12-01-21-45-24 844.. nonce: cNsA7S 845.. section: Build 846 847:mod:`asyncio` now raises :exc:`TyperError` when calling incompatible 848methods with an :class:`ssl.SSLSocket` socket. Patch by Ido Michael. 849 850.. 851 852.. bpo: 36500 853.. date: 2019-04-02-01-59-26 854.. nonce: fyG6_U 855.. section: Build 856 857Added an optional "regen" project to the Visual Studio solution that will 858regenerate all grammar, tokens, and opcodes. 859 860.. 861 862.. bpo: 39007 863.. date: 2019-12-09-10-40-34 864.. nonce: vtarxo 865.. section: Windows 866 867Add auditing events to functions in :mod:`winreg`. 868 869.. 870 871.. bpo: 33125 872.. date: 2019-11-14-08-57-50 873.. nonce: EN5MWS 874.. section: Windows 875 876Add support for building and releasing Windows ARM64 packages. 877 878.. 879 880.. bpo: 37931 881.. date: 2019-08-23-12-14-34 882.. nonce: goYgQj 883.. section: macOS 884 885Fixed a crash on OSX dynamic builds that occurred when re-initializing the 886posix module after a Py_Finalize if the environment had changed since the 887previous `import posix`. Patch by Benoît Hudson. 888 889.. 890 891.. bpo: 38944 892.. date: 2019-11-30-12-10-36 893.. nonce: _3xjKG 894.. section: IDLE 895 896Escape key now closes IDLE completion windows. Patch by Johnny Najera. 897 898.. 899 900.. bpo: 38943 901.. date: 2019-11-29-23-44-11 902.. nonce: 8pUKKs 903.. section: IDLE 904 905Fix IDLE autocomplete windows not always appearing on some systems. Patch by 906Johnny Najera. 907 908.. 909 910.. bpo: 38862 911.. date: 2019-11-23-21-50-57 912.. nonce: KQ9A0m 913.. section: IDLE 914 915'Strip Trailing Whitespace' on the Format menu removes extra newlines at the 916end of non-shell files. 917 918.. 919 920.. bpo: 38636 921.. date: 2019-10-30-22-11-16 922.. nonce: hUhDeB 923.. section: IDLE 924 925Fix IDLE Format menu tab toggle and file indent width. These functions 926(default shortcuts Alt-T and Alt-U) were mistakenly disabled in 3.7.5 and 9273.8.0. 928 929.. 930 931.. bpo: 38896 932.. date: 2019-11-22-19-43-43 933.. nonce: 6wvNMJ 934.. section: C API 935 936Remove ``PyUnicode_ClearFreeList()`` function: the Unicode free list has 937been removed in Python 3.3. 938 939.. 940 941.. bpo: 37340 942.. date: 2019-11-20-11-08-06 943.. nonce: JBQJMS 944.. section: C API 945 946Remove ``PyMethod_ClearFreeList()`` and ``PyCFunction_ClearFreeList()`` 947functions: the free lists of bound method objects have been removed. 948 949.. 950 951.. bpo: 38835 952.. date: 2019-11-18-15-38-23 953.. nonce: II8Szd 954.. section: C API 955 956Exclude ``PyFPE_START_PROTECT()`` and ``PyFPE_END_PROTECT()`` macros of 957``pyfpe.h`` from ``Py_LIMITED_API`` (stable API). 958