Python 3.12.0a4

This commit is contained in:
Thomas Wouters 2023-01-10 13:07:54 +01:00
parent f07daaf4f7
commit 3d5d3f7af6
114 changed files with 1172 additions and 263 deletions

View File

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

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# Autogenerated by Sphinx on Tue Dec 6 19:31:49 2022
# Autogenerated by Sphinx on Tue Jan 10 13:08:32 2023
topics = {'assert': 'The "assert" statement\n'
'**********************\n'
'\n'
@ -2382,12 +2382,10 @@ topics = {'assert': 'The "assert" statement\n'
'finished,\n'
'but if the sequence is empty, they will not have been assigned '
'to at\n'
'all by the loop. Hint: the built-in function "range()" returns '
'an\n'
'iterator of integers suitable to emulate the effect of Pascals '
'"for i\n'
':= a to b do"; e.g., "list(range(3))" returns the list "[0, 1, '
'2]".\n'
'all by the loop. Hint: the built-in type "range()" represents\n'
'immutable arithmetic sequences of integers. For instance, '
'iterating\n'
'"range(3)" successively yields 0, 1, and then 2.\n'
'\n'
'Changed in version 3.11: Starred elements are now allowed in '
'the\n'
@ -2726,7 +2724,7 @@ topics = {'assert': 'The "assert" statement\n'
'the\n'
' target list, it will be treated the same as an error '
'occurring\n'
' within the suite would be. See step 6 below.\n'
' within the suite would be. See step 7 below.\n'
'\n'
'6. The suite is executed.\n'
'\n'
@ -5668,7 +5666,8 @@ topics = {'assert': 'The "assert" statement\n'
'be\n'
'determined by scanning the entire text of the block for name '
'binding\n'
'operations.\n'
'operations. See the FAQ entry on UnboundLocalError for '
'examples.\n'
'\n'
'If the "global" statement occurs within a block, all uses of '
'the names\n'
@ -5970,10 +5969,9 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'Names in the target list are not deleted when the loop is finished,\n'
'but if the sequence is empty, they will not have been assigned to at\n'
'all by the loop. Hint: the built-in function "range()" returns an\n'
'iterator of integers suitable to emulate the effect of Pascals "for '
'i\n'
':= a to b do"; e.g., "list(range(3))" returns the list "[0, 1, 2]".\n'
'all by the loop. Hint: the built-in type "range()" represents\n'
'immutable arithmetic sequences of integers. For instance, iterating\n'
'"range(3)" successively yields 0, 1, and then 2.\n'
'\n'
'Changed in version 3.11: Starred elements are now allowed in the\n'
'expression list.\n',
@ -7781,7 +7779,7 @@ topics = {'assert': 'The "assert" statement\n'
'within a code block. The local variables of a code block can be\n'
'determined by scanning the entire text of the block for name '
'binding\n'
'operations.\n'
'operations. See the FAQ entry on UnboundLocalError for examples.\n'
'\n'
'If the "global" statement occurs within a block, all uses of the '
'names\n'
@ -11322,35 +11320,35 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
"str.encode(encoding='utf-8', errors='strict')\n"
'\n'
' Return an encoded version of the string as a bytes '
'object. Default\n'
' encoding is "\'utf-8\'". *errors* may be given to set a '
'different\n'
' error handling scheme. The default for *errors* is '
'"\'strict\'",\n'
' meaning that encoding errors raise a "UnicodeError". '
' Return the string encoded to "bytes".\n'
'\n'
' *encoding* defaults to "\'utf-8\'"; see Standard '
'Encodings for\n'
' possible values.\n'
'\n'
' *errors* controls how encoding errors are handled. If '
'"\'strict\'"\n'
' (the default), a "UnicodeError" exception is raised. '
'Other possible\n'
' values are "\'ignore\'", "\'replace\'", '
'"\'xmlcharrefreplace\'",\n'
' "\'backslashreplace\'" and any other name registered '
'via\n'
' "codecs.register_error()", see section Error Handlers. '
'For a list\n'
' of possible encodings, see section Standard Encodings.\n'
' "codecs.register_error()". See Error Handlers for '
'details.\n'
'\n'
' By default, the *errors* argument is not checked for '
'best\n'
' performances, but only used at the first encoding '
'error. Enable the\n'
' Python Development Mode, or use a debug build to check '
'*errors*.\n'
' For performance reasons, the value of *errors* is not '
'checked for\n'
' validity unless an encoding error actually occurs, '
'Python\n'
' Development Mode is enabled or a debug build is used.\n'
'\n'
' Changed in version 3.1: Support for keyword arguments '
'added.\n'
' Changed in version 3.1: Added support for keyword '
'arguments.\n'
'\n'
' Changed in version 3.9: The *errors* is now checked in '
'development\n'
' mode and in debug mode.\n'
' Changed in version 3.9: The value of the *errors* '
'argument is now\n'
' checked in Python Development Mode and in debug mode.\n'
'\n'
'str.endswith(suffix[, start[, end]])\n'
'\n'
@ -14099,6 +14097,7 @@ topics = {'assert': 'The "assert" statement\n'
' >>> class Counter(dict):\n'
' ... def __missing__(self, key):\n'
' ... return 0\n'
' ...\n'
' >>> c = Counter()\n'
" >>> c['red']\n"
' 0\n'
@ -14425,6 +14424,7 @@ topics = {'assert': 'The "assert" statement\n'
' >>> n = 0\n'
' >>> for val in values:\n'
' ... n += val\n'
' ...\n'
' >>> print(n)\n'
' 504\n'
'\n'
@ -14452,8 +14452,7 @@ topics = {'assert': 'The "assert" statement\n'
' >>> # get back a read-only proxy for the original '
'dictionary\n'
' >>> values.mapping\n'
" mappingproxy({'eggs': 2, 'sausage': 1, 'bacon': 1, "
"'spam': 500})\n"
" mappingproxy({'bacon': 1, 'spam': 500})\n"
" >>> values.mapping['spam']\n"
' 500\n',
'typesmethods': 'Methods\n'
@ -15499,7 +15498,7 @@ topics = {'assert': 'The "assert" statement\n'
' returns without an error, then "__exit__()" will always be\n'
' called. Thus, if an error occurs during the assignment to the\n'
' target list, it will be treated the same as an error occurring\n'
' within the suite would be. See step 6 below.\n'
' within the suite would be. See step 7 below.\n'
'\n'
'6. The suite is executed.\n'
'\n'

1132
Misc/NEWS.d/3.12.0a4.rst Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,2 +0,0 @@
Allow override of ac_cv_cxx_thread so that cross compiled python can set
-pthread for CXX.

View File

@ -1 +0,0 @@
Avoid exporting Python symbols in linked Windows applications when the core is built as static.

View File

@ -1,8 +0,0 @@
Removed the ``--with-system-ffi`` ``configure`` option; ``libffi`` must
now always be supplied by the system on all non-Windows platforms. The
option has had no effect on non-Darwin platforms for several releases, and
in 3.11 only had the non-obvious effect of invoking ``pkg-config`` to
find ``libffi`` and never setting ``-DUSING_APPLE_OS_LIBFFI``. Now on
Darwin platforms ``configure`` will first check for the OS ``libffi`` and
then fall back to the same processing as other platforms if it is not
found.

View File

@ -1,3 +0,0 @@
The :c:macro:`Py_CLEAR`, :c:macro:`Py_SETREF` and :c:macro:`Py_XSETREF` macros
now only evaluate their arguments once. If an argument has side effects, these
side effects are no longer duplicated. Patch by Victor Stinner.

View File

@ -1,2 +0,0 @@
In argument parsing, after deallocating newly allocated memory, reset its
pointer to NULL.

View File

@ -1 +0,0 @@
Raising SystemError on import will now have its cause be set to the original unexpected exception.

View File

@ -1,3 +0,0 @@
``ctypes`` arrays of length 0 now report a correct itemsize when a
``memoryview`` is constructed from them, rather than always giving a value
of 0.

View File

@ -1 +0,0 @@
Add :data:`ssl.OP_LEGACY_SERVER_CONNECT`

View File

@ -1 +0,0 @@
Improve performance of ``list.pop`` for small lists.

View File

@ -1,3 +0,0 @@
Add an internal version number to code objects, to give better versioning of
inner functions and comprehensions, and thus better specialization of those
functions. This change is invisible to both Python and C extensions.

View File

@ -1 +0,0 @@
Pack debugging location tables more efficiently during bytecode compilation.

View File

@ -1 +0,0 @@
Freeze :mod:`zipimport` module into ``_bootstrap_python``.

View File

@ -1 +0,0 @@
Improve the performance of :func:`hasattr` for type objects with a missing attribute.

View File

@ -1,2 +0,0 @@
Honor existing errors obtained when searching for mismatching parentheses in
the tokenizer. Patch by Pablo Galindo

View File

@ -1 +0,0 @@
Specialize ``FOR_ITER`` for tuples.

View File

@ -1,4 +0,0 @@
Improve ``BUILD_LIST`` opcode so that it works similarly to the
``BUILD_TUPLE`` opcode, by stealing references from the stack rather than
repeatedly using stack operations to set list elements. Implementation
details are in a new private API :c:func:`_PyList_FromArraySteal`.

View File

@ -1,3 +0,0 @@
When built with ``--enable-pystats``, stats collection is now off by
default. To enable it early at startup, pass the ``-Xpystats`` flag. Stats
are now always dumped, even if switched off.

View File

@ -1 +0,0 @@
``None`` now hashes to a constant value. This is not a requirements change.

View File

@ -1 +0,0 @@
Improved the hashing algorithm for code objects, mitigating some hash collisions.

View File

@ -1,2 +0,0 @@
Initialize frame->previous in frameobject.c to fix a segmentation fault when
accessing frames created by :c:func:`PyFrame_New`.

View File

@ -1,3 +0,0 @@
The ``BINARY_SUBSCR_LIST_INT`` and ``BINARY_SUBSCR_TUPLE_INT``
instructions are no longer used for negative integers because
those instructions always miss when encountering negative integers.

View File

@ -1 +0,0 @@
Internal compiler functions (in compile.c) now consistently return -1 on error and 0 on success.

View File

@ -1,2 +0,0 @@
Redefine the ``_Py_CODEUNIT`` typedef as a union to describe its layout to
the C compiler, avoiding type punning and improving clarity.

View File

@ -1,2 +0,0 @@
Handle NaNs when specializing :opcode:`COMPARE_OP` for :class:`float`
values.

View File

@ -1,2 +0,0 @@
Improve the output of ``co_lines`` by emitting only one entry for each line
range.

View File

@ -1,2 +0,0 @@
Convert ``vars``, ``dir``, ``next``, ``getattr``, and ``iter`` to argument
clinic.

View File

@ -1 +0,0 @@
Fix incorrect result and delay in :func:`socket.getfqdn`. Patch by Dominic Socular.

View File

@ -1 +0,0 @@
Improve the accuracy of ``sum()`` with compensated summation.

View File

@ -1 +0,0 @@
Add :meth:`int.is_integer` to improve duck type compatibility between :class:`int` and :class:`float`.

View File

@ -1,5 +0,0 @@
Fix :exc:`SyntaxError` on comprehension rebind checking with names that are
not actually redefined.
Now reassigning ``b`` in ``[(b := 1) for a, b.prop in some_iter]`` is allowed.
Reassigning ``a`` is still disallowed as per :pep:`572`.

View File

@ -1,3 +0,0 @@
Fix an issue where "incomplete" frames could be briefly visible to C code
while other frames are being torn down, possibly resulting in corruption or
hard crashes of the interpreter while running finalizers.

View File

@ -1 +0,0 @@
Update the native_thread_id field of PyThreadState after fork.

View File

@ -1 +0,0 @@
Fix :func:`int.__sizeof__` calculation to include the 1 element ob_digit array for 0 and False.

View File

@ -1,2 +0,0 @@
Removed the co_nplaincellvars field from the code object, as it is
redundant.

View File

@ -1 +0,0 @@
Added ``_PyFrame_NumSlotsForCodeObject``, which returns the number of slots needed in a frame for a given code object.

View File

@ -1,2 +0,0 @@
Remove the LOAD_ATTR_METHOD_WITH_DICT specialized instruction. Stats show it
is not useful.

View File

@ -1,4 +0,0 @@
Add new :opcode:`CALL_INSTRINSIC_1` instruction. Remove
:opcode:`IMPORT_STAR`, :opcode:`PRINT_EXPR` and
:opcode:`STOPITERATION_ERROR`, replacing them with the
:opcode:`CALL_INSTRINSIC_1` instruction.

View File

@ -1,2 +0,0 @@
Remove :opcode:`UNARY_POSITIVE`, :opcode:`ASYNC_GEN_WRAP` and
:opcode:`LIST_TO_TUPLE`, replacing them with intrinsics.

View File

@ -1 +0,0 @@
Fix misleading default value in :func:`input`'s ``__text_signature__``.

View File

@ -1 +0,0 @@
Clarify use of octal format of mode argument in help(os.chmod) as well as help(os.fchmod)

View File

@ -1 +0,0 @@
Remove claim in documentation that the ``stripdir``, ``prependdir`` and ``limit_sl_dest`` parameters of :func:`compileall.compile_dir` and :func:`compileall.compile_file` could be :class:`bytes`.

View File

@ -1,2 +0,0 @@
Document existing ``attr`` parameter to :func:`curses.window.vline` function
in :mod:`curses`.

View File

@ -1,2 +0,0 @@
Fix a reference counting issue when a :mod:`ctypes` callback with return
type :class:`~ctypes.py_object` returns ``None``, which could cause crashes.

View File

@ -1,2 +0,0 @@
Accept :class:`os.PathLike` (such as :class:`pathlib.Path`) in the ``stripdir`` arguments of
:meth:`compileall.compile_file` and :meth:`compileall.compile_dir`.

View File

@ -1,3 +0,0 @@
Make :class:`pathlib.PurePath` and :class:`~pathlib.Path` subclassable
(private to start). Previously, attempting to instantiate a subclass
resulted in an :exc:`AttributeError` being raised. Patch by Barney Gale.

View File

@ -1 +0,0 @@
Optimize the :class:`~fractions.Fraction` arithmetics for small components.

View File

@ -1 +0,0 @@
Fix reStructuredText syntax errors in docstrings in the :mod:`enum` module.

View File

@ -1,3 +0,0 @@
Deprecate passing more than one positional argument to
:meth:`pathlib.PurePath.relative_to` and
:meth:`~pathlib.PurePath.is_relative_to`.

View File

@ -1 +0,0 @@
Fix a 3.11 regression in :func:`~contextlib.asynccontextmanager`, which caused it to propagate exceptions with incorrect tracebacks and fix a 3.11 regression in :func:`~contextlib.contextmanager`, which caused it to propagate exceptions with incorrect tracebacks for :exc:`StopIteration`.

View File

@ -1,2 +0,0 @@
``inspect.signature`` was raising ``TypeError`` on call with mock objects.
Now it correctly returns ``(*args, **kwargs)`` as infered signature.

View File

@ -1,2 +0,0 @@
Reduced the memory usage of :func:`urllib.parse.unquote` and
:func:`urllib.parse.unquote_to_bytes` on large values.

View File

@ -1,7 +0,0 @@
Add missing TCP socket options from Linux: ``TCP_MD5SIG``,
``TCP_THIN_LINEAR_TIMEOUTS``, ``TCP_THIN_DUPACK``, ``TCP_REPAIR``,
``TCP_REPAIR_QUEUE``, ``TCP_QUEUE_SEQ``, ``TCP_REPAIR_OPTIONS``,
``TCP_TIMESTAMP``, ``TCP_CC_INFO``, ``TCP_SAVE_SYN``, ``TCP_SAVED_SYN``,
``TCP_REPAIR_WINDOW``, ``TCP_FASTOPEN_CONNECT``, ``TCP_ULP``,
``TCP_MD5SIG_EXT``, ``TCP_FASTOPEN_KEY``, ``TCP_FASTOPEN_NO_COOKIE``,
``TCP_ZEROCOPY_RECEIVE``, ``TCP_INQ``, ``TCP_TX_DELAY``.

View File

@ -1 +0,0 @@
:mod:`asyncio` is optimized to avoid excessive copying when writing to socket and use :meth:`~socket.socket.sendmsg` if the platform supports it. Patch by Kumar Aditya.

View File

@ -1,6 +0,0 @@
Several improvements to :func:`inspect.signature`'s handling of ``__text_signature``.
- Fixes a case where :func:`inspect.signature` dropped parameters
- Fixes a case where :func:`inspect.signature` raised :exc:`tokenize.TokenError`
- Allows :func:`inspect.signature` to understand defaults involving binary operations of constants
- :func:`inspect.signature` is documented as only raising :exc:`TypeError` or :exc:`ValueError`, but sometimes raised :exc:`RuntimeError`. These cases now raise :exc:`ValueError`
- Removed a dead code path

View File

@ -1 +0,0 @@
Fix :mod:`doctest` failure on :class:`types.MethodWrapperType` in modules.

View File

@ -1 +0,0 @@
Remove ``Jython`` partial compatibility code from several stdlib modules.

View File

@ -1 +0,0 @@
Add :pep:`585` support for :class:`multiprocessing.queues.Queue`.

View File

@ -1,2 +0,0 @@
Add :func:`inspect.markcoroutinefunction` decorator which manually marks
a function as a coroutine for the benefit of :func:`iscoroutinefunction`.

View File

@ -1,2 +0,0 @@
Fix ``.save()`` method for ``LWPCookieJar`` and ``MozillaCookieJar``: saved
file was not truncated on repeated save.

View File

@ -1 +0,0 @@
Fix :func:`inspect.getsource` handling of decorator calls with nested parentheses.

View File

@ -1,5 +0,0 @@
Add :ref:`enum-dataclass-support` to the
:class:`~enum.Enum` :meth:`~enum.Enum.__repr__`.
When inheriting from a :class:`~dataclasses.dataclass`,
only show the field names in the value section of the member :func:`repr`,
and not the dataclass' class name.

View File

@ -1,3 +0,0 @@
Fix issue with :func:`os.walk` where a :exc:`RecursionError` would occur on
deep directory structures by adjusting the implementation of
:func:`os.walk` to be iterative instead of recursive.

View File

@ -1,4 +0,0 @@
Unify error messages in JSON serialization between
``json.dumps(float('nan'), allow_nan=False)`` and ``json.dumps(float('nan'),
allow_nan=False, indent=<SOMETHING>)``. Now both include the representation
of the value that could not be serialized.

View File

@ -1,2 +0,0 @@
Update :exc:`~urllib.error.HTTPError` to be initialized properly, even if
the ``fp`` is ``None``. Patch by Dong-hee Na.

View File

@ -1,5 +0,0 @@
Rename the *fmt* parameter of the pure-Python implementation of
:meth:`datetime.time.strftime` to *format*. Rename the *t* parameter of
:meth:`datetime.datetime.fromtimestamp` to *timestamp*. These changes mean
the parameter names in the pure-Python implementation now match the
parameter names in the C implementation. Patch by Alex Waygood.

View File

@ -1 +0,0 @@
Fix ``tuple`` subclasses being cast to ``tuple`` when used as enum values.

View File

@ -1,2 +0,0 @@
Fixes inconsistent handling of case sensitivity of *extrasaction* arg in
:class:`csv.DictWriter`.

View File

@ -1 +0,0 @@
Fix regression in :mod:`asyncio` where a subprocess would sometimes lose data received from pipe.

View File

@ -1 +0,0 @@
Improve signatures for enums and flags.

View File

@ -1,5 +0,0 @@
A :exc:`DeprecationWarning` may be raised when :func:`os.fork()` or
:func:`os.forkpty()` is called from multi-threaded processes. Forking
with threads is unsafe and can cause deadlocks, crashes and subtle
problems. Lack of a warning does not indicate that the fork call was
actually safe, as Python may not be aware of all threads.

View File

@ -1,2 +0,0 @@
Set a default value of 1.0 for the ``lambd`` parameter in
random.expovariate().

View File

@ -1 +0,0 @@
Instantiation of ``Mock()`` and ``AsyncMock()`` is now 3.8x faster.

View File

@ -1 +0,0 @@
Fix JSON serialization of OrderedDict. It now preserves the order of keys.

View File

@ -1,2 +0,0 @@
Provide C implementation for :func:`asyncio.current_task` for a 4x-6x
speedup.

View File

@ -1,2 +0,0 @@
Fix ref cycle in :class:`!asyncio._SelectorSocketTransport` by removing ``_read_ready_cb`` in ``close``.

View File

@ -1 +0,0 @@
Fix crash when creating an instance of :class:`!_ctypes.CField`.

View File

@ -1 +0,0 @@
Speed up :func:`asyncio.get_running_loop` by removing redundant ``getpid`` checks. Patch by Kumar Aditya.

View File

@ -1,2 +0,0 @@
:mod:`http.server` now checks that an index page is actually a regular file before trying
to serve it. This avoids issues with directories named ``index.html``.

View File

@ -1 +0,0 @@
Add :meth:`Fraction.is_integer` to check whether a :class:`fractions.Fraction` is an integer. This improves duck type compatibility with :class:`float` and :class:`int`.

View File

@ -1 +0,0 @@
Fix the interaction of :func:`unittest.mock.seal` with :class:`unittest.mock.AsyncMock`.

View File

@ -1,2 +0,0 @@
Small simplification of :func:`http.cookiejar.eff_request_host` that
improves readability and better matches the RFC wording.

View File

@ -1,3 +0,0 @@
Improve performance of :meth:`pathlib.Path.absolute` by nearly 2x. This comes
at the cost of a performance regression in :meth:`pathlib.Path.cwd`, which is
generally used less frequently in user code.

View File

@ -1 +0,0 @@
Fixed a bug where importlib.resources.as_file was leaving file pointers open

View File

@ -1,6 +0,0 @@
``importlib.resources.files`` now accepts a module as an anchor instead of
only accepting packages. If a module is passed, resources are resolved
adjacent to that module (in the same package or at the package root). The
parameter was renamed from ``package`` to ``anchor`` with a compatibility
shim for those passing by keyword. Additionally, the new ``anchor``
parameter is now optional and will default to the caller's module.

View File

@ -1 +0,0 @@
Fix :func:`asyncio.open_connection` to skip binding to local addresses of different family. Patch by Kumar Aditya.

View File

@ -1 +0,0 @@
Add math.sumprod() to compute the sum of products.

View File

@ -1 +0,0 @@
Simplify and optimize :func:`os.walk` by using :func:`isinstance` checks to check the top of the stack.

View File

@ -1,7 +0,0 @@
``Mock`` objects which are not unsafe will now raise an
``AttributeError`` when accessing an attribute that matches the name
of an assertion but without the prefix ``assert_``, e.g. accessing
``called_once`` instead of ``assert_called_once``.
This is in addition to this already happening for accessing attributes
with prefixes ``assert``, ``assret``, ``asert``, ``aseert``,
and ``assrt``.

View File

@ -1,2 +0,0 @@
Change ``SimpleHTTPRequestHandler`` to support subclassing to provide a
different set of index file names instead of using ``__init__`` parameters.

View File

@ -1 +0,0 @@
Fix ``unittest.mock.Mock`` not respecting the spec for attribute names prefixed with ``assert``.

View File

@ -1 +0,0 @@
Fix crash in :mod:`pyexpat` by statically allocating ``PyExpat_CAPI`` capsule.

View File

@ -1 +0,0 @@
Avoid RecursionError on ``repr`` if a dataclass field definition has a cyclic reference.

View File

@ -1,3 +0,0 @@
Microoptimizations for :meth:`fractions.Fraction.__round__`,
:meth:`fractions.Fraction.__ceil__` and
:meth:`fractions.Fraction.__floor__`.

View File

@ -1 +0,0 @@
Make :meth:`email.message.Message.__contains__` twice as fast.

View File

@ -1 +0,0 @@
Add :data:`socket.IP_PKTINFO` constant.

View File

@ -1,2 +0,0 @@
Modify :func:`random.choice` implementation to once again work with NumPy
arrays.

View File

@ -1 +0,0 @@
Speed up :func:`math.fsum` by removing defensive ``volatile`` qualifiers.

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