Python 3.11.0a3

This commit is contained in:
Pablo Galindo 2021-12-08 22:23:08 +00:00
parent 3ea574f35b
commit 2e91dba437
No known key found for this signature in database
GPG key ID: FFE87404168BD847
129 changed files with 1798 additions and 596 deletions

View file

@ -20,10 +20,10 @@
#define PY_MINOR_VERSION 11
#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.11.0a2+"
#define PY_VERSION "3.11.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

1287
Misc/NEWS.d/3.11.0a3.rst Normal file

File diff suppressed because it is too large Load diff

View file

@ -1 +0,0 @@
Run smelly.py tool from $(srcdir).

View file

@ -1 +0,0 @@
Skip the marshal step for frozen modules by generating C code that produces a set of ready-to-use code objects. This speeds up startup time by another 10% or more.

View file

@ -1,2 +0,0 @@
configure.ac now uses custom helper macros and ``AC_CACHE_CHECK`` to
simplify and speed up configure runs.

View file

@ -1 +0,0 @@
``configure --enable-loadable-sqlite-extensions`` is now handled by new ``PY_SQLITE_ENABLE_LOAD_EXTENSION`` macro instead of logic in setup.py.

View file

@ -1 +0,0 @@
``configure`` now prints a warning when pkg-config is missing.

View file

@ -1,2 +0,0 @@
``configure.ac`` is now compatible with autoconf 2.71. Deprecated checks
``STDC_HEADERS`` and ``AC_HEADER_TIME`` have been removed.

View file

@ -1,2 +0,0 @@
On macOS, the build system no longer passes ``search_paths_first`` to the
linker. The flag has been the default since Xcode 4 / macOS 10.6.

View file

@ -1 +0,0 @@
gdbm and dbm build dependencies are now detected by ``configure``.

View file

@ -1,2 +0,0 @@
The build dependencies for :mod:`zlib`, :mod:`bz2`, and :mod:`lzma` are now
detected by ``configure``.

View file

@ -1,2 +0,0 @@
The build dependencies for :mod:`sqlite3` are now detected by ``configure`` and
``pkg-config``. Patch by Erlend E. Aasland.

View file

@ -1,2 +0,0 @@
:program:`configure` has a new option ``--with-pkg-config`` to disable or
require pkg-config.

View file

@ -1,2 +0,0 @@
Settings for :mod:`decimal` internal C extension are now detected by
``configure``. The bundled ``libmpdec`` library is built in ``Makefile``.

View file

@ -1,2 +0,0 @@
Settings for :mod:`pyexpat` C extension are now detected by ``configure``.
The bundled ``expat`` library is built in ``Makefile``.

View file

@ -1 +0,0 @@
Python now supports building with Visual Studio 2022 (MSVC v143, VS Version 17.0). Patch by Jeremiah Vivian.

View file

@ -1,3 +0,0 @@
``configure`` now uses a unified format to set state, compiler flags, and
linker flags in Makefile. The new macro ``PY_STDLIB_MOD`` sets three
variables that are consumed by ``Modules/Setup`` and ``setup.py``.

View file

@ -1,2 +0,0 @@
``configure`` now creates ``Modules/Setup.stdlib`` with conditionally
enabled/disabled extension module lines. The file is not used, yet.

View file

@ -1,2 +0,0 @@
Mandatory core modules, that are required to bootstrap Python, are now in
``Modules/Setup.bootstrap``.

View file

@ -1,10 +0,0 @@
Add ``autoconf`` helpers for saving and restoring environment variables:
* ``SAVE_ENV``: Save ``$CFLAGS``, ``$LDFLAGS``, ``$LIBS``, and
``$CPPFLAGS``.
* ``RESTORE_ENV``: Restore ``$CFLAGS``, ``$LDFLAGS``, ``$LIBS``, and
``$CPPFLAGS``.
* ``WITH_SAVE_ENV([SCRIPT])``: Run ``SCRIPT`` wrapped with ``SAVE_ENV`` and
``RESTORE_ENV``.
Patch by Erlend E. Aasland.

View file

@ -1 +0,0 @@
Port builtin hashlib extensions to ``PY_STDLIB_MOD`` macro and ``addext()``.

View file

@ -1 +0,0 @@
Get rid of the ``_bootstrap_python`` build step. The deepfreeze.py script is now run using ``$(PYTHON_FOR_REGEN)`` which can be Python 3.7 or newer (on Windows, 3.8 or newer).

