Python 3.11.0a1

This commit is contained in:
Pablo Galindo 2021-10-05 13:42:52 +01:00
parent 5146877623
commit 7c12e4835e
No known key found for this signature in database
GPG Key ID: FFE87404168BD847
483 changed files with 5677 additions and 1509 deletions

View File

@ -20,10 +20,10 @@
#define PY_MINOR_VERSION 11 #define PY_MINOR_VERSION 11
#define PY_MICRO_VERSION 0 #define PY_MICRO_VERSION 0
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA #define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA
#define PY_RELEASE_SERIAL 0 #define PY_RELEASE_SERIAL 1
/* Version as a string */ /* Version as a string */
#define PY_VERSION "3.11.0a0" #define PY_VERSION "3.11.0a1"
/*--end constants--*/ /*--end constants--*/
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2. /* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.

File diff suppressed because it is too large Load Diff

5098
Misc/NEWS.d/3.11.0a1.rst Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +0,0 @@
Fix broken ``make install`` that caused standard library extension modules
to be unnecessarily and incorrectly rebuilt during the install phase of
cpython.

View File

@ -1,2 +0,0 @@
The Windows build now accepts :envvar:`EnableControlFlowGuard` set to
``guard`` to enable CFG.

View File

@ -1 +0,0 @@
Improved error message when building without a Windows SDK installed.

View File

@ -1 +0,0 @@
Enable building using a Visual Studio 2022 install on Windows.

View File

@ -1,2 +0,0 @@
Add support for building with clang thin lto via --with-lto=thin/full. Patch
by Dong-hee Na and Brett Holman.

View File

@ -1,3 +0,0 @@
Generate lines in relevant files for frozen modules. Up until now each of
the files had to be edited manually. This change makes it easier to add to
and modify the frozen modules.

View File

@ -1,7 +0,0 @@
The ncurses function extended_color_content was introduced in 2017
(https://invisible-island.net/ncurses/NEWS.html#index-t20170401). The
ncurses-devel package in CentOS 7 had a older version ncurses resulted in
compilation error. For compiling ncurses with extended color support, we
verify the version of the ncurses library >= 20170401.

View File

@ -1 +0,0 @@
Fixes Haiku platform build.

View File

@ -1,3 +0,0 @@
Windows builds now regenerate frozen modules as the first part of the build.
Previously the regeneration was later in the build, which would require it
to be restarted if any modules had changed.

View File

@ -1,4 +0,0 @@
Freeze stdlib modules that are imported during startup. This provides
significant performance improvements to startup. If necessary, use the
previously added "-X frozen_modules=off" commandline option to force
importing the source modules.

View File

@ -1,3 +0,0 @@
Avoid building with the Windows 11 SDK previews automatically. This may be
overridden by setting the ``DefaultWindowsSDKVersion`` environment variable
before building.

View File

@ -1 +0,0 @@
Add a new :c:func:`PyType_GetName` function to get type's short name.

View File

@ -1,9 +0,0 @@
Remove deprecated ``Py_UNICODE`` APIs: ``PyUnicode_Encode``,
``PyUnicode_EncodeUTF7``, ``PyUnicode_EncodeUTF8``,
``PyUnicode_EncodeUTF16``, ``PyUnicode_EncodeUTF32``,
``PyUnicode_EncodeLatin1``, ``PyUnicode_EncodeMBCS``,
``PyUnicode_EncodeDecimal``, ``PyUnicode_EncodeRawUnicodeEscape``,
``PyUnicode_EncodeCharmap``, ``PyUnicode_EncodeUnicodeEscape``,
``PyUnicode_TransformDecimalToASCII``, ``PyUnicode_TranslateCharmap``,
``PyUnicodeEncodeError_Create``, ``PyUnicodeTranslateError_Create``. See
:pep:`393` and :pep:`624` for reference.

View File

@ -1,2 +0,0 @@
:c:func:`PyCodec_Unregister` is now properly exported as a function in the
Windows Stable ABI DLL.

View File

@ -1,4 +0,0 @@
Remove ``PyErr_SetFromErrnoWithUnicodeFilename()``,
``PyErr_SetFromWindowsErrWithUnicodeFilename()``, and
``PyErr_SetExcFromWindowsErrWithUnicodeFilename()``. They are not documented
and have been deprecated since Python 3.3.

View File

@ -1,14 +0,0 @@
Deprecate the following functions to configure the Python initialization:
* :c:func:`PySys_AddWarnOptionUnicode`
* :c:func:`PySys_AddWarnOption`
* :c:func:`PySys_AddXOption`
* :c:func:`PySys_HasWarnOptions`
* :c:func:`Py_SetPath`
* :c:func:`Py_SetProgramName`
* :c:func:`Py_SetPythonHome`
* :c:func:`Py_SetStandardStreamEncoding`
* :c:func:`_Py_SetProgramFullPath`
Use the new :c:type:`PyConfig` API of the :ref:`Python Initialization
Configuration <init-config>` instead (:pep:`587`).

View File

@ -1 +0,0 @@
The undocumented function :c:func:`Py_FrozenMain` is removed from the Limited API.

View File

@ -1,4 +0,0 @@
The :c:func:`PyType_Ready` function now raises an error if a type is defined
with the :const:`Py_TPFLAGS_HAVE_GC` flag set but has no traverse function
(:c:member:`PyTypeObject.tp_traverse`).
Patch by Victor Stinner.

View File

@ -1,3 +0,0 @@
Convert the :c:func:`Py_TYPE` and :c:func:`Py_SIZE` macros to static inline
functions. The :c:func:`Py_SET_TYPE` and :c:func:`Py_SET_SIZE` functions
must now be used to set an object type and size. Patch by Victor Stinner.

View File

@ -1,3 +0,0 @@
:c:func:`Py_IS_TYPE` no longer uses :c:func:`Py_TYPE` to avoid a compiler
warning: no longer cast ``const PyObject*`` to ``PyObject*``.
Patch by Victor Stinner.

View File

@ -1,3 +0,0 @@
The list in :ref:`stable-abi-list` now shows the public name
:c:struct:`PyFrameObject` rather than ``_frame``. The non-existing
entry ``_node`` no longer appears in the list.

View File

@ -1 +0,0 @@
Removed documentation for the removed ``PyParser_*`` C API.

View File

@ -1,20 +0,0 @@
Remove 4 private trashcan C API functions which were only kept for the backward
compatibility of the stable ABI with Python 3.8 and older, since the trashcan
API was not usable with the limited C API on Python 3.8 and older. The
trashcan API was excluded from the limited C API in Python 3.9.
Removed functions:
* _PyTrash_deposit_object()
* _PyTrash_destroy_chain()
* _PyTrash_thread_deposit_object()
* _PyTrash_thread_destroy_chain()
The trashcan C API was never usable with the limited C API, since old trashcan
macros accessed directly :c:type:`PyThreadState` members like
``_tstate->trash_delete_nesting``, whereas the :c:type:`PyThreadState`
structure is opaque in the limited C API.
Exclude also the the ``PyTrash_UNWIND_LEVEL`` constant from the C API.
Patch by Victor Stinner.

View File

@ -1,4 +0,0 @@
:c:func:`Py_RunMain` now resets :c:data:`PyImport_Inittab` to its initial value
at exit. It must be possible to call :c:func:`PyImport_AppendInittab` or
:c:func:`PyImport_ExtendInittab` at each Python initialization.
Patch by Victor Stinner.

View File

@ -1,4 +0,0 @@
Added the ``co_qualname`` to the ``PyCodeObject`` structure to propagate the
qualified name from the compiler to code objects.
Patch by Gabriele N. Tornetta

View File

@ -1,4 +0,0 @@
The ``Py_TPFLAGS_HAVE_VERSION_TAG`` type flag now does nothing. The
``Py_TPFLAGS_HAVE_AM_SEND`` flag (which was added in 3.10) is removed. Both
were unnecessary because it is not possible to have type objects with the
relevant fields missing.

View File

@ -1 +0,0 @@
Remove ``crypt.h`` include from the public ``Python.h`` header.

View File

@ -1,2 +0,0 @@
Reverts removal of the old buffer protocol because they are part of stable
ABI.

View File

@ -1,2 +0,0 @@
Add a new :c:func:`PyType_GetQualName` function to get type's qualified
name.

View File

@ -1,3 +0,0 @@
Add a deallocator to the :class:`bool` type to detect refcount bugs in C
extensions which call ``Py_DECREF(Py_True);`` or ``Py_DECREF(Py_False);`` by
mistake. Patch by Victor Stinner.

View File

@ -1,2 +0,0 @@
Add the :c:macro:`Py_NO_INLINE` macro to disable inlining on a function.
Patch by Victor Stinner.

View File

@ -1,3 +0,0 @@
Add the :c:macro:`Py_ALWAYS_INLINE` macro to ask the compiler to always
inline a static inline function. The compiler can ignore it and decides to
not inline the function. Patch by Victor Stinner.

View File

@ -1 +0,0 @@
:meth:`BufferedReader.peek` no longer raises :exc:`ValueError` when the entire file has already been buffered.

View File

@ -1,2 +0,0 @@
The PyThread_acquire_lock_timed() function now clamps the timeout if it is
too large, rather than aborting the process. Patch by Victor Stinner.

View File

@ -1,3 +0,0 @@
Asynchronous comprehensions are now allowed inside comprehensions in
asynchronous functions. Outer comprehensions implicitly become
asynchronous.

View File

@ -1 +0,0 @@
Fix crash when using passing a non-exception to a generator's ``throw()`` method. Patch by Noah Oxer

View File

@ -1,3 +0,0 @@
When compiling :class:`ast.AST` objects with recursive references
through :func:`compile`, the interpreter doesn't crash anymore instead
it raises a :exc:`RecursionError`.

View File

@ -1 +0,0 @@
Fix a confusing error message in :func:`str.format`.

View File

@ -1 +0,0 @@
More accurate error messages for access of unbound locals or free vars.

View File

@ -1,4 +0,0 @@
Compute cell offsets relative to locals in compiler. Allows the interpreter
to treats locals and cells a single array, which is slightly more efficient.
Also make the LOAD_CLOSURE opcode an alias for LOAD_FAST. Preserving
LOAD_CLOSURE helps keep bytecode a bit more readable.

View File

@ -1 +0,0 @@
Add native_thread_id to PyThreadState. Patch by Gabriele N. Tornetta.

View File

@ -1,4 +0,0 @@
Emit a deprecation warning if the numeric literal is immediately followed by
one of keywords: and, else, for, if, in, is, or. Raise a syntax error with
more informative message if it is immediately followed by other keyword or
identifier.

View File

@ -1 +0,0 @@
Document the signature and ``default`` argument in the docstring of the new ``anext`` builtin.

View File

@ -1,7 +0,0 @@
"Zero cost" exception handling.
* Uses a lookup table to determine how to handle exceptions.
* Removes SETUP_FINALLY and POP_TOP block instructions, eliminating the runtime overhead of try statements.
* Reduces the size of the frame object by about 60%.
Patch by Mark Shannon

View File

@ -1,2 +0,0 @@
The parser will prioritize tokenizer errors over custom syntax errors when
raising exceptions. Patch by Pablo Galindo.

View File

@ -1,2 +0,0 @@
Corrent the syntax error message regarding multiple exception types to not
refer to "exception groups". Patch by Pablo Galindo

View File

@ -1,3 +0,0 @@
Compiler now optimizes simple C-style formatting with literal format
containing only format codes %s, %r and %a by converting them to f-string
expressions.

View File

@ -1,3 +0,0 @@
Add ``CALL_METHOD_KW`` opcode to speed up method calls with keyword
arguments. Idea originated from PyPy. A side effect is executing
``CALL_METHOD`` is now branchless in the evaluation loop.

View File

@ -1 +0,0 @@
Improve :func:`str.__getitem__` error message

View File

@ -1 +0,0 @@
Fix incorrect dictkeys_reversed and dictitems_reversed function signatures in C code, which broke webassembly builds.

View File

@ -1,2 +0,0 @@
Move 'fast' locals and other variables from the frame object to a per-thread
datastack.

View File

@ -1,2 +0,0 @@
Fixed a crash in the parser that manifest when raising tokenizer errors when
an existing exception was present. Patch by Pablo Galindo.

View File

@ -1 +0,0 @@
String caches in ``compile.c`` are now subinterpreter compatible.

View File

@ -1,2 +0,0 @@
Fix error message in the parser involving keyword arguments with invalid
expressions. Patch by Pablo Galindo

View File

@ -1,3 +0,0 @@
The parser doesn't report generic syntax errors that happen in a position
further away that the one it reached in the first pass. Patch by Pablo
Galindo

View File

@ -1,3 +0,0 @@
Implement quickening in the interpreter. This offers no advantages as
yet, but is an enabler of future optimizations. See PEP 659 for full
explanation.

View File

@ -1,3 +0,0 @@
Fix a crash at Python exit when a deallocator function removes the last strong
reference to a heap type.
Patch by Victor Stinner.

View File

@ -1,3 +0,0 @@
``PyCodeObject`` gained ``co_fastlocalnames`` and ``co_fastlocalkinds`` as
the the authoritative source of fast locals info. Marshaled code objects
have changed accordingly.

View File

@ -1,3 +0,0 @@
Avoid side effects of checking for specialized syntax errors in the REPL
that was causing it to ask for extra tokens after a syntax error had been
detected. Patch by Pablo Galindo

View File

@ -1,4 +0,0 @@
Fix a regression in :func:`type` when a metaclass raises an exception. The C
function :c:func:`type_new` must properly report the exception when a metaclass
constructor raises an exception and the winner class is not the metaclass.
Patch by Victor Stinner.

View File

@ -1,5 +0,0 @@
A new opcode MAKE_CELL has been added that effectively moves some of
the work done on function entry into the compiler and into the eval
loop. In addition to creating the required cell objects, the new
opcode converts relevant arguments (and other locals) to cell
variables on function entry.

View File

@ -1,2 +0,0 @@
Improve Unicode support in non-UTF locales on Oracle Solaris. This issue
does not affect other Solaris systems.

View File

@ -1,4 +0,0 @@
Constructors of subclasses of some buitin classes (e.g. :class:`tuple`,
:class:`list`, :class:`frozenset`) no longer accept arbitrary keyword
arguments. Subclass of :class:`set` can now define a ``__new__()`` method
with additional keyword parameters without overriding also ``__init__()``.

View File

@ -1,2 +0,0 @@
Improve error message for ``try`` blocks without ``except`` or ``finally``
blocks. Patch by Pablo Galindo.

View File

@ -1,2 +0,0 @@
Fix a crash in the :mod:`sqlite3` module that happened when the garbage
collector clears :class:`sqlite.Statement` objects. Patch by Pablo Galindo

View File

@ -1 +0,0 @@
Improve tokenizer error with improved locations. Patch by Pablo Galindo.

View File

@ -1,4 +0,0 @@
Computation of the offsets of cell variables is done in the compiler instead
of at runtime. This reduces the overhead of handling cell and free
variables, especially in the case where a variable is both an argument and
cell variable.

View File

@ -1,2 +0,0 @@
Fix a regression when identifying incorrect characters in syntax errors.
Patch by Pablo Galindo

View File

@ -1,11 +0,0 @@
Initial implementation of adaptive specialization of LOAD_ATTR
Four specialized forms of LOAD_ATTR are added:
* LOAD_ATTR_SLOT
* LOAD_ATTR_SPLIT_KEYS
* LOAD_ATTR_WITH_HINT
* LOAD_ATTR_MODULE

View File

@ -1 +0,0 @@
Fix an edge case when displaying text from files with encoding in syntax errors. Patch by Pablo Galindo.

View File

@ -1 +0,0 @@
Improve syntax errors for invalid "as" targets. Patch by Pablo Galindo

View File

@ -1,7 +0,0 @@
Implement adaptive specialization for LOAD_GLOBAL
Two specialized forms of LOAD_GLOBAL are added:
* LOAD_GLOBAL_MODULE
* LOAD_GLOBAL_BUILTIN

View File

@ -1,4 +0,0 @@
Directly imported objects and modules (through import and from import
statements) don't generate ``LOAD_METHOD``/``CALL_METHOD`` for directly
accessed objects on their namespace. They now use the regular
``LOAD_ATTR``/``CALL_FUNCTION``.

View File

@ -1 +0,0 @@
Exact integer exponentiation (like ``i**2`` or ``pow(i, 2)``) with a small exponent is much faster, due to reducing overhead in such cases.

View File

@ -1,2 +0,0 @@
Fix a possible crash in the tokenizer when raising syntax errors for
unclosed strings. Patch by Pablo Galindo.

View File

@ -1,2 +0,0 @@
Fix error location information for tokenizer errors raised on initialization
of the tokenizer. Patch by Pablo Galindo.

View File

@ -1,2 +0,0 @@
Improve the syntax error when mixing positional and keyword patterns. Patch
by Pablo Galindo.

View File

@ -1,3 +0,0 @@
Make sure that the line number is set when entering a comprehension scope.
Ensures that backtraces inclusing generator expressions show the correct
line number.

View File

@ -1,4 +0,0 @@
A :exc:`TypeError` is now raised instead of an :exc:`AttributeError` in
:keyword:`with` and :keyword:`async with` statements for objects which do
not support the :term:`context manager` or :term:`asynchronous context
manager` protocols correspondingly.

View File

@ -1 +0,0 @@
Fix ltrace functionality when exceptions are raised. Patch by Pablo Galindo

View File

@ -1,2 +0,0 @@
Modules will always have a dictionary, even when created by
``types.ModuleType.__new__()``

View File

@ -1,2 +0,0 @@
Fix a crash in ``types.Union`` objects when creating a union of an object
with bad ``__module__`` field.

View File

@ -1,3 +0,0 @@
Remove the pass-through for :func:`hash` of :class:`weakref.proxy` objects
to prevent unintended consequences when the original referred object
dies while the proxy is part of a hashable object. Patch by Pablo Galindo.

View File

@ -1,2 +0,0 @@
Add ``__parameters__`` attribute and ``__getitem__``
operator to ``types.Union``. Patch provided by Yurii Karabas.

View File

@ -1,2 +0,0 @@
Implement GC methods for ``types.Union`` to break reference cycles and
prevent memory leaks.

View File

@ -1,3 +0,0 @@
Heap types with the :const:`Py_TPFLAGS_IMMUTABLETYPE` flag can now inherit the
:pep:`590` vectorcall protocol. Previously, this was only possible for
:ref:`static types <static-types>`. Patch by Erlend E. Aasland.

View File

@ -1,3 +0,0 @@
Fix a memory consumption and copying performance regression in earlier 3.10
beta releases if someone used an output buffer larger than 4GiB with
zlib.decompress on input data that expands that large.

View File

@ -1,2 +0,0 @@
Remove uses of :c:func:`PyObject_GC_Del` in error path when initializing
:class:`types.GenericAlias`.

View File

@ -1,6 +0,0 @@
Code objects can now provide the column information for instructions when
available. This is levaraged during traceback printing to show the
expressions responsible for errors.
Contributed by Pablo Galindo, Batuhan Taskaya and Ammar Askar as part of
:pep:`657`.

View File

@ -1,3 +0,0 @@
:mod:`typing` now searches for type parameters in ``types.Union`` objects.
``get_type_hints`` will also properly resolve annotations with nested
``types.Union`` objects. Patch provided by Yurii Karabas.

View File

@ -1,4 +0,0 @@
An obsolete internal cache of shared object file handles added in 1995 that
attempted, but did not guarantee, that a .so would not be dlopen'ed twice to
work around flaws in mid-1990s posix-ish operating systems has been removed
from dynload_shlib.c.

View File

@ -1,3 +0,0 @@
The threading debug (:envvar:`PYTHONTHREADDEBUG` environment variable) is
deprecated in Python 3.10 and will be removed in Python 3.12. This feature
requires a debug build of Python. Patch by Victor Stinner.

View File

@ -1,5 +0,0 @@
All necessary data for executing a Python function (local variables, stack,
etc) is now kept in a per-thread stack. Frame objects are lazily allocated
on demand. This increases performance by about 7% on the standard benchmark
suite. Introspection and debugging are unaffected as frame objects are
always available when needed. Patch by Mark Shannon.

View File

@ -1 +0,0 @@
Tuned the string-searching algorithm of fastsearch.h to have a shorter inner loop for most cases.

View File

@ -1,2 +0,0 @@
The ``@classmethod`` decorator can now wrap other classmethod-like
descriptors.

View File

@ -1 +0,0 @@
Fix ``__instancecheck__`` and ``__subclasscheck__`` for the union type.

View File

@ -1,2 +0,0 @@
Mapping patterns in ``match`` statements with two or more equal literal
keys will now raise a :exc:`SyntaxError` at compile-time.

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