Python 3.14.0a1

This commit is contained in:
Hugo van Kemenade 2024-10-15 22:29:35 +03:00
parent 3ea488aac4
commit 8cdaca8b25
645 changed files with 7741 additions and 1995 deletions

View File

@ -1195,7 +1195,7 @@ code, or when embedding the Python interpreter:
created by Python. Refer to
:ref:`cautions-regarding-runtime-finalization` for more details.
.. versionchanged:: next
.. versionchanged:: 3.14
Hangs the current thread, rather than terminating it, if called while the
interpreter is finalizing.
@ -1257,7 +1257,7 @@ with sub-interpreters:
created by Python. Refer to
:ref:`cautions-regarding-runtime-finalization` for more details.
.. versionchanged:: next
.. versionchanged:: 3.14
Hangs the current thread, rather than terminating it, if called while the
interpreter is finalizing.
@ -1547,7 +1547,7 @@ All of the following functions must be called after :c:func:`Py_Initialize`.
:c:func:`Py_END_ALLOW_THREADS`, and :c:func:`PyGILState_Ensure`,
and terminate the current thread if called while the interpreter is finalizing.
.. versionchanged:: next
.. versionchanged:: 3.14
Hangs the current thread, rather than terminating it, if called while the
interpreter is finalizing.

View File

@ -579,7 +579,7 @@ distinguished from a number. Use :c:func:`PyErr_Occurred` to disambiguate.
On failure, return -1 with an exception set. This function always succeeds
if *obj* is a :c:type:`PyLongObject` or its subtype.
.. versionadded:: next
.. versionadded:: 3.14
.. c:function:: PyObject* PyLong_GetInfo(void)

View File

@ -1575,7 +1575,7 @@ PyUnicodeWriter
The :c:type:`PyUnicodeWriter` API can be used to create a Python :class:`str`
object.
.. versionadded:: next
.. versionadded:: 3.14
.. c:type:: PyUnicodeWriter

View File

@ -2491,7 +2491,7 @@ effects on the compilation of a program:
differ in whitespace or similar details. Attributes include line numbers
and column offsets.
.. versionadded:: next
.. versionadded:: 3.14
.. _ast-cli:

View File

@ -2303,7 +2303,7 @@ These are the fundamental ctypes data types:
Represents the C :c:expr:`double complex` datatype, if available. The
constructor accepts an optional :class:`complex` initializer.
.. versionadded:: next
.. versionadded:: 3.14
.. class:: c_float_complex

View File

@ -959,7 +959,7 @@ iterations of the loop.
list of constants supported by this instruction. Used by the :keyword:`assert`
statement to load :exc:`AssertionError`.
.. versionadded:: next
.. versionadded:: 3.14
.. opcode:: LOAD_BUILD_CLASS
@ -1827,7 +1827,7 @@ iterations of the loop.
If ``type(STACK[-1]).__xxx__`` is not a method, leave
``STACK[-1].__xxx__; NULL`` on the stack.
.. versionadded:: next
.. versionadded:: 3.14
**Pseudo-instructions**

View File