View file

@ -1,2 +0,0 @@
The ``_freeze_module`` program path can now be overridden on the command
line, e.g. ``make FREEZE_MODULE=../x86_64/Program/_freeze_module``.

View file

@ -1,2 +0,0 @@
``setup.py`` now uses ``CC`` from environment first to discover multiarch
and cross compile paths.

View file

@ -1,4 +0,0 @@
Python now compiles on platforms without ``sigset_t``. Several functions
in :mod:`signal` are not available when ``sigset_t`` is missing.
Based on patch by Roman Yurchak for pyodide.

View file

@ -1,3 +0,0 @@
``configure`` now accepts machine ``wasm32`` or ``wasm64`` and OS ``wasi``
or ``emscripten`` for cross building, e.g. ``wasm32-unknown-emscripten``,
``wasm32-wasi``, or ``wasm32-unknown-wasi``.

View file

@ -1,4 +0,0 @@
``make regen-all`` now produces the same output when run from a directory
other than the source tree: when building Python out of the source tree.
pegen now strips directory of the "generated by pygen from <FILENAME>" header
Patch by Victor Stinner.

View file

@ -1,3 +0,0 @@
Update ``config.guess`` to 2021-06-03 and ``config.sub`` to 2021-08-14.
``Makefile`` now has an ``update-config`` target to make updating more
convenient.

View file

@ -1,3 +0,0 @@
``configure`` now checks for functions ``fork1, getegid,
geteuid, getgid, getppid, getuid, opendir, pipe, system, wait,
ttyname``.

View file

@ -1,3 +0,0 @@
``configure`` now checks for socket ``shutdown`` function. The check makes
it possible to disable ``SYS_shutdown`` with ``ac_cv_func_shutdown=no`` in
CONFIG_SITE.

View file

@ -1 +0,0 @@
Disable unusable core extension modules on WASM/Emscripten targets.

View file

@ -1 +0,0 @@
Emscripten platform now uses ``.wasm`` suffix by default.

View file

@ -1,2 +0,0 @@
The :program:`configure` script now accepts ``--with-build-python`` and
``--with-freeze-module`` options to make cross compiling easier.

View file

@ -1,4 +0,0 @@
The build system now uses a :program:`_bootstrap_python` interpreter for
freezing and deepfreezing again. To speed up build process the build tools
:program:`_bootstrap_python` and :program:`_freeze_module` are no longer
build with LTO.

View file

@ -1,2 +0,0 @@
CI now verifies that autoconf files have been regenerated with a current and
unpatched autoconf package.

View file

@ -1,2 +0,0 @@
Fix Python.h to build C extensions with Xcode: remove a relative include
from ``Include/cpython/pystate.h``.

View file

@ -1,2 +0,0 @@
Improve the syntax error message for parenthesized arguments. Patch by Pablo
Galindo.

View file

@ -1,3 +0,0 @@
Path calculation (known as ``getpath``) has been reimplemented as a frozen
Python module. This should have no visible impact, but may affect
calculation of all paths referenced in :mod:`sys` and :mod:`sysconfig`.

View file

@ -1,2 +0,0 @@
Replace all numeric ``BINARY_*`` and ``INPLACE_*`` instructions with a single
:opcode:`BINARY_OP` implementation.

View file

@ -1 +0,0 @@
Specialized the ``STORE_SUBSCR`` opcode using the PEP 659 machinery.

View file

