cpython/Misc/NEWS.d/3.13.0a2.rst

1623 lines
36 KiB
ReStructuredText

.. date: 2023-11-20-14-13-02
.. gh-issue: 112243
.. nonce: FKdQnr
.. release date: 2023-11-22
.. section: Core and Builtins
Don't include comments in f-string debug expressions. Patch by Pablo Galindo
..
.. date: 2023-11-20-10-40-40
.. gh-issue: 112287
.. nonce: 15gWAK
.. section: Core and Builtins
Slightly optimize the Tier 2 (uop) interpreter by only loading ``oparg`` and
``operand`` when needed. Also double the trace size limit again, to 512 this
time.
..
.. date: 2023-11-19-15-57-23
.. gh-issue: 112266
.. nonce: BSJMbR
.. section: Core and Builtins
Change docstrings of :attr:`~object.__dict__` and
:attr:`~object.__weakref__`.
..
.. date: 2023-11-17-16-49-32
.. gh-issue: 111807
.. nonce: QvjP9_
.. section: Core and Builtins
Lower the max parser stack depth to 1000 under WASI debug builds.
..
.. date: 2023-11-15-20-20-51
.. gh-issue: 111798
.. nonce: cs-3t3
.. section: Core and Builtins
When Python is built in debug mode, set the C recursion limit to 500 instead
of 1500. A debug build is likely built with low optimization level which
implies higher stack memory usage than a release build. Patch by Victor
Stinner.
..
.. date: 2023-11-15-16-14-10
.. gh-issue: 106529
.. nonce: Y48ax9
.. section: Core and Builtins
Enable translating unspecialized ``FOR_ITER`` to Tier 2.
..
.. date: 2023-11-14-22-12-11
.. gh-issue: 111916
.. nonce: ZGCayL
.. section: Core and Builtins
Make hashlib related modules thread-safe without the GIL
..
.. date: 2023-11-07-12-59-02
.. gh-issue: 81137
.. nonce: qFpJCY
.. section: Core and Builtins
Deprecate assignment to a function's ``__code__`` field when the new code
object is of a mismatched type (e.g., from a generator to a plain function).
..
.. date: 2023-11-06-16-44-09
.. gh-issue: 79932
.. nonce: 2qv7uD
.. section: Core and Builtins
Raise exception if :meth:`frame.clear` is called on a suspended frame.
..
.. date: 2023-11-05-20-59-10
.. gh-issue: 81925
.. nonce: wKHLSS
.. section: Core and Builtins
Implement native thread ids for GNU KFreeBSD.
..
.. date: 2023-11-05-06-40-35
.. gh-issue: 111843
.. nonce: c045cB
.. section: Core and Builtins
Use exponential backoff to reduce the number of failed tier 2 optimization
attempts by over 99%.
..
.. date: 2023-11-04-13-36-51
.. gh-issue: 110829
.. nonce: Pa0CJI
.. section: Core and Builtins
Joining a thread now ensures the underlying OS thread has exited. This is
required for safer fork() in multi-threaded processes.
..
.. date: 2023-11-03-22-48-29
.. gh-issue: 109369
.. nonce: ELYaxJ
.. section: Core and Builtins
Make sure that tier 2 traces are de-optimized if the code is instrumented
..
.. date: 2023-11-03-19-25-38
.. gh-issue: 111772
.. nonce: aRQvOn
.. section: Core and Builtins
Specialize slot loads and stores for _Py_T_OBJECT as well as Py_T_OBJECT_EX
..
.. date: 2023-11-03-01-23-48
.. gh-issue: 111666
.. nonce: l8Q8G5
.. section: Core and Builtins
Speed up :meth:`BaseExceptionGroup.derive`,
:meth:`BaseExceptionGroup.subgroup`, and :meth:`BaseExceptionGroup.split` by
changing how they parse passed arguments.
..
.. date: 2023-11-03-01-04-55
.. gh-issue: 111654
.. nonce: scUhDO
.. section: Core and Builtins
Fix runtime crash when some error happens in opcode
``LOAD_FROM_DICT_OR_DEREF``.
..
.. date: 2023-11-02-15-00-57
.. gh-issue: 111623
.. nonce: BZxYc8
.. section: Core and Builtins
Add support for sharing tuples between interpreters using the
cross-interpreter API. Patch by Anthony Shaw.
..
.. date: 2023-11-02-14-49-19
.. gh-issue: 111354
.. nonce: gIS3f-
.. section: Core and Builtins
The oparg of :opcode:`YIELD_VALUE` is now ``1`` if the instruction is part
of a yield-from or await, and ``0`` otherwise.
The SUSPENDED frame state is now split into ``SUSPENDED`` and
``SUSPENDED_YIELD_FROM``. This simplifies the code in ``_PyGen_yf``.
..
.. date: 2023-10-31-21-33-35
.. gh-issue: 111520
.. nonce: vw-rxJ
.. section: Core and Builtins
Merge the Tier 1 (bytecode) and Tier 2 (micro-ops) interpreters together,
moving the Tier 2 interpreter loop and switch into
``_PyEval_EvalFrameDefault()`` in ``Python/ceval.c``. The
``Python/executor.c`` file is gone. Also the ``TIER_ONE`` and ``TIER_TWO``
macros are now handled by the code generator.
**Beware!** This changes the environment variables to enable micro-ops and
their debugging to ``PYTHON_UOPS`` and ``PYTHON_LLTRACE``.
..
.. date: 2023-10-31-14-25-21
.. gh-issue: 109181
.. nonce: 11h6Mc
.. section: Core and Builtins
Speed up :class:`Traceback` object creation by lazily compute the line number.
Patch by Pablo Galindo
..
.. date: 2023-10-29-20-11-21
.. gh-issue: 111420
.. nonce: IUT-GK
.. section: Core and Builtins
Allow type comments in parenthesized ``with`` statements
..
.. date: 2023-10-29-12-33-33
.. gh-issue: 111438
.. nonce: bHTLLl
.. section: Core and Builtins
Add support for sharing floats between interpreters using the
cross-interpreter API. Patch by Anthony Shaw.
..
.. date: 2023-10-29-11-35-21
.. gh-issue: 111435
.. nonce: ageUWQ
.. section: Core and Builtins
Add support for sharing of ``True`` and ``False`` between interpreters using the
cross-interpreter API. Patch by Anthony Shaw.
..
.. date: 2023-10-27-19-38-33
.. gh-issue: 102388
.. nonce: vd5YUZ
.. section: Core and Builtins
Fix a bug where ``iso2022_jp_3`` and ``iso2022_jp_2004`` codecs read out of
bounds
..
.. date: 2023-10-27-12-17-49
.. gh-issue: 111366
.. nonce: _TSknV
.. section: Core and Builtins
Fix an issue in the :mod:`codeop` that was causing :exc:`SyntaxError`
exceptions raised in the presence of invalid syntax to not contain precise
error messages. Patch by Pablo Galindo
..
.. date: 2023-10-27-11-51-40
.. gh-issue: 111380
.. nonce: vgSbir
.. section: Core and Builtins
Fix a bug that was causing :exc:`SyntaxWarning` to appear twice when parsing
if invalid syntax is encountered later. Patch by Pablo galindo
..
.. date: 2023-10-27-11-22-09
.. gh-issue: 111374
.. nonce: e9lrPZ
.. section: Core and Builtins
Added a new environment variable :envvar:`PYTHON_FROZEN_MODULES`. It
determines whether or not frozen modules are ignored by the import
machinery, equivalent of the :option:`-X frozen_modules <-X>` command-line
option.
..
.. date: 2023-10-26-18-45-20
.. gh-issue: 111354
.. nonce: GrT-Wf
.. section: Core and Builtins
Remove ``oparg`` from :opcode:`YIELD_VALUE`. Change ``oparg`` of
:opcode:`RESUME` to include information about the except-depth. These
changes make it possible to simplify the code in generator close.
..
.. date: 2023-10-23-22-11-09
.. gh-issue: 94438
.. nonce: y2pITu
.. section: Core and Builtins
Fix a regression that prevented jumping across ``is None`` and ``is not
None`` when debugging. Patch by Savannah Ostrowski.
..
.. date: 2023-10-23-15-44-47
.. gh-issue: 67224
.. nonce: S4D6CR
.. section: Core and Builtins
Show source lines in tracebacks when using the ``-c`` option when running
Python. Patch by Pablo Galindo
..
.. date: 2023-10-20-23-14-06
.. gh-issue: 111123
.. nonce: jjVc3M
.. section: Core and Builtins
Fix a bug where a :keyword:`global` declaration in an :keyword:`except`
block is rejected when the global is used in the :keyword:`else` block.
..
.. date: 2023-10-17-11-03-45
.. gh-issue: 110938
.. nonce: X3sbMb
.. section: Core and Builtins
Fix error messages for indented blocks with functions and classes with
generic type parameters. Patch by Pablo Galindo
..
.. date: 2023-10-16-15-51-37
.. gh-issue: 109214
.. nonce: -RGTFH
.. section: Core and Builtins
Remove unnecessary instruction pointer updates before returning from frames.
..
.. date: 2023-10-16-12-12-48
.. gh-issue: 110912
.. nonce: uEJGi_
.. section: Core and Builtins
Correctly display the traceback for :exc:`MemoryError` exceptions using the
:mod:`traceback` module. Patch by Pablo Galindo
..
.. date: 2023-10-15-22-18-45
.. gh-issue: 109894
.. nonce: UAmo06
.. section: Core and Builtins
Fixed crash due to improperly initialized static :exc:`MemoryError` in
subinterpreter.
..
.. date: 2023-10-15-20-45-35
.. gh-issue: 110892
.. nonce: oA6eVY
.. section: Core and Builtins
Return ``NULL`` for ``PyTrace_RETURN`` events caused by an exception
..
.. date: 2023-10-14-12-19-34
.. gh-issue: 110864
.. nonce: -baPDE
.. section: Core and Builtins
Fix argument parsing by ``_PyArg_UnpackKeywordsWithVararg`` for functions
defining pos-or-keyword, vararg, and kw-only parameters.
..
.. date: 2023-10-13-16-55-55
.. gh-issue: 109094
.. nonce: ziL4cJ
.. section: Core and Builtins
Replace ``prev_instr`` on the interpreter frame by ``instr_ptr`` which
points to the beginning of the instruction that is currently executing (or
will execute once the frame resumes).
..
.. date: 2023-10-13-09-21-29
.. gh-issue: 110805
.. nonce: vhU7A7
.. section: Core and Builtins
Allow the repl to show source code and complete tracebacks. Patch by Pablo
Galindo
..
.. date: 2023-10-12-17-15-23
.. gh-issue: 110722
.. nonce: sjMwQe
.. section: Core and Builtins
Add :envvar:`PYTHON_PRESITE=package.module` to import a module early in the
interpreter lifecycle before ``site.py`` is executed. Python needs to be
:ref:`built in debug mode <debug-build>` for this option to exist.
..
.. date: 2023-10-12-12-09-01
.. gh-issue: 110481
.. nonce: 3Er3it
.. section: Core and Builtins
Implement biased reference counting in ``--disable-gil`` builds.
..
.. date: 2023-10-09-19-54-33
.. gh-issue: 110543
.. nonce: 1wrxO8
.. section: Core and Builtins
Fix regression in Python 3.12 where :meth:`types.CodeType.replace` would
produce a broken code object if called on a module or class code object that
contains a comprehension. Patch by Jelle Zijlstra.
..
.. date: 2023-09-30-17-30-11
.. gh-issue: 89519
.. nonce: hz2pZf
.. section: Core and Builtins
Removed chained :class:`classmethod` descriptors (introduced in
:issue:`19072`). This can no longer be used to wrap other descriptors such
as :class:`property`. The core design of this feature was flawed and caused
a number of downstream problems. To "pass-through" a :class:`classmethod`,
consider using the :attr:`!__wrapped__` attribute that was added in Python
3.10.
..
.. date: 2023-09-15-23-39-43
.. gh-issue: 103615
.. nonce: WZavly
.. section: Core and Builtins
Use local events for opcode tracing
..
.. bpo: 46657
.. date: 2023-09-06-12-36-11
.. nonce: xea1T_
.. section: Core and Builtins
Add mimalloc memory allocator support.
..
.. date: 2023-08-31-11-42-16
.. gh-issue: 106718
.. nonce: _-57DA
.. section: Core and Builtins
When PyConfig.stdlib_dir is explicitly set, it's now respected and won't be
overridden by PyConfig.home.
..
.. date: 2023-07-20-11-41-16
.. gh-issue: 106905
.. nonce: AyZpuB
.. section: Core and Builtins
Fix incorrect SystemError about AST constructor recursion depth mismatch.
..
.. date: 2022-12-27-02-51-45
.. gh-issue: 100445
.. nonce: C8f6ph
.. section: Core and Builtins
Improve error message for unterminated strings with escapes.
..
.. bpo: 45759
.. date: 2021-11-10-10-40-05
.. nonce: WJoB3D
.. section: Core and Builtins
Improved error messages for ``elif``/``else`` statements not matching any
valid statements. Patch by Jeremiah Vivian.
..
.. date: 2023-11-14-18-43-55
.. gh-issue: 111942
.. nonce: x1pnrj
.. section: Library
Fix SystemError in the TextIOWrapper constructor with non-encodable "errors"
argument in non-debug mode.
..
.. date: 2023-11-14-16-31-59
.. gh-issue: 111995
.. nonce: OoX8JJ
.. section: Library
Added the ``NI_IDN`` constant to the :mod:`socket` module when present in C
at build time for use with :func:`socket.getnameinfo`.
..
.. date: 2023-11-11-16-42-48
.. gh-issue: 109538
.. nonce: cMG5ux
.. section: Library
Issue warning message instead of having :class:`RuntimeError` be displayed
when event loop has already been closed at :meth:`StreamWriter.__del__`.
..
.. date: 2023-11-10-22-08-28
.. gh-issue: 111942
.. nonce: MDFm6v
.. section: Library
Fix crashes in :meth:`io.TextIOWrapper.reconfigure` when pass invalid
arguments, e.g. non-string encoding.
..
.. date: 2023-11-09-12-57-43
.. gh-issue: 111460
.. nonce: TQaz9I
.. section: Library
:mod:`curses`: restore wide character support (including
:func:`curses.unget_wch` and :meth:`~curses.window.get_wch`) on macOS, which
was unavailable due to a regression in Python 3.12.
..
.. date: 2023-11-09-10-45-56
.. gh-issue: 103791
.. nonce: sdfkja
.. section: Library
:class:`contextlib.suppress` now supports suppressing exceptions raised as
part of a :exc:`BaseExceptionGroup`, in addition to the recent support for
:exc:`ExceptionGroup`.
..
.. date: 2023-11-08-23-32-03
.. gh-issue: 111835
.. nonce: ufFiuW
.. section: Library
The :class:`mmap.mmap` class now has an :meth:`~mmap.mmap.seekable` method
that can be used when a seekable file-like object is required.
The :meth:`~mmap.mmap.seek` method now returns the new absolute position.
Patch by Donghee Na.
..
.. date: 2023-11-08-15-58-57
.. gh-issue: 111804
.. nonce: uAXTOL
.. section: Library
Remove posix.fallocate() under WASI as the underlying posix_fallocate() is
not available in WASI preview2.
..
.. date: 2023-11-08-11-50-49
.. gh-issue: 111841
.. nonce: iSqdQf
.. section: Library
Fix truncating arguments on an embedded null character in :meth:`os.putenv`
and :meth:`os.unsetenv` on Windows.
..
.. date: 2023-11-08-07-42-53
.. gh-issue: 111768
.. nonce: g-WpnV
.. section: Library
:func:`wsgiref.util.is_hop_by_hop` is now exposed correctly in ``__all__``.
..
.. date: 2023-11-04-21-12-27
.. gh-issue: 80731
.. nonce: Wq51xg
.. section: Library
Avoid executing the default function in :class:`cmd.Cmd` in an except block
..
.. date: 2023-11-04-10-24-25
.. gh-issue: 111541
.. nonce: x0RBI1
.. section: Library
Fix :mod:`doctest` for :exc:`SyntaxError` not-builtin subclasses.
..
.. date: 2023-11-04-01-20-23
.. gh-issue: 111719
.. nonce: fUiKBD
.. section: Library
Add extra argument validation for ``alias`` command in :mod:`pdb`
..
.. date: 2023-11-02-12-15-46
.. gh-issue: 111482
.. nonce: FWqZIU
.. section: Library
:mod:`time`: Make :func:`time.clock_gettime()` and
:func:`time.clock_gettime_ns()` functions up to 2x faster by faster calling
convention. Patch by Victor Stinner.
..
.. date: 2023-11-01-14-03-24
.. gh-issue: 110894
.. nonce: 7-wZxC
.. section: Library
Call loop exception handler for exceptions in ``client_connected_cb`` of
:func:`asyncio.start_server` so that applications can handle it. Patch by
Kumar Aditya.
..
.. date: 2023-10-31-07-46-56
.. gh-issue: 111531
.. nonce: 6zUV_G
.. section: Library
Fix reference leaks in ``bind_class()`` and ``bind_all()`` methods of
:mod:`tkinter` widgets.
..
.. date: 2023-10-30-14-47-23
.. gh-issue: 111246
.. nonce: QJ_ehs
.. section: Library
:meth:`asyncio.loop.create_unix_server` will now automatically remove the
Unix socket when the server is closed.
..
.. date: 2023-10-30-08-50-46
.. gh-issue: 111356
.. nonce: Bc8LvA
.. section: Library
Added :func:`io.text_encoding()`, :data:`io.DEFAULT_BUFFER_SIZE`, and
:class:`io.IncrementalNewlineDecoder` to ``io.__all__``.
..
.. date: 2023-10-29-03-46-27
.. gh-issue: 66425
.. nonce: FWTdDo
.. section: Library
Remove the code to set the REMOTE_HOST header from wsgiref module, as it is
unreachable. This header is used for performance reasons, which is not
necessary in the wsgiref module.
..
.. date: 2023-10-28-22-11-11
.. gh-issue: 111429
.. nonce: mJGxuQ
.. section: Library
Speed up :meth:`pathlib.PurePath.relative_to` and
:meth:`~pathlib.PurePath.is_relative_to`.
..
.. date: 2023-10-28-04-21-17
.. gh-issue: 111342
.. nonce: m8Ln1k
.. section: Library
Fixed typo in :func:`math.sumprod`.
..
.. date: 2023-10-27-12-46-56
.. gh-issue: 68166
.. nonce: 0EbWW4
.. section: Library
Remove mention of not supported "vsapi" element type in
:meth:`tkinter.ttk.Style.element_create`. Add tests for ``element_create()``
and other ``ttk.Style`` methods. Add examples for ``element_create()`` in
the documentation.
..
.. date: 2023-10-27-09-56-20
.. gh-issue: 111388
.. nonce: SlmDbC
.. section: Library
Add ``show_group`` parameter to :func:`traceback.format_exception_only`,
which allows to format :exc:`ExceptionGroup` instances.
..
.. date: 2023-10-25-11-54-00
.. gh-issue: 79033
.. nonce: 5ePgFl
.. section: Library
Another attempt at fixing :func:`asyncio.Server.wait_closed()`. It now
blocks until both conditions are true: the server is closed, *and* there are
no more active connections. (This means that in some cases where in 3.12.0
this function would *incorrectly* have returned immediately, it will now
block; in particular, when there are no active connections but the server
hasn't been closed yet.)
..
.. date: 2023-10-25-11-13-35
.. gh-issue: 111259
.. nonce: z7ndeA
.. section: Library
Optimize recursive wildcards in :mod:`pathlib`.
..
.. date: 2023-10-25-08-42-05
.. gh-issue: 111295
.. nonce: H2K4lf
.. section: Library
Fix :mod:`time` not checking for errors when initializing.
..
.. date: 2023-10-24-12-20-46
.. gh-issue: 111253
.. nonce: HFywSK
.. section: Library
Add error checking during :mod:`!_socket` module init.
..
.. date: 2023-10-24-12-09-46
.. gh-issue: 111251
.. nonce: urFYtn
.. section: Library
Fix :mod:`!_blake2` not checking for errors when initializing.
..
.. date: 2023-10-23-23-14-54
.. gh-issue: 111233
.. nonce: sCdCC0
.. section: Library
Fix :mod:`select` not checking for errors when initializing.
..
.. date: 2023-10-23-22-40-47
.. gh-issue: 111230
.. nonce: k3Jm84
.. section: Library
Fix :mod:`ssl` not checking for errors when initializing.
..
.. date: 2023-10-23-13-53-58
.. gh-issue: 111174
.. nonce: Oohmzd
.. section: Library
Fix crash in :meth:`io.BytesIO.getbuffer` called repeatedly for empty
BytesIO.
..
.. date: 2023-10-22-21-28-05
.. gh-issue: 111187
.. nonce: _W11Ab
.. section: Library
Postpone removal version for locale.getdefaultlocale() to Python 3.15.
..
.. date: 2023-10-21-13-57-06
.. gh-issue: 111159
.. nonce: GoHp7s
.. section: Library
Fix :mod:`doctest` output comparison for exceptions with notes.
..
.. date: 2023-10-20-15-29-10
.. gh-issue: 110910
.. nonce: u2oPwX
.. section: Library
Fix invalid state handling in :class:`asyncio.TaskGroup` and
:class:`asyncio.Timeout`. They now raise proper RuntimeError if they are
improperly used and are left in consistent state after this.
..
.. date: 2023-10-19-22-46-34
.. gh-issue: 111092
.. nonce: hgut12
.. section: Library
Make turtledemo run without default root enabled.
..
.. date: 2023-10-16-18-41-51
.. gh-issue: 110944
.. nonce: CmUKXo
.. section: Library
Support alias and convenience vars for :mod:`pdb` completion
..
.. date: 2023-10-15-08-08-26
.. gh-issue: 110745
.. nonce: mxEkh0
.. section: Library
Added *newline* parameter to :meth:`pathlib.Path.read_text`. Patch by Junya
Okabe.
..
.. date: 2023-10-14-21-33-57
.. gh-issue: 84583
.. nonce: -Cmn4_
.. section: Library
Make :mod:`pdb` enter post-mortem mode even for :exc:`SyntaxError`
..
.. date: 2023-10-14-20-15-53
.. gh-issue: 80675
.. nonce: _M-cQC
.. section: Library
Set ``f_trace_lines = True`` on all frames upon :func:`pdb.set_trace()`
..
.. date: 2023-10-13-06-47-20
.. gh-issue: 110771
.. nonce: opwdlc
.. section: Library
Expose the setup and cleanup portions of ``asyncio.run_forever()`` as the
standalone methods ``asyncio.run_forever_setup()`` and
``asyncio.run_forever_cleanup()``. This allows for tighter integration with
GUI event loops.
..
.. date: 2023-10-12-15-16-44
.. gh-issue: 110774
.. nonce: AdCb5A
.. section: Library
Support setting the :class:`asyncio.Runner` loop_factory kwarg in
:class:`unittest.IsolatedAsyncioTestCase`
..
.. date: 2023-10-10-17-56-41
.. gh-issue: 110392
.. nonce: 6g6CnP
.. section: Library
Fix :func:`tty.setraw` and :func:`tty.setcbreak`: previously they returned
partially modified list of the original tty attributes.
:func:`tty.cfmakeraw` and :func:`tty.cfmakecbreak` now make a copy of the
list of special characters before modifying it.
..
.. date: 2023-10-09-23-59-04
.. gh-issue: 59013
.. nonce: qPbS-G
.. section: Library
Make line number of function breakpoint more precise in :mod:`pdb`
..
.. date: 2023-10-08-18-38-09
.. gh-issue: 88434
.. nonce: 2Q_IkG
.. section: Library
Emit deprecation warning for non-integer numbers in :mod:`gettext` functions
and methods that consider plural forms even if the translation was not
found.
..
.. date: 2023-10-08-14-17-06
.. gh-issue: 110395
.. nonce: _tdCsV
.. section: Library
Ensure that :func:`select.kqueue` objects correctly appear as closed in
forked children, to prevent operations on an invalid file descriptor.
..
.. date: 2023-10-02-05-23-27
.. gh-issue: 110196
.. nonce: djwt0z
.. section: Library
Add ``__reduce__`` method to :class:`IPv6Address` in order to keep
``scope_id``
..
.. date: 2023-09-25-20-05-41
.. gh-issue: 109747
.. nonce: _cRJH8
.. section: Library
Improve errors for unsupported look-behind patterns. Now re.error is raised
instead of OverflowError or RuntimeError for too large width of look-behind
pattern.
..
.. date: 2023-09-15-12-30-21
.. gh-issue: 109466
.. nonce: 6ah-aw
.. section: Library
Add the :attr:`ipaddress.IPv4Address.ipv6_mapped` property, which returns the
IPv4-mapped IPv6 address.
..
.. date: 2023-09-08-12-10-10
.. gh-issue: 85098
.. nonce: DfQbeJ
.. section: Library
Implement the CLI of the :mod:`symtable` module and improve the repr of
:class:`~symtable.Symbol`.
..
.. date: 2023-09-02-16-07-23
.. gh-issue: 108791
.. nonce: fBcAqh
.. section: Library
Improved error handling in :mod:`pdb` command line interface, making it
produce more concise error messages.
..
.. date: 2023-08-30-19-10-35
.. gh-issue: 105931
.. nonce: Lpwve8
.. section: Library
Change :mod:`compileall` to only strip the stripdir prefix from the full
path recorded in the compiled ``.pyc`` file, when the prefix matches the
start of the full path in its entirety. When the prefix does not match, no
stripping is performed and a warning to this effect is displayed.
Previously all path components of the stripdir prefix that matched the full
path were removed, while those that did not match were left alone (including
ones interspersed between matching components).
..
.. date: 2023-07-29-19-00-39
.. gh-issue: 107431
.. nonce: 1GzJ2p
.. section: Library
Make the ``DictProxy`` and ``ListProxy`` types in
:mod:`multiprocessing.managers` :ref:`Generic Alias
Types<types-genericalias>` for ``[]`` use in typing contexts.
..
.. date: 2023-07-13-00-24-52
.. gh-issue: 72904
.. nonce: Yn5-j0
.. section: Library
Add :func:`glob.translate`. This function converts a pathname with
shell-style wildcards to a regular expression.
..
.. date: 2023-05-30-02-01-14
.. gh-issue: 90026
.. nonce: FyCXw8
.. section: Library
Define ``USE_XATTRS`` on Cygwin so that XATTR-related functions in the
:mod:`os` module become available.
..
.. date: 2023-04-26-16-37-00
.. gh-issue: 90890
.. nonce: fIag4w
.. section: Library
New methods :meth:`mailbox.Maildir.get_info`,
:meth:`mailbox.Maildir.set_info`, :meth:`mailbox.Maildir.get_flags`,
:meth:`mailbox.Maildir.set_flags`, :meth:`mailbox.Maildir.add_flag`,
:meth:`mailbox.Maildir.remove_flag`. These methods speed up accessing a
message's info and/or flags and are useful when it is not necessary to
access the message's contents, as when iterating over a Maildir to find
messages with specific flags.
..
.. date: 2023-04-15-14-45-21
.. gh-issue: 102956
.. nonce: Z6qeUy
.. section: Library
Fix returning of empty byte strings after seek in zipfile module
..
.. date: 2023-03-22-02-01-30
.. gh-issue: 102895
.. nonce: HiEqaZ
.. section: Library
Added a parameter ``local_exit`` for :func:`code.interact` to prevent
``exit()`` and ``quit`` from closing ``sys.stdin`` and raise ``SystemExit``.
..
.. date: 2022-10-14-21-11-10
.. gh-issue: 97928
.. nonce: Pdxh1G
.. section: Library
Change the behavior of :meth:`tkinter.Text.count`. It now always returns an
integer if one or less counting options are specified. Previously it could
return a single count as a 1-tuple, an integer (only if option ``"update"``
was specified) or ``None`` if no items found. The result is now the same if
``wantobjects`` is set to ``0``.
..
.. date: 2022-10-05-15-01-36
.. gh-issue: 96954
.. nonce: ezwkrU
.. section: Library
Switch the storage of the unicode codepoint names to use a different
data-structure, a `directed acyclic word graph
<https://en.wikipedia.org/wiki/Deterministic_acyclic_finite_state_automaton>`_.
This makes the unicodedata shared library about 440 KiB smaller. Contributed
by Carl Friedrich Bolz-Tereick using code from the PyPy project.
..
.. date: 2022-05-28-20-55-07
.. gh-issue: 73561
.. nonce: YRmAvy
.. section: Library
Omit the interface scope from an IPv6 address when used as Host header by
:mod:`http.client`.
..
.. date: 2022-05-06-15-49-57
.. gh-issue: 86826
.. nonce: rf006W
.. section: Library
:mod:`zipinfo` now supports the full range of values in the TZ string
determined by RFC 8536 and detects all invalid formats. Both Python and C
implementations now raise exceptions of the same type on invalid data.
..
.. date: 2023-11-17-15-20-41
.. gh-issue: 111808
.. nonce: jtIayt
.. section: Tests
Make the default value of ``test.support.infinite_recursion()`` to be
conditional based on whether optimizations were used when compiling the
interpreter. This helps with platforms like WASI whose stack size is greatly
restricted in debug builds.
..
.. date: 2023-11-03-18-59-13
.. gh-issue: 110722
.. nonce: jvT1pb
.. section: Tests
Gathering line coverage of standard libraries within the regression test
suite is now precise, as well as much faster. Patch by Łukasz Langa.
..
.. date: 2023-10-31-22-09-25
.. gh-issue: 110367
.. nonce: UhQi44
.. section: Tests
Make regrtest ``--verbose3`` option compatible with ``--huntrleaks -jN``
options. The ``./python -m test -j1 -R 3:3 --verbose3`` command now works as
expected. Patch by Victor Stinner.
..
.. date: 2023-10-21-19-27-36
.. gh-issue: 111165
.. nonce: FU6mUk
.. section: Tests
Remove no longer used functions ``run_unittest()`` and ``run_doctest()``
from the :mod:`test.support` module.
..
.. date: 2023-10-21-00-10-36
.. gh-issue: 110932
.. nonce: jktjJU
.. section: Tests
Fix regrtest if the ``SOURCE_DATE_EPOCH`` environment variable is defined:
use the variable value as the random seed. Patch by Victor Stinner.
..
.. date: 2023-10-17-17-54-36
.. gh-issue: 110995
.. nonce: Fx8KRD
.. section: Tests
test_gdb: Fix detection of gdb built without Python scripting support. Patch
by Victor Stinner.
..
.. date: 2023-10-16-13-47-24
.. gh-issue: 110918
.. nonce: aFgZK3
.. section: Tests
Test case matching patterns specified by options ``--match``, ``--ignore``,
``--matchfile`` and ``--ignorefile`` are now tested in the order of
specification, and the last match determines whether the test case be run or
ignored.
..
.. date: 2023-09-15-15-00-14
.. gh-issue: 108747
.. nonce: ql0owS
.. section: Tests
Add unit test for ``usercustomize`` and ``sitecustomize`` hooks from
:class:`site`.
..
.. date: 2023-11-15-16-56-20
.. gh-issue: 96954
.. nonce: 6FYvKn
.. section: Build
Make ``make regen-unicodedata`` work for out-of-tree builds of CPython.
..
.. date: 2023-11-15-13-40-29
.. gh-issue: 112088
.. nonce: UJQxxh
.. section: Build
Add ``Tools/build/regen-configure.sh`` script to regenerate the
``configure`` with an Ubuntu container image. The
``quay.io/tiran/cpython_autoconf:271`` container image
(`tiran/cpython_autoconf <https://github.com/tiran/cpython_autoconf>`_) is
no longer used. Patch by Victor Stinner.
..
.. date: 2023-10-20-15-29-31
.. gh-issue: 111046
.. nonce: 2DxQl8
.. section: Build
For wasi-threads, memory is now exported to fix compatibility issues with
some wasm runtimes.
..
.. date: 2023-10-17-03-10-40
.. gh-issue: 110828
.. nonce: 31vQ9B
.. section: Build
AIX 32bit needs ``-latomic`` to build the :mod:`!_testcapi` extension
module.
..
.. date: 2023-10-17-01-56-11
.. gh-issue: 85283
.. nonce: V156T2
.. section: Build
The ``errno``, ``md5``, ``resource``, ``winsound``, ``_ctypes_test``,
``_multiprocessing.posixshmem``, ``_scproxy``, ``_stat``,
``_testimportmultiple`` and ``_uuid`` C extensions are now built with the
:ref:`limited C API <limited-c-api>`. Patch by Victor Stinner.
..
.. date: 2023-11-13-22-35-27
.. gh-issue: 111856
.. nonce: vEtA5z
.. section: Windows
Fixes :func:`~os.fstat` on file systems that do not support file ID
requests. This includes FAT32 and exFAT.
..
.. date: 2023-10-25-05-01-28
.. gh-issue: 111293
.. nonce: FSsLT6
.. section: Windows
Fix :data:`os.DirEntry.inode` dropping higher 64 bits of a file id on some
filesystems on Windows.
..
.. date: 2023-10-19-21-46-18
.. gh-issue: 110913
.. nonce: CWlPfg
.. section: Windows
WindowsConsoleIO now correctly chunks large buffers without splitting up
UTF-8 sequences.
..
.. date: 2023-10-31-22-13-05
.. gh-issue: 59703
.. nonce: SML6Ag
.. section: macOS
For macOS framework builds, in ``getpath.c`` use the system ``dladdr``
function to find the path to the shared library rather than depending on
deprecated macOS APIs.
..
.. date: 2023-10-18-17-26-36
.. gh-issue: 110950
.. nonce: sonoma
.. section: macOS
Update macOS installer to include an upstream Tcl/Tk fix for the ``Secure
coding is not enabled for restorable state!`` warning encountered in Tkinter
on macOS 14 Sonoma.
..
.. date: 2023-10-18-01-40-36
.. gh-issue: 111015
.. nonce: NaLI2L
.. section: macOS
Ensure that IDLE.app and Python Launcher.app are installed with appropriate
permissions on macOS builds.
..
.. date: 2023-09-02-08-49-57
.. gh-issue: 71383
.. nonce: Ttkchg
.. section: macOS
Update macOS installer to include an upstream Tcl/Tk fix for the
``ttk::ThemeChanged`` error encountered in Tkinter.
..
.. date: 2023-08-30-16-33-57
.. gh-issue: 92603
.. nonce: ATkKVO
.. section: macOS
Update macOS installer to include a fix accepted by upstream Tcl/Tk for a
crash encountered after the first :meth:`tkinter.Tk` instance is destroyed.
..
.. bpo: 35668
.. date: 2019-01-07-06-18-25
.. nonce: JimxP5
.. section: IDLE
Add docstrings to the IDLE debugger module. Fix two bugs: initialize
``Idb.botframe`` (should be in Bdb); in ``Idb.in_rpc_code``, check whether
``prev_frame`` is ``None`` before trying to use it. Greatly expand test_debugger.
..
.. date: 2023-11-09-13-04-29
.. gh-issue: 111903
.. nonce: 7Prryr
.. section: Tools/Demos
Argument Clinic now supports the ``@critical_section`` directive that
instructs Argument Clinic to generate a critical section around the function
call, which locks the ``self`` object in ``--disable-gil`` builds. Patch by
Sam Gross.
..
.. date: 2023-11-15-18-36-21
.. gh-issue: 112026
.. nonce: _Yybr5
.. section: C API
Add again the private ``_PyThreadState_UncheckedGet()`` function as an alias
to the new public :c:func:`PyThreadState_GetUnchecked` function. Patch by
Victor Stinner.
..
.. date: 2023-11-15-17-10-09
.. gh-issue: 112026
.. nonce: ts9yyn
.. section: C API
Restore the removed ``_PyDict_GetItemStringWithError()`` function. It is
used by numpy. Patch by Victor Stinner.
..
.. date: 2023-11-15-16-07-57
.. gh-issue: 112026
.. nonce: bnr8dd
.. section: C API
Restore removed private C API functions, macros and structures which have no
simple replacement for now:
* _PyDict_GetItem_KnownHash()
* _PyDict_NewPresized()
* _PyHASH_BITS
* _PyHASH_IMAG
* _PyHASH_INF
* _PyHASH_MODULUS
* _PyHASH_MULTIPLIER
* _PyLong_Copy()
* _PyLong_FromDigits()
* _PyLong_New()
* _PyLong_Sign()
* _PyObject_CallMethodId()
* _PyObject_CallMethodNoArgs()
* _PyObject_CallMethodOneArg()
* _PyObject_CallOneArg()
* _PyObject_EXTRA_INIT
* _PyObject_FastCallDict()
* _PyObject_GetAttrId()
* _PyObject_Vectorcall()
* _PyObject_VectorcallMethod()
* _PyStack_AsDict()
* _PyThread_CurrentFrames()
* _PyUnicodeWriter structure
* _PyUnicodeWriter_Dealloc()
* _PyUnicodeWriter_Finish()
* _PyUnicodeWriter_Init()
* _PyUnicodeWriter_Prepare()
* _PyUnicodeWriter_PrepareKind()
* _PyUnicodeWriter_WriteASCIIString()
* _PyUnicodeWriter_WriteChar()
* _PyUnicodeWriter_WriteLatin1String()
* _PyUnicodeWriter_WriteStr()
* _PyUnicodeWriter_WriteSubstring()
* _PyUnicode_AsString()
* _PyUnicode_FromId()
* _PyVectorcall_Function()
* _Py_IDENTIFIER()
* _Py_c_abs()
* _Py_c_diff()
* _Py_c_neg()
* _Py_c_pow()
* _Py_c_prod()
* _Py_c_quot()
* _Py_c_sum()
* _Py_static_string()
* _Py_static_string_init()
Patch by Victor Stinner.
..
.. date: 2023-11-13-17-57-11
.. gh-issue: 112026
.. nonce: WJLJcI
.. section: C API
Add again ``<ctype.h>`` and ``<unistd.h>`` includes in ``Python.h``, but
don't include them in the limited C API version 3.13 and newer. Patch by
Victor Stinner.
..
.. date: 2023-11-10-10-24-28
.. gh-issue: 111956
.. nonce: ImE6Cx
.. section: C API
Add internal-only one-time initialization API: ``_PyOnceFlag`` and
``_PyOnceFlag_CallOnce``.
..
.. date: 2023-11-10-10-21-38
.. gh-issue: 111262
.. nonce: 2utB5m
.. section: C API
Add :c:func:`PyDict_Pop` and :c:func:`PyDict_PopString` functions: remove a
key from a dictionary and optionally return the removed value. This is
similar to :meth:`dict.pop`, but without the default value and not raising
:exc:`KeyError` if the key missing. Patch by Stefan Behnel and Victor
Stinner.
..
.. date: 2023-11-08-20-28-03
.. gh-issue: 111863
.. nonce: RPeFAX
.. section: C API
Rename ``Py_NOGIL`` to ``Py_GIL_DISABLED``. Patch by Hugo van Kemenade.
..
.. date: 2023-11-08-18-37-19
.. gh-issue: 111138
.. nonce: 3Ypq8h
.. section: C API
Add :c:func:`PyList_Extend` and :c:func:`PyList_Clear` functions: similar to
Python ``list.extend()`` and ``list.clear()`` methods. Patch by Victor
Stinner.
..
.. date: 2023-10-31-18-22-03
.. gh-issue: 108765
.. nonce: _beYv8
.. section: C API
On Windows, ``Python.h`` no longer includes the ``<stddef.h>`` standard
header file. If needed, it should now be included explicitly. Patch by
Victor Stinner.
..
.. date: 2023-10-31-14-58-17
.. gh-issue: 111569
.. nonce: _V8iu4
.. section: C API
Implement "Python Critical Sections" from :pep:`703`. These are macros to
help replace the GIL with per-object locks in the ``--disable-gil`` build of
CPython. The macros are no-ops in the default build.
..
.. date: 2023-10-30-18-13-01
.. gh-issue: 111506
.. nonce: EUdO22
.. section: C API
In the limited C API version 3.13, :c:func:`Py_SET_REFCNT` function is now
implemented as an opaque function call. Patch by Victor Stinner.
..
.. date: 2023-10-19-22-39-24
.. gh-issue: 108082
.. nonce: uJytvc
.. section: C API
Add :c:func:`PyErr_FormatUnraisable` function.
..
.. date: 2023-10-17-10-21-59
.. gh-issue: 110964
.. nonce: OxqEjd
.. section: C API
Move the undocumented private _PyArg functions and _PyArg_Parser structure
to internal C API (``pycore_modsupport.h``). Patch by Victor Stinner.
..
.. date: 2023-10-13-14-18-06
.. gh-issue: 110815
.. nonce: tEFLVl
.. section: C API
Support non-ASCII keyword names in :c:func:`PyArg_ParseTupleAndKeywords`.
..
.. date: 2023-10-02-23-08-53
.. gh-issue: 109587
.. nonce: UqqnDY
.. section: C API
Introduced :c:func:`PyUnstable_PerfTrampoline_CompileCode`,
:c:func:`PyUnstable_PerfTrampoline_SetPersistAfterFork` and
:c:func:`PyUnstable_CopyPerfMapFile`. These functions allow extension
modules to initialize trampolines eagerly, after the application is "warmed
up". This makes it possible to have perf-trampolines running in an
always-enabled fashion.
..
.. date: 2023-08-28-17-40-51
.. gh-issue: 85283
.. nonce: raFNiD
.. section: C API
Add the :c:func:`PySys_Audit` function to the limited C API. Patch by Victor
Stinner.
..
.. date: 2023-08-28-17-34-10
.. gh-issue: 85283
.. nonce: f1zXcc
.. section: C API
Add :c:func:`PyMem_RawMalloc`, :c:func:`PyMem_RawCalloc`,
:c:func:`PyMem_RawRealloc` and :c:func:`PyMem_RawFree` to the limited C API.
Patch by Victor Stinner.
..
.. date: 2023-07-12-12-14-52
.. gh-issue: 106672
.. nonce: fkRjmi
.. section: C API
Functions :c:func:`PyDict_GetItem`, :c:func:`PyDict_GetItemString`,
:c:func:`PyMapping_HasKey`, :c:func:`PyMapping_HasKeyString`,
:c:func:`PyObject_HasAttr`, :c:func:`PyObject_HasAttrString`, and
:c:func:`PySys_GetObject`, which clear all errors occurred during calling
the function, report now them using :func:`sys.unraisablehook`.
..
.. date: 2023-06-08-21-12-44
.. gh-issue: 67565
.. nonce: UkK3x-
.. section: C API
Remove redundant C-contiguity check in :file:`getargs.c`, :mod:`binascii`,
:mod:`ssl` and Argument Clinic. Patched by Stefan Krah and Furkan Onder