Merge tag 'v3.9.0a6'

This commit is contained in:
Łukasz Langa 2020-04-28 16:27:46 +02:00
commit d66685aad6
No known key found for this signature in database
GPG key ID: B26995E310250568
122 changed files with 1313 additions and 291 deletions

View file

@ -20,10 +20,10 @@
#define PY_MINOR_VERSION 9
#define PY_MICRO_VERSION 0
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA
#define PY_RELEASE_SERIAL 5
#define PY_RELEASE_SERIAL 6
/* Version as a string */
#define PY_VERSION "3.9.0a5+"
#define PY_VERSION "3.9.0a6"
/*--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 Mon Mar 23 17:18:04 2020
# Autogenerated by Sphinx on Mon Apr 27 22:35:16 2020
topics = {'assert': 'The "assert" statement\n'
'**********************\n'
'\n'
@ -1877,9 +1877,9 @@
' value is false. A counter-intuitive implication is that '
'not-a-number\n'
' values are not equal to themselves. For example, if "x =\n'
' float(\'NaN\')", "3 < x", "x < 3", "x == x", "x != x" are '
'all false.\n'
' This behavior is compliant with IEEE 754.\n'
' float(\'NaN\')", "3 < x", "x < 3" and "x == x" are all '
'false, while "x\n'
' != x" is true. This behavior is compliant with IEEE 754.\n'
'\n'
'* "None" and "NotImplemented" are singletons. **PEP 8** '
'advises\n'
@ -3150,7 +3150,7 @@
'\n'
'When a description of an arithmetic operator below uses the '
'phrase\n'
'“the numeric arguments are converted to a common type,” this '
'“the numeric arguments are converted to a common type, this '
'means\n'
'that the operator implementation for built-in types works as '
'follows:\n'
@ -3414,7 +3414,7 @@
'\n'
' Changed in version 3.7: "object.__format__(x, \'\')" is '
'now\n'
' equivalent to "str(x)" rather than "format(str(self), '
' equivalent to "str(x)" rather than "format(str(x), '
'\'\')".\n'
'\n'
'object.__lt__(self, other)\n'
@ -5962,19 +5962,18 @@
'convention.\n'
'\n'
'"__*__"\n'
' System-defined names. These names are defined by the '
'interpreter\n'
' and its implementation (including the standard library). '
'Current\n'
' system names are discussed in the Special method names '
'section and\n'
' elsewhere. More will likely be defined in future versions '
'of\n'
' Python. *Any* use of "__*__" names, in any context, that '
'does not\n'
' follow explicitly documented use, is subject to breakage '
'without\n'
' warning.\n'
' System-defined names, informally known as “dunder” names. '
'These\n'
' names are defined by the interpreter and its '
'implementation\n'
' (including the standard library). Current system names are\n'
' discussed in the Special method names section and '
'elsewhere. More\n'
' will likely be defined in future versions of Python. *Any* '
'use of\n'
' "__*__" names, in any context, that does not follow '
'explicitly\n'
' documented use, is subject to breakage without warning.\n'
'\n'
'"__*"\n'
' Class-private names. Names in this category, when used '
@ -6110,19 +6109,19 @@
'convention.\n'
'\n'
'"__*__"\n'
' System-defined names. These names are defined by the '
'interpreter\n'
' and its implementation (including the standard library). '
'Current\n'
' system names are discussed in the Special method names '
'section and\n'
' elsewhere. More will likely be defined in future versions '
'of\n'
' Python. *Any* use of "__*__" names, in any context, that '
'does not\n'
' follow explicitly documented use, is subject to breakage '
'without\n'
' warning.\n'
' System-defined names, informally known as “dunder” names. '
'These\n'
' names are defined by the interpreter and its '
'implementation\n'
' (including the standard library). Current system names '
'are\n'
' discussed in the Special method names section and '
'elsewhere. More\n'
' will likely be defined in future versions of Python. '
'*Any* use of\n'
' "__*__" names, in any context, that does not follow '
'explicitly\n'
' documented use, is subject to breakage without warning.\n'
'\n'
'"__*"\n'
' Class-private names. Names in this category, when used '
@ -7007,7 +7006,7 @@
'program is represented by objects or by relations between '
'objects. (In\n'
'a sense, and in conformance to Von Neumanns model of a “stored\n'
'program computer,” code is also represented by objects.)\n'
'program computer, code is also represented by objects.)\n'
'\n'
'Every object has an identity, a type and a value. An objects\n'
'*identity* never changes once it has been created; you may think '
@ -8168,7 +8167,7 @@
'\n'
' Changed in version 3.7: "object.__format__(x, \'\')" is '
'now\n'
' equivalent to "str(x)" rather than "format(str(self), '
' equivalent to "str(x)" rather than "format(str(x), '
'\'\')".\n'
'\n'
'object.__lt__(self, other)\n'
@ -9915,6 +9914,35 @@
'*start* and\n'
' *end* are interpreted as in slice notation.\n'
'\n'
'str.removeprefix(prefix, /)\n'
'\n'
' If the string starts with the *prefix* string, return\n'
' "string[len(prefix):]". Otherwise, return a copy of the '
'original\n'
' string:\n'
'\n'
" >>> 'TestHook'.removeprefix('Test')\n"
" 'Hook'\n"
" >>> 'BaseTestCase'.removeprefix('Test')\n"
" 'BaseTestCase'\n"
'\n'
' New in version 3.9.\n'
'\n'
'str.removesuffix(suffix, /)\n'
'\n'
' If the string ends with the *suffix* string and that '
'*suffix* is\n'
' not empty, return "string[:-len(suffix)]". Otherwise, '
'return a copy\n'
' of the original string:\n'
'\n'
" >>> 'MiscTests'.removesuffix('Tests')\n"
" 'Misc'\n"
" >>> 'TmpDirMixin'.removesuffix('Tests')\n"
" 'TmpDirMixin'\n"
'\n'
' New in version 3.9.\n'
'\n'
'str.encode(encoding="utf-8", errors="strict")\n'
'\n'
' Return an encoded version of the string as a bytes '
@ -10297,6 +10325,16 @@
" >>> 'www.example.com'.lstrip('cmowz.')\n"
" 'example.com'\n"
'\n'
' See "str.removeprefix()" for a method that will remove '
'a single\n'
' prefix string rather than all of a set of characters. '
'For example:\n'
'\n'
" >>> 'Arthur: three!'.lstrip('Arthur: ')\n"
" 'ee!'\n"
" >>> 'Arthur: three!'.removeprefix('Arthur: ')\n"
" 'three!'\n"
'\n'
'static str.maketrans(x[, y[, z]])\n'
'\n'
' This static method returns a translation table usable '
@ -10410,6 +10448,16 @@
" >>> 'mississippi'.rstrip('ipz')\n"
" 'mississ'\n"
'\n'
' See "str.removesuffix()" for a method that will remove '
'a single\n'
' suffix string rather than all of a set of characters. '
'For example:\n'
'\n'
" >>> 'Monty Python'.rstrip(' Python')\n"
" 'M'\n"
" >>> 'Monty Python'.removesuffix(' Python')\n"
" 'Monty'\n"
'\n'
'str.split(sep=None, maxsplit=-1)\n'
'\n'
' Return a list of the words in the string, using *sep* '
@ -11483,6 +11531,16 @@
' then they can be used interchangeably to index the same\n'
' dictionary entry.\n'
'\n'
' Dictionaries preserve insertion order, meaning that keys will '
'be\n'
' produced in the same order they were added sequentially over '
'the\n'
' dictionary. Replacing an existing key does not change the '
'order,\n'
' however removing a key and re-inserting it will add it to '
'the\n'
' end instead of keeping its old place.\n'
'\n'
' Dictionaries are mutable; they can be created by the "{...}"\n'
' notation (see section Dictionary displays).\n'
'\n'
@ -11491,6 +11549,13 @@
'"collections"\n'
' module.\n'
'\n'
' Changed in version 3.7: Dictionaries did not preserve '
'insertion\n'
' order in versions of Python before 3.6. In CPython 3.6,\n'
' insertion order was preserved, but it was considered an\n'
' implementation detail at that time rather than a language\n'
' guarantee.\n'
'\n'
'Callable types\n'
' These are the types to which the function call operation (see\n'
' section Calls) can be applied:\n'

1211
Misc/NEWS.d/3.9.0a6.rst Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,2 +0,0 @@
Fix configure check on Solaris for "float word ordering": sometimes, the correct "grep" command was not being used.
Patch by Arnon Yaari.

View file

@ -1 +0,0 @@
Fix CPython MSBuild Properties in NuGet Package (build/native/python.props)

View file

@ -1 +0,0 @@
Support single-argument form of macOS -isysroot flag.

View file

@ -1,2 +0,0 @@
Add :c:func:`PyThreadState_GetID` function: get the unique identifier of a
Python thread state.

View file

@ -1,3 +0,0 @@
Always declare :c:func:`PyIndex_Check` as an opaque function to hide
implementation details: remove ``PyIndex_Check()`` macro. The macro accessed
directly the :c:member:`PyTypeObject.tp_as_number` member.

View file

@ -1,3 +0,0 @@
Convert :c:func:`PyObject_CheckBuffer` macro to a function to hide
implementation details: the macro accessed directly the
:c:member:`PyTypeObject.tp_as_buffer` member.

View file

@ -1,3 +0,0 @@
Convert the :c:func:`PyObject_GET_WEAKREFS_LISTPTR` macro to a function to hide
implementation details: the macro accessed directly to the
:c:member:`PyTypeObject.tp_weaklistoffset` member.

View file

@ -1,4 +0,0 @@
:c:func:`PyType_HasFeature` now always calls :c:func:`PyType_GetFlags` to
hide implementation details. Previously, it accessed directly the
:c:member:`PyTypeObject.tp_flags` member when the limited C API was not
used.

View file

@ -1,4 +0,0 @@
The :c:func:`PyObject_NEW` macro becomes an alias to the :c:func:`PyObject_New`
macro, and the :c:func:`PyObject_NEW_VAR` macro becomes an alias to the
:c:func:`PyObject_NewVar` macro, to hide implementation details. They no longer
access directly the :c:member:`PyTypeObject.tp_basicsize` member.

View file

@ -1,4 +0,0 @@
Add the functions :c:func:`PyObject_GC_IsTracked` and
:c:func:`PyObject_GC_IsFinalized` to the public API to allow to query if
Python objects are being currently tracked or have been already finalized by
the garbage collector respectively. Patch by Pablo Galindo.

View file

@ -1,2 +0,0 @@
Convert :c:func:`PyObject_IS_GC` macro to a function to hide
implementation details.

View file

@ -1 +0,0 @@
Move the :c:type:`PyGC_Head` structure to the internal C API.

View file

@ -1,2 +0,0 @@
Speed up calls to ``list()`` by using the :pep:`590` ``vectorcall``
calling convention. Patch by Mark Shannon.

View file

@ -1 +0,0 @@
Support unparsing of infinity numbers in postponed annotations. Patch by Batuhan Taşkaya.

View file

@ -1 +0,0 @@
Implement PEP 585. This supports list[int], tuple[str, ...] etc.

View file

@ -1,5 +0,0 @@
Added str.removeprefix and str.removesuffix methods and corresponding
bytes, bytearray, and collections.UserString methods to remove affixes
from a string if present.
See :pep:`616` for a full description.
Patch by Dennis Sweeney.

View file

@ -1 +0,0 @@
Fix a leak and subsequent crash in parsetok.c caused by realloc misuse on a rare codepath.

View file

@ -1 +0,0 @@
Port _weakref extension module to multiphase initialization (:pep:`489`).

View file

@ -1,2 +0,0 @@
Port time module to multiphase initialization (:pep:`489`).
Patch by Paulo Henrique Silva.

View file

@ -1,3 +0,0 @@
Fix :c:func:`PyThreadState_Clear()`. ``PyThreadState.frame`` is a borrowed
reference, not a strong reference: ``PyThreadState_Clear()`` must not call
``Py_CLEAR(tstate->frame)``.

View file

@ -1,2 +0,0 @@
Port operator module to multiphase initialization (PEP 489). Patch by Paulo
Henrique Silva.

View file

@ -1,2 +0,0 @@
Port _functools module to multiphase initialization (PEP 489). Patch by
Paulo Henrique Silva.

View file

@ -1,2 +0,0 @@
Improve the error message for multiple star expressions in an assignment.
Patch by Furkan Onder

View file

@ -1 +0,0 @@
Convert json module to use :c:func:`PyType_FromSpec`.

View file

@ -1 +0,0 @@
Port _uuid module to multiphase initialization (:pep:`489`).

View file

@ -1 +0,0 @@
Port :mod:`math` to multiphase initialization (:pep:`489`).

View file

@ -1 +0,0 @@
Port :mod:`resource` to multiphase initialization (:pep:`489`).

View file

@ -1,2 +0,0 @@
Add column and line information to ``ast.keyword`` nodes. Patch by Pablo
Galindo.

View file

@ -1,2 +0,0 @@
Speed up calls to ``dict()`` by using the :pep:`590` ``vectorcall`` calling
convention.

View file

@ -1 +0,0 @@
Fix possible refleaks in :mod:`_json`, memo of PyScannerObject should be traversed.

View file

@ -1,4 +0,0 @@
str.encode() and str.decode() no longer check the encoding and errors in
development mode or in debug mode during Python finalization. The codecs
machinery can no longer work on very late calls to str.encode() and
str.decode().

View file

@ -1,2 +0,0 @@
Fix the signal handler: it now always uses the main interpreter, rather than
trying to get the current Python thread state.

View file

@ -1 +0,0 @@
Report a specialized error message, `invalid string prefix`, when the tokenizer encounters a string with an invalid prefix.

View file

@ -1,2 +0,0 @@
Correctly unparse explicit ``u`` prefix for strings when postponed
evaluation for annotations activated. Patch by Batuhan Taskaya.

View file

@ -1 +0,0 @@
Fix the tokenizer to display the correct error message, when there is a SyntaxError on the last input character and no newline follows. It used to be `unexpected EOF while parsing`, while it should be `invalid syntax`.

View file

@ -1,5 +0,0 @@
Switch to a new parser, based on PEG. For more details see PEP 617. To
temporarily switch back to the old parser, use ``-X oldparser`` or
``PYTHONOLDPARSER=1``. In Python 3.10 we will remove the old parser
completely, including the ``parser`` module (already deprecated) and
anything that depends on it.

View file

@ -1 +0,0 @@
Improve the performance of bytes.hex().

View file

@ -1 +0,0 @@
Some methods within xml.dom.minidom.Element class are now better documented.

View file

@ -1 +0,0 @@
Document :c:macro:`PyDoc_STRVAR` macro in the C-API reference.

View file

@ -1,2 +0,0 @@
Updated :ref:`datamodel` docs to include :func:`dict` insertion order preservation.
Patch by Furkan Onder and Samy Lahfa.

View file

@ -1,2 +0,0 @@
The pickle documentation incorrectly claimed that ``__new__`` isn't called by
default when unpickling.

View file

@ -1,2 +0,0 @@
IDLE will no longer freeze when inspect.signature fails when fetching
a calltip.

View file

@ -1,2 +0,0 @@
Add a 256×256 pixel IDLE icon to support more modern environments. Created by Andrew Clover.
Delete the unused macOS idle.icns icon file.

View file

@ -1,2 +0,0 @@
Prevent crashes when using an uninitialized ``_elementtree.XMLParser``
object. Patch by Oren Milman.

View file

@ -1,2 +0,0 @@
Deprecate passing None as an argument for :func:`shlex.split()`'s ``s``
parameter. Patch by Zackery Spytz.

View file

@ -1,3 +0,0 @@
:meth:`inspect.getsource` now returns correct source code for inner class
with same name as module level class. Decorators are also returned as part
of source of the class. Patch by Karthikeyan Singaravelan.

View file

@ -1 +0,0 @@
In platform, delay the invocation of 'uname -p' until the processor attribute is requested.

View file

@ -1,2 +0,0 @@
lib2to3 now recognizes named assignment expressions (the walrus operator,
``:=``)

View file

@ -1,2 +0,0 @@
Properly handle :func:`sys.audit` failures in
:func:`sys.set_asyncgen_hooks`.

View file

@ -1,3 +0,0 @@
Normalization of line endings in ElementTree attributes was removed, as line
endings which were replaced by entity numbers should be preserved in
original form.

View file

@ -1 +0,0 @@
Added :pep:`584` operators (``|`` and ``|=``) to :class:`collections.ChainMap`.

View file

@ -1,3 +0,0 @@
Remove undocumented support for *closing* a `pathlib.Path` object via its
context manager. The context manager magic methods remain, but they are now a
no-op, making `Path` objects immutable.

View file

@ -1,3 +0,0 @@
Fix linear runtime behaviour of the `__getitem__` and `__setitem__` methods in
:class:`multiprocessing.shared_memory.ShareableList`. This avoids quadratic
performance when iterating a `ShareableList`. Patch by Thomas Krennwallner.

View file

@ -1 +0,0 @@
Added :pep:`584` operators to :class:`weakref.WeakKeyDictionary`.

View file

@ -1 +0,0 @@
Added :pep:`584` operators to :class:`weakref.WeakValueDictionary`.

View file

@ -1 +0,0 @@
Update internal table of OpenSSL error codes in the ``ssl`` module.

View file

@ -1 +0,0 @@
In re docstring, clarify the relationship between inline and argument compile flags.

View file

@ -1 +0,0 @@
Add :data:`time.CLOCK_TAI` constant if the operating system support it.

View file

@ -1,4 +0,0 @@
Fix ``os.getgrouplist()``: if ``getgrouplist()`` function fails because the
group list is too small, retry with a larger group list. On failure, the glibc
implementation of ``getgrouplist()`` sets ``ngroups`` to the total number of
groups. For other implementations, double the group list size.

View file

@ -1,3 +0,0 @@
Fix ``importlib._bootstrap_external``: avoid creating a new ``winreg`` builtin
module if it's already available in :data:`sys.modules`, and remove redundant
imports.

View file

@ -1,4 +0,0 @@
Removed daemon threads from :mod:`concurrent.futures` by adding
an internal `threading._register_atexit()`, which calls registered functions
prior to joining all non-daemon threads. This allows for compatibility
with subinterpreters, which don't support daemon threads.

View file

@ -1,3 +0,0 @@
:class:`~urllib.request.AbstractBasicAuthHandler` of :mod:`urllib.request`
now parses all WWW-Authenticate HTTP headers and accepts multiple challenges
per header: use the realm of the first Basic challenge.

View file

@ -1 +0,0 @@
Expose :data:`~socket.CAN_RAW_JOIN_FILTERS` in the :mod:`socket` module.

View file

@ -1,6 +0,0 @@
Add a private ``_at_fork_reinit()`` method to :class:`_thread.Lock`,
:class:`_thread.RLock`, :class:`threading.RLock` and
:class:`threading.Condition` classes: reinitialize the lock at fork in the
child process, reset the lock to the unlocked state.
Rename also the private ``_reset_internal_locks()`` method of
:class:`threading.Event` to ``_at_fork_reinit()``.

View file

@ -1,3 +0,0 @@
Fix threading._after_fork(): if fork was not called by a thread spawned by
threading.Thread, threading._after_fork() now creates a _MainThread instance
for _main_thread, instead of a _DummyThread instance.

View file

@ -1,2 +0,0 @@
Add :func:`os.waitstatus_to_exitcode` function:
convert a wait status to an exit code.

View file

@ -1,3 +0,0 @@
Improve the error message when triying to import a module using :mod:`runpy`
and incorrently use the ".py" extension at the end of the module name. Patch
by Pablo Galindo.

View file

@ -1,3 +0,0 @@
CGIHTTPRequestHandler of http.server now logs the CGI script exit code,
rather than the CGI script exit status of os.waitpid(). For example, if the
script is killed by signal 11, it now logs: "CGI script exit code -11."

View file

@ -1,3 +0,0 @@
Fixed reverting multiple patches in unittest.mock. Patcher's ``__exit__()``
is now never called if its ``__enter__()`` is failed. Returning true from
``__exit__()`` silences now the exception.

View file

@ -1,2 +0,0 @@
Multiple inheritance with :class:`typing.NamedTuple` now raises an error
instead of silently ignoring other types.

View file

@ -1,2 +0,0 @@
Removed the ``_field_types`` attribute of the :class:`typing.NamedTuple`
class.

View file

@ -1 +0,0 @@
Add support for ``_SC_AIX_REALMEM`` to :func:`posix.sysconf`.

View file

@ -1,2 +0,0 @@
Fix a bug in the :mod:`symtable` module that was causing incorrectly report
global variables as local. Patch by Pablo Galindo.

View file

@ -1 +0,0 @@
Remove deprecated :meth:`symtable.SymbolTable.has_exec`.

View file

@ -1 +0,0 @@
Implement traverse and clear slots in _abc._abc_data type.

View file

@ -1,2 +0,0 @@
Fix a hang at fork in the logging module: the new private _at_fork_reinit()
method is now used to reinitialize locks at fork in the child process.

View file

@ -1,4 +0,0 @@
Workers in :class:`~concurrent.futures.ProcessPoolExecutor` are now spawned on
demand, only when there are no available idle workers to reuse. This optimizes
startup overhead and reduces the amount of lost CPU time to idle workers.
Patch by Kyle Stanley.

View file

@ -1,2 +0,0 @@
Allow again to spawn daemon threads in subinterpreters (revert change which
denied them).

View file

@ -1 +0,0 @@
Ensure :mod:`modulefinder` uses :func:`io.open_code` and respects coding comments.

View file

@ -1 +0,0 @@
Wait in `KqueueSelector.select` when no fds are registered

View file

@ -1,2 +0,0 @@
The included copy of sqlite3 on Windows is now compiled with the json
extension. This allows the use of functions such as ``json_object``.

View file

@ -1,2 +0,0 @@
:func:`collections.namedtuple` now provides a human-readable repr for its
field accessors.

View file

@ -1,2 +0,0 @@
Add :func:`random.randbytes` function and
:meth:`random.Random.randbytes` method to generate random bytes.

View file

@ -1 +0,0 @@
Allow ``random.getrandbits(0)`` to succeed and to return 0.

View file

@ -1 +0,0 @@
Added zscore() to statistics.NormalDist().

View file

@ -1 +0,0 @@
Fixed ``SpooledTemporaryFile.seek()`` to return the position.

View file

@ -1,5 +0,0 @@
func:`inspect.getdoc` no longer returns docstring inherited from the type of
the object or from parent class if it is a class if it is not defined in the
object itself. In :mod:`pydoc` the documentation string is now shown not
only for class, function, method etc, but for any object that has its own
``__doc__`` attribute.

View file

@ -1,4 +0,0 @@
Improved help for the :mod:`typing` module. Docstrings are now shown for all
special forms and special generic aliases (like ``Union`` and ``List``).
Using ``help()`` with generic alias like ``List[int]`` will show the help
for the correspondent concrete type (``list`` in this case).

View file

@ -1 +0,0 @@
Deprecated support for set objects in random.sample().

View file

@ -1 +0,0 @@
Added :meth:`pathlib.Path.with_stem()` to create a new Path with the stem replaced.

View file

@ -1,2 +0,0 @@
In :meth:`ShareableList.__setitem__`, check the size of a new string item
after encoding it to utf-8, not before.

View file

@ -1,2 +0,0 @@
The :mod:`asyncio` package is now imported lazily in :mod:`unittest` only
when the :class:`~unittest.IsolatedAsyncioTestCase` class is used.

View file

@ -1,2 +0,0 @@
The :mod:`logging` package is now imported lazily in :mod:`unittest` only
when the :meth:`~unittest.TestCase.assertLogs` assertion is used.

View file

@ -1,2 +0,0 @@
Set "__main__" as the default module name when "__name__" is missing in
:class:`typing.TypeVar`. Patch by Weipeng Hong.

View file

@ -1,2 +0,0 @@
Fix the Windows implementation of :func:`os.waitpid` for exit code larger than
``INT_MAX >> 8``. The exit status is now interpreted as an unsigned number.

View file

@ -1 +0,0 @@
The :mod:`lib2to3` module is pending deprecation due to :pep:`617`.

View file

@ -1,6 +0,0 @@
On FreeBSD, ``os.closerange(fd_low, fd_high)`` now calls ``closefrom(fd_low)``
if *fd_high* is greater than or equal to ``sysconf(_SC_OPEN_MAX)``.
Initial patch by Ed Maste (emaste), Conrad Meyer (cem), Kyle Evans (kevans)
and Kubilay Kocak (koobs):
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=242274

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