@ -1,9 +0,0 @@
The parser now gives a better error message when leaving out the opening
parenthesis ``(`` after a ``def``-statement::
>>> def f:
File "<stdin>", line 1
def f:
^
SyntaxError: expected '('

View file

@ -1 +0,0 @@
Fix a compiler hang when attempting to optimize certain jump patterns.

View file

@ -1,2 +0,0 @@
Make recursion checks a bit more efficient by tracking amount of calls left
before overflow.

View file

@ -1,2 +0,0 @@
Remove an existing "fast path" for old-style string formatting, since
it no longer appears to have any measurable impact.

View file

@ -1,2 +0,0 @@
Fix computation of error location for invalid continuation characters in the
parser. Patch by Pablo Galindo.

View file

@ -1,2 +0,0 @@
Fix crash when :func:`os.fork` is called with an active non-default
memory allocator.

View file

@ -1,2 +0,0 @@
Simplify the implementation of :opcode:`BINARY_OP` by indexing into an array
of function pointers (rather than switching on the oparg).

View file

@ -1,2 +0,0 @@
Fix a segfault when the parser fails without reading any input. Patch by
Pablo Galindo

View file

@ -1,2 +0,0 @@
Fixed a bug in the parser that was causing it to not respect :pep:`263`
coding cookies when no flags are provided. Patch by Pablo Galindo

View file

@ -1 +0,0 @@
Fixed a crash when calling ``.with_traceback(None)`` on ``NameError``. This occurs internally in ``unittest.TestCase.assertRaises()``.

View file

@ -1,2 +0,0 @@
Specialize :opcode:`BINARY_SUBSCR` for classes with a ``__getitem__`` method
implemented in Python

View file

@ -1,3 +0,0 @@
Adds new :opcode:`COPY_FREE_VARS` opcode, to make copying of free variables
from function to frame explicit. Helps optimization of calls to Python
function.

View file

@ -1,2 +0,0 @@
Restore behavior from 3.10 when tracing an exception raised within a with
statement.

View file

@ -1,2 +0,0 @@
Allow the parser to obtain error lines directly from encoded files. Patch by
Pablo Galindo

View file

@ -1,2 +0,0 @@
Improve the tokenizer errors when encountering invisible control characters
in the parser. Patch by Pablo Galindo

View file

@ -1 +0,0 @@
Fix crash when calling coro.cr_frame.clear() after coroutine has been freed.

View file

@ -1 +0,0 @@
Fix :mod:`traceback` display for exceptions with invalid module name.

View file

@ -1,2 +0,0 @@
Allocate space for the interpreter frame in the frame object, to avoid an
additional allocation when the frame object outlives the frame activation.

View file

@ -1 +0,0 @@
Specialized the ``COMPARE_OP`` opcode using the PEP 659 machinery.

View file

@ -1,3 +0,0 @@
Refine the custom syntax error that suggests that a comma may be missing to
trigger only when the expressions are detected between parentheses or
brackets. Patch by Pablo Galindo

View file

@ -1,6 +0,0 @@
The three values of ``exc_info`` are now always consistent with each other.
In particular, the ``type`` and ``traceback`` fields are now derived from
the exception instance. This impacts the return values of :func:`sys.exc_info`
and :c:func:`PyErr_GetExcInfo()` if the exception instance is modified while
the exception is handled, as well as :c:func:`PyErr_SetExcInfo()`, which now
ignores the ``type`` and ``traceback`` arguments provided to it.

View file

@ -1,2 +0,0 @@
Fail the configure step if the selected compiler doesn't support memory
sanitizer. Patch by Pablo Galindo

View file

@ -1,2 +0,0 @@
Reverts a change to the ``code.__new__`` :ref:`audit event <audit-events>`
from an earlier prerelease.

View file

@ -1 +0,0 @@
``is_valid_fd`` now uses faster ``fcntl(fd, F_GETFD)`` on Linux, macOS, and Windows.

View file

@ -1,3 +0,0 @@
Place pointers to dict and values immediately before GC header. This reduces
number of dependent memory loads to access either dict or values from 3 to
1.

View file

@ -1,4 +0,0 @@
The ``__note__`` field was added to :exc:`BaseException`. It is ``None``
by default but can be set to a string which is added to the exception's
traceback.

View file

@ -1 +0,0 @@
:c:func:`_PyErr_ChainStackItem` no longer normalizes ``exc_info`` (including setting the traceback on the exception instance) because ``exc_info`` is always normalized.

View file

@ -1,2 +0,0 @@
Fix the :exc:`SyntaxError` location for errors involving for loops with
invalid targets. Patch by Pablo Galindo

View file

@ -1,5 +0,0 @@
Restore behavior from 3.9 and earlier when sending non-None to newly started
generator. In 3.9 this did not affect the state of the generator. In 3.10.0
and 3.10.1 ``gen_func().send(0)`` is equivalent to
``gen_func().throw(TypeError(...)`` which exhausts the generator. In 3.10.2
onward, the behavior has been reverted to that of 3.9.

View file

@ -1,2 +0,0 @@
Expanded :func:`~dataclasses.astuple` and :func:`~dataclasses.asdict` docs,
warning about deepcopy being applied and providing a workaround.

View file

@ -1,2 +0,0 @@
In the extending chapter of the extending doc, update a paragraph about the
global variables containing exception information.

View file

@ -1,2 +0,0 @@
Update the documentation to note that CPython does not consistently
require iterators to define ``__iter__``.

View file

@ -1,2 +0,0 @@
Update the docstring of the :class:`type` built-in to remove a redundant
line and to mention keyword arguments for the constructor.

View file

@ -1 +0,0 @@
``socket.socket`` documentation is corrected to a class from a function.

View file

@ -1 +0,0 @@
Link doc for sys.prefix to sysconfig doc on installation paths.

View file

@ -1,3 +0,0 @@
Properly marked-up grammar tokens in the documentation are now clickable and
take you to the definition of a given piece of grammar. Patch by Arthur
Milchior.

View file

@ -1 +0,0 @@
Improve cross-references in the documentation for the data model.

View file

@ -1,2 +0,0 @@
``make -C Doc suspicious`` will be removed soon in favor of ``make -C Doc
check``, mark it as deprecated.

View file

@ -1,2 +0,0 @@
Add :func:`inspect.getmembers_static` , it return all members without
triggering dynamic lookup via the descriptor protocol. Patch by Weipeng Hong.

View file

@ -1 +0,0 @@
Add MIME types for N-quads, N-triples, Notation3 and TriG to ``mimetypes``.

View file

@ -1,2 +0,0 @@
Avoid a possible *"RuntimeError: dictionary changed size during iteration"*
when adjusting the process count of :class:`ProcessPoolExecutor`.

View file

@ -1 +0,0 @@
Improve netrc library. netrc file no longer needs to contain all tokens. And if the login name is anonymous, security check is no longer need.

View file

@ -1,3 +0,0 @@
Add ``max_tasks_per_child`` to :class:`concurrent.futures.ProcessPoolExecutor`.
This allows users to specify the maximum number of tasks a single process
should execute before the process needs to be restarted.

View file

@ -1 +0,0 @@
Implement :pep:`585` for :class:`graphlib.TopologicalSorter`.

View file

@ -1 +0,0 @@
Add tests for truncated/missing trailers in gzip.decompress implementation.

View file

@ -1 +0,0 @@
Deprecated legacy functions in :mod:`importlib.resources`.

View file

@ -1 +0,0 @@
Optimize :func:`math.comb` and :func:`math.perm`.

View file

@ -1,2 +0,0 @@
On Windows, :func:`time.sleep` now uses a waitable timer which supports
high-resolution timers. Patch by Dong-hee Na and Eryk Sun.

View file

@ -1 +0,0 @@
Launch GNOME web browsers via gio tool instead of obsolete gvfs-open

View file

@ -1,2 +0,0 @@
Fix the repr of :data:`dataclasses.InitVar` with a type alias to the
built-in class, e.g. ``InitVar[list[int]]``.

View file

@ -1,2 +0,0 @@
Fix :func:`dataclasses.is_dataclass` for dataclasses which are subclasses of
:class:`types.GenericAlias`.

View file

@ -1,2 +0,0 @@
Fix :func:`types.resolve_bases` and :func:`types.new_class` for
:class:`types.GenericAlias` instance as a base.

View file

@ -1 +0,0 @@
Improve output of ``dir()`` with Enums.

View file

@ -1,5 +0,0 @@
When a namespace package is imported before another module from the same
namespace is created/installed in a different :data:`sys.path` location
while the program is running, calling the
:func:`importlib.invalidate_caches` function will now also guarantee the new
module is noticed.

View file

@ -1,3 +0,0 @@
In-place JSON file formatting using ``python3 -m json.tool infile infile``
now works correctly, previously it left the file empty. Patch by Chris
Wesseling.

View file

@ -1 +0,0 @@
Fix bug where :mod:`dis` produced an incorrect oparg when :opcode:`EXTENDED_ARG` is followed by an opcode that does not use its argument.

View file

@ -1 +0,0 @@
In importlib.metadata, fix distribution discovery for an empty path.

View file

@ -1 +0,0 @@
Added *proportional* option to :meth:`statistics.linear_regression`.

View file

@ -1,3 +0,0 @@
Fix a regression in Python 3.11a1 and 3.11a2 where :mod:`sqlite3`
incorrectly would use ``SQLITE_LIMIT_LENGTH`` when checking SQL statement
lengths. Now, ``SQLITE_LIMIT_SQL_LENGTH`` is used. Patch by Erlend E. Aasland.

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