Python 3.13.0a3

This commit is contained in:
Thomas Wouters 2024-01-17 13:09:05 +01:00
parent b204c4beb4
commit f009305a7d
235 changed files with 3018 additions and 890 deletions

View file

@ -20,10 +20,10 @@
#define PY_MINOR_VERSION 13
#define PY_MICRO_VERSION 0
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA
#define PY_RELEASE_SERIAL 2
#define PY_RELEASE_SERIAL 3
/* Version as a string */
#define PY_VERSION "3.13.0a2+"
#define PY_VERSION "3.13.0a3"
/*--end constants--*/
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.

File diff suppressed because it is too large Load diff

2414
Misc/NEWS.d/3.13.0a3.rst Normal file

File diff suppressed because it is too large Load diff

View file

@ -1 +0,0 @@
Do not set ipv6type when cross-compiling.

View file

@ -1,2 +0,0 @@
The :func:`os.major`, :func:`os.makedev`, and :func:`os.minor` functions are
now available on HP-UX v3.

View file

@ -1 +0,0 @@
Introduce ``Tools/wasm/wasi.py`` to simplify doing a WASI build.

View file

@ -1 +0,0 @@
Fix the build for the case that WITH_PYMALLOC_RADIX_TREE=0 set.

View file

@ -1 +0,0 @@
Add support for thread sanitizer (TSAN)

View file