@ -1563,7 +1563,7 @@ Copying, moving and deleting
This argument has no effect when copying files on Windows (where
metadata is always preserved).
.. versionadded:: next
.. versionadded:: 3.14
.. method:: Path.copy_into(target_dir, *, follow_symlinks=True, \
@ -1574,7 +1574,7 @@ Copying, moving and deleting
:meth:`Path.copy`. Returns a new :class:`!Path` instance pointing to the
copy.
.. versionadded:: next
.. versionadded:: 3.14
.. method:: Path.rename(target)

View File

@ -256,7 +256,7 @@ Examining Symbol Tables
Return ``True`` if the symbol is a type parameter.
.. versionadded:: next
.. versionadded:: 3.14
.. method:: is_global()
@ -303,7 +303,7 @@ Examining Symbol Tables
be free from the perspective of ``C.method``, thereby allowing
the latter to return *1* at runtime and not *2*.
.. versionadded:: next
.. versionadded:: 3.14
.. method:: is_assigned()
@ -313,13 +313,13 @@ Examining Symbol Tables
Return ``True`` if the symbol is a comprehension iteration variable.
.. versionadded:: next
.. versionadded:: 3.14
.. method:: is_comp_cell()
Return ``True`` if the symbol is a cell in an inlined comprehension.
.. versionadded:: next
.. versionadded:: 3.14
.. method:: is_namespace()

View File

@ -20,10 +20,10 @@
#define PY_MINOR_VERSION 14
#define PY_MICRO_VERSION 0
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA
#define PY_RELEASE_SERIAL 0
#define PY_RELEASE_SERIAL 1
/* Version as a string */
#define PY_VERSION "3.14.0a0"
#define PY_VERSION "3.14.0a1"
/*--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

6604
Misc/NEWS.d/3.14.0a1.rst Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +0,0 @@
Fix a possible race condition affecting parallel builds configured with
``--enable-experimental-jit``, in which compilation errors could be caused
by an incompletely-generated header file.

View File

@ -1,2 +0,0 @@
Fix an ``AssertionError`` when building with ``--enable-experimental-jit``
and the compiler emits a ``SHT_NOTE`` section.

View File

@ -1,2 +0,0 @@
Update :data:`sys.version` to identify whether the build is default build or
free-threading build. Patch By Donghee Na.

View File

@ -1 +0,0 @@
Fall back to the bundled libmpdec if a system version cannot be found.

View File

@ -1,2 +0,0 @@
``make_ssl_certs``, the script that prepares certificate data for the
test suite, now allows specifying expiration dates.

View File

@ -1,5 +0,0 @@
On POSIX systems, the pkg-config (``.pc``) filenames now include the ABI
flags, which may include debug ("d") and free-threaded ("t"). For example:
* ``python-3.14.pc`` (default, non-debug build)
* ``python-3.14d.pc`` (default, debug build)
* ``python-3.14t.pc`` (free-threaded build)

View File

@ -1,2 +0,0 @@
Improve :mod:`curses` and :mod:`curses.panel` dependency checks in
:program:`configure`.

View File

@ -1 +0,0 @@
Make the ``python-config`` shell script compatible with non-bash shells.

View File

@ -1,2 +0,0 @@
On Windows, fix build error when ``--disable-gil`` and ``--experimental-jit``
options are combined.

View File

@ -1,3 +0,0 @@
Fix a possible race condition affecting parallel builds configured with
``--enable-experimental-jit``, in which :exc:`FileNotFoundError` could be caused by
another process already moving ``jit_stencils.h.new`` to ``jit_stencils.h``.

View File

@ -1,3 +0,0 @@
On WASI in debug mode, Python is now built with compiler flag ``-O3``
instead of ``-Og``, to support more recursive calls. Patch by Victor
Stinner.

View File

@ -1,2 +0,0 @@
Correctly handle LLVM installs with ``LLVM_VERSION_SUFFIX`` when building
with ``--enable-experimental-jit``.

View File

@ -1 +0,0 @@
Fix failing configure tests due to a missing space when appending to CFLAGS.

View File

@ -1 +0,0 @@
Fix build failure when the developer use ``--enable-pystats`` arguments in configuration command after #118450.

View File

@ -1 +0,0 @@
The default minimum iOS version was increased to 13.0.

View File

@ -1,3 +0,0 @@
On POSIX systems, excluding macOS framework installs, the lib directory
for the free-threaded build now includes a "t" suffix to avoid conflicts
with a co-located default build installation.

View File

@ -1 +0,0 @@
Fix a Makefile bug that prevented mimalloc header files from being installed.

View File

@ -1 +0,0 @@
Fix deprecation warning for ATOMIC_VAR_INIT in mimalloc.

View File

@ -1 +0,0 @@
Fix mimalloc compile error on GNU/Hurd

View File

@ -1,2 +0,0 @@
Support WASI SDK 22 by explicitly skipping functions that are just stubs in
wasi-libc.

View File

@ -1,2 +0,0 @@
Added a :option:`--with-app-store-compliance` option to patch out known
issues with macOS/iOS App Store review processes.

View File

@ -1,2 +0,0 @@
Introduce ./configure --disable-safety and --enable-slower-safety options.
Patch by Donghee Na.

View File

@ -1 +0,0 @@
Fix an issue where the experimental JIT could be built several times by the ``make regen-all`` target, leading to possible race conditions on heavily parallelized builds.

View File

@ -1,2 +0,0 @@
Rename build variable ``MODULE_LDFLAGS`` back to ``LIBPYTHON``, as it's used by
package build systems (e.g. Meson).

View File

@ -1 +0,0 @@
Use WASI SDK 24 for testing.

View File

@ -1 +0,0 @@
Allow for specifying the target compile triple for WASI.

View File

@ -1,2 +0,0 @@
Propagate the value of ``LDFLAGS`` to ``LDCXXSHARED`` in :mod:`sysconfig`.
Patch by Pablo Galindo

View File

@ -1 +0,0 @@
Updated Android build to use OpenSSL 3.0.15.

View File

@ -1,2 +0,0 @@
Building using :option:`--with-trace-refs` is (temporarily) disallowed when the
GIL is disabled.

View File

@ -1,2 +0,0 @@
Update internal documentation under PCbuild, so it now correctly states that
Windows requires VS2017 or later and Python 3.10 or later

View File

@ -1 +0,0 @@
Remove ``WITH_FREELISTS`` macro and ``--without-freelists`` build configuration

View File

@ -1,2 +0,0 @@
Fix detection of whether ``-latomic`` is needed when cross-compiling CPython
using the configure script.

View File

@ -1,2 +0,0 @@
Added ``Py_IsInitialized`` to the list of APIs that are safe to call before
the interpreter is initialized, and updated the embedding tests to cover it.

View File

@ -1,15 +0,0 @@
Attempting to acquire the GIL after runtime finalization has begun in a
different thread now causes the thread to hang rather than terminate, which
avoids potential crashes or memory corruption caused by attempting to
terminate a thread that is running code not specifically designed to support
termination. In most cases this hanging is harmless since the process will
soon exit anyway.
The ``PyThread_exit_thread`` function is now deprecated. Its behavior is
inconsistent across platforms, and it can only be used safely in the
unlikely case that every function in the entire call stack has been designed
to support the platform-dependent termination mechanism. It is recommended
that users of this function change their design to not require thread
termination. In the unlikely case that thread termination is needed and can
be done safely, users may migrate to calling platform-specific APIs such as
``pthread_exit`` (POSIX) or ``_endthreadex`` (Windows) directly.

View File

@ -1,2 +0,0 @@
Fix creating bitfields in :mod:`ctypes` structures and unions. Fields
no longer overlap.

View File

@ -1 +0,0 @@
Add :c:func:`PyLong_GetSign` function. Patch by Sergey B Kirpichev.

View File

@ -1 +0,0 @@
Make the :c:type:`PyMutex` public in the non-limited C API.

View File

@ -1,2 +0,0 @@
Restore ``_PyWeakref_ClearRef`` that was previously removed in Python 3.13
alpha 1.

View File

@ -1,2 +0,0 @@
Add :c:func:`PyUnstable_Object_ClearWeakRefsNoCallbacks`, which clears
weakrefs without calling their callbacks.

View File

@ -1,3 +0,0 @@
Make mimalloc includes relative to the current file to avoid embedders or
extensions needing to include ``Internal/mimalloc`` if they are already
including internal CPython headers.

View File

@ -1,3 +0,0 @@
Several C declarations with names that didn't start with the ``Py`` or ``_Py``
prefixes, which were added by mistake in 3.13 alpha and beta releases, were
moved to internal headers.

View File

@ -1,2 +0,0 @@
Add :c:macro:`PyHASH_MULTIPLIER` constant: prime multiplier used in string
and various other hashes. Patch by Victor Stinner.

View File

@ -1,4 +0,0 @@
Added ``Py_BEGIN_CRITICAL_SECTION_SEQUENCE_FAST`` and
``Py_END_CRITICAL_SECTION_SEQUENCE_FAST`` macros to make it possible to use
PySequence_Fast APIs safely when free-threaded, and update str.join to work
without the GIL using them.

View File

@ -1,2 +0,0 @@
Add :c:func:`PyContext_AddWatcher` and :c:func:`PyContext_ClearWatcher` APIs to
register callbacks to receive notification on enter and exit of context objects.

View File

@ -1 +0,0 @@
The critical section API is now public as part of the non-limited C API.

View File

@ -1 +0,0 @@
Restore the removed ``_PyLong_NumBits()`` function. It is used by the pywin32 project. Patch by Ethan Smith

View File

@ -1,2 +0,0 @@
Macros ``Py_IS_NAN``, ``Py_IS_INFINITY`` and ``Py_IS_FINITE``
are :term:`soft deprecated`.

View File

@ -1,5 +0,0 @@
Fix crash when a thread state that was created by :c:func:`PyGILState_Ensure`
calls a destructor that during :c:func:`PyThreadState_Clear` that
calls back into :c:func:`PyGILState_Ensure` and :c:func:`PyGILState_Release`.
This might occur when in the free-threaded build or when using thread-local
variables whose destructors call :c:func:`PyGILState_Ensure`.

View File

@ -1,2 +0,0 @@
Creating :c:data:`immutable types <Py_TPFLAGS_IMMUTABLETYPE>` with mutable
bases was deprecated since 3.12 and now raises a :exc:`TypeError`.

View File

@ -1,2 +0,0 @@
Soft deprecate the :c:macro:`!Py_MEMCPY` macro: use directly ``memcpy()``
instead. Patch by Victor Stinner.

View File

@ -1,16 +0,0 @@
Add a new :c:type:`PyUnicodeWriter` API to create a Python :class:`str` object:
* :c:func:`PyUnicodeWriter_Create`.
* :c:func:`PyUnicodeWriter_Discard`.
* :c:func:`PyUnicodeWriter_Finish`.
* :c:func:`PyUnicodeWriter_WriteChar`.
* :c:func:`PyUnicodeWriter_WriteUTF8`.
* :c:func:`PyUnicodeWriter_WriteUCS4`.
* :c:func:`PyUnicodeWriter_WriteWideChar`.
* :c:func:`PyUnicodeWriter_WriteStr`.
* :c:func:`PyUnicodeWriter_WriteRepr`.
* :c:func:`PyUnicodeWriter_WriteSubstring`.
* :c:func:`PyUnicodeWriter_Format`.
* :c:func:`PyUnicodeWriter_DecodeUTF8Stateful`.
Patch by Victor Stinner.

View File

@ -1,2 +0,0 @@
Set :data:`errno` in :c:func:`_Py_c_pow` on overflows. Patch by Sergey B
Kirpichev.

View File

@ -1,4 +0,0 @@
:c:func:`PyUnicode_FromFormat` no longer produces the ending ``\ufffd``
character for truncated C string when use precision with ``%s`` and ``%V``.
It now truncates the string before the start of truncated multibyte
sequences.

View File

@ -1,2 +0,0 @@
In the limited C API 3.14 and newer, :c:func:`Py_TYPE` is now implemented as an
opaque function call to hide implementation details. Patch by Victor Stinner.

View File

@ -1,13 +0,0 @@
Add new functions to convert C ``<stdint.h>`` numbers from/to Python
:class:`int`:
* :c:func:`PyLong_FromInt32`
* :c:func:`PyLong_FromUInt32`
* :c:func:`PyLong_FromInt64`
* :c:func:`PyLong_FromUInt64`
* :c:func:`PyLong_AsInt32`
* :c:func:`PyLong_AsUInt32`
* :c:func:`PyLong_AsInt64`
* :c:func:`PyLong_AsUInt64`
Patch by Victor Stinner.

View File

@ -1,10 +0,0 @@
Remove the following unstable functions:
* ``PyUnstable_Replace_Executor()``
* ``PyUnstable_SetOptimizer()``
* ``PyUnstable_GetOptimizer()``
* ``PyUnstable_GetExecutor()``
* ``PyUnstable_Optimizer_NewCounter()``
* ``PyUnstable_Optimizer_NewUOpOptimizer()``
Patch by Victor Stinner.

View File

@ -1,3 +0,0 @@
:c:func:`PyDict_Next` no longer locks the dictionary in the free-threaded
build. The locking needs to be done by the caller around the entire iteration
loop.

View File

@ -1,3 +0,0 @@
Remove the private ``_Py_CODEUNIT`` type from the public C API. The internal
``pycore_code.h`` header should now be used to get this internal type. Patch by
Victor Stinner.

View File

@ -1,3 +0,0 @@
Restore the private ``_PyArg_Parser`` structure and the private
``_PyArg_ParseTupleAndKeywordsFast()`` function, previously removed in Python
3.13 alpha 1. Patch by Victor Stinner.

View File

@ -1,2 +0,0 @@
Removed debug build assertions related to interning strings, which were
falsely triggered by stable ABI extensions.

View File

@ -1,12 +0,0 @@
:c:func:`PyUnicode_InternInPlace` no longer prevents its argument from being
garbage collected.
Several functions that take ``char *`` are now
documented as possibly preventing string objects from being garbage
collected; refer to their documentation for details:
:c:func:`PyUnicode_InternFromString`,
:c:func:`PyDict_SetItemString`,
:c:func:`PyObject_SetAttrString`,
:c:func:`PyObject_DelAttrString`,
:c:func:`PyUnicode_InternFromString`,
and ``PyModule_Add*`` convenience functions.

View File

@ -1 +0,0 @@
Export private :c:func:`!_PyBytes_Join` again.

View File

@ -1,3 +0,0 @@
Make :any:`PyObject_Print` work around a bug in Android and OpenBSD which
prevented it from throwing an exception when trying to write to a read-only
stream.

View File

@ -1,3 +0,0 @@
Export the :c:func:`PySignal_SetWakeupFd` function. Previously, the function
was documented but it couldn't be used in 3rd party code. Patch by Victor
Stinner.

View File

@ -1,2 +0,0 @@
Add :c:func:`PyBytes_Join(sep, iterable) <PyBytes_Join>` function, similar to
``sep.join(iterable)`` in Python. Patch by Victor Stinner.

View File

@ -1,2 +0,0 @@
Add :c:func:`PyIter_NextItem` to replace :c:func:`PyIter_Next`, which has an
ambiguous return value. Patch by Irit Katriel and Erlend Aasland.

View File

@ -1,2 +0,0 @@
Fix :c:func:`PyEval_GetLocals` to avoid :exc:`SystemError` ("bad argument to
internal function"). Patch by Victor Stinner.

View File

@ -1,2 +0,0 @@
Add :c:func:`Py_HashBuffer` to compute and return the hash value of a buffer.
Patch by Antoine Pitrou and Victor Stinner.

View File

@ -1,4 +0,0 @@
Added a slot ``Py_tp_vectorcall`` to set
:c:member:`~PyTypeObject.tp_vectorcall` via the :c:func:`PyType_FromSpec`
function family. Limited API extensions can use this feature to provide more
efficient vector call-based implementation of ``__new__`` and ``__init__``.

View File

@ -1,4 +0,0 @@
:c:macro:`Py_RELATIVE_OFFSET` is now allowed in :c:type:`PyMemberDef` for
the special offset member ``"__vectorcalloffset__"``, as well as the
discouraged special offset members ``"__dictoffset__"`` and
``"__weaklistoffset__"``

View File

@ -1,8 +0,0 @@
Add functions to get and set the current runtime Python configuration:
* :c:func:`PyConfig_Get`
* :c:func:`PyConfig_GetInt`
* :c:func:`PyConfig_Set`
* :c:func:`PyConfig_Names`
Patch by Victor Stinner.

View File

@ -1,18 +0,0 @@
Add functions to configure the Python initialization (:pep:`741`):
* :c:func:`PyInitConfig_Create`
* :c:func:`PyInitConfig_Free`
* :c:func:`PyInitConfig_GetError`
* :c:func:`PyInitConfig_GetExitCode`
* :c:func:`PyInitConfig_HasOption`
* :c:func:`PyInitConfig_GetInt`
* :c:func:`PyInitConfig_GetStr`
* :c:func:`PyInitConfig_GetStrList`
* :c:func:`PyInitConfig_FreeStrList`
* :c:func:`PyInitConfig_SetInt`
* :c:func:`PyInitConfig_SetStr`
* :c:func:`PyInitConfig_SetStrList`
* :c:func:`PyInitConfig_AddModule`
* :c:func:`Py_InitializeFromInitConfig`
Patch by Victor Stinner.

View File

@ -1,3 +0,0 @@
:c:func:`PyType_FromSpec`, :c:func:`PyType_FromSpecWithBases` and
:c:func:`PyType_FromModuleAndSpec` will now fail if the metaclass of the new
type has custom :c:member:`~PyTypeObject.tp_new`.

View File

@ -1,2 +0,0 @@
Fixed a bug that prevented circular imports of extension modules that use
single-phase initialization.

View File

@ -1,3 +0,0 @@
In the limited C API 3.14 and newer, :c:func:`Py_REFCNT` is now implemented
as an opaque function call to hide implementation details. Patch by Victor
Stinner.

View File

@ -1,2 +0,0 @@
Add :c:func:`PyType_GetBaseByToken` and :c:data:`Py_tp_token` slot for easier
type checking, related to :pep:`489` and :pep:`630`.

View File

@ -1,2 +0,0 @@
Fix crash when importing modules containing state and single-phase
initialization in a subinterpreter.

View File

@ -1,3 +0,0 @@
:c:type:`PyDictObject` no longer maintains a private version tag field
``ma_version_tag`` per :pep:`699`. This field was originally added in
Python 3.6 (:pep:`509`) and deprecated in Python 3.12.

View File

@ -1,2 +0,0 @@
Add :c:func:`PyUnicode_Equal` function to the limited C API: test if two
strings are equal. Patch by Victor Stinner.

View File

@ -1,3 +0,0 @@
Convert the :ref:`curses.window <curses-window-objects>` static type exposed
by the :c:macro:`!PyCursesWindow_Type` macro in ``Include/py_curses.h`` to a
:ref:`heap type <heap-types>`. Patch by Bénédikt Tran.

View File

@ -1 +0,0 @@
Fix handling of ``doc`` argument to subclasses of ``property``.

View File

@ -1,2 +0,0 @@
Improve the error message from ``a in b`` when ``b`` is not a container
to mention the term "container".

View File

@ -1 +0,0 @@
Add class methods :meth:`float.from_number` and :meth:`complex.from_number`.

View File

@ -1 +0,0 @@
:c:func:`Py_Finalize` now deletes all interned strings.

View File

@ -1 +0,0 @@
Changed the error message for awaiting something that can't be awaited from "object <type> can't be used in an await expression" to "'<type>' object can't be awaited".

View File

@ -1 +0,0 @@
Improve the :meth:`~object.__repr__` output of :class:`~ast.AST` nodes.

View File

@ -1,2 +0,0 @@
Avoid assertion failure for debug builds when calling
``object.__sizeof__(1)``

View File

@ -1,2 +0,0 @@
Improve error messages when a string, bytes or bytearray object of length 1
is expected.

View File

@ -1 +0,0 @@
Raise ``TypeError`` when passing a string to :func:`difflib.unified_diff` and :func:`difflib.context_diff`.

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