1.. bpo: 30730 2.. date: 084 3.. nonce: rJsyTH 4.. original section: Library 5.. release date: 2017-07-23 6.. section: Security 7 8Prevent environment variables injection in subprocess on Windows. Prevent 9passing other environment variables and command arguments. 10 11.. 12 13.. bpo: 30694 14.. date: 083 15.. nonce: WkMWM_ 16.. original section: Library 17.. section: Security 18 19Upgrade expat copy from 2.2.0 to 2.2.1 to get fixes of multiple security 20vulnerabilities including: CVE-2017-9233 (External entity infinite loop 21DoS), CVE-2016-9063 (Integer overflow, re-fix), CVE-2016-0718 (Fix 22regression bugs from 2.2.0's fix to CVE-2016-0718) and CVE-2012-0876 23(Counter hash flooding with SipHash). Note: the CVE-2016-5300 (Use 24os-specific entropy sources like getrandom) doesn't impact Python, since Python 25already gets entropy from the OS to set the expat secret using 26``XML_SetHashSalt()``. 27 28.. 29 30.. bpo: 30500 31.. date: 081 32.. nonce: 1VG7R- 33.. original section: Library 34.. section: Security 35 36Fix urllib.parse.splithost() to correctly parse fragments. For example, 37``splithost('//127.0.0.1#@evil.com/')`` now correctly returns the 38``127.0.0.1`` host, instead of treating ``@evil.com`` as the host in an 39authentication (``login@host``). 40 41.. 42 43.. bpo: 29591 44.. date: 076 45.. nonce: ExKblw 46.. original section: Library 47.. section: Security 48 49Update expat copy from 2.1.1 to 2.2.0 to get fixes of CVE-2016-0718 and 50CVE-2016-4472. See https://sourceforge.net/p/expat/bugs/537/ for more 51information. 52 53.. 54 55.. bpo: 30876 56.. date: 2017-07-11-06-31-32 57.. nonce: x35jZX 58.. section: Core and Builtins 59 60Relative import from unloaded package now reimports the package instead of 61failing with SystemError. Relative import from non-package now fails with 62ImportError rather than SystemError. 63 64.. 65 66.. bpo: 30765 67.. date: 2017-06-26-14-29-50 68.. nonce: Q5iBmf 69.. section: Core and Builtins 70 71Avoid blocking in pthread_mutex_lock() when PyThread_acquire_lock() is asked 72not to block. 73 74.. 75 76.. bpo: 27945 77.. date: 100 78.. nonce: p29r3O 79.. section: Core and Builtins 80 81Fixed various segfaults with dict when input collections are mutated during 82searching, inserting or comparing. Based on patches by Duane Griffin and 83Tim Mitchell. 84 85.. 86 87.. bpo: 25794 88.. date: 099 89.. nonce: xfPwqm 90.. section: Core and Builtins 91 92Fixed type.__setattr__() and type.__delattr__() for non-interned attribute 93names. Based on patch by Eryk Sun. 94 95.. 96 97.. bpo: 29935 98.. date: 098 99.. nonce: vgjdJo 100.. section: Core and Builtins 101 102Fixed error messages in the index() method of tuple, list and deque when 103pass indices of wrong type. 104 105.. 106 107.. bpo: 28876 108.. date: 097 109.. nonce: cU-sGT 110.. section: Core and Builtins 111 112``bool(range)`` works even if ``len(range)`` raises :exc:`OverflowError`. 113 114.. 115 116.. bpo: 29600 117.. date: 096 118.. nonce: 77wQ6C 119.. section: Core and Builtins 120 121Fix wrapping coroutine return values in StopIteration. 122 123.. 124 125.. bpo: 29537 126.. date: 095 127.. nonce: lu1ysY 128.. section: Core and Builtins 129 130Restore runtime compatibility with bytecode files generated by CPython 3.5.0 131to 3.5.2, and adjust the eval loop to avoid the problems that could be 132caused by the malformed variant of the BUILD_MAP_UNPACK_WITH_CALL opcode 133that they may contain. Patch by Petr Viktorin, Serhiy Storchaka, and Nick 134Coghlan. 135 136.. 137 138.. bpo: 28598 139.. date: 094 140.. nonce: QxbzQn 141.. section: Core and Builtins 142 143Support __rmod__ for subclasses of str being called before str.__mod__. 144Patch by Martijn Pieters. 145 146.. 147 148.. bpo: 29602 149.. date: 093 150.. nonce: qyyskC 151.. section: Core and Builtins 152 153Fix incorrect handling of signed zeros in complex constructor for complex 154subclasses and for inputs having a __complex__ method. Patch by Serhiy 155Storchaka. 156 157.. 158 159.. bpo: 29347 160.. date: 092 161.. nonce: 1RPPGN 162.. section: Core and Builtins 163 164Fixed possibly dereferencing undefined pointers when creating weakref 165objects. 166 167.. 168 169.. bpo: 29438 170.. date: 091 171.. nonce: IKxD6I 172.. section: Core and Builtins 173 174Fixed use-after-free problem in key sharing dict. 175 176.. 177 178.. bpo: 29319 179.. date: 090 180.. nonce: KLDUZf 181.. section: Core and Builtins 182 183Prevent RunMainFromImporter overwriting sys.path[0]. 184 185.. 186 187.. bpo: 29337 188.. date: 089 189.. nonce: bjX8AE 190.. section: Core and Builtins 191 192Fixed possible BytesWarning when compare the code objects. Warnings could be 193emitted at compile time. 194 195.. 196 197.. bpo: 29478 198.. date: 088 199.. nonce: rTQ-qy 200.. section: Core and Builtins 201 202If max_line_length=None is specified while using the Compat32 policy, it is 203no longer ignored. Patch by Mircea Cosbuc. 204 205.. 206 207.. bpo: 29403 208.. date: 2017-07-20-02-29-49 209.. nonce: 3RinCV 210.. section: Library 211 212Fix ``unittest.mock``'s autospec to not fail on method-bound builtin 213functions. Patch by Aaron Gallagher. 214 215.. 216 217.. bpo: 30961 218.. date: 2017-07-18-23-47-51 219.. nonce: 064jz0 220.. section: Library 221 222Fix decrementing a borrowed reference in tracemalloc. 223 224.. 225 226.. bpo: 30886 227.. date: 2017-07-10-12-14-22 228.. nonce: nqQj34 229.. section: Library 230 231Fix multiprocessing.Queue.join_thread(): it now waits until the thread 232completes, even if the thread was started by the same process which created 233the queue. 234 235.. 236 237.. bpo: 29854 238.. date: 2017-07-07-02-18-57 239.. nonce: J8wKb_ 240.. section: Library 241 242Fix segfault in readline when using readline's history-size option. Patch 243by Nir Soffer. 244 245.. 246 247.. bpo: 30807 248.. date: 2017-06-29-22-04-44 249.. nonce: sLtjY- 250.. section: Library 251 252signal.setitimer() may disable the timer when passed a tiny value. 253Tiny values (such as 1e-6) are valid non-zero values for setitimer(), which 254is specified as taking microsecond-resolution intervals. However, on some 255platform, our conversion routine could convert 1e-6 into a zero interval, 256therefore disabling the timer instead of (re-)scheduling it. 257 258.. 259 260.. bpo: 30441 261.. date: 2017-06-29-14-25-14 262.. nonce: 3Wh9kc 263.. section: Library 264 265Fix bug when modifying os.environ while iterating over it 266 267.. 268 269.. bpo: 30532 270.. date: 2017-06-26-11-01-59 271.. nonce: qTeL1o 272.. section: Library 273 274Fix email header value parser dropping folding white space in certain cases. 275 276.. 277 278.. bpo: 29169 279.. date: 087 280.. nonce: 8ypApm 281.. section: Library 282 283Update zlib to 1.2.11. 284 285.. 286 287.. bpo: 30879 288.. date: 086 289.. nonce: N3KI-o 290.. section: Library 291 292os.listdir() and os.scandir() now emit bytes names when called with 293bytes-like argument. 294 295.. 296 297.. bpo: 30746 298.. date: 085 299.. nonce: 7drQI0 300.. section: Library 301 302Prohibited the '=' character in environment variable names in 303``os.putenv()`` and ``os.spawn*()``. 304 305.. 306 307.. bpo: 29755 308.. date: 082 309.. nonce: diQcY_ 310.. section: Library 311 312Fixed the lgettext() family of functions in the gettext module. They now 313always return bytes. 314 315.. 316 317.. bpo: 30645 318.. date: 080 319.. nonce: oYzbbW 320.. section: Library 321 322Fix path calculation in imp.load_package(), fixing it for cases when a 323package is only shipped with bytecodes. Patch by Alexandru Ardelean. 324 325.. 326 327.. bpo: 23890 328.. date: 079 329.. nonce: GCFAAZ 330.. section: Library 331 332unittest.TestCase.assertRaises() now manually breaks a reference cycle to 333not keep objects alive longer than expected. 334 335.. 336 337.. bpo: 30149 338.. date: 078 339.. nonce: hE649r 340.. section: Library 341 342inspect.signature() now supports callables with variable-argument parameters 343wrapped with partialmethod. Patch by Dong-hee Na. 344 345.. 346 347.. bpo: 29931 348.. date: 077 349.. nonce: tfcTwK 350.. section: Library 351 352Fixed comparison check for ipaddress.ip_interface objects. Patch by Sanjay 353Sundaresan. 354 355.. 356 357.. bpo: 24484 358.. date: 075 359.. nonce: vFem8K 360.. section: Library 361 362Avoid race condition in multiprocessing cleanup. 363 364.. 365 366.. bpo: 28994 367.. date: 074 368.. nonce: 9vzun1 369.. section: Library 370 371The traceback no longer displayed for SystemExit raised in a callback 372registered by atexit. 373 374.. 375 376.. bpo: 30508 377.. date: 073 378.. nonce: wNWRS2 379.. section: Library 380 381Don't log exceptions if Task/Future "cancel()" method was called. 382 383.. 384 385.. bpo: 28556 386.. date: 072 387.. nonce: mESP7G 388.. section: Library 389 390Updates to typing module: Add generic AsyncContextManager, add support for 391ContextManager on all versions. Original PRs by Jelle Zijlstra and Ivan 392Levkivskyi 393 394.. 395 396.. bpo: 29870 397.. date: 071 398.. nonce: p960Ih 399.. section: Library 400 401Fix ssl sockets leaks when connection is aborted in asyncio/ssl 402implementation. Patch by Michaël Sghaïer. 403 404.. 405 406.. bpo: 29743 407.. date: 070 408.. nonce: en2P4s 409.. section: Library 410 411Closing transport during handshake process leaks open socket. Patch by 412Nikolay Kim 413 414.. 415 416.. bpo: 27585 417.. date: 069 418.. nonce: 0Ugqqu 419.. section: Library 420 421Fix waiter cancellation in asyncio.Lock. Patch by Mathieu Sornay. 422 423.. 424 425.. bpo: 30418 426.. date: 068 427.. nonce: EwISQm 428.. section: Library 429 430On Windows, subprocess.Popen.communicate() now also ignore EINVAL on 431stdin.write() if the child process is still running but closed the pipe. 432 433.. 434 435.. bpo: 30378 436.. date: 067 437.. nonce: R_19_5 438.. section: Library 439 440Fix the problem that logging.handlers.SysLogHandler cannot handle IPv6 441addresses. 442 443.. 444 445.. bpo: 29960 446.. date: 066 447.. nonce: g0wr3r 448.. section: Library 449 450Preserve generator state when _random.Random.setstate() raises an exception. 451Patch by Bryan Olson. 452 453.. 454 455.. bpo: 30414 456.. date: 065 457.. nonce: jGl1Lb 458.. section: Library 459 460multiprocessing.Queue._feed background running thread do not break from main 461loop on exception. 462 463.. 464 465.. bpo: 30003 466.. date: 064 467.. nonce: BOl9HE 468.. section: Library 469 470Fix handling escape characters in HZ codec. Based on patch by Ma Lin. 471 472.. 473 474.. bpo: 30301 475.. date: 063 476.. nonce: ywOkjN 477.. section: Library 478 479Fix AttributeError when using SimpleQueue.empty() under *spawn* and 480*forkserver* start methods. 481 482.. 483 484.. bpo: 30329 485.. date: 062 486.. nonce: EuT36N 487.. section: Library 488 489imaplib and poplib now catch the Windows socket WSAEINVAL error (code 10022) 490on shutdown(SHUT_RDWR): An invalid operation was attempted. This error 491occurs sometimes on SSL connections. 492 493.. 494 495.. bpo: 30375 496.. date: 061 497.. nonce: 9c8qM7 498.. section: Library 499 500Warnings emitted when compile a regular expression now always point to the 501line in the user code. Previously they could point into inners of the re 502module if emitted from inside of groups or conditionals. 503 504.. 505 506.. bpo: 30048 507.. date: 060 508.. nonce: ELRx8R 509.. section: Library 510 511Fixed ``Task.cancel()`` can be ignored when the task is running coroutine 512and the coroutine returned without any more ``await``. 513 514.. 515 516.. bpo: 29990 517.. date: 059 518.. nonce: HWV6KE 519.. section: Library 520 521Fix range checking in GB18030 decoder. Original patch by Ma Lin. 522 523.. 524 525.. bpo: 26293 526.. date: 058 527.. nonce: wig0YG 528.. section: Library 529 530Change resulted because of zipfile breakage. (See also: bpo-29094) 531 532.. 533 534.. bpo: 30243 535.. date: 057 536.. nonce: RHQt0v 537.. section: Library 538 539Removed the __init__ methods of _json's scanner and encoder. Misusing them 540could cause memory leaks or crashes. Now scanner and encoder objects are 541completely initialized in the __new__ methods. 542 543.. 544 545.. bpo: 30185 546.. date: 056 547.. nonce: Tiu1n8 548.. section: Library 549 550Avoid KeyboardInterrupt tracebacks in forkserver helper process when Ctrl-C 551is received. 552 553.. 554 555.. bpo: 28556 556.. date: 055 557.. nonce: 51gjbP 558.. section: Library 559 560Various updates to typing module: add typing.NoReturn type, use 561WrapperDescriptorType, minor bug-fixes. Original PRs by Jim 562Fasarakis-Hilliard and Ivan Levkivskyi. 563 564.. 565 566.. bpo: 30205 567.. date: 054 568.. nonce: BsxO34 569.. section: Library 570 571Fix getsockname() for unbound AF_UNIX sockets on Linux. 572 573.. 574 575.. bpo: 30070 576.. date: 053 577.. nonce: XM_B41 578.. section: Library 579 580Fixed leaks and crashes in errors handling in the parser module. 581 582.. 583 584.. bpo: 30061 585.. date: 052 586.. nonce: 2w_dX9 587.. section: Library 588 589Fixed crashes in IOBase methods __next__() and readlines() when readline() 590or __next__() respectively return non-sizeable object. Fixed possible other 591errors caused by not checking results of PyObject_Size(), PySequence_Size(), 592or PyMapping_Size(). 593 594.. 595 596.. bpo: 30068 597.. date: 051 598.. nonce: n4q47r 599.. section: Library 600 601_io._IOBase.readlines will check if it's closed first when hint is present. 602 603.. 604 605.. bpo: 29694 606.. date: 050 607.. nonce: LWKxb1 608.. section: Library 609 610Fixed race condition in pathlib mkdir with flags parents=True. Patch by 611Armin Rigo. 612 613.. 614 615.. bpo: 29692 616.. date: 049 617.. nonce: oyWrAE 618.. section: Library 619 620Fixed arbitrary unchaining of RuntimeError exceptions in 621contextlib.contextmanager. Patch by Siddharth Velankar. 622 623.. 624 625.. bpo: 29998 626.. date: 048 627.. nonce: poeIKD 628.. section: Library 629 630Pickling and copying ImportError now preserves name and path attributes. 631 632.. 633 634.. bpo: 29942 635.. date: 047 636.. nonce: CsGNuT 637.. section: Library 638 639Fix a crash in itertools.chain.from_iterable when encountering long runs of 640empty iterables. 641 642.. 643 644.. bpo: 27863 645.. date: 046 646.. nonce: pPYHHI 647.. section: Library 648 649Fixed multiple crashes in ElementTree caused by race conditions and wrong 650types. 651 652.. 653 654.. bpo: 28699 655.. date: 045 656.. nonce: wZztZP 657.. section: Library 658 659Fixed a bug in pools in multiprocessing.pool that raising an exception at 660the very first of an iterable may swallow the exception or make the program 661hang. Patch by Davin Potts and Xiang Zhang. 662 663.. 664 665.. bpo: 25803 666.. date: 044 667.. nonce: CPDR0W 668.. section: Library 669 670Avoid incorrect errors raised by Path.mkdir(exist_ok=True) when the OS gives 671priority to errors such as EACCES over EEXIST. 672 673.. 674 675.. bpo: 29861 676.. date: 043 677.. nonce: t2ZoRK 678.. section: Library 679 680Release references to tasks, their arguments and their results as soon as 681they are finished in multiprocessing.Pool. 682 683.. 684 685.. bpo: 29884 686.. date: 042 687.. nonce: kWXR8W 688.. section: Library 689 690faulthandler: Restore the old sigaltstack during teardown. Patch by 691Christophe Zeitouny. 692 693.. 694 695.. bpo: 25455 696.. date: 041 697.. nonce: ZsahHN 698.. section: Library 699 700Fixed crashes in repr of recursive buffered file-like objects. 701 702.. 703 704.. bpo: 29800 705.. date: 040 706.. nonce: d2xASa 707.. section: Library 708 709Fix crashes in partial.__repr__ if the keys of partial.keywords are not 710strings. Patch by Michael Seifert. 711 712.. 713 714.. bpo: 29742 715.. date: 039 716.. nonce: 8hqfEO 717.. section: Library 718 719get_extra_info() raises exception if get called on closed ssl transport. 720Patch by Nikolay Kim. 721 722.. 723 724.. bpo: 8256 725.. date: 038 726.. nonce: jAwGQH 727.. section: Library 728 729Fixed possible failing or crashing input() if attributes "encoding" or 730"errors" of sys.stdin or sys.stdout are not set or are not strings. 731 732.. 733 734.. bpo: 28298 735.. date: 037 736.. nonce: xfm84U 737.. section: Library 738 739Fix a bug that prevented array 'Q', 'L' and 'I' from accepting big intables 740(objects that have __int__) as elements. Patch by Oren Milman. 741 742.. 743 744.. bpo: 29615 745.. date: 036 746.. nonce: OpFKzg 747.. section: Library 748 749SimpleXMLRPCDispatcher no longer chains KeyError (or any other exception) to 750exception(s) raised in the dispatched methods. Patch by Petr Motejlek. 751 752.. 753 754.. bpo: 29704 755.. date: 035 756.. nonce: WHbx27 757.. section: Library 758 759asyncio.subprocess.SubprocessStreamProtocol no longer closes before all 760pipes are closed. 761 762.. 763 764.. bpo: 29703 765.. date: 034 766.. nonce: ZdsPCR 767.. section: Library 768 769Fix asyncio to support instantiation of new event loops in child processes. 770 771.. 772 773.. bpo: 29376 774.. date: 033 775.. nonce: rrJhJy 776.. section: Library 777 778Fix assertion error in threading._DummyThread.is_alive(). 779 780.. 781 782.. bpo: 29110 783.. date: 032 784.. nonce: wmE-_T 785.. section: Library 786 787Fix file object leak in aifc.open() when file is given as a filesystem path 788and is not in valid AIFF format. Patch by Anthony Zhang. 789 790.. 791 792.. bpo: 28961 793.. date: 031 794.. nonce: Rt93vg 795.. section: Library 796 797Fix unittest.mock._Call helper: don't ignore the name parameter anymore. 798Patch written by Jiajun Huang. 799 800.. 801 802.. bpo: 29532 803.. date: 030 804.. nonce: YCwVQn 805.. section: Library 806 807Altering a kwarg dictionary passed to functools.partial() no longer affects 808a partial object after creation. 809 810.. 811 812.. bpo: 28556 813.. date: 029 814.. nonce: p6967e 815.. section: Library 816 817Various updates to typing module: typing.Counter, typing.ChainMap, improved 818ABC caching, etc. Original PRs by Jelle Zijlstra, Ivan Levkivskyi, Manuel 819Krebber, and Łukasz Langa. 820 821.. 822 823.. bpo: 29100 824.. date: 028 825.. nonce: LAAERS 826.. section: Library 827 828Fix datetime.fromtimestamp() regression introduced in Python 3.6.0: check 829minimum and maximum years. 830 831.. 832 833.. bpo: 29519 834.. date: 027 835.. nonce: oGGgZ4 836.. section: Library 837 838Fix weakref spewing exceptions during interpreter shutdown when used with a 839rare combination of multiprocessing and custom codecs. 840 841.. 842 843.. bpo: 29416 844.. date: 026 845.. nonce: KJGyI_ 846.. section: Library 847 848Prevent infinite loop in pathlib.Path.mkdir 849 850.. 851 852.. bpo: 29444 853.. date: 025 854.. nonce: cEwgmk 855.. section: Library 856 857Fixed out-of-bounds buffer access in the group() method of the match object. 858Based on patch by WGH. 859 860.. 861 862.. bpo: 29335 863.. date: 024 864.. nonce: _KC7IK 865.. section: Library 866 867Fix subprocess.Popen.wait() when the child process has exited to a stopped 868instead of terminated state (ex: when under ptrace). 869 870.. 871 872.. bpo: 29290 873.. date: 023 874.. nonce: XBqptF 875.. section: Library 876 877Fix a regression in argparse that help messages would wrap at non-breaking 878spaces. 879 880.. 881 882.. bpo: 28735 883.. date: 022 884.. nonce: admHLO 885.. section: Library 886 887Fixed the comparison of mock.MagickMock with mock.ANY. 888 889.. 890 891.. bpo: 29011 892.. date: 021 893.. nonce: MI5f2R 894.. section: Library 895 896Fix an important omission by adding Deque to the typing module. 897 898.. 899 900.. bpo: 29219 901.. date: 020 902.. nonce: kxui7t 903.. section: Library 904 905Fixed infinite recursion in the repr of uninitialized ctypes.CDLL instances. 906 907.. 908 909.. bpo: 28969 910.. date: 019 911.. nonce: j3HJYO 912.. section: Library 913 914Fixed race condition in C implementation of functools.lru_cache. KeyError 915could be raised when cached function with full cache was simultaneously 916called from different threads with the same uncached arguments. 917 918.. 919 920.. bpo: 29142 921.. date: 018 922.. nonce: xo6kAv 923.. section: Library 924 925In urllib.request, suffixes in no_proxy environment variable with leading 926dots could match related hostnames again (e.g. .b.c matches a.b.c). Patch by 927Milan Oberkirch. 928 929.. 930 931.. bpo: 30176 932.. date: 013 933.. nonce: VivmCg 934.. section: Documentation 935 936Add missing attribute related constants in curses documentation. 937 938.. 939 940.. bpo: 26985 941.. date: 012 942.. nonce: NB5_9S 943.. section: Documentation 944 945Add missing info of code object in inspect documentation. 946 947.. 948 949.. bpo: 28929 950.. date: 011 951.. nonce: Md7kb0 952.. section: Documentation 953 954Link the documentation to its source file on GitHub. 955 956.. 957 958.. bpo: 25008 959.. date: 010 960.. nonce: CeIzyU 961.. section: Documentation 962 963Document smtpd.py as effectively deprecated and add a pointer to aiosmtpd, a 964third-party asyncio-based replacement. 965 966.. 967 968.. bpo: 26355 969.. date: 009 970.. nonce: SDq_8Y 971.. section: Documentation 972 973Add canonical header link on each page to corresponding major version of the 974documentation. Patch by Matthias Bussonnier. 975 976.. 977 978.. bpo: 29349 979.. date: 008 980.. nonce: PjSo-t 981.. section: Documentation 982 983Fix Python 2 syntax in code for building the documentation. 984 985.. 986 987.. bpo: 30822 988.. date: 2017-07-20-14-29-54 989.. nonce: X0wREo 990.. section: Tests 991 992Fix regrtest command line parser to allow passing -u extralargefile to run 993test_zipfile64. 994 995.. 996 997.. bpo: 30383 998.. date: 2017-06-27-13-52-43 999.. nonce: rCmrv7 1000.. section: Tests 1001 1002regrtest: Enhance regrtest and backport features from the master branch. 1003Add options: --coverage, --testdir, --list-tests (list test files, don't run 1004them), --list-cases (list test identifiers, don't run them, :issue:`30523`), 1005--matchfile (load a list of test filters from a text file, :issue:`30540`), 1006--slowest (alias to --slow). 1007Enhance output: add timestamp, test result, currently running tests, "Tests 1008result: xxx" summary with total duration, etc. 1009Fix reference leak hunting in regrtest, --huntrleaks: regrtest now warms up 1010caches, create explicitly all internal singletons which are created on 1011demand to prevent false positives when checking for reference leaks. 1012(:issue:`30675`). 1013 1014.. 1015 1016.. bpo: 30357 1017.. date: 004 1018.. nonce: n4CPEa 1019.. section: Tests 1020 1021test_thread: setUp() now uses support.threading_setup() and 1022support.threading_cleanup() to wait until threads complete to avoid random 1023side effects on following tests. Initial patch written by Grzegorz Grzywacz. 1024 1025.. 1026 1027.. bpo: 28087 1028.. date: 003 1029.. nonce: m8dc4R 1030.. section: Tests 1031 1032Skip test_asyncore and test_eintr poll failures on macOS. Skip some tests of 1033select.poll when running on macOS due to unresolved issues with the 1034underlying system poll function on some macOS versions. 1035 1036.. 1037 1038.. bpo: 30197 1039.. date: 002 1040.. nonce: c5wRfu 1041.. section: Tests 1042 1043Enhanced functions swap_attr() and swap_item() in the test.support module. 1044They now work when delete replaced attribute or item inside the with 1045statement. The old value of the attribute or item (or None if it doesn't 1046exist) now will be assigned to the target of the "as" clause, if there is 1047one. 1048 1049.. 1050 1051.. bpo: 29571 1052.. date: 001 1053.. nonce: r6Dixr 1054.. section: Tests 1055 1056to match the behaviour of the ``re.LOCALE`` flag, test_re.test_locale_flag 1057now uses ``locale.getpreferredencoding(False)`` to determine the candidate 1058encoding for the test regex (allowing it to correctly skip the test when the 1059default locale encoding is a multi-byte encoding) 1060 1061.. 1062 1063.. bpo: 29243 1064.. date: 007 1065.. nonce: WDK4hT 1066.. section: Build 1067 1068Prevent unnecessary rebuilding of Python during ``make test``, ``make 1069install`` and some other make targets when configured with 1070``--enable-optimizations``. 1071 1072.. 1073 1074.. bpo: 23404 1075.. date: 006 1076.. nonce: PdYVWg 1077.. section: Build 1078 1079Don't regenerate generated files based on file modification time anymore: 1080the action is now explicit. Replace ``make touch`` with ``make regen-all``. 1081 1082.. 1083 1084.. bpo: 29643 1085.. date: 005 1086.. nonce: 4WLIJQ 1087.. section: Build 1088 1089Fix ``--enable-optimization`` didn't work. 1090 1091.. 1092 1093.. bpo: 30687 1094.. date: 017 1095.. nonce: 8mqHnu 1096.. section: Windows 1097 1098Locate msbuild.exe on Windows when building rather than vcvarsall.bat 1099 1100.. 1101 1102.. bpo: 29392 1103.. date: 016 1104.. nonce: OtqS5t 1105.. section: Windows 1106 1107Prevent crash when passing invalid arguments into msvcrt module. 1108 1109.. 1110 1111.. bpo: 27867 1112.. date: 015 1113.. nonce: VMCoJU 1114.. section: C API 1115 1116Function PySlice_GetIndicesEx() is replaced with a macro if Py_LIMITED_API 1117is set to the value between 0x03050400 and 0x03060000 (not including) or 11180x03060100 or higher. 1119 1120.. 1121 1122.. bpo: 29083 1123.. date: 014 1124.. nonce: tGTjr_ 1125.. section: C API 1126 1127Fixed the declaration of some public API functions. PyArg_VaParse() and 1128PyArg_VaParseTupleAndKeywords() were not available in limited API. 1129PyArg_ValidateKeywordArguments(), PyArg_UnpackTuple() and Py_BuildValue() 1130were not available in limited API of version < 3.3 when PY_SSIZE_T_CLEAN is 1131defined. 1132