@ -1,3 +0,0 @@
Fixed the ``check-clean-src`` step performed on out of tree builds to detect
errant ``$(srcdir)/Python/frozen_modules/*.h`` files and recommend
appropriate source tree cleanup steps to get a working build again.

View file

@ -1,2 +0,0 @@
Changed the Windows build to write out generated frozen modules into the
build tree instead of the source tree.

View file

@ -1,4 +0,0 @@
Fix ``Tools/wasm/wasi.py`` to not include the path to ``python.wasm`` as
part of ``HOSTRUNNER``. The environment variable is meant to specify how to
run the WASI host only, having ``python.wasm`` and relevant flags appended
to the ``HOSTRUNNER``. This fixes ``make test`` work.

View file

@ -1,3 +0,0 @@
Change the declaration of the *keywords* parameter of
:c:func:`PyArg_ParseTupleAndKeywords` and
:c:func:`PyArg_VaParseTupleAndKeywords` for better compatibility with C++.

View file

@ -1,2 +0,0 @@
Add :c:func:`Py_HashPointer` function to hash a pointer. Patch by Victor
Stinner.

View file

@ -1,2 +0,0 @@
Fix support of format units "es", "et", "es#", and "et#" in nested tuples in
:c:func:`PyArg_ParseTuple`-like functions.

View file

@ -1,2 +0,0 @@
Fix redundant declarations in the public C API. Declare PyBool_Type,
PyLong_Type and PySys_Audit() only once. Patch by Victor Stinner.

View file

@ -1 +0,0 @@
Added :func:`sys._is_interned`.

View file

@ -1 +0,0 @@
Remove LibreSSL workarounds as per :pep:`644`.

View file

@ -1,3 +0,0 @@
Use the object's actual class name in :meth:`_io.FileIO.__repr__`,
:meth:`_io._WindowsConsoleIO` and :meth:`_io.TextIOWrapper.__repr__`, to
make these methods subclass friendly.

View file

@ -1,3 +0,0 @@
Fix UnicodeEncodeError when :func:`email.message.get_payload` reads a message
with a Unicode surrogate character and the message content is not well-formed for
surrogateescape encoding. Patch by Sidney Markowitz.

View file

@ -1,3 +0,0 @@
:c:func:`PyComplex_RealAsDouble`/:c:func:`PyComplex_ImagAsDouble` now tries to
convert an object to a :class:`complex` instance using its ``__complex__()`` method
before falling back to the ``__float__()`` method. Patch by Sergey B Kirpichev.

View file

@ -1,4 +0,0 @@
The Tier 2 translator now tracks the confidence level for staying "on trace"
(i.e. not exiting back to the Tier 1 interpreter) for branch instructions
based on the number of bits set in the branch "counter". Trace translation
ends when the confidence drops below 1/3rd.

View file

@ -1,2 +0,0 @@
Avoid undefined behaviour when using the perf trampolines by not freeing the
code arenas until shutdown. Patch by Pablo Galindo

View file

@ -1,2 +0,0 @@
Make code generated for an empty f-string identical to the code of an empty
normal string.

View file

@ -1,2 +0,0 @@
Fix error positions for decoded strings with backwards tokenize errors.
Patch by Pablo Galindo

View file

@ -1,2 +0,0 @@
Fix an error that was causing the parser to try to overwrite tokenizer
errors. Patch by pablo Galindo

View file

@ -1,3 +0,0 @@
Change coro.cr_frame/gen.gi_frame to return ``None`` after the coroutine/generator has been closed.
This fixes a bug where :func:`~inspect.getcoroutinestate` and :func:`~inspect.getgeneratorstate`
return the wrong state for a closed coroutine/generator.

View file

@ -1 +0,0 @@
Add check for the type of ``__cause__`` returned from calling the type ``T`` in ``raise from T``.

View file

@ -1 +0,0 @@
Provide a better error message when accessing invalid attributes on partially initialized modules. The origin of the module being accessed is now included in the message to help with the common issue of shadowing other modules.

View file

@ -1,4 +0,0 @@
Workaround a bug in Apple's macOS platform zlib library where
:func:`zlib.crc32` and :func:`binascii.crc32` could produce incorrect results
on multi-gigabyte inputs. Including when using :mod:`zipfile` on zips
containing large data.

View file

@ -1,2 +0,0 @@
Do not clear unexpected errors during formatting error messages for
ImportError and AttributeError for modules.

View file

@ -1 +0,0 @@
Fixes a bug where a bytearray object could be cleared while iterating over an argument in the ``bytearray.join()`` method that could result in reading memory after it was freed.

View file

@ -1 +0,0 @@
Use color to highlight error locations in tracebacks. Patch by Pablo Galindo

View file

@ -1,2 +0,0 @@
Fix SystemError in the ``import`` statement and in ``__reduce__()`` methods
of builtin types when ``__builtins__`` is not a dict.

View file

@ -1,2 +0,0 @@
:func:`input` now raises a ValueError when output on the terminal if the
prompt contains embedded null characters instead of silently truncating it.

View file

@ -1 +0,0 @@
Fix None.__ne__(None) returning NotImplemented instead of False

View file

@ -1,2 +0,0 @@
Correctly compute end column offsets for multiline tokens in the
:mod:`tokenize` module. Patch by Pablo Galindo

View file

@ -1 +0,0 @@
Optimize builtin functions :func:`min` and :func:`max`.

View file

@ -1,3 +0,0 @@
Change the API and contract of ``_PyExecutorObject`` to return the
next_instr pointer, instead of the frame, and to always execute at least one
instruction.

View file

@ -1,7 +0,0 @@
Use per AST-parser state rather than global state to track recursion depth
within the AST parser to prevent potential race condition due to
simultaneous parsing.
The issue primarily showed up in 3.11 by multithreaded users of
:func:`ast.parse`. In 3.12 a change to when garbage collection can be
triggered prevented the race condition from occurring.

View file

@ -1,2 +0,0 @@
Fixed bug where a redundant NOP is not removed, causing an assertion to fail
in the compiler in debug mode.

View file

@ -1,3 +0,0 @@
Increase the C recursion limit by a factor of 3 for non-debug builds, except
for webassembly and s390 platforms which are unchanged. This mitigates some
regressions in 3.12 with deep recursion mixing builtin (C) and Python code.

View file

@ -1,2 +0,0 @@
Only use ``NULL`` in the exception stack to indicate an exception was
handled. Patch by Carey Metcalfe.

View file

@ -1 +0,0 @@
Improve :py:class:`super` error messages.

View file

@ -1 +0,0 @@
Fix segfault in the compiler on with statement with 19 context managers.

View file

@ -1 +0,0 @@
No longer issue spurious ``PY_UNWIND`` events for optimized calls to classes.

View file

@ -1,2 +0,0 @@
Fix an error that was causing the parser to try to overwrite existing errors
and crashing in the process. Patch by Pablo Galindo

View file

@ -1 +0,0 @@
Fixed bug where a redundant NOP is not removed, causing an assertion to fail in the compiler in debug mode.

View file

@ -1,2 +0,0 @@
Fix an issue that caused important instruction pointer updates to be
optimized out of tier two traces.

View file

@ -1,2 +0,0 @@
Changed error message in case of no 'in' keyword after 'for' in list
comprehensions

View file

@ -1,2 +0,0 @@
Check for a valid ``tp_version_tag`` before performing bytecode specializations that
rely on this value being usable.

View file

@ -1,2 +0,0 @@
Fix a regression in the :mod:`codeop` module that was causing it to incorrectly
identify incomplete f-strings. Patch by Pablo Galindo

View file

@ -1 +0,0 @@
Compiler changed so that synthetic jumps which are not at loop end no longer check the eval breaker.

View file

@ -1,2 +0,0 @@
Fix an issue where the finalizer of ``PyAsyncGenASend`` objects might not be
called if they were allocated from a free list.

View file

@ -1,2 +0,0 @@
Guarantee that all executors make progress. This then guarantees that tier 2
execution always makes progress.

View file

@ -1,3 +0,0 @@
On Windows, file descriptors wrapping Windows handles are now created non
inheritable by default (:pep:`446`). Patch by Zackery Spytz and Victor
Stinner.

View file

@ -1 +0,0 @@
Add typed stack effects to the interpreter DSL, along with various instruction annotations.

View file

@ -1,3 +0,0 @@
Set the C recursion limit to 4000 on Windows, and 10000 on Linux/OSX. This
seems to be near the sweet spot to maintain safety, but not compromise
backwards compatibility.

View file

@ -1 +0,0 @@
A jump leaving an exception handler back to normal code no longer checks the eval breaker.

View file

@ -1 +0,0 @@
Compiler duplicates basic blocks that have an eval breaker check, no line number, and multiple predecessors.

View file

@ -1,3 +0,0 @@
Document that the :mod:`asyncio` module contains code taken from `v0.16.0 of
the uvloop project <https://github.com/MagicStack/uvloop/tree/v0.16.0>`_, as
well as the required MIT licensing information.

View file

@ -1 +0,0 @@
Improved markup for valid options/values for methods ttk.treeview.column and ttk.treeview.heading, and for Layouts.

View file

@ -1 +0,0 @@
Relocate ``smtpd`` deprecation notice to its own section rather than under ``locale`` in What's New in Python 3.12 document

View file

@ -1 +0,0 @@
Enter the selected text when opening the "Replace" dialog.

View file

@ -1 +0,0 @@
Fix processing unsaved files when quitting IDLE on macOS.

View file

@ -1 +0,0 @@
Fix test_editor hang on macOS Catalina.

View file

@ -1 +0,0 @@
Fix the "Help -> IDLE Doc" menu bug in 3.11.7 and 3.12.1.

View file

@ -1 +0,0 @@
Fix rare failure of test.test_idle, in test_configdialog.

View file

@ -1,2 +0,0 @@
Improve the lists of features, editor key bindings, and shell key bingings
in the IDLE doc.

View file

@ -1 +0,0 @@
:class:`mailbox.Maildir` now ignores files with a leading dot.

View file

@ -1,2 +0,0 @@
Add a new :envvar:`PYTHON_HISTORY` environment variable to set the location
of a ``.python_history`` file.

View file

@ -1,2 +0,0 @@
Fixed a class inheritance issue that can cause segfaults when deriving two or more levels of subclasses from a base class of Structure or Union.

View file

@ -1,2 +0,0 @@
Fix some error messages for invalid ISO format string combinations in ``strptime()`` that referred to directives not contained in the format string.
Patch by Gordon P. Hemsley.

View file

@ -1,2 +0,0 @@
Fixed a race condition in :func:`shutil.rmtree` in which directory entries removed by another process or thread while ``shutil.rmtree()`` is running can cause it to raise FileNotFoundError. Patch by Jeffrey Kintscher.

View file

@ -1,3 +0,0 @@
:func:`warnings.filterwarnings()` and :func:`warnings.simplefilter()` now raise
appropriate exceptions instead of ``AssertionError``. Patch contributed by
Rémi Lapeyre.

View file

@ -1,2 +0,0 @@
The :meth:`ssl.SSLSocket.recv_into` method no longer requires the *buffer*
argument to implement ``__len__`` and supports buffers with arbitrary item size.

View file

@ -1 +0,0 @@
The :func:`!pydoc.ispackage` function has been deprecated.

View file

@ -1,2 +0,0 @@
Fixed memory leaks of :class:`pickle.Pickler` and :class:`pickle.Unpickler` involving cyclic references via the
internal memo mapping.

View file

@ -1,4 +0,0 @@
:func:`shutil.move` now moves a symlink into a directory when that
directory is the target of the symlink. This provides the same behavior as
the mv shell command. The previous behavior raised an exception. Patch by
Jeffrey Kintscher.

View file

@ -1,2 +0,0 @@
:class:`io.TextIOWrapper` now correctly handles the decoding buffer after
``read()`` and ``write()``.

View file

@ -1,3 +0,0 @@
The :func:`shutil.rmtree` function now ignores errors when calling
:func:`os.close` when *ignore_errors* is ``True``, and
:func:`os.close` no longer retried after error.

View file

@ -1,2 +0,0 @@
:class:`mmap.mmap` now has a *trackfd* parameter on Unix; if it is
``False``, the file descriptor specified by *fileno* will not be duplicated.

View file

@ -1,3 +0,0 @@
:func:`getpass.getuser` now raises :exc:`OSError` for all failures rather
than :exc:`ImportError` on systems lacking the :mod:`pwd` module or
:exc:`KeyError` if the password database is empty.

View file

@ -1,4 +0,0 @@
On Windows, ``tempfile.TemporaryDirectory`` previously masked a
``PermissionError`` with ``NotADirectoryError`` during directory cleanup. It
now correctly raises ``PermissionError`` if errors are not ignored. Patch by
Andrei Kulakov and Ken Jin.

View file

@ -1,2 +0,0 @@
Fix a bug in :class:`tempfile.TemporaryDirectory` cleanup, which now no longer
dereferences symlinks when working around file system permission errors.

View file

@ -1,3 +0,0 @@
Renamed :exc:`!re.error` to :exc:`PatternError` for clarity, and kept
:exc:`!re.error` for backward compatibility. Patch by Matthias Bussonnier and
Adam Chhina.

View file

@ -1,3 +0,0 @@
:class:`mailbox.MH` now supports folders that do not contain a
``.mh_sequences`` file (e.g. Claws Mail IMAP-cache folders). Patch by Serhiy
Storchaka.

View file

@ -1 +0,0 @@
Make hardcoded python name, a configurable parameter so that different implementations of python can override it instead of making huge diffs in sysconfig.py

View file

@ -1,3 +0,0 @@
Add :func:`warnings.deprecated`, a decorator to mark deprecated functions to
static type checkers and to warn on usage of deprecated classes and functions.
See :pep:`702`. Patch by Jelle Zijlstra.

View file

@ -1,2 +0,0 @@
:func:`runpy.run_path` now decodes path-like objects, making sure __file__
and sys.argv[0] of the module being run are always strings.

View file

@ -1 +0,0 @@
Support tab completion in :mod:`cmd` for ``editline``.

View file

@ -1,2 +0,0 @@
Add *follow_symlinks* keyword-only argument to :meth:`pathlib.Path.owner`
and :meth:`~pathlib.Path.group`, defaulting to ``True``.

View file

@ -1 +0,0 @@
Small (10 - 20%) and trivial performance improvement of :func:`urrlib.request.getproxies_environment`, typically useful when there are many environment variables to go over.

View file

@ -1,2 +0,0 @@
Fix possible reference leaks and crash when re-enter the ``__next__()`` method of
:class:`itertools.pairwise`.

View file

@ -1,3 +0,0 @@
Protect :mod:`zipfile` from "quoted-overlap" zipbomb. It now raises
BadZipFile when try to read an entry that overlaps with other entry or
central directory.

View file

@ -1,3 +0,0 @@
Add private ``pathlib._PurePathBase`` class: a base class for
:class:`pathlib.PurePath` that omits certain magic methods. It may be made
public (along with ``_PathBase``) in future.

View file

@ -1 +0,0 @@
Add ``track`` parameter to :class:`multiprocessing.shared_memory.SharedMemory` that allows using shared memory blocks without having to register with the POSIX resource tracker that automatically releases them upon process exit.

View file

@ -1,2 +0,0 @@
:meth:`cmd.Cmd.do_help` now cleans docstrings with :func:`inspect.cleandoc`
before writing them. Patch by Filip Łapkiewicz.

View file

@ -1,8 +0,0 @@
:func:`email.utils.getaddresses` and :func:`email.utils.parseaddr` now
return ``('', '')`` 2-tuples in more situations where invalid email
addresses are encountered instead of potentially inaccurate values. Add
optional *strict* parameter to these two functions: use ``strict=False`` to
get the old behavior, accept malformed inputs.
``getattr(email.utils, 'supports_strict_parsing', False)`` can be use to check
if the *strict* paramater is available. Patch by Thomas Dwyer and Victor
Stinner to improve the CVE-2023-27043 fix.

View file

@ -1 +0,0 @@
Redirect the output of ``interact`` command of :mod:`pdb` to the same channel as the debugger. Add tests and improve docs.

View file

@ -1,2 +0,0 @@
Fix crash during garbage collection of the :class:`io.BytesIO` buffer
object.

Some files were not shown because too many files have changed in this diff Show more