1.. bpo: 36742 2.. date: 2019-04-29-15-34-59 3.. nonce: QCUY0i 4.. release date: 2019-05-06 5.. section: Security 6 7Fixes mishandling of pre-normalization characters in urlsplit(). 8 9.. 10 11.. bpo: 30458 12.. date: 2019-04-10-08-53-30 13.. nonce: 51E-DA 14.. section: Security 15 16Address CVE-2019-9740 by disallowing URL paths with embedded whitespace or 17control characters through into the underlying http client request. Such 18potentially malicious header injection URLs now cause an 19http.client.InvalidURL exception to be raised. 20 21.. 22 23.. bpo: 35755 24.. date: 2019-01-17-10-03-48 25.. nonce: GmllIs 26.. section: Security 27 28:func:`shutil.which` now uses ``os.confstr("CS_PATH")`` if available and if 29the :envvar:`PATH` environment variable is not set. Remove also the current 30directory from :data:`posixpath.defpath`. On Unix, :func:`shutil.which` and 31the :mod:`subprocess` module no longer search the executable in the current 32directory if the :envvar:`PATH` environment variable is not set. 33 34.. 35 36.. bpo: 36722 37.. date: 2019-04-25-21-02-40 38.. nonce: 8NApVM 39.. section: Core and Builtins 40 41In debug build, import now also looks for C extensions compiled in release 42mode and for C extensions compiled in the stable ABI. 43 44.. 45 46.. bpo: 32849 47.. date: 2019-04-16-11-56-12 48.. nonce: aeSg-D 49.. section: Core and Builtins 50 51Fix Python Initialization code on FreeBSD to detect properly when stdin file 52descriptor (fd 0) is invalid. 53 54.. 55 56.. bpo: 36623 57.. date: 2019-04-13-02-08-44 58.. nonce: HR_xhB 59.. section: Core and Builtins 60 61Remove parser headers and related function declarations that lack 62implementations after the removal of pgen. 63 64.. 65 66.. bpo: 20180 67.. date: 2019-04-12-15-49-15 68.. nonce: KUqVk7 69.. section: Core and Builtins 70 71``dict.pop()`` is now up to 33% faster thanks to Argument Clinic. Patch by 72Inada Naoki. 73 74.. 75 76.. bpo: 36611 77.. date: 2019-04-12-12-32-39 78.. nonce: zbo9WQ 79.. section: Core and Builtins 80 81Debug memory allocators: disable serialno field by default from debug hooks 82on Python memory allocators to reduce the memory footprint by 5%. Enable 83:mod:`tracemalloc` to get the traceback where a memory block has been 84allocated when a fatal memory error is logged to decide where to put a 85breakpoint. Compile Python with ``PYMEM_DEBUG_SERIALNO`` defined to get back 86the field. 87 88.. 89 90.. bpo: 36588 91.. date: 2019-04-11-14-36-55 92.. nonce: wejLoC 93.. section: Core and Builtins 94 95On AIX, :attr:`sys.platform` doesn't contain the major version anymore. 96Always return ``'aix'``, instead of ``'aix3'`` .. ``'aix7'``. Since older 97Python versions include the version number, it is recommended to always use 98``sys.platform.startswith('aix')``. Contributed by M. Felt. 99 100.. 101 102.. bpo: 36549 103.. date: 2019-04-11-12-41-31 104.. nonce: QSp8of 105.. section: Core and Builtins 106 107Change str.capitalize to use titlecase for the first character instead of 108uppercase. 109 110.. 111 112.. bpo: 36540 113.. date: 2019-04-06-20-59-19 114.. nonce: SzVUfC 115.. section: Core and Builtins 116 117Implement :pep:`570` (Python positional-only parameters). Patch by Pablo 118Galindo. 119 120.. 121 122.. bpo: 36475 123.. date: 2019-04-02-20-02-22 124.. nonce: CjRps3 125.. section: Core and Builtins 126 127:c:func:`PyEval_AcquireLock` and :c:func:`PyEval_AcquireThread` now 128terminate the current thread if called while the interpreter is finalizing, 129making them consistent with :c:func:`PyEval_RestoreThread`, 130:c:func:`Py_END_ALLOW_THREADS`, and :c:func:`PyGILState_Ensure`. 131 132.. 133 134.. bpo: 36504 135.. date: 2019-04-02-04-10-32 136.. nonce: k_V8Bm 137.. section: Core and Builtins 138 139Fix signed integer overflow in _ctypes.c's ``PyCArrayType_new()``. 140 141.. 142 143.. bpo: 20844 144.. date: 2019-03-29-18-47-50 145.. nonce: ge-7SM 146.. section: Core and Builtins 147 148Fix running script with encoding cookie and LF line ending may fail on 149Windows. 150 151.. 152 153.. bpo: 24214 154.. date: 2019-03-28-15-22-45 155.. nonce: tZ6lYU 156.. section: Core and Builtins 157 158Fixed support of the surrogatepass error handler in the UTF-8 incremental 159decoder. 160 161.. 162 163.. bpo: 36452 164.. date: 2019-03-27-23-53-00 165.. nonce: xhK2lT 166.. section: Core and Builtins 167 168Changing ``dict`` keys during iteration of the dict itself, ``keys()``, 169``values()``, or ``items()`` will now be detected in certain corner cases 170where keys are deleted/added so that the number of keys isn't changed. A 171`RuntimeError` will be raised after ``len(dict)`` iterations. Contributed by 172Thomas Perl. 173 174.. 175 176.. bpo: 36459 177.. date: 2019-03-27-22-35-16 178.. nonce: UAvkKp 179.. section: Core and Builtins 180 181Fix a possible double ``PyMem_FREE()`` due to tokenizer.c's ``tok_nextc()``. 182 183.. 184 185.. bpo: 36433 186.. date: 2019-03-26-17-23-02 187.. nonce: -8XzZf 188.. section: Core and Builtins 189 190Fixed TypeError message in classmethoddescr_call. 191 192.. 193 194.. bpo: 36430 195.. date: 2019-03-25-23-37-26 196.. nonce: sd9xxQ 197.. section: Core and Builtins 198 199Fix a possible reference leak in :func:`itertools.count`. 200 201.. 202 203.. bpo: 36440 204.. date: 2019-03-25-13-45-19 205.. nonce: gkvzhi 206.. section: Core and Builtins 207 208Include node names in ``ParserError`` messages, instead of numeric IDs. 209Patch by A. Skrobov. 210 211.. 212 213.. bpo: 36143 214.. date: 2019-03-20-00-37-24 215.. nonce: fnKoKo 216.. section: Core and Builtins 217 218Regenerate :mod:`keyword` from the Grammar and Tokens file using pgen. Patch 219by Pablo Galindo. 220 221.. 222 223.. bpo: 18372 224.. date: 2018-12-08-03-40-43 225.. nonce: DT1nR0 226.. section: Core and Builtins 227 228Add missing :c:func:`PyObject_GC_Track` calls in the :mod:`pickle` module. 229Patch by Zackery Spytz. 230 231.. 232 233.. bpo: 35952 234.. date: 2019-04-29-11-47-06 235.. nonce: 3uNuyo 236.. section: Library 237 238Fix pythoninfo when the compiler is missing. 239 240.. 241 242.. bpo: 28238 243.. date: 2019-04-28-15-01-29 244.. nonce: gdk38f 245.. section: Library 246 247The ``.find*()`` methods of xml.etree.ElementTree can now search for 248wildcards like ``{*}tag`` and ``{ns}*`` that match a tag in any namespace or 249all tags in a namespace. Patch by Stefan Behnel. 250 251.. 252 253.. bpo: 26978 254.. date: 2019-04-28-01-52-39 255.. nonce: Lpm-SI 256.. section: Library 257 258`pathlib.path.link_to()` is now implemented. It creates a hard link pointing 259to a path. 260 261.. 262 263.. bpo: 1613500 264.. date: 2019-04-27-21-09-33 265.. nonce: Ogp4P0 266.. section: Library 267 268:class:`fileinput.FileInput` now uses the input file mode to correctly set 269the output file mode (previously it was hardcoded to ``'w'``) when 270``inplace=True`` is passed to its constructor. 271 272.. 273 274.. bpo: 36734 275.. date: 2019-04-26-17-14-20 276.. nonce: p2MaiN 277.. section: Library 278 279Fix compilation of ``faulthandler.c`` on HP-UX. Initialize ``stack_t 280current_stack`` to zero using ``memset()``. 281 282.. 283 284.. bpo: 13611 285.. date: 2019-04-26-10-10-34 286.. nonce: XEF4bg 287.. section: Library 288 289The xml.etree.ElementTree packages gained support for C14N 2.0 290serialisation. Patch by Stefan Behnel. 291 292.. 293 294.. bpo: 36669 295.. date: 2019-04-24-17-08-45 296.. nonce: X4g0fu 297.. section: Library 298 299Add missing matrix multiplication operator support to weakref.proxy. 300 301.. 302 303.. bpo: 36676 304.. date: 2019-04-20-13-10-34 305.. nonce: XF4Egb 306.. section: Library 307 308The XMLParser() in xml.etree.ElementTree provides namespace prefix context 309to the parser target if it defines the callback methods "start_ns()" and/or 310"end_ns()". Patch by Stefan Behnel. 311 312.. 313 314.. bpo: 36673 315.. date: 2019-04-20-09-50-32 316.. nonce: XF4Egb 317.. section: Library 318 319The TreeBuilder and XMLPullParser in xml.etree.ElementTree gained support 320for parsing comments and processing instructions. Patch by Stefan Behnel. 321 322.. 323 324.. bpo: 36650 325.. date: 2019-04-19-15-29-55 326.. nonce: _EVdrz 327.. section: Library 328 329The C version of functools.lru_cache() was treating calls with an empty 330``**kwargs`` dictionary as being distinct from calls with no keywords at 331all. This did not result in an incorrect answer, but it did trigger an 332unexpected cache miss. 333 334.. 335 336.. bpo: 28552 337.. date: 2019-04-18-16-10-29 338.. nonce: MW1TLt 339.. section: Library 340 341Fix :mod:`distutils.sysconfig` if :data:`sys.executable` is ``None`` or an 342empty string: use :func:`os.getcwd` to initialize ``project_base``. Fix 343also the distutils build command: don't use :data:`sys.executable` if it is 344``None`` or an empty string. 345 346.. 347 348.. bpo: 35755 349.. date: 2019-04-16-17-50-39 350.. nonce: Fg4EXb 351.. section: Library 352 353:func:`shutil.which` and :func:`distutils.spawn.find_executable` now use 354``os.confstr("CS_PATH")`` if available instead of :data:`os.defpath`, if the 355``PATH`` environment variable is not set. Moreover, don't use 356``os.confstr("CS_PATH")`` nor :data:`os.defpath` if the ``PATH`` environment 357variable is set to an empty string. 358 359.. 360 361.. bpo: 25430 362.. date: 2019-04-15-12-22-09 363.. nonce: 7_8kqc 364.. section: Library 365 366improve performance of ``IPNetwork.__contains__()`` 367 368.. 369 370.. bpo: 30485 371.. date: 2019-04-13-23-42-33 372.. nonce: JHhjJS 373.. section: Library 374 375Path expressions in xml.etree.ElementTree can now avoid explicit namespace 376prefixes for tags (or the "{namespace}tag" notation) by passing a default 377namespace with an empty string prefix. 378 379.. 380 381.. bpo: 36613 382.. date: 2019-04-12-13-52-15 383.. nonce: hqT1qn 384.. section: Library 385 386Fix :mod:`asyncio` wait() not removing callback if exception 387 388.. 389 390.. bpo: 36598 391.. date: 2019-04-11-22-11-24 392.. nonce: hfzDUl 393.. section: Library 394 395Fix ``isinstance`` check for Mock objects with spec when the code is 396executed under tracing. Patch by Karthikeyan Singaravelan. 397 398.. 399 400.. bpo: 18748 401.. date: 2019-04-11-16-09-42 402.. nonce: QW7upB 403.. section: Library 404 405In development mode (:option:`-X` ``dev``) and in debug build, the 406:class:`io.IOBase` destructor now logs ``close()`` exceptions. These 407exceptions are silent by default in release mode. 408 409.. 410 411.. bpo: 36575 412.. date: 2019-04-09-22-40-52 413.. nonce: Vg_p92 414.. section: Library 415 416The ``_lsprof`` module now uses internal timer same to 417``time.perf_counter()`` by default. ``gettimeofday(2)`` was used on Unix. 418New timer has better resolution on most Unix platforms and timings are no 419longer impacted by system clock updates since ``perf_counter()`` is 420monotonic. Patch by Inada Naoki. 421 422.. 423 424.. bpo: 33461 425.. date: 2019-04-09-14-46-28 426.. nonce: SYJM-E 427.. section: Library 428 429``json.loads`` now emits ``DeprecationWarning`` when ``encoding`` option is 430specified. Patch by Matthias Bussonnier. 431 432.. 433 434.. bpo: 36559 435.. date: 2019-04-09-12-02-35 436.. nonce: LbDRrw 437.. section: Library 438 439The random module now prefers the lean internal _sha512 module over hashlib 440for seed(version=2) to optimize import time. 441 442.. 443 444.. bpo: 17561 445.. date: 2019-04-09-04-08-46 446.. nonce: hOhVnh 447.. section: Library 448 449Set backlog=None as the default for socket.create_server. 450 451.. 452 453.. bpo: 34373 454.. date: 2019-04-08-14-41-22 455.. nonce: lEAl_- 456.. section: Library 457 458Fix :func:`time.mktime` error handling on AIX for year before 1970. 459 460.. 461 462.. bpo: 36232 463.. date: 2019-04-06-20-25-25 464.. nonce: SClmhb 465.. section: Library 466 467Improve error message when trying to open existing DBM database that 468actually doesn't exist. Patch by Marco Rougeth. 469 470.. 471 472.. bpo: 36546 473.. date: 2019-04-06-14-23-00 474.. nonce: YXjbyY 475.. section: Library 476 477Add statistics.quantiles() 478 479.. 480 481.. bpo: 36050 482.. date: 2019-04-05-21-29-53 483.. nonce: x9DRKE 484.. section: Library 485 486Optimized ``http.client.HTTPResponse.read()`` for large response. Patch by 487Inada Naoki. 488 489.. 490 491.. bpo: 36522 492.. date: 2019-04-03-20-46-47 493.. nonce: g5x3By 494.. section: Library 495 496If *debuglevel* is set to >0 in :mod:`http.client`, print all values for 497headers with multiple values for the same header name. Patch by Matt 498Houglum. 499 500.. 501 502.. bpo: 36492 503.. date: 2019-03-31-10-21-54 504.. nonce: f7vyUs 505.. section: Library 506 507Deprecated passing required arguments like *func* as keyword arguments in 508functions which should accept arbitrary keyword arguments and pass them to 509other function. Arbitrary keyword arguments (even with names "self" and 510"func") can now be passed to these functions if the required arguments are 511passed as positional arguments. 512 513.. 514 515.. bpo: 27181 516.. date: 2019-03-31-01-18-52 517.. nonce: LVUWcc 518.. section: Library 519 520Add statistics.geometric_mean(). 521 522.. 523 524.. bpo: 30427 525.. date: 2019-03-28-21-17-08 526.. nonce: lxzvbw 527.. section: Library 528 529``os.path.normcase()`` relies on ``os.fspath()`` to check the type of its 530argument. Redundant checks have been removed from its 531``posixpath.normcase()`` and ``ntpath.normcase()`` implementations. Patch by 532Wolfgang Maier. 533 534.. 535 536.. bpo: 36385 537.. date: 2019-03-27-02-09-22 538.. nonce: we2F45 539.. section: Library 540 541Stop rejecting IPv4 octets for being ambiguously octal. Leading zeros are 542ignored, and no longer are assumed to specify octal octets. Octets are 543always decimal numbers. Octets must still be no more than three digits, 544including leading zeroes. 545 546.. 547 548.. bpo: 36434 549.. date: 2019-03-26-14-20-59 550.. nonce: PTdidw 551.. section: Library 552 553Errors during writing to a ZIP file no longer prevent to properly close it. 554 555.. 556 557.. bpo: 36407 558.. date: 2019-03-23-17-16-15 559.. nonce: LG3aC4 560.. section: Library 561 562Fixed wrong indentation writing for CDATA section in xml.dom.minidom. Patch 563by Vladimir Surjaninov. 564 565.. 566 567.. bpo: 36326 568.. date: 2019-03-22-13-47-52 569.. nonce: WCnEI5 570.. section: Library 571 572inspect.getdoc() can now find docstrings for member objects when __slots__ 573is a dictionary. 574 575.. 576 577.. bpo: 36366 578.. date: 2019-03-20-15-13-18 579.. nonce: n0eav_ 580.. section: Library 581 582Calling ``stop()`` on an unstarted or stopped :func:`unittest.mock.patch` 583object will now return `None` instead of raising :exc:`RuntimeError`, making 584the method idempotent. Patch by Karthikeyan Singaravelan. 585 586.. 587 588.. bpo: 36348 589.. date: 2019-03-18-16-16-55 590.. nonce: E0w_US 591.. section: Library 592 593The :meth:`imap.IMAP4.logout` method no longer ignores silently arbitrary 594exceptions. 595 596.. 597 598.. bpo: 31904 599.. date: 2019-03-13-16-48-42 600.. nonce: 9sjd38 601.. section: Library 602 603Add time module support and fix test_time faiures for VxWorks. 604 605.. 606 607.. bpo: 36227 608.. date: 2019-03-07-20-02-18 609.. nonce: i2Z1XR 610.. section: Library 611 612Added support for keyword arguments `default_namespace` and 613`xml_declaration` in functions ElementTree.tostring() and 614ElementTree.tostringlist(). 615 616.. 617 618.. bpo: 36004 619.. date: 2019-02-17-12-55-51 620.. nonce: hCt_KK 621.. section: Library 622 623Added new alternate constructors :meth:`datetime.date.fromisocalendar` and 624:meth:`datetime.datetime.fromisocalendar`, which construct date objects from 625ISO year, week number and weekday; these are the inverse of each class's 626``isocalendar`` method. Patch by Paul Ganssle. 627 628.. 629 630.. bpo: 35936 631.. date: 2019-02-16-22-19-32 632.. nonce: Ay5WtD 633.. section: Library 634 635:mod:`modulefinder` no longer depends on the deprecated :mod:`imp` module, 636and the initializer for :class:`modulefinder.ModuleFinder` now has immutable 637default arguments. Patch by Brandt Bucher. 638 639.. 640 641.. bpo: 35376 642.. date: 2019-02-13-18-56-27 643.. nonce: UFhYLj 644.. section: Library 645 646:mod:`modulefinder` correctly handles modules that have the same name as a 647bad package. Patch by Brandt Bucher. 648 649.. 650 651.. bpo: 17396 652.. date: 2019-02-13-18-56-22 653.. nonce: oKRkrD 654.. section: Library 655 656:mod:`modulefinder` no longer crashes when encountering syntax errors in 657followed imports. Patch by Brandt Bucher. 658 659.. 660 661.. bpo: 35934 662.. date: 2019-02-07-20-25-39 663.. nonce: QmfNmY 664.. section: Library 665 666Added :meth:`~socket.create_server()` and 667:meth:`~socket.has_dualstack_ipv6()` convenience functions to automate the 668necessary tasks usually involved when creating a server socket, including 669accepting both IPv4 and IPv6 connections on the same socket. (Contributed 670by Giampaolo Rodola in :issue:`17561`.) 671 672.. 673 674.. bpo: 23078 675.. date: 2019-01-18-23-10-10 676.. nonce: l4dFoj 677.. section: Library 678 679Add support for :func:`classmethod` and :func:`staticmethod` to 680:func:`unittest.mock.create_autospec`. Initial patch by Felipe Ochoa. 681 682.. 683 684.. bpo: 35416 685.. date: 2018-12-05-09-55-05 686.. nonce: XALKZG 687.. section: Library 688 689Fix potential resource warnings in distutils. Patch by Mickaël Schoentgen. 690 691.. 692 693.. bpo: 25451 694.. date: 2018-11-07-23-44-25 695.. nonce: re_8db 696.. section: Library 697 698Add transparency methods to :class:`tkinter.PhotoImage`. Patch by Zackery 699Spytz. 700 701.. 702 703.. bpo: 35082 704.. date: 2018-10-27-11-54-12 705.. nonce: HDj1nr 706.. section: Library 707 708Don't return deleted attributes when calling dir on a 709:class:`unittest.mock.Mock`. 710 711.. 712 713.. bpo: 34547 714.. date: 2018-10-05-16-01-00 715.. nonce: abbaa 716.. section: Library 717 718:class:`wsgiref.handlers.BaseHandler` now handles abrupt client connection 719terminations gracefully. Patch by Petter Strandmark. 720 721.. 722 723.. bpo: 31658 724.. date: 2018-07-30-12-00-15 725.. nonce: _bx7a_ 726.. section: Library 727 728:func:`xml.sax.parse` now supports :term:`path-like <path-like object>`. 729Patch by Mickaël Schoentgen. 730 731.. 732 733.. bpo: 34139 734.. date: 2018-07-18-11-25-34 735.. nonce: tKbmW7 736.. section: Library 737 738Remove stale unix datagram socket before binding 739 740.. 741 742.. bpo: 33530 743.. date: 2018-05-29-18-34-53 744.. nonce: _4Q_bi 745.. section: Library 746 747Implemented Happy Eyeballs in `asyncio.create_connection()`. Added two new 748arguments, *happy_eyeballs_delay* and *interleave*, to specify Happy 749Eyeballs behavior. 750 751.. 752 753.. bpo: 33291 754.. date: 2018-04-11-11-41-52 755.. nonce: -xLGf8 756.. section: Library 757 758Do not raise AttributeError when calling the inspect functions 759isgeneratorfunction, iscoroutinefunction, isasyncgenfunction on a method 760created from an arbitrary callable. Instead, return False. 761 762.. 763 764.. bpo: 31310 765.. date: 2018-04-06-11-06-23 766.. nonce: eq9ky0 767.. section: Library 768 769Fix the multiprocessing.semaphore_tracker so it is reused by child processes 770 771.. 772 773.. bpo: 31292 774.. date: 2017-08-30-20-27-00 775.. nonce: dKIaZb 776.. section: Library 777 778Fix ``setup.py check --restructuredtext`` for files containing ``include`` 779directives. 780 781.. 782 783.. bpo: 36625 784.. date: 2019-04-15-12-02-45 785.. nonce: x3LMCF 786.. section: Documentation 787 788Remove obsolete comments from docstrings in fractions.Fraction 789 790.. 791 792.. bpo: 30840 793.. date: 2019-04-14-19-46-21 794.. nonce: R-JFzw 795.. section: Documentation 796 797Document relative imports 798 799.. 800 801.. bpo: 36523 802.. date: 2019-04-04-19-11-47 803.. nonce: sG1Tr4 804.. section: Documentation 805 806Add docstring for io.IOBase.writelines(). 807 808.. 809 810.. bpo: 36425 811.. date: 2019-03-27-22-46-00 812.. nonce: kG9gx1 813.. section: Documentation 814 815New documentation translation: `Simplified Chinese 816<https://docs.python.org/zh-cn/>`_. 817 818.. 819 820.. bpo: 36345 821.. date: 2019-03-26-14-58-34 822.. nonce: r2stx3 823.. section: Documentation 824 825Avoid the duplication of code from ``Tools/scripts/serve.py`` in using the 826:rst:dir:`literalinclude` directive for the basic wsgiref-based web server 827in the documentation of :mod:`wsgiref`. Contributed by Stéphane Wirtel. 828 829.. 830 831.. bpo: 36345 832.. date: 2019-03-23-09-25-12 833.. nonce: L704Zv 834.. section: Documentation 835 836Using the code of the ``Tools/scripts/serve.py`` script as an example in the 837:mod:`wsgiref` documentation. Contributed by Stéphane Wirtel. 838 839.. 840 841.. bpo: 36157 842.. date: 2019-03-08-15-39-47 843.. nonce: nF1pP1 844.. section: Documentation 845 846Added Documention for PyInterpreterState_Main(). 847 848.. 849 850.. bpo: 33043 851.. date: 2019-02-24-03-15-10 852.. nonce: 8knWTS 853.. section: Documentation 854 855Updates the docs.python.org page with the addition of a 'Contributing to 856Docs' link at the end of the page (between 'Reporting Bugs' and 'About 857Documentation'). Updates the 'Found a Bug' page with additional links and 858information in the Documentation Bugs section. 859 860.. 861 862.. bpo: 35581 863.. date: 2018-12-25-12-56-57 864.. nonce: aA7r6T 865.. section: Documentation 866 867@typing.type_check_only now allows type stubs to mark functions and classes 868not available during runtime. 869 870.. 871 872.. bpo: 33832 873.. date: 2018-06-15-15-57-37 874.. nonce: xBFhKw 875.. section: Documentation 876 877Add glossary entry for 'magic method'. 878 879.. 880 881.. bpo: 32913 882.. date: 2018-02-22-15-48-16 883.. nonce: f3utho 884.. section: Documentation 885 886Added re.Match.groupdict example to regex HOWTO. 887 888.. 889 890.. bpo: 36719 891.. date: 2019-04-26-09-02-49 892.. nonce: ys2uqH 893.. section: Tests 894 895regrtest now always detects uncollectable objects. Previously, the check was 896only enabled by ``--findleaks``. The check now also works with 897``-jN/--multiprocess N``. ``--findleaks`` becomes a deprecated alias to 898``--fail-env-changed``. 899 900.. 901 902.. bpo: 36725 903.. date: 2019-04-26-04-12-29 904.. nonce: B8-ghi 905.. section: Tests 906 907When using multiprocessing mode (-jN), regrtest now better reports errors if 908a worker process fails, and it exits immediately on a worker thread failure 909or when interrupted. 910 911.. 912 913.. bpo: 36454 914.. date: 2019-04-23-17-48-11 915.. nonce: 0q4lQz 916.. section: Tests 917 918Change test_time.test_monotonic() to test only the lower bound of elapsed 919time after a sleep command rather than the upper bound. This prevents 920unnecessary test failures on slow buildbots. Patch by Victor Stinner. 921 922.. 923 924.. bpo: 32424 925.. date: 2019-04-21-17-55-18 926.. nonce: yDy49h 927.. section: Tests 928 929Improve test coverage for xml.etree.ElementTree. Patch by Gordon P. Hemsley. 930 931.. 932 933.. bpo: 32424 934.. date: 2019-04-21-17-53-50 935.. nonce: Q4rBmn 936.. section: Tests 937 938Fix typo in test_cyclic_gc() test for xml.etree.ElementTree. Patch by Gordon 939P. Hemsley. 940 941.. 942 943.. bpo: 36635 944.. date: 2019-04-15-16-55-49 945.. nonce: __FTq9 946.. section: Tests 947 948Add a new :mod:`_testinternalcapi` module to test the internal C API. 949 950.. 951 952.. bpo: 36629 953.. date: 2019-04-15-11-57-39 954.. nonce: ySnaL3 955.. section: Tests 956 957Fix ``test_imap4_host_default_value()`` of ``test_imaplib``: catch also 958:data:`errno.ENETUNREACH` error. 959 960.. 961 962.. bpo: 36611 963.. date: 2019-04-12-12-44-42 964.. nonce: UtorXL 965.. section: Tests 966 967Fix ``test_sys.test_getallocatedblocks()`` when :mod:`tracemalloc` is 968enabled. 969 970.. 971 972.. bpo: 36560 973.. date: 2019-04-09-14-08-02 974.. nonce: _ejeOr 975.. section: Tests 976 977Fix reference leak hunting in regrtest: compute also deltas (of reference 978count, allocated memory blocks, file descriptor count) during warmup, to 979ensure that everything is initialized before starting to hunt reference 980leaks. 981 982.. 983 984.. bpo: 36565 985.. date: 2019-04-08-19-01-21 986.. nonce: 2bxgtU 987.. section: Tests 988 989Fix reference hunting (``python3 -m test -R 3:3``) when Python has no 990built-in abc module. 991 992.. 993 994.. bpo: 31904 995.. date: 2019-04-08-09-24-36 996.. nonce: ab03ea 997.. section: Tests 998 999Port test_resource to VxWorks: skip tests cases setting RLIMIT_FSIZE and 1000RLIMIT_CPU. 1001 1002.. 1003 1004.. bpo: 31904 1005.. date: 2019-04-01-16-06-36 1006.. nonce: peaceF 1007.. section: Tests 1008 1009Fix test_tabnanny on VxWorks: adjust ENOENT error message. 1010 1011.. 1012 1013.. bpo: 36436 1014.. date: 2019-03-26-13-49-21 1015.. nonce: yAtN0V 1016.. section: Tests 1017 1018Fix ``_testcapi.pymem_buffer_overflow()``: handle memory allocation failure. 1019 1020.. 1021 1022.. bpo: 31904 1023.. date: 2019-03-19-17-39-25 1024.. nonce: QxhhRx 1025.. section: Tests 1026 1027Fix test_utf8_mode on VxWorks: Python always use UTF-8 on VxWorks. 1028 1029.. 1030 1031.. bpo: 36341 1032.. date: 2019-03-18-10-47-45 1033.. nonce: UXlY0P 1034.. section: Tests 1035 1036Fix tests that may fail with PermissionError upon calling bind() on AF_UNIX 1037sockets. 1038 1039.. 1040 1041.. bpo: 36747 1042.. date: 2019-04-29-09-57-20 1043.. nonce: 1YEyu- 1044.. section: Build 1045 1046Remove the stale scriptsinstall Makefile target. 1047 1048.. 1049 1050.. bpo: 21536 1051.. date: 2019-04-25-01-51-52 1052.. nonce: ACQkiC 1053.. section: Build 1054 1055On Unix, C extensions are no longer linked to libpython except on Android 1056and Cygwin. 1057 1058It is now possible for a statically linked Python to load a C extension 1059built using a shared library Python. 1060 1061When Python is embedded, ``libpython`` must not be loaded with 1062``RTLD_LOCAL``, but ``RTLD_GLOBAL`` instead. Previously, using 1063``RTLD_LOCAL``, it was already not possible to load C extensions which were 1064not linked to ``libpython``, such as C extensions of the standard library 1065built by the ``*shared*`` section of ``Modules/Setup``. 1066 1067distutils, python-config and python-config.py have been modified. 1068 1069.. 1070 1071.. bpo: 36707 1072.. date: 2019-04-24-02-29-15 1073.. nonce: 8ZNB67 1074.. section: Build 1075 1076``./configure --with-pymalloc`` no longer adds the ``m`` flag to SOABI 1077(sys.implementation.cache_tag). Enabling or disabling pymalloc has no impact 1078on the ABI. 1079 1080.. 1081 1082.. bpo: 36635 1083.. date: 2019-04-16-13-58-52 1084.. nonce: JKlzkf 1085.. section: Build 1086 1087Change ``PyAPI_FUNC(type)``, ``PyAPI_DATA(type)`` and ``PyMODINIT_FUNC`` 1088macros of ``pyport.h`` when ``Py_BUILD_CORE_MODULE`` is defined. The 1089``Py_BUILD_CORE_MODULE`` define must be now be used to build a C extension 1090as a dynamic library accessing Python internals: export the PyInit_xxx() 1091function in DLL exports on Windows. 1092 1093.. 1094 1095.. bpo: 31904 1096.. date: 2019-04-15-15-01-29 1097.. nonce: 38fdkg 1098.. section: Build 1099 1100Don't build the ``_crypt`` extension on VxWorks. 1101 1102.. 1103 1104.. bpo: 36618 1105.. date: 2019-04-12-19-49-10 1106.. nonce: gcI9iq 1107.. section: Build 1108 1109Add ``-fmax-type-align=8`` to CFLAGS when clang compiler is detected. The 1110pymalloc memory allocator aligns memory on 8 bytes. On x86-64, clang expects 1111alignment on 16 bytes by default and so uses MOVAPS instruction which can 1112lead to segmentation fault. Instruct clang that Python is limited to 1113alignment on 8 bytes to use MOVUPS instruction instead: slower but don't 1114trigger a SIGSEGV if the memory is not aligned on 16 bytes. Sadly, the flag 1115must be added to ``CFLAGS`` and not just ``CFLAGS_NODIST``, since third 1116party C extensions can have the same issue. 1117 1118.. 1119 1120.. bpo: 36605 1121.. date: 2019-04-11-18-50-58 1122.. nonce: gk5czf 1123.. section: Build 1124 1125``make tags`` and ``make TAGS`` now also parse ``Modules/_io/*.c`` and 1126``Modules/_io/*.h``. 1127 1128.. 1129 1130.. bpo: 36465 1131.. date: 2019-04-09-18-19-43 1132.. nonce: -w6vx6 1133.. section: Build 1134 1135Release builds and debug builds are now ABI compatible: defining the 1136``Py_DEBUG`` macro no longer implies the ``Py_TRACE_REFS`` macro, which 1137introduces the only ABI incompatibility. The ``Py_TRACE_REFS`` macro, which 1138adds the :func:`sys.getobjects` function and the :envvar:`PYTHONDUMPREFS` 1139environment variable, can be set using the new ``./configure 1140--with-trace-refs`` build option. 1141 1142.. 1143 1144.. bpo: 36577 1145.. date: 2019-04-09-17-31-47 1146.. nonce: 34kuUW 1147.. section: Build 1148 1149setup.py now correctly reports missing OpenSSL headers and libraries again. 1150 1151.. 1152 1153.. bpo: 36544 1154.. date: 2019-04-06-18-53-03 1155.. nonce: hJr2_a 1156.. section: Build 1157 1158Fix regression introduced in bpo-36146 refactoring setup.py 1159 1160.. 1161 1162.. bpo: 36508 1163.. date: 2019-04-02-17-01-23 1164.. nonce: SN5Y6N 1165.. section: Build 1166 1167``python-config --ldflags`` no longer includes flags of the 1168``LINKFORSHARED`` variable. The ``LINKFORSHARED`` variable must only be used 1169to build executables. 1170 1171.. 1172 1173.. bpo: 36503 1174.. date: 2019-04-02-09-25-23 1175.. nonce: 0xzfkQ 1176.. section: Build 1177 1178Remove references to "aix3" and "aix4". Patch by M. Felt. 1179 1180.. 1181 1182.. bpo: 35920 1183.. date: 2019-04-22-16-59-20 1184.. nonce: VSfGOI 1185.. section: Windows 1186 1187Added platform.win32_edition() and platform.win32_is_iot(). Added support 1188for cross-compiling packages for Windows ARM32. Skip tests that are not 1189expected to work on Windows IoT Core ARM32. 1190 1191.. 1192 1193.. bpo: 36649 1194.. date: 2019-04-17-11-39-24 1195.. nonce: arbzIo 1196.. section: Windows 1197 1198Remove trailing spaces for registry keys when installed via the Store. 1199 1200.. 1201 1202.. bpo: 34144 1203.. date: 2019-04-10-04-35-31 1204.. nonce: _KzB5z 1205.. section: Windows 1206 1207Fixed activate.bat to correctly update codepage when chcp.com returns dots 1208in output. Patch by Lorenz Mende. 1209 1210.. 1211 1212.. bpo: 36509 1213.. date: 2019-04-02-10-11-18 1214.. nonce: DdaM67 1215.. section: Windows 1216 1217Added preset-iot layout for Windows IoT ARM containers. This layout doesn't 1218contain UI components like tkinter or IDLE. It also doesn't contain files to 1219support on-target builds since Windows ARM32 builds must be cross-compiled 1220when using MSVC. 1221 1222.. 1223 1224.. bpo: 35941 1225.. date: 2019-03-28-03-51-16 1226.. nonce: UnlAEE 1227.. section: Windows 1228 1229enum_certificates function of the ssl module now returns certificates from 1230all available certificate stores inside windows in a query instead of 1231returning only certificates from the system wide certificate store. This 1232includes certificates from these certificate stores: local machine, local 1233machine enterprise, local machine group policy, current user, current user 1234group policy, services, users. ssl.enum_crls() function is changed in the 1235same way to return all certificate revocation lists inside the windows 1236certificate revocation list stores. 1237 1238.. 1239 1240.. bpo: 36441 1241.. date: 2019-03-26-11-46-15 1242.. nonce: lYjGF1 1243.. section: Windows 1244 1245Fixes creating a venv when debug binaries are installed. 1246 1247.. 1248 1249.. bpo: 36085 1250.. date: 2019-03-18-11-44-49 1251.. nonce: mLfxfc 1252.. section: Windows 1253 1254Enable better DLL resolution on Windows by using safe DLL search paths and 1255adding :func:`os.add_dll_directory`. 1256 1257.. 1258 1259.. bpo: 36010 1260.. date: 2019-03-16-10-24-58 1261.. nonce: dttWfp 1262.. section: Windows 1263 1264Add the venv standard library module to the nuget distribution for Windows. 1265 1266.. 1267 1268.. bpo: 29515 1269.. date: 2019-03-05-18-09-43 1270.. nonce: vwUTv0 1271.. section: Windows 1272 1273Add the following socket module constants on Windows: IPPROTO_AH IPPROTO_CBT 1274IPPROTO_DSTOPTS IPPROTO_EGP IPPROTO_ESP IPPROTO_FRAGMENT IPPROTO_GGP 1275IPPROTO_HOPOPTS IPPROTO_ICLFXBM IPPROTO_ICMPV6 IPPROTO_IDP IPPROTO_IGMP 1276IPPROTO_IGP IPPROTO_IPV4 IPPROTO_IPV6 IPPROTO_L2TP IPPROTO_MAX IPPROTO_ND 1277IPPROTO_NONE IPPROTO_PGM IPPROTO_PIM IPPROTO_PUP IPPROTO_RDP IPPROTO_ROUTING 1278IPPROTO_SCTP IPPROTO_ST 1279 1280.. 1281 1282.. bpo: 35947 1283.. date: 2019-02-11-14-53-17 1284.. nonce: 9vI4hP 1285.. section: Windows 1286 1287Added current version of libffi to cpython-source-deps. Change _ctypes to 1288use current version of libffi on Windows. 1289 1290.. 1291 1292.. bpo: 34060 1293.. date: 2018-07-20-13-09-19 1294.. nonce: v-z87j 1295.. section: Windows 1296 1297Report system load when running test suite on Windows. Patch by Ammar Askar. 1298Based on prior work by Jeremy Kloth. 1299 1300.. 1301 1302.. bpo: 31512 1303.. date: 2017-10-04-12-40-45 1304.. nonce: YQeBt2 1305.. section: Windows 1306 1307With the Windows 10 Creators Update, non-elevated users can now create 1308symlinks as long as the computer has Developer Mode enabled. 1309 1310.. 1311 1312.. bpo: 34602 1313.. date: 2019-04-29-10-54-14 1314.. nonce: Lrl2zU 1315.. section: macOS 1316 1317Avoid failures setting macOS stack resource limit with resource.setrlimit. 1318This reverts an earlier fix for bpo-18075 which forced a non-default stack 1319size when building the interpreter executable on macOS. 1320 1321.. 1322 1323.. bpo: 36429 1324.. date: 2019-03-26-00-09-50 1325.. nonce: w-jL2e 1326.. section: IDLE 1327 1328Fix starting IDLE with pyshell. Add idlelib.pyshell alias at top; remove 1329pyshell alias at bottom. Remove obsolete __name__=='__main__' command. 1330 1331.. 1332 1333.. bpo: 14546 1334.. date: 2019-04-30-14-30-29 1335.. nonce: r38Y-6 1336.. section: Tools/Demos 1337 1338Fix the argument handling in Tools/scripts/lll.py. 1339 1340.. 1341 1342.. bpo: 36763 1343.. date: 2019-05-01-00-42-08 1344.. nonce: vghb86 1345.. section: C API 1346 1347Fix memory leak in :c:func:`Py_SetStandardStreamEncoding`: release memory if 1348the function is called twice. 1349 1350.. 1351 1352.. bpo: 36641 1353.. date: 2019-04-16-21-18-19 1354.. nonce: pz-DIR 1355.. section: C API 1356 1357:c:macro:`PyDoc_VAR(name)` and :c:macro:`PyDoc_STRVAR(name,str)` now create 1358``static const char name[]`` instead of ``static char name[]``. Patch by 1359Inada Naoki. 1360 1361.. 1362 1363.. bpo: 36389 1364.. date: 2019-04-11-12-20-35 1365.. nonce: P9QFoP 1366.. section: C API 1367 1368Change the value of ``CLEANBYTE``, ``DEADDYTE`` and ``FORBIDDENBYTE`` 1369internal constants used by debug hooks on Python memory allocators 1370(:c:func:`PyMem_SetupDebugHooks` function). Byte patterns ``0xCB``, ``0xDB`` 1371and ``0xFB`` have been replaced with ``0xCD``, ``0xDD`` and ``0xFD`` to use 1372the same values than Windows CRT debug ``malloc()`` and ``free()``. 1373 1374.. 1375 1376.. bpo: 36443 1377.. date: 2019-03-27-15-58-23 1378.. nonce: tAfZR9 1379.. section: C API 1380 1381Since Python 3.7.0, calling :c:func:`Py_DecodeLocale` before 1382:c:func:`Py_Initialize` produces mojibake if the ``LC_CTYPE`` locale is 1383coerced and/or if the UTF-8 Mode is enabled by the user configuration. The 1384LC_CTYPE coercion and UTF-8 Mode are now disabled by default to fix the 1385mojibake issue. They must now be enabled explicitly (opt-in) using the new 1386:c:func:`_Py_PreInitialize` API with ``_PyPreConfig``. 1387 1388.. 1389 1390.. bpo: 36025 1391.. date: 2019-02-19-08-23-42 1392.. nonce: tnwylQ 1393.. section: C API 1394 1395Fixed an accidental change to the datetime C API where the arguments to the 1396:c:func:`PyDate_FromTimestamp` function were incorrectly interpreted as a 1397single timestamp rather than an arguments tuple, which causes existing code 1398to start raising :exc:`TypeError`. The backwards-incompatible change was 1399only present in alpha releases of Python 3.8. Patch by Paul Ganssle. 1400 1401.. 1402 1403.. bpo: 35810 1404.. date: 2019-01-23-12-38-11 1405.. nonce: wpbWeb 1406.. section: C API 1407 1408Modify ``PyObject_Init`` to correctly increase the refcount of heap- 1409allocated Type objects. Also fix the refcounts of the heap-allocated types 1410that were either doing this manually or not decreasing the type's refcount 1411in tp_dealloc 1412