Python 3.13.0a1

This commit is contained in:
Thomas Wouters
2023-10-13 10:50:46 +02:00
parent b7f9661bc1
commit ad056f03ae
638 changed files with 8704 additions and 2857 deletions
+2 -2
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 0
#define PY_RELEASE_SERIAL 1
/* Version as a string */
#define PY_VERSION "3.13.0a0"
#define PY_VERSION "3.13.0a1"
/*--end constants--*/
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
+1953 -1299
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1 +0,0 @@
Add experimental wasi-threads support. Patch by Takashi Yamamoto.
@@ -1,6 +0,0 @@
Include ``commoninstall`` as a prerequisite for ``bininstall``
This ensures that ``commoninstall`` is completed before ``bininstall``
is started when parallel builds are used (``make -j install``), and so
the ``python3`` symlink is only installed after all standard library
modules are installed.
@@ -1,2 +0,0 @@
Autoconf 2.71 and aclocal 1.16.4 is now required to regenerate
:file:`!configure`.
@@ -1,2 +0,0 @@
Document how to perform a WASI build on Linux. Also add
Tools/wasm/build_wasi.sh as a reference implementation of the docs.
@@ -1 +0,0 @@
Fix a regression in :file:`configure` where we could end up unintentionally linking with ``libbsd``.
@@ -1,2 +0,0 @@
SQLite 3.15.2 or newer is required to build the :mod:`sqlite3` extension
module. Patch by Erlend Aasland.
@@ -1,2 +0,0 @@
Fix compilation for platforms without :data:`!O_CLOEXEC`. The issue was
introduced with Python 3.12b1 in :gh:`103295`. Patch by Erlend Aasland.
@@ -1 +0,0 @@
Detect MPI compilers in :file:`configure`.
@@ -1,2 +0,0 @@
Refactor platform triplet detection code and add detection for MIPS soft
float and musl libc.
@@ -1 +0,0 @@
Check for ``linux/limits.h`` before including it in ``Modules/posixmodule.c``.
@@ -1 +0,0 @@
Remove the make target ``regen-opcode-targets``, merge its work into ``regen-opcode`` which repeats most of the calculation. This simplifies the code for the build and reduces code duplication.
@@ -1 +0,0 @@
When calling ``find_python.bat`` with ``-q`` it did not properly silence the output of nuget. That is now fixed.
@@ -1 +0,0 @@
Fix x86_64 GNU/Hurd build
@@ -1,2 +0,0 @@
The ``_stat`` C extension is now built with the :ref:`limited C API
<limited-c-api>`. Patch by Victor Stinner.
@@ -1,3 +0,0 @@
Python built with :file:`configure` :option:`--with-trace-refs` (tracing
references) is now ABI compatible with Python release build and :ref:`debug
build <debug-build>`. Patch by Victor Stinner.
@@ -1,4 +0,0 @@
Fix a race condition in ``make regen-all``. The ``deepfreeze.c`` source and
files generated by Argument Clinic are now generated or updated before
generating "global objects". Previously, some identifiers may miss depending
on the order in which these files were generated. Patch by Victor Stinner.
@@ -1,3 +0,0 @@
Fix Solaris build: no longer redefine the ``gethostname()`` function. Solaris
defines the function since 2005. Patch by Victor Stinner, original patch by
Jakub Kulík.
@@ -1,6 +0,0 @@
Fix building the ``_testcapi`` extension on Linux AArch64 which requires
linking to libatomic when ``<cpython/pyatomic.h>`` is used: the
``_Py_atomic_or_uint64()`` function requires libatomic
``__atomic_fetch_or_8()`` on this platform. The configure script now checks
if linking to libatomic is needed and generates a new LIBATOMIC variable
used to build the _testcapi extension. Patch by Victor Stinner.
@@ -1,2 +0,0 @@
The experimental ``--disable-gil`` configure flag now includes "t" (for "threaded") in
extension ABI tags.
@@ -1,2 +0,0 @@
Remove ``make testall`` target: use ``make buildbottest`` instead. Patch by
Victor Stinner.
@@ -1,2 +0,0 @@
No longer ignore :envvar:`PROFILE_TASK` failure silently: command used by
Profile Guided Optimization (PGO). Patch by Victor Stinner.
@@ -1 +0,0 @@
Fix compile error when building with recent versions of libedit.
@@ -1,3 +0,0 @@
"make check-clean-src" now also checks if the "python" program is found in
the source directory: fail with an error if it does exist. Patch by Victor
Stinner.
@@ -1 +0,0 @@
Properly handle trailing spaces before closing parenthesis in :c:func:`Py_BuildValue` format strings.
@@ -1 +0,0 @@
Add :c:func:`PyModule_Add` function: similar to :c:func:`PyModule_AddObjectRef` and :c:func:`PyModule_AddObject`, but always steals a reference to the value.
@@ -1,5 +0,0 @@
Don't call :c:var:`PyOS_InputHook` or :c:var:`PyOS_ReadlineFunctionPointer`
in subinterpreters, since it's generally difficult to avoid using global
state in their registered callbacks. This also avoids situations where
extensions may find themselves running in a subinterpreter they don't
support (or haven't yet been loaded in).
@@ -1,2 +0,0 @@
Add an unstable C API for hooking in an optimizer. This is mainly internal,
but marked "unstable" to allow third-party experimentation.
@@ -1,3 +0,0 @@
``PY_SSIZE_T_CLEAN`` is no longer required to use ``'#'`` formats in APIs
like :c:func:`PyArg_ParseTuple` and :c:func:`Py_BuildValue`. They uses
``Py_ssize_t`` for ``'#'`` regardless ``PY_SSIZE_T_CLEAN``.
@@ -1 +0,0 @@
Add ``PyUnstable_Exc_PrepReraiseStar`` to the unstable C api to expose the implementation of :keyword:`except* <except_star>`.
@@ -1,3 +0,0 @@
``PyTypeObject.tp_bases`` (and ``tp_mro``) for builtin static types are now
shared by all interpreters, whereas in 3.12-beta1 they were stored on
``PyInterpreterState``. Also note that now the tuples are immortal objects.
@@ -1,10 +0,0 @@
Remove functions deprecated in Python 3.9.
* ``PyEval_CallObject()``, ``PyEval_CallObjectWithKeywords()``: use
:c:func:`PyObject_CallNoArgs` and :c:func:`PyObject_Call` (positional
arguments must not be *NULL*) instead.
* ``PyEval_CallFunction()``: use :c:func:`PyObject_CallFunction` instead.
* ``PyEval_CallMethod()``: use :c:func:`PyObject_CallMethod` instead.
* ``PyCFunction_Call()``: use :c:func:`PyObject_Call` instead.
Patch by Victor Stinner.
@@ -1,17 +0,0 @@
Remove the following old functions to configure the Python initialization,
deprecated in Python 3.11:
* ``PySys_AddWarnOptionUnicode()``
* ``PySys_AddWarnOption()``
* ``PySys_AddXOption()``
* ``PySys_HasWarnOptions()``
* ``PySys_SetArgvEx()``
* ``PySys_SetArgv()``
* ``PySys_SetPath()``
* ``Py_SetPath()``
* ``Py_SetProgramName()``
* ``Py_SetPythonHome()``
* ``Py_SetStandardStreamEncoding()``
* ``_Py_SetProgramFullPath()``
Patch by Victor Stinner.
@@ -1,4 +0,0 @@
Deprecate the old ``Py_UNICODE`` and ``PY_UNICODE_TYPE`` types: use directly
the :c:type:`wchar_t` type instead. Since Python 3.3, ``Py_UNICODE`` and
``PY_UNICODE_TYPE`` are just aliases to :c:type:`wchar_t`. Patch by Victor
Stinner.
@@ -1,4 +0,0 @@
``PyObject_AsCharBuffer()``, ``PyObject_AsReadBuffer()``,
``PyObject_CheckReadBuffer()``, and ``PyObject_AsWriteBuffer()`` are
removed. Please migrate to new buffer protocol; :c:func:`PyObject_GetBuffer`
and :c:func:`PyBuffer_Release`.
@@ -1,11 +0,0 @@
Deprecate old Python initialization functions:
* :c:func:`PySys_ResetWarnOptions`
* :c:func:`Py_GetExecPrefix`
* :c:func:`Py_GetPath`
* :c:func:`Py_GetPrefix`
* :c:func:`Py_GetProgramFullPath`
* :c:func:`Py_GetProgramName`
* :c:func:`Py_GetPythonHome`
Patch by Victor Stinner.
@@ -1,2 +0,0 @@
Remove ``PyEval_InitThreads()`` and ``PyEval_ThreadsInitialized()``
functions, deprecated in Python 3.9. Patch by Victor Stinner.
@@ -1,2 +0,0 @@
Remove ``PyEval_AcquireLock()`` and ``PyEval_ReleaseLock()`` functions,
deprecated in Python 3.2. Patch by Victor Stinner.
@@ -1,3 +0,0 @@
Remove the old private, undocumented and untested ``_PyGC_FINALIZED()`` macro
which was kept for backward compatibility with Python 3.8 and older. Patch by
Victor Stinner.
@@ -1,2 +0,0 @@
:c:func:`PyType_FromMetaclass` now allows metaclasses with ``tp_new``
set to ``NULL``.
@@ -1,3 +0,0 @@
Deprecate the :c:func:`PyImport_ImportModuleNoBlock` function which is just
an alias to :c:func:`PyImport_ImportModule` since Python 3.3. Patch by
Victor Stinner.
@@ -1,3 +0,0 @@
In the limited C API version 3.12, :c:func:`Py_INCREF` and
:c:func:`Py_DECREF` functions are now implemented as opaque function calls
to hide implementation details. Patch by Victor Stinner.
@@ -1,5 +0,0 @@
We've renamed the new (in 3.12) ``PyInterpreterConfig.own_gil`` to
``PyInterpreterConfig.gil`` and changed the meaning of the value from "bool"
to an integer with supported values of ``PyInterpreterConfig_DEFAULT_GIL``,
``PyInterpreterConfig_SHARED_GIL``, and ``PyInterpreterConfig_OWN_GIL``. The
default is "shared".
@@ -1,2 +0,0 @@
Fix a bug in :c:func:`PyErr_WarnExplicit` where an exception could end up
being overwritten if the API failed internally.
@@ -1,5 +0,0 @@
The new :c:func:`PyType_GetDict` provides the dictionary for the given type
object that is normally exposed by ``cls.__dict__``. Normally it's
sufficient to use :c:member:`~PyTypeObject.tp_dict`, but for the static
builtin types :c:member:`!tp_dict` is now always ``NULL``. :c:func:`!PyType_GetDict()`
provides the correct dict object instead.
@@ -1,3 +0,0 @@
Add :c:func:`PyImport_AddModuleRef`: similar to :c:func:`PyImport_AddModule`,
but return a :term:`strong reference` instead of a :term:`borrowed reference`.
Patch by Victor Stinner.
@@ -1,3 +0,0 @@
Add :c:func:`PyWeakref_GetRef` function: similar to
:c:func:`PyWeakref_GetObject` but returns a :term:`strong reference`, or
``NULL`` if the referent is no longer live. Patch by Victor Stinner.
@@ -1,3 +0,0 @@
Deprecate the :c:func:`PyWeakref_GetObject` and
:c:func:`PyWeakref_GET_OBJECT` functions: use the new
:c:func:`PyWeakref_GetRef` function instead. Patch by Victor Stinner.
@@ -1,4 +0,0 @@
Adds :c:func:`PyDict_GetItemRef` and :c:func:`PyDict_GetItemStringRef`
functions: similar to :c:func:`PyDict_GetItemWithError` but returning a
:term:`strong reference` instead of a :term:`borrowed reference`. Patch by
Victor Stinner.
@@ -1,13 +0,0 @@
Remove the old aliases to functions calling functions which were kept for
backward compatibility with Python 3.8 provisional API:
* ``_PyObject_CallMethodNoArgs()``: use ``PyObject_CallMethodNoArgs()``
* ``_PyObject_CallMethodOneArg()``: use ``PyObject_CallMethodOneArg()``
* ``_PyObject_CallOneArg()``: use ``PyObject_CallOneArg()``
* ``_PyObject_FastCallDict()``: use ``PyObject_VectorcallDict()``
* ``_PyObject_Vectorcall()``: use ``PyObject_Vectorcall()``
* ``_PyObject_VectorcallMethod()``: use ``PyObject_VectorcallMethod()``
* ``_PyVectorcall_Function()``: use ``PyVectorcall_Function()``
Just remove the underscore prefix to update your code. Patch by Victor
Stinner.
@@ -1,5 +0,0 @@
If Python is built in :ref:`debug mode <debug-build>` or :option:`with
assertions <--with-assertions>`, :c:func:`PyTuple_SET_ITEM` and
:c:func:`PyList_SET_ITEM` now check the index argument with an assertion. If
the assertion fails, make sure that the size is set before. Patch by Victor
Stinner.
@@ -1,2 +0,0 @@
Remove private ``_PyObject_FastCall()`` function: use ``PyObject_Vectorcall()``
which is available since Python 3.8 (:pep:`590`). Patch by Victor Stinner.
@@ -1,2 +0,0 @@
Remove ``cpython/pytime.h`` header file: it only contained private
functions. Patch by Victor Stinner.
@@ -1,3 +0,0 @@
Remove ``_PyInterpreterState_Get()`` alias to
:c:func:`PyInterpreterState_Get()` which was kept for backward compatibility
with Python 3.8. Patch by Victor Stinner.
@@ -1 +0,0 @@
Add :c:func:`PyObject_GetOptionalAttr` and :c:func:`PyObject_GetOptionalAttrString` functions.
@@ -1 +0,0 @@
Add :c:func:`PyMapping_GetOptionalItem` function.
@@ -1,2 +0,0 @@
Convert :c:func:`PyObject_DelAttr` and :c:func:`PyObject_DelAttrString`
macros to functions. Patch by Victor Stinner.
@@ -1,5 +0,0 @@
Remove private ``_PyUnicode_AsString()`` alias to
:c:func:`PyUnicode_AsUTF8`. It was kept for backward compatibility with
Python 3.0 - 3.2. The :c:func:`PyUnicode_AsUTF8` is available since Python
3.3. The :c:func:`PyUnicode_AsUTF8String` function can be used to keep
compatibility with Python 3.2 and older. Patch by Victor Stinner.
@@ -1,2 +0,0 @@
:c:func:`PyModule_AddObjectRef` is now only available in the limited API
version 3.10 or later.
@@ -1,2 +0,0 @@
Implement the :c:macro:`Py_UNUSED` macro for Windows MSVC compiler. Patch by
Victor Stinner.
@@ -1 +0,0 @@
Improve :exc:`DeprecationWarning` for uses of :c:type:`PyType_Spec` with metaclasses that have custom ``tp_new``.
@@ -1,4 +0,0 @@
Such C API functions as ``PyErr_SetString()``, ``PyErr_Format()``,
``PyErr_SetFromErrnoWithFilename()`` and many others no longer crash or
ignore errors if it failed to format the error message or decode the
filename. Instead, they keep a corresponding error.
@@ -1,4 +0,0 @@
C API functions :c:func:`PyErr_SetFromErrnoWithFilename`,
:c:func:`PyErr_SetExcFromWindowsErrWithFilename` and
:c:func:`PyErr_SetFromWindowsErrWithFilename` save now the error code before
calling :c:func:`PyUnicode_DecodeFSDefault`.
@@ -1,2 +0,0 @@
Add :c:func:`Py_IsFinalizing` function: check if the main Python interpreter is
:term:`shutting down <interpreter shutdown>`. Patch by Victor Stinner.
@@ -1 +0,0 @@
Add atomic operations on additional data types in pyatomic.h.
@@ -1,4 +0,0 @@
Add :c:func:`PyDict_ContainsString` function: same as
:c:func:`PyDict_Contains`, but *key* is specified as a :c:expr:`const char*`
UTF-8 encoded bytes string, rather than a :c:expr:`PyObject*`.
Patch by Victor Stinner.
@@ -1,4 +0,0 @@
Add :c:func:`PyLong_AsInt` function: similar to :c:func:`PyLong_AsLong`, but
store the result in a C :c:expr:`int` instead of a C :c:expr:`long`.
Previously, it was known as the private function :c:func:`!_PyLong_AsInt`
(with an underscore prefix). Patch by Victor Stinner.
@@ -1,3 +0,0 @@
Python built with :file:`configure` :option:`--with-trace-refs` (tracing
references) now supports the :ref:`Limited API <limited-c-api>`. Patch by
Victor Stinner.
@@ -1,3 +0,0 @@
Add :c:func:`PyObject_VisitManagedDict` and :c:func:`PyObject_ClearManagedDict`
functions which must be called by the traverse and clear functions of a type
using :c:macro:`Py_TPFLAGS_MANAGED_DICT` flag. Patch by Victor Stinner.
@@ -1,4 +0,0 @@
Add functions :c:func:`PyObject_HasAttrWithError`,
:c:func:`PyObject_HasAttrStringWithError`,
:c:func:`PyMapping_HasKeyWithError` and
:c:func:`PyMapping_HasKeyStringWithError`.
@@ -1,6 +0,0 @@
``Python.h`` no longer includes these standard header files: ``<time.h>``,
``<sys/select.h>`` and ``<sys/time.h>``. If needed, they should now be included
explicitly. For example, ``<time.h>`` provides the ``clock()`` and ``gmtime()``
functions, ``<sys/select.h>`` provides the ``select()`` function, and
``<sys/time.h>`` provides the ``futimes()``, ``gettimeofday()`` and
``setitimer()`` functions. Patch by Victor Stinner.
@@ -1,4 +0,0 @@
``Python.h`` no longer includes the ``<ieeefp.h>`` standard header. It was
included for the ``finite()`` function which is now provided by the
``<math.h>`` header. It should now be included explicitly if needed. Remove
also the ``HAVE_IEEEFP_H`` macro. Patch by Victor Stinner.
@@ -1,4 +0,0 @@
``Python.h`` no longer includes the ``<unistd.h>`` standard header file. If
needed, it should now be included explicitly. For example, it provides the
functions: ``close()``, ``getpagesize()``, ``getpid()`` and ``sysconf()``.
Patch by Victor Stinner.
@@ -1,5 +0,0 @@
``Python.h`` no longer includes the ``<ctype.h>`` standard header file. If
needed, it should now be included explicitly. For example, it provides
``isalpha()`` and ``tolower()`` functions which are locale dependent. Python
provides locale independent functions, like :c:func:`!Py_ISALPHA` and
:c:func:`!Py_TOLOWER`. Patch by Victor Stinner.
@@ -1,5 +0,0 @@
Add :c:func:`PyThreadState_GetUnchecked()` function: similar to
:c:func:`PyThreadState_Get()`, but don't kill the process with a fatal error if
it is NULL. The caller is responsible to check if the result is NULL.
Previously, the function was private and known as
``_PyThreadState_UncheckedGet()``. Patch by Victor Stinner.
@@ -1,3 +0,0 @@
Add :c:func:`PySys_AuditTuple` function: similar to :c:func:`PySys_Audit`,
but pass event arguments as a Python :class:`tuple` object. Patch by Victor
Stinner.
@@ -1 +0,0 @@
Add :c:type:`PyMutex` internal-only lightweight locking API.
@@ -1,5 +0,0 @@
:c:func:`PyImport_GetImporter` now sets RuntimeError if it fails to get
:data:`sys.path_hooks` or :data:`sys.path_importer_cache` or they are not
list and dict correspondingly. Previously it could return NULL without
setting error in obscure cases, crash or raise SystemError if these
attributes have wrong type.
@@ -1,2 +0,0 @@
Remove undocumented ``PY_TIMEOUT_MAX`` constant from the limited C API.
Patch by Victor Stinner.
@@ -1,2 +0,0 @@
Raise :exc:`TypeError` for duplicate/unknown fields in ``PyStructSequence`` constructor.
Patched by Xuehai Pan.
@@ -1 +0,0 @@
Add :c:func:`PyUnicode_EqualToUTF8AndSize` and :c:func:`PyUnicode_EqualToUTF8` functions.
@@ -1,3 +0,0 @@
If the :c:macro:`Py_LIMITED_API` macro is defined, :c:macro:`!Py_BUILD_CORE`,
:c:macro:`!Py_BUILD_CORE_BUILTIN` and :c:macro:`!Py_BUILD_CORE_MODULE` macros
are now undefined by ``<Python.h>``. Patch by Victor Stinner.
@@ -1,11 +0,0 @@
Specializes calls to most Python classes. Specifically, any class that
inherits from ``object``, or another Python class, and does not override
``__new__``.
The specialized instruction does the following:
1. Creates the object (by calling ``object.__new__``)
2. Pushes a shim frame to the frame stack (to cleanup after ``__init__``)
3. Pushes the frame for ``__init__`` to the frame stack
Speeds up the instantiation of most Python classes.
@@ -1 +0,0 @@
Improve error handling when read :mod:`marshal` data.
@@ -1 +0,0 @@
Update the Python pickle module implementation to match the C implementation of the pickle module. For objects setting reduction methods like :meth:`~object.__reduce_ex__` or :meth:`~object.__reduce__` to ``None``, pickling will result in a :exc:`TypeError`.
@@ -1 +0,0 @@
Add a better, more introspect-able error message when setting attributes on classes without a ``__dict__`` and no slot member for the attribute.
@@ -1 +0,0 @@
Raise :exc:`RuntimeWarning` for unawaited async generator methods like :meth:`~agen.asend`, :meth:`~agen.athrow` and :meth:`~agen.aclose`. Patch by Kumar Aditya.
@@ -1,2 +0,0 @@
If a generator returns a value upon being closed, the value is now returned
by :meth:`generator.close`.
@@ -1,2 +0,0 @@
Tokens emitted by the :mod:`tokenize` module do not include an implicit
``\n`` character in the ``line`` attribute anymore. Patch by Pablo Galindo
@@ -1,2 +0,0 @@
Fix crash when accessing the ``__module__`` attribute of type aliases
defined outside a module. Patch by Jelle Zijlstra.
@@ -1,6 +0,0 @@
Starting new threads and process creation through :func:`os.fork` during interpreter
shutdown (such as from :mod:`atexit` handlers) is no longer supported. It can lead
to race condition between the main Python runtime thread freeing thread states while
internal :mod:`threading` routines are trying to allocate and use the state of just
created threads. Or forked children trying to use the mid-shutdown runtime and thread
state in the child process.
@@ -1,2 +0,0 @@
Fix signature for the new :meth:`~object.__release_buffer__` slot. Patch by Jelle
Zijlstra.
@@ -1,2 +0,0 @@
Ensure that the ``line`` attribute in :class:`tokenize.TokenInfo` objects in
the :mod:`tokenize` module are always correct. Patch by Pablo Galindo
@@ -1,3 +0,0 @@
Ensure that trailing ``DEDENT`` :class:`tokenize.TokenInfo` objects emitted
by the :mod:`tokenize` module are reported as in Python 3.11. Patch by Pablo
Galindo
@@ -1 +0,0 @@
Do not include an additional final ``NL`` token when parsing files having CRLF lines. Patch by Marta Gómez.
@@ -1,2 +0,0 @@
Fix handling of multiline parenthesized lambdas in
:func:`inspect.getsource`. Patch by Pablo Galindo
@@ -1 +0,0 @@
Show CRLF lines in the tokenize string attribute in both NL and NEWLINE tokens. Patch by Marta Gómez.
@@ -1,2 +0,0 @@
Fix :func:`super` calls on types with custom :c:member:`~PyTypeObject.tp_getattro`
implementation (e.g. meta-types.)

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