1.. bpo: 42938 2.. date: 2021-01-18-09-27-31 3.. nonce: 4Zn4Mp 4.. release date: 2021-02-02 5.. section: Security 6 7Avoid static buffers when computing the repr of :class:`ctypes.c_double` and 8:class:`ctypes.c_longdouble` values. 9 10.. 11 12.. bpo: 42990 13.. date: 2021-01-30-11-31-44 14.. nonce: 69h_zK 15.. section: Core and Builtins 16 17Refactor the ``PyEval_`` family of functions. 18 19* An new function ``_PyEval_Vector`` is added to simplify calls to Python from C. 20* ``_PyEval_EvalCodeWithName`` is removed 21* ``PyEval_EvalCodeEx`` is retained as part of the API, but is not used internally 22 23.. 24 25.. bpo: 38631 26.. date: 2021-01-29-17-48-44 27.. nonce: jR-3kC 28.. section: Core and Builtins 29 30Replace :c:func:`Py_FatalError` calls in the compiler with regular 31:exc:`SystemError` exceptions. Patch by Victor Stinner. 32 33.. 34 35.. bpo: 42997 36.. date: 2021-01-24-20-19-55 37.. nonce: QUOPgP 38.. section: Core and Builtins 39 40Improve error message for missing ":" before blocks. Patch by Pablo Galindo. 41 42.. 43 44.. bpo: 43017 45.. date: 2021-01-24-18-02-05 46.. nonce: emEcXX 47.. section: Core and Builtins 48 49Improve error message in the parser when using un-parenthesised tuples in 50comprehensions. Patch by Pablo Galindo. 51 52.. 53 54.. bpo: 42986 55.. date: 2021-01-20-23-44-15 56.. nonce: sWoaGf 57.. section: Core and Builtins 58 59Fix parser crash when reporting syntax errors in f-string with newlines. 60Patch by Pablo Galindo. 61 62.. 63 64.. bpo: 40176 65.. date: 2021-01-20-22-31-01 66.. nonce: anjyWw 67.. section: Core and Builtins 68 69Syntax errors for unterminated string literals now point to the start of the 70string instead of reporting EOF/EOL. 71 72.. 73 74.. bpo: 42927 75.. date: 2021-01-15-20-05-56 76.. nonce: GI-l-7 77.. section: Core and Builtins 78 79The inline cache for ``LOAD_ATTR`` now also optimizes access to attributes 80defined by ``__slots__``. This makes reading such attribute up to 30% 81faster. 82 83.. 84 85.. bpo: 42864 86.. date: 2021-01-14-23-15-34 87.. nonce: QgOAQ1 88.. section: Core and Builtins 89 90Improve error messages in the parser when parentheses are not closed. Patch 91by Pablo Galindo. 92 93.. 94 95.. bpo: 42924 96.. date: 2021-01-13-14-06-01 97.. nonce: _WS1Ok 98.. section: Core and Builtins 99 100Fix ``bytearray`` repetition incorrectly copying data from the start of the 101buffer, even if the data is offset within the buffer (e.g. after reassigning 102a slice at the start of the ``bytearray`` to a shorter byte string). 103 104.. 105 106.. bpo: 42882 107.. date: 2021-01-11-17-58-52 108.. nonce: WfTdfg 109.. section: Core and Builtins 110 111Fix the :c:func:`_PyUnicode_FromId` function (_Py_IDENTIFIER(var) API) when 112:c:func:`Py_Initialize` / :c:func:`Py_Finalize` is called multiple times: 113preserve ``_PyRuntime.unicode_ids.next_index`` value. 114 115.. 116 117.. bpo: 42827 118.. date: 2021-01-06-17-06-37 119.. nonce: jtRR0D 120.. section: Core and Builtins 121 122Fix a crash when working out the error line of a :exc:`SyntaxError` in some 123multi-line expressions. 124 125.. 126 127.. bpo: 42823 128.. date: 2021-01-04-18-17-07 129.. nonce: dcSynu 130.. section: Core and Builtins 131 132frame.f_lineno is correct even if frame.f_trace is set to True 133 134.. 135 136.. bpo: 37324 137.. date: 2020-12-12-20-09-12 138.. nonce: jB-9_U 139.. section: Core and Builtins 140 141Remove deprecated aliases to :ref:`collections-abstract-base-classes` from 142the :mod:`collections` module. 143 144.. 145 146.. bpo: 41994 147.. date: 2020-10-10-14-16-03 148.. nonce: Xop8sV 149.. section: Core and Builtins 150 151Fixed possible leak in ``import`` when ``sys.modules`` is not a ``dict``. 152 153.. 154 155.. bpo: 27772 156.. date: 2018-12-20-23-59-23 157.. nonce: idHEcj 158.. section: Core and Builtins 159 160In string formatting, preceding the *width* field by ``'0'`` no longer 161affects the default alignment for strings. 162 163.. 164 165.. bpo: 43108 166.. date: 2021-02-02-20-23-31 167.. nonce: lqcCZ6 168.. section: Library 169 170Fixed a reference leak in the :mod:`curses` module. Patch by Pablo Galindo 171 172.. 173 174.. bpo: 43077 175.. date: 2021-01-30-15-20-06 176.. nonce: Owk61z 177.. section: Library 178 179Update the bundled pip to 21.0.1 and setuptools to 52.0.0. 180 181.. 182 183.. bpo: 41282 184.. date: 2021-01-27-20-49-32 185.. nonce: SEPdV0 186.. section: Library 187 188Deprecate ``distutils`` in documentation and add warning on import. 189 190.. 191 192.. bpo: 43014 193.. date: 2021-01-24-00-37-40 194.. nonce: BVPhEr 195.. section: Library 196 197Improve performance of :mod:`tokenize` by 20-30%. Patch by Anthony Sottile. 198 199.. 200 201.. bpo: 42323 202.. date: 2021-01-20-12-10-47 203.. nonce: PONB8e 204.. section: Library 205 206Fix :func:`math.nextafter` for NaN on AIX. 207 208.. 209 210.. bpo: 42955 211.. date: 2021-01-18-11-59-46 212.. nonce: CSWLC9 213.. section: Library 214 215Add :data:`sys.stdlib_module_names`, containing the list of the standard 216library module names. Patch by Victor Stinner. 217 218.. 219 220.. bpo: 42944 221.. date: 2021-01-18-10-41-44 222.. nonce: RrONvy 223.. section: Library 224 225Fix ``random.Random.sample`` when ``counts`` argument is not ``None``. 226 227.. 228 229.. bpo: 42934 230.. date: 2021-01-15-11-48-00 231.. nonce: ILKoOI 232.. section: Library 233 234Use :class:`~traceback.TracebackException`'s new ``compact`` param in 235:class:`~unittest.TestResult` to reduce time and memory consumed by 236traceback formatting. 237 238.. 239 240.. bpo: 42931 241.. date: 2021-01-15-00-23-50 242.. nonce: QD6U2B 243.. section: Library 244 245Add :func:`randbytes` to ``random.__all__``. 246 247.. 248 249.. bpo: 38250 250.. date: 2021-01-14-15-07-16 251.. nonce: 1fvhOk 252.. section: Library 253 254[Enum] Flags consisting of a single bit are now considered canonical, and 255will be the only flags returned from listing and iterating over a Flag class 256or a Flag member. Multi-bit flags are considered aliases; they will be 257returned from lookups and operations that result in their value. Iteration 258for both Flag and Flag members is in definition order. 259 260.. 261 262.. bpo: 42877 263.. date: 2021-01-13-12-55-41 264.. nonce: Fi1zEG 265.. section: Library 266 267Added the ``compact`` parameter to the constructor of 268:class:`traceback.TracebackException` to reduce time and memory for use 269cases that only need to call :func:`TracebackException.format` and 270:func:`TracebackException.format_exception_only`. 271 272.. 273 274.. bpo: 42923 275.. date: 2021-01-13-12-15-13 276.. nonce: zBiNls 277.. section: Library 278 279The :c:func:`Py_FatalError` function and the :mod:`faulthandler` module now 280dump the list of extension modules on a fatal error. 281 282.. 283 284.. bpo: 42848 285.. date: 2021-01-12-19-34-06 286.. nonce: 5G8oBl 287.. section: Library 288 289Removed recursion from :class:`~traceback.TracebackException` to allow it to 290handle long exception chains. 291 292.. 293 294.. bpo: 42901 295.. date: 2021-01-11-17-36-59 296.. nonce: gFd-ta 297.. section: Library 298 299[Enum] move member creation from ``EnumMeta.__new__`` to 300``_proto_member.__set_name__``, allowing members to be created and visible 301in ``__init_subclass__``. 302 303.. 304 305.. bpo: 42780 306.. date: 2021-01-08-15-49-20 307.. nonce: rtqi6B 308.. section: Library 309 310Fix os.set_inheritable() for O_PATH file descriptors on Linux. 311 312.. 313 314.. bpo: 42866 315.. date: 2021-01-08-10-57-21 316.. nonce: Y1DnrO 317.. section: Library 318 319Fix a reference leak in the ``getcodec()`` function of CJK codecs. Patch by 320Victor Stinner. 321 322.. 323 324.. bpo: 42846 325.. date: 2021-01-07-23-31-17 326.. nonce: kukDjw 327.. section: Library 328 329Convert the 6 CJK codec extension modules (_codecs_cn, _codecs_hk, 330_codecs_iso2022, _codecs_jp, _codecs_kr and _codecs_tw) to the multiphase 331initialization API (:pep:`489`). Patch by Victor Stinner. 332 333.. 334 335.. bpo: 42851 336.. date: 2021-01-07-11-44-22 337.. nonce: uyQFyd 338.. section: Library 339 340remove __init_subclass__ support for Enum members 341 342.. 343 344.. bpo: 42834 345.. date: 2021-01-05-23-55-24 346.. nonce: LxRnZC 347.. section: Library 348 349Make internal caches of the ``_json`` module compatible with 350subinterpreters. 351 352.. 353 354.. bpo: 41748 355.. date: 2021-01-05-21-26-29 356.. nonce: KdC0w3 357.. section: Library 358 359Fix HTMLParser parsing rules for element attributes containing commas with 360spaces. Patch by Karl Dubost. 361 362.. 363 364.. bpo: 40810 365.. date: 2021-01-05-00-52-30 366.. nonce: JxQqPe 367.. section: Library 368 369Require SQLite 3.7.15 or newer. Patch by Erlend E. Aasland. 370 371.. 372 373.. bpo: 1635741 374.. date: 2021-01-04-15-05-40 375.. nonce: EOCfZY 376.. section: Library 377 378Convert the _multibytecodec extension module (CJK codecs) to multi-phase 379initialization (:pep:`489`). Patch by Erlend E. Aasland. 380 381.. 382 383.. bpo: 42802 384.. date: 2021-01-01-15-29-16 385.. nonce: Lw-bzl 386.. section: Library 387 388The distutils ``bdist_wininst`` command deprecated in Python 3.8 has been 389removed. The distutils ``bdist_wheel`` command is now recommended to 390distribute binary packages on Windows. 391 392.. 393 394.. bpo: 24464 395.. date: 2020-12-30-14-56-25 396.. nonce: vbNVHe 397.. section: Library 398 399The undocumented built-in function ``sqlite3.enable_shared_cache`` is now 400deprecated, scheduled for removal in Python 3.12. Its use is strongly 401discouraged by the SQLite3 documentation. Patch by Erlend E. Aasland. 402 403.. 404 405.. bpo: 42384 406.. date: 2020-11-17-14-32-39 407.. nonce: 1ZnQSn 408.. section: Library 409 410Make pdb populate sys.path[0] exactly the same as regular python execution. 411 412.. 413 414.. bpo: 42383 415.. date: 2020-11-17-14-30-12 416.. nonce: ubl0Y_ 417.. section: Library 418 419Fix pdb: previously pdb would fail to restart the debugging target if it was 420specified using a relative path and the current directory changed. 421 422.. 423 424.. bpo: 42005 425.. date: 2020-10-11-13-48-03 426.. nonce: Jq6Az- 427.. section: Library 428 429Fix CLI of :mod:`cProfile` and :mod:`profile` to catch 430:exc:`BrokenPipeError`. 431 432.. 433 434.. bpo: 41604 435.. date: 2020-08-21-15-24-14 436.. nonce: rTXleO 437.. section: Library 438 439Don't decrement the reference count of the previous user_ptr when 440set_panel_userptr fails. 441 442.. 443 444.. bpo: 41149 445.. date: 2020-06-28-16-13-02 446.. nonce: jiZWtJ 447.. section: Library 448 449Allow executing callables that have a boolean value of ``False`` when passed 450to :class:`Threading.thread` as the target. Patch contributed by Barney 451Stratford. 452 453.. 454 455.. bpo: 38307 456.. date: 2020-03-16-03-03-21 457.. nonce: 2cmw2i 458.. section: Library 459 460Add an 'end_lineno' attribute to the Class and Function objects that appear 461in the tree returned by pyclbr functions. This and the existing 'lineno' 462attribute define the extent of class and def statements. Patch by Aviral 463Srivastava. 464 465.. 466 467.. bpo: 39273 468.. date: 2020-01-13-23-37-58 469.. nonce: m5hzxV 470.. section: Library 471 472The ``BUTTON5_*`` constants are now exposed in the :mod:`curses` module if 473available. 474 475.. 476 477.. bpo: 33289 478.. date: 2018-04-23-13-44-10 479.. nonce: anBnUr 480.. section: Library 481 482Correct call to :mod:`tkinter.colorchooser` to return RGB triplet of ints 483instead of floats. Patch by Cheryl Sabella. 484 485.. 486 487.. bpo: 40304 488.. date: 2021-01-20-23-03-49 489.. nonce: -LK7Ps 490.. section: Documentation 491 492Fix doc for type(name, bases, dict). Patch by Boris Verkhovskiy and Éric 493Araujo. 494 495.. 496 497.. bpo: 42811 498.. date: 2021-01-04-22-14-22 499.. nonce: HY2beA 500.. section: Documentation 501 502Updated importlib.utils.resolve_name() doc to use __spec__.parent instead of 503__package__. (Thanks Yair Frid.) 504 505.. 506 507.. bpo: 40823 508.. date: 2020-05-30-13-39-22 509.. nonce: yB7K5w 510.. section: Tests 511 512Use :meth:`unittest.TestLoader().loadTestsFromTestCase` instead of 513:meth:`unittest.makeSuite` in :mod:`sqlite3` tests. Patch by Erlend E. 514Aasland. 515 516.. 517 518.. bpo: 40810 519.. date: 2020-05-30-10-56-38 520.. nonce: LPqDLQ 521.. section: Tests 522 523In :mod:`sqlite3`, fix ``CheckTraceCallbackContent`` for SQLite pre 3.7.15. 524 525.. 526 527.. bpo: 43031 528.. date: 2021-01-26-14-48-40 529.. nonce: 44nK9U 530.. section: Build 531 532Pass ``--timeout=$(TESTTIMEOUT)`` option to the default profile task 533``./python -m test --pgo`` command. 534 535.. 536 537.. bpo: 36143 538.. date: 2021-01-18-20-52-06 539.. nonce: kgnIYo 540.. section: Build 541 542``make regen-all`` now also runs ``regen-keyword``. Patch by Victor Stinner. 543 544.. 545 546.. bpo: 42874 547.. date: 2021-01-12-10-06-50 548.. nonce: XKK61g 549.. section: Build 550 551Removed the grep -q and -E flags in the tzpath validation section of the 552configure script to better accommodate users of some platforms (specifically 553Solaris 10). 554 555.. 556 557.. bpo: 31904 558.. date: 2021-01-11-23-26-00 559.. nonce: ty8f3h 560.. section: Build 561 562Add library search path by wr-cc in add_cross_compiling_paths() for VxWorks. 563 564.. 565 566.. bpo: 42856 567.. date: 2021-01-07-12-51-38 568.. nonce: n3cMHV 569.. section: Build 570 571Add ``--with-wheel-pkg-dir=PATH`` option to the ``./configure`` script. If 572specified, the :mod:`ensurepip` module looks for ``setuptools`` and ``pip`` 573wheel packages in this directory: if both are present, these wheel packages 574are used instead of ensurepip bundled wheel packages. 575 576Some Linux distribution packaging policies recommend against bundling 577dependencies. For example, Fedora installs wheel packages in the 578``/usr/share/python-wheels/`` directory and don't install the 579``ensurepip._bundled`` package. 580 581.. 582 583.. bpo: 41837 584.. date: 2021-01-05-20-36-40 585.. nonce: bmS7vB 586.. section: Windows 587 588Updated Windows installer to include OpenSSL 1.1.1i 589 590.. 591 592.. bpo: 42584 593.. date: 2020-12-07-11-40-52 594.. nonce: AsYnVX 595.. section: Windows 596 597Upgrade Windows installer to use SQLite 3.34.0. 598 599.. 600 601.. bpo: 42504 602.. date: 2021-01-26-14-36-11 603.. nonce: ZxWt71 604.. section: macOS 605 606Ensure that the value of 607sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') is always a string, 608even in when the value is parsable as an integer. 609 610.. 611 612.. bpo: 43008 613.. date: 2021-01-26-18-12-17 614.. nonce: mbQUc7 615.. section: IDLE 616 617Make IDLE invoke :func:`sys.excepthook` in normal, 2-process mode. Patch by 618Ken Hilton. 619 620.. 621 622.. bpo: 33065 623.. date: 2021-01-10-01-25-43 624.. nonce: zmyHYJ 625.. section: IDLE 626 627Fix problem debugging user classes with __repr__ method. 628 629.. 630 631.. bpo: 23544 632.. date: 2019-11-14-23-41-07 633.. nonce: 3etemb 634.. section: IDLE 635 636Disable Debug=>Stack Viewer when user code is running or Debugger is active, 637to prevent hang or crash. Patch by Zackery Spytz. 638 639.. 640 641.. bpo: 32631 642.. date: 2019-06-30-20-31-09 643.. nonce: e7_4BG 644.. section: IDLE 645 646Finish zzdummy example extension module: make menu entries work; add 647docstrings and tests with 100% coverage. 648 649.. 650 651.. bpo: 42979 652.. date: 2021-01-28-01-11-59 653.. nonce: JrGkrm 654.. section: C API 655 656When Python is built in debug mode (with C assertions), calling a type slot 657like ``sq_length`` (``__len__()`` in Python) now fails with a fatal error if 658the slot succeeded with an exception set, or failed with no exception set. 659The error message contains the slot, the type name, and the current 660exception (if an exception is set). Patch by Victor Stinner. 661 662.. 663 664.. bpo: 43030 665.. date: 2021-01-27-10-27-47 666.. nonce: loDcD_ 667.. section: C API 668 669Fixed a compiler warning in :c:func:`Py_UNICODE_ISSPACE()` on platforms with 670signed ``wchar_t``. 671