Python 3.13.4

This commit is contained in:
Thomas Wouters 2025-06-03 17:34:08 +02:00
parent aa9eb5f757
commit 8a526ec7cb
101 changed files with 1037 additions and 246 deletions

View file

@ -302,7 +302,7 @@ a file or file-like object.
.. versionadded:: 3.11
.. versionchanged:: next
.. versionchanged:: 3.13.4
Now raises a :exc:`BlockingIOError` if the file is opened in blocking
mode. Previously, spurious null bytes were added to the digest.

View file

@ -1180,7 +1180,7 @@ possible, while any potentially slow operations (such as sending an email via
This starts up a background thread to monitor the queue for
LogRecords to process.
.. versionchanged:: next
.. versionchanged:: 3.13.4
Raises :exc:`RuntimeError` if called and the listener is already
running.

View file

@ -446,7 +446,7 @@ the :mod:`glob` module.)
.. versionchanged:: 3.10
The *strict* parameter was added.
.. versionchanged:: next
.. versionchanged:: 3.13.4
The :py:data:`~os.path.ALLOW_MISSING` value for the *strict* parameter
was added.
@ -454,7 +454,7 @@ the :mod:`glob` module.)
Special value used for the *strict* argument in :func:`realpath`.
.. versionadded:: next
.. versionadded:: 3.13.4
.. function:: relpath(path, start=os.curdir)

View file

@ -470,7 +470,7 @@ The AF_* and SOCK_* constants are now :class:`AddressFamily` and
.. versionchanged:: 3.11
NetBSD support was added.
.. versionchanged:: next
.. versionchanged:: 3.13.4
Restored missing ``CAN_RAW_ERR_FILTER`` on Linux.
.. data:: CAN_BCM

View file

@ -256,7 +256,7 @@ The :mod:`tarfile` module defines the following exceptions:
The exception that was raised to reject the replacement member is available
as :attr:`!BaseException.__context__`.
.. versionadded:: next
.. versionadded:: 3.13.4
The following constants are available at the module level:
@ -1095,7 +1095,7 @@ reused in custom filters:
Return the modified ``TarInfo`` member.
.. versionchanged:: next
.. versionchanged:: 3.13.4
Link targets are now normalized.

View file

@ -18,12 +18,12 @@
/*--start constants--*/
#define PY_MAJOR_VERSION 3
#define PY_MINOR_VERSION 13
#define PY_MICRO_VERSION 3
#define PY_MICRO_VERSION 4
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_FINAL
#define PY_RELEASE_SERIAL 0
/* Version as a string */
#define PY_VERSION "3.13.3+"
#define PY_VERSION "3.13.4"
/*--end constants--*/
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.

View file

@ -1,4 +1,4 @@
# Autogenerated by Sphinx on Tue Apr 8 15:54:03 2025
# Autogenerated by Sphinx on Tue Jun 3 17:34:20 2025
# as part of the release process.
topics = {
@ -4385,7 +4385,7 @@ exceptions [excnumber]
When using "pdb.pm()" or "Pdb.post_mortem(...)" with a chained
exception instead of a traceback, it allows the user to move
between the chained exceptions using "exceptions" command to list
exceptions, and "exception <number>" to switch to that exception.
exceptions, and "exceptions <number>" to switch to that exception.
Example:
@ -9011,7 +9011,14 @@ str.center(width[, fillchar])
Return centered in a string of length *width*. Padding is done
using the specified *fillchar* (default is an ASCII space). The
original string is returned if *width* is less than or equal to
"len(s)".
"len(s)". For example:
>>> 'Python'.center(10)
' Python '
>>> 'Python'.center(10, '-')
'--Python--'
>>> 'Python'.center(4)
'Python'
str.count(sub[, start[, end]])
@ -9020,7 +9027,18 @@ str.count(sub[, start[, end]])
*end* are interpreted as in slice notation.
If *sub* is empty, returns the number of empty strings between
characters which is the length of the string plus one.
characters which is the length of the string plus one. For example:
>>> 'spam, spam, spam'.count('spam')
3
>>> 'spam, spam, spam'.count('spam', 5)
2
>>> 'spam, spam, spam'.count('spam', 5, 10)
1
>>> 'spam, spam, spam'.count('eggs')
0
>>> 'spam, spam, spam'.count('')
17
str.encode(encoding='utf-8', errors='strict')
@ -9217,8 +9235,8 @@ str.isnumeric()
str.isprintable()
Return true if all characters in the string are printable, false if
it contains at least one non-printable character.
Return "True" if all characters in the string are printable,
"False" if it contains at least one non-printable character.
Here printable means the character is suitable for "repr()" to
use in its output; non-printable means that "repr()" on built-in
@ -9465,6 +9483,18 @@ str.split(sep=None, maxsplit=-1)
>>> ' 1 2 3 '.split()
['1', '2', '3']
If *sep* is not specified or is "None" and *maxsplit* is "0", only
leading runs of consecutive whitespace are considered.
For example:
>>> "".split(None, 0)
[]
>>> " ".split(None, 0)
[]
>>> " foo ".split(maxsplit=0)
['foo ']
str.splitlines(keepends=False)
Return a list of the lines in the string, breaking at line
@ -11144,11 +11174,10 @@ the "**keywords" syntax to accept arbitrary keyword arguments; bit
Flags for details on the semantics of each flags that might be
present.
Future feature declarations ("from __future__ import division") also
use bits in "co_flags" to indicate whether a code object was compiled
with a particular feature enabled: bit "0x2000" is set if the function
was compiled with future division enabled; bits "0x10" and "0x1000"
were used in earlier versions of Python.
Future feature declarations (for example, "from __future__ import
division") also use bits in "co_flags" to indicate whether a code
object was compiled with a particular feature enabled. See
"compiler_flag".
Other bits in "co_flags" are reserved for internal use.
@ -11496,8 +11525,15 @@ class dict(iterable, **kwargs)
the keyword argument replaces the value from the positional
argument.
To illustrate, the following examples all return a dictionary equal
to "{"one": 1, "two": 2, "three": 3}":
Providing keyword arguments as in the first example only works for
keys that are valid Python identifiers. Otherwise, any valid keys
can be used.
Dictionaries compare equal if and only if they have the same "(key,
value)" pairs (regardless of ordering). Order comparisons (<,
<=, >=, >) raise "TypeError". To illustrate dictionary
creation and equality, the following examples all return a
dictionary equal to "{"one": 1, "two": 2, "three": 3}":
>>> a = dict(one=1, two=2, three=3)
>>> b = {'one': 1, 'two': 2, 'three': 3}
@ -11512,6 +11548,29 @@ class dict(iterable, **kwargs)
keys that are valid Python identifiers. Otherwise, any valid keys
can be used.
Dictionaries preserve insertion order. Note that updating a key
does not affect the order. Keys added after deletion are inserted
at the end.
>>> d = {"one": 1, "two": 2, "three": 3, "four": 4}
>>> d
{'one': 1, 'two': 2, 'three': 3, 'four': 4}
>>> list(d)
['one', 'two', 'three', 'four']
>>> list(d.values())
[1, 2, 3, 4]
>>> d["one"] = 42
>>> d
{'one': 42, 'two': 2, 'three': 3, 'four': 4}
>>> del d["two"]
>>> d["two"] = None
>>> d
{'one': 42, 'three': 3, 'four': 4, 'two': None}
Changed in version 3.7: Dictionary order is guaranteed to be
insertion order. This behavior was an implementation detail of
CPython from 3.6.
These are the operations that dictionaries support (and therefore,
custom mapping types should support too):
@ -11682,33 +11741,6 @@ class dict(iterable, **kwargs)
Added in version 3.9.
Dictionaries compare equal if and only if they have the same "(key,
value)" pairs (regardless of ordering). Order comparisons (<,
<=, >=, >) raise "TypeError".
Dictionaries preserve insertion order. Note that updating a key
does not affect the order. Keys added after deletion are inserted
at the end.
>>> d = {"one": 1, "two": 2, "three": 3, "four": 4}
>>> d
{'one': 1, 'two': 2, 'three': 3, 'four': 4}
>>> list(d)
['one', 'two', 'three', 'four']
>>> list(d.values())
[1, 2, 3, 4]
>>> d["one"] = 42
>>> d
{'one': 42, 'two': 2, 'three': 3, 'four': 4}
>>> del d["two"]
>>> d["two"] = None
>>> d
{'one': 42, 'three': 3, 'four': 4, 'two': None}
Changed in version 3.7: Dictionary order is guaranteed to be
insertion order. This behavior was an implementation detail of
CPython from 3.6.
Dictionaries and dictionary views are reversible.
>>> d = {"one": 1, "two": 2, "three": 3, "four": 4}
@ -12093,6 +12125,8 @@ accepts integers that meet the value restriction "0 <= x <= 255").
| "s[i] = x" | item *i* of *s* is replaced by | |
| | *x* | |
+--------------------------------+----------------------------------+-----------------------+
| "del s[i]" | removes item *i* of *s* | |
+--------------------------------+----------------------------------+-----------------------+
| "s[i:j] = t" | slice of *s* from *i* to *j* is | |
| | replaced by the contents of the | |
| | iterable *t* | |
@ -12421,6 +12455,8 @@ accepts integers that meet the value restriction "0 <= x <= 255").
| "s[i] = x" | item *i* of *s* is replaced by | |
| | *x* | |
+--------------------------------+----------------------------------+-----------------------+
| "del s[i]" | removes item *i* of *s* | |
+--------------------------------+----------------------------------+-----------------------+
| "s[i:j] = t" | slice of *s* from *i* to *j* is | |
| | replaced by the contents of the | |
| | iterable *t* | |

951
Misc/NEWS.d/3.13.4.rst Normal file
View file

@ -0,0 +1,951 @@
.. date: 2025-05-20-21-43-20
.. gh-issue: 130727
.. nonce: -69t4D
.. release date: 2025-06-03
.. section: Windows
Fix a race in internal calls into WMI that can result in an "invalid handle"
exception under high load. Patch by Chris Eibl.
..
.. date: 2025-05-19-03-02-04
.. gh-issue: 76023
.. nonce: vHOf6M
.. section: Windows
Make :func:`os.path.realpath` ignore Windows error 1005 when in non-strict
mode.
..
.. date: 2025-05-08-19-07-26
.. gh-issue: 133626
.. nonce: yFTKYK
.. section: Windows
Ensures packages are not accidentally bundled into the traditional
installer.
..
.. date: 2025-05-06-14-09-19
.. gh-issue: 133512
.. nonce: bh-D-g
.. section: Windows
Add warnings to :ref:`launcher` about use of subcommands belonging to the
Python install manager.
..
.. date: 2025-05-09-14-54-48
.. gh-issue: 133744
.. nonce: LCquu0
.. section: Tests
Fix multiprocessing interrupt test. Add an event to synchronize the parent
process with the child process: wait until the child process starts
sleeping. Patch by Victor Stinner.
..
.. date: 2025-05-08-15-06-01
.. gh-issue: 133639
.. nonce: 50-kbV
.. section: Tests
Fix ``TestPyReplAutoindent.test_auto_indent_default()`` doesn't run
``input_code``.
..
.. date: 2025-04-29-14-56-37
.. gh-issue: 133131
.. nonce: 1pchjl
.. section: Tests
The iOS testbed will now select the most recently released "SE-class" device
for testing if a device isn't explicitly specified.
..
.. date: 2025-04-23-02-23-37
.. gh-issue: 109981
.. nonce: IX3k8p
.. section: Tests
The test helper that counts the list of open file descriptors now uses the
optimised ``/dev/fd`` approach on all Apple platforms, not just macOS. This
avoids crashes caused by guarded file descriptors.
..
.. date: 2025-06-02-11-32-23
.. gh-issue: 135034
.. nonce: RLGjbp
.. section: Security
Fixes multiple issues that allowed ``tarfile`` extraction filters
(``filter="data"`` and ``filter="tar"``) to be bypassed using crafted
symlinks and hard links.
Addresses :cve:`2024-12718`, :cve:`2025-4138`, :cve:`2025-4330`, and
:cve:`2025-4517`.
..
.. date: 2025-05-09-20-22-54
.. gh-issue: 133767
.. nonce: kN2i3Q
.. section: Security
Fix use-after-free in the "unicode-escape" decoder with a non-"strict" error
handler.
..
.. date: 2025-01-14-11-19-07
.. gh-issue: 128840
.. nonce: M1doZW
.. section: Security
Short-circuit the processing of long IPv6 addresses early in
:mod:`ipaddress` to prevent excessive memory consumption and a minor
denial-of-service.
..
.. date: 2025-05-30-13-07-29
.. gh-issue: 134718
.. nonce: 9Qvhxn
.. section: Library
:func:`ast.dump` now only omits ``None`` and ``[]`` values if they are
default values.
..
.. date: 2025-05-28-15-53-27
.. gh-issue: 128840
.. nonce: Nur2pB
.. section: Library
Fix parsing long IPv6 addresses with embedded IPv4 address.
..
.. date: 2025-05-26-14-04-39
.. gh-issue: 134696
.. nonce: P04xUa
.. section: Library
Built-in HACL* and OpenSSL implementations of hash function constructors now
correctly accept the same *documented* named arguments. For instance,
:func:`~hashlib.md5` could be previously invoked as ``md5(data=data)`` or
``md5(string=string)`` depending on the underlying implementation but these
calls were not compatible. Patch by Bénédikt Tran.
..
.. date: 2025-05-24-13-10-35
.. gh-issue: 134210
.. nonce: 0IuMY2
.. section: Library
:func:`curses.window.getch` now correctly handles signals. Patch by Bénédikt
Tran.
..
.. date: 2025-05-24-03-10-36
.. gh-issue: 80334
.. nonce: z21cMa
.. section: Library
:func:`multiprocessing.freeze_support` now checks for work on any "spawn"
start method platform rather than only on Windows.
..
.. date: 2025-05-22-13-10-32
.. gh-issue: 114177
.. nonce: 3TYUJ3
.. section: Library
Fix :mod:`asyncio` to not close subprocess pipes which would otherwise error
out when the event loop is already closed.
..
.. date: 2025-05-19-10-32-11
.. gh-issue: 134152
.. nonce: INJC2j
.. section: Library
Fixed :exc:`UnboundLocalError` that could occur during :mod:`email` header
parsing if an expected trailing delimiter is missing in some contexts.
..
.. date: 2025-05-18-12-48-39
.. gh-issue: 62184
.. nonce: y11l10
.. section: Library
Remove import of C implementation of :class:`io.FileIO` from Python
implementation which has its own implementation
..
.. date: 2025-05-17-20-23-57
.. gh-issue: 133982
.. nonce: smS7au
.. section: Library
Emit :exc:`RuntimeWarning` in the Python implementation of :mod:`io` when
the :term:`file-like object <file object>` is not closed explicitly in the
presence of multiple I/O layers.
..
.. date: 2025-05-17-18-08-35
.. gh-issue: 133890
.. nonce: onn9_X
.. section: Library
The :mod:`tarfile` module now handles :exc:`UnicodeEncodeError` in the same
way as :exc:`OSError` when cannot extract a member.
..
.. date: 2025-05-17-13-46-20
.. gh-issue: 134097
.. nonce: fgkjE1
.. section: Library
Fix interaction of the new :term:`REPL` and :option:`-X showrefcount <-X>`
command line option.
..
.. date: 2025-05-17-12-40-12
.. gh-issue: 133889
.. nonce: Eh-zO4
.. section: Library
The generated directory listing page in
:class:`http.server.SimpleHTTPRequestHandler` now only shows the decoded
path component of the requested URL, and not the query and fragment.
..
.. date: 2025-05-16-20-10-25
.. gh-issue: 134098
.. nonce: YyTkKr
.. section: Library
Fix handling paths that end with a percent-encoded slash (``%2f`` or
``%2F``) in :class:`http.server.SimpleHTTPRequestHandler`.
..
.. date: 2025-05-15-14-27-01
.. gh-issue: 134062
.. nonce: fRbJet
.. section: Library
:mod:`ipaddress`: fix collisions in :meth:`~object.__hash__` for
:class:`~ipaddress.IPv4Network` and :class:`~ipaddress.IPv6Network` objects.
..
.. date: 2025-05-14-08-13-08
.. gh-issue: 133745
.. nonce: rjgJkH
.. section: Library
In 3.13.3 we accidentally changed the signature of the asyncio
``create_task()`` family of methods and how it calls a custom task factory
in a backwards incompatible way. Since some 3rd party libraries have already
made changes to work around the issue that might break if we simply reverted
the changes, we're instead changing things to be backwards compatible with
3.13.2 while still supporting those workarounds for 3.13.3. In particular,
the special-casing of ``name`` and ``context`` is back (until 3.14) and
consequently eager tasks may still find that their name hasn't been set
before they execute their first yielding await.
..
.. date: 2025-05-13-18-21-59
.. gh-issue: 71253
.. nonce: -3Sf_K
.. section: Library
Raise :exc:`ValueError` in :func:`open` if *opener* returns a negative
file-descriptor in the Python implementation of :mod:`io` to match the C
implementation.
..
.. date: 2025-05-09-15-50-00
.. gh-issue: 77057
.. nonce: fV8SU-
.. section: Library
Fix handling of invalid markup declarations in
:class:`html.parser.HTMLParser`.
..
.. date: 2025-05-08-13-43-19
.. gh-issue: 133489
.. nonce: 9eGS1Z
.. section: Library
:func:`random.getrandbits` can now generate more that 2\ :sup:`31` bits.
:func:`random.randbytes` can now generate more that 256 MiB.
..
.. date: 2025-05-02-13-16-44
.. gh-issue: 133290
.. nonce: R5WrLM
.. section: Library
Fix attribute caching issue when setting :attr:`ctypes._Pointer._type_` in
the undocumented and deprecated :func:`!ctypes.SetPointerType` function and
the undocumented :meth:`!set_type` method.
..
.. date: 2025-04-29-11-48-46
.. gh-issue: 132876
.. nonce: lyTQGZ
.. section: Library
``ldexp()`` on Windows doesn't round subnormal results before Windows 11,
but should. Python's :func:`math.ldexp` wrapper now does round them, so
results may change slightly, in rare cases of very small results, on Windows
versions before 11.
..
.. date: 2025-04-29-02-23-04
.. gh-issue: 133089
.. nonce: 8Jy1ZS
.. section: Library
Use original timeout value for :exc:`subprocess.TimeoutExpired` when the
func :meth:`subprocess.run` is called with a timeout instead of sometimes a
confusing partial remaining time out value used internally on the final
``wait()``.
..
.. date: 2025-04-26-15-50-12
.. gh-issue: 133009
.. nonce: etBuz5
.. section: Library
:mod:`xml.etree.ElementTree`: Fix a crash in :meth:`Element.__deepcopy__
<object.__deepcopy__>` when the element is concurrently mutated. Patch by
Bénédikt Tran.
..
.. date: 2025-04-26-10-54-38
.. gh-issue: 132995
.. nonce: JuDF9p
.. section: Library
Bump the version of pip bundled in ensurepip to version 25.1.1
..
.. date: 2025-04-25-10-51-00
.. gh-issue: 132017
.. nonce: SIGCONT1
.. section: Library
Fix error when ``pyrepl`` is suspended, then resumed and terminated.
..
.. date: 2025-04-18-12-45-18
.. gh-issue: 132673
.. nonce: P7Z3F1
.. section: Library
Fix a crash when using ``_align_ = 0`` and ``_fields_ = []`` in a
:class:`ctypes.Structure`.
..
.. date: 2025-04-14-23-00-00
.. gh-issue: 132527
.. nonce: kTi8T7
.. section: Library
Include the valid typecode 'w' in the error message when an invalid typecode
is passed to :class:`array.array`.
..
.. date: 2025-04-12-16-29-42
.. gh-issue: 132439
.. nonce: 3twrU6
.. section: Library
Fix ``PyREPL`` on Windows: characters entered via AltGr are swallowed. Patch
by Chris Eibl.
..
.. date: 2025-04-12-12-59-51
.. gh-issue: 132429
.. nonce: OEIdlW
.. section: Library
Fix support of Bluetooth sockets on NetBSD and DragonFly BSD.
..
.. date: 2025-04-12-09-30-24
.. gh-issue: 132106
.. nonce: OxUds3
.. section: Library
:meth:`QueueListener.start <logging.handlers.QueueListener.start>` now
raises a :exc:`RuntimeError` if the listener is already started.
..
.. date: 2025-04-11-21-48-49
.. gh-issue: 132417
.. nonce: uILGdS
.. section: Library
Fix a ``NULL`` pointer dereference when a C function called using
:mod:`ctypes` with ``restype`` :class:`~ctypes.py_object` returns ``NULL``.
..
.. date: 2025-04-11-12-41-47
.. gh-issue: 132385
.. nonce: 86HoA7
.. section: Library
Fix instance error suggestions trigger potential exceptions in
:meth:`object.__getattr__` in :mod:`traceback`.
..
.. date: 2025-04-10-13-06-42
.. gh-issue: 132308
.. nonce: 1js5SI
.. section: Library
A :class:`traceback.TracebackException` now correctly renders the
``__context__`` and ``__cause__`` attributes from :ref:`falsey <truth>`
:class:`Exception`, and the ``exceptions`` attribute from falsey
:class:`ExceptionGroup`.
..
.. date: 2025-04-08-01-55-11
.. gh-issue: 132250
.. nonce: APBFCw
.. section: Library
Fixed the :exc:`SystemError` in :mod:`cProfile` when locating the actual C
function of a method raises an exception.
..
.. date: 2025-04-05-15-05-09
.. gh-issue: 132063
.. nonce: KHnslU
.. section: Library
Prevent exceptions that evaluate as falsey (namely, when their ``__bool__``
method returns ``False`` or their ``__len__`` method returns 0) from being
ignored by :class:`concurrent.futures.ProcessPoolExecutor` and
:class:`concurrent.futures.ThreadPoolExecutor`.
..
.. date: 2025-04-03-17-19-42
.. gh-issue: 119605
.. nonce: c7QXAA
.. section: Library
Respect ``follow_wrapped`` for :meth:`!__init__` and :meth:`!__new__`
methods when getting the class signature for a class with
:func:`inspect.signature`. Preserve class signature after wrapping with
:func:`warnings.deprecated`. Patch by Xuehai Pan.
..
.. date: 2025-03-30-16-42-38
.. gh-issue: 91555
.. nonce: ShVtwW
.. section: Library
Ignore log messages generated during handling of log messages, to avoid
deadlock or infinite recursion.
..
.. date: 2025-03-21-21-24-36
.. gh-issue: 131434
.. nonce: BPkyyh
.. section: Library
Improve error reporting for incorrect format in :func:`time.strptime`.
..
.. date: 2025-03-11-21-08-46
.. gh-issue: 131127
.. nonce: whcVdY
.. section: Library
Systems using LibreSSL now successfully build.
..
.. date: 2025-03-09-03-13-41
.. gh-issue: 130999
.. nonce: tBRBVB
.. section: Library
Avoid exiting the new REPL and offer suggestions even if there are
non-string candidates when errors occur.
..
.. date: 2025-03-07-17-47-32
.. gh-issue: 130941
.. nonce: 7_GvhW
.. section: Library
Fix :class:`configparser.ConfigParser` parsing empty interpolation with
``allow_no_value`` set to ``True``.
..
.. date: 2025-03-01-12-37-08
.. gh-issue: 129098
.. nonce: eJ2-6L
.. section: Library
Fix REPL traceback reporting when using :func:`compile` with an inexisting
file. Patch by Bénédikt Tran.
..
.. date: 2025-02-27-14-25-01
.. gh-issue: 130631
.. nonce: dmZcZM
.. section: Library
:func:`!http.cookiejar.join_header_words` is now more similar to the
original Perl version. It now quotes the same set of characters and always
quote values that end with ``"\n"``.
..
.. date: 2025-02-06-11-23-51
.. gh-issue: 129719
.. nonce: Of6rvb
.. section: Library
Fix missing :data:`!socket.CAN_RAW_ERR_FILTER` constant in the socket module
on Linux systems. It was missing since Python 3.11.
..
.. date: 2024-09-16-17-03-52
.. gh-issue: 124096
.. nonce: znin0O
.. section: Library
Turn on virtual terminal mode and enable bracketed paste in REPL on Windows
console. (If the terminal does not support bracketed paste, enabling it does
nothing.)
..
.. date: 2024-08-02-20-01-36
.. gh-issue: 122559
.. nonce: 2JlJr3
.. section: Library
Remove :meth:`!__reduce__` and :meth:`!__reduce_ex__` methods that always
raise :exc:`TypeError` in the C implementation of :class:`io.FileIO`,
:class:`io.BufferedReader`, :class:`io.BufferedWriter` and
:class:`io.BufferedRandom` and replace them with default
:meth:`!__getstate__` methods that raise :exc:`!TypeError`. This restores
fine details of behavior of Python 3.11 and older versions.
..
.. date: 2024-07-23-17-08-41
.. gh-issue: 122179
.. nonce: 0jZm9h
.. section: Library
:func:`hashlib.file_digest` now raises :exc:`BlockingIOError` when no data
is available during non-blocking I/O. Before, it added spurious null bytes
to the digest.
..
.. date: 2023-02-13-21-41-34
.. gh-issue: 86155
.. nonce: ppIGSC
.. section: Library
:meth:`html.parser.HTMLParser.close` no longer loses data when the
``<script>`` tag is not closed. Patch by Waylan Limberg.
..
.. date: 2022-07-24-20-56-32
.. gh-issue: 69426
.. nonce: unccw7
.. section: Library
Fix :class:`html.parser.HTMLParser` to not unescape character entities in
attribute values if they are followed by an ASCII alphanumeric or an equals
sign.
..
.. bpo: 44172
.. date: 2021-05-18-19-12-58
.. nonce: rJ_-CI
.. section: Library
Keep a reference to original :mod:`curses` windows in subwindows so that the
original window does not get deleted before subwindows.
..
.. date: 2024-11-08-18-07-13
.. gh-issue: 112936
.. nonce: 1Q2RcP
.. section: IDLE
fix IDLE: no Shell menu item in single-process mode.
..
.. date: 2025-03-28-18-25-43
.. gh-issue: 107006
.. nonce: BxFijD
.. section: Documentation
Move documentation and example code for :class:`threading.local` from its
docstring to the official docs.
..
.. date: 2025-05-30-15-56-19
.. gh-issue: 134908
.. nonce: 3a7PxM
.. section: Core and Builtins
Fix crash when iterating over lines in a text file on the :term:`free
threaded <free threading>` build.
..
.. date: 2025-05-27-09-19-21
.. gh-issue: 127682
.. nonce: 9WwFrM
.. section: Core and Builtins
No longer call ``__iter__`` twice in list comprehensions. This brings the
behavior of list comprehensions in line with other forms of iteration
..
.. date: 2025-05-22-14-48-19
.. gh-issue: 134381
.. nonce: 2BXhth
.. section: Core and Builtins
Fix :exc:`RuntimeError` when using a not-started :class:`threading.Thread`
after calling :func:`os.fork`
..
.. date: 2025-05-20-14-41-50
.. gh-issue: 128066
.. nonce: qzzGfv
.. section: Core and Builtins
Fixes an edge case where PyREPL improperly threw an error when Python is
invoked on a read only filesystem while trying to write history file
entries.
..
.. date: 2025-05-16-17-25-52
.. gh-issue: 134100
.. nonce: 5-FbLK
.. section: Core and Builtins
Fix a use-after-free bug that occurs when an imported module isn't in
:data:`sys.modules` after its initial import. Patch by Nico-Posada.
..
.. date: 2025-05-10-17-12-27
.. gh-issue: 133703
.. nonce: bVM-re
.. section: Core and Builtins
Fix hashtable in dict can be bigger than intended in some situations.
..
.. date: 2025-05-08-19-01-32
.. gh-issue: 132869
.. nonce: lqIOhZ
.. section: Core and Builtins
Fix crash in the :term:`free threading` build when accessing an object
attribute that may be concurrently inserted or deleted.
..
.. date: 2025-05-08-13-48-02
.. gh-issue: 132762
.. nonce: tKbygC
.. section: Core and Builtins
:meth:`~dict.fromkeys` no longer loops forever when adding a small set of
keys to a large base dict. Patch by Angela Liss.
..
.. date: 2025-05-07-10-48-31
.. gh-issue: 133543
.. nonce: 4jcszP
.. section: Core and Builtins
Fix a possible memory leak that could occur when directly accessing instance
dictionaries (``__dict__``) that later become part of a reference cycle.
..
.. date: 2025-05-06-15-01-41
.. gh-issue: 133516
.. nonce: RqWVf2
.. section: Core and Builtins
Raise :exc:`ValueError` when constants ``True``, ``False`` or ``None`` are
used as an identifier after NFKC normalization.
..
.. date: 2025-05-05-17-02-08
.. gh-issue: 133441
.. nonce: EpjHD4
.. section: Core and Builtins
Fix crash upon setting an attribute with a :class:`dict` subclass. Patch by
Victor Stinner.
..
.. date: 2025-04-26-17-50-47
.. gh-issue: 132942
.. nonce: aEEZvZ
.. section: Core and Builtins
Fix two races in the type lookup cache. This affected the free-threaded
build and could cause crashes (apparently quite difficult to trigger).
..
.. date: 2025-04-22-16-38-43
.. gh-issue: 132713
.. nonce: mBWTSZ
.. section: Core and Builtins
Fix ``repr(list)`` race condition: hold a strong reference to the item while
calling ``repr(item)``. Patch by Victor Stinner.
..
.. date: 2025-04-21-07-39-59
.. gh-issue: 132747
.. nonce: L-cnej
.. section: Core and Builtins
Fix a crash when calling :meth:`~object.__get__` of a :term:`method` with a
:const:`None` second argument.
..
.. date: 2025-04-19-17-16-46
.. gh-issue: 132542
.. nonce: 7T_TY_
.. section: Core and Builtins
Update :attr:`Thread.native_id <threading.Thread.native_id>` after
:manpage:`fork(2)` to ensure accuracy. Patch by Noam Cohen.
..
.. date: 2025-04-13-17-18-01
.. gh-issue: 124476
.. nonce: fvGfQ7
.. section: Core and Builtins
Fix decoding from the locale encoding in the C.UTF-8 locale.
..
.. date: 2025-04-13-10-34-27
.. gh-issue: 131927
.. nonce: otp80n
.. section: Core and Builtins
Compiler warnings originating from the same module and line number are now
only emitted once, matching the behaviour of warnings emitted from user
code. This can also be configured with :mod:`warnings` filters.
..
.. date: 2025-04-10-10-29-45
.. gh-issue: 127682
.. nonce: X0HoGz
.. section: Core and Builtins
No longer call ``__iter__`` twice when creating and executing a generator
expression. Creating a generator expression from a non-interable will raise
only when the generator expression is executed. This brings the behavior of
generator expressions in line with other generators.
..
.. date: 2025-03-30-19-58-14
.. gh-issue: 131878
.. nonce: uxM26H
.. section: Core and Builtins
Handle uncaught exceptions in the main input loop for the new REPL.
..
.. date: 2025-03-30-19-49-00
.. gh-issue: 131878
.. nonce: J8_cHB
.. section: Core and Builtins
Fix support of unicode characters with two or more codepoints on Windows in
the new REPL.
..
.. date: 2025-03-10-21-46-37
.. gh-issue: 130804
.. nonce: 0PpcTx
.. section: Core and Builtins
Fix support of unicode characters on Windows in the new REPL.
..
.. date: 2025-02-13-05-09-31
.. gh-issue: 130070
.. nonce: C8c9gK
.. section: Core and Builtins
Fixed an assertion error for :func:`exec` passed a string ``source`` and a
non-``None`` ``closure``. Patch by Bartosz Sławecki.
..
.. date: 2025-02-13-00-14-24
.. gh-issue: 129958
.. nonce: Uj7lyY
.. section: Core and Builtins
Fix a bug that was allowing newlines inconsitently in format specifiers for
single-quoted f-strings. Patch by Pablo Galindo.
..
.. date: 2025-04-25-11-39-24
.. gh-issue: 132909
.. nonce: JC3n_l
.. section: C API
Fix an overflow when handling the :ref:`K <capi-py-buildvalue-format-K>`
format in :c:func:`Py_BuildValue`. Patch by Bénédikt Tran.
..
.. date: 2025-05-30-11-02-30
.. gh-issue: 134923
.. nonce: gBkRg4
.. section: Build
Windows builds with profile-guided optimization enabled now use
``/GENPROFILE`` and ``/USEPROFILE`` instead of deprecated ``/LTCG:``
options.
..
.. date: 2025-04-30-11-07-53
.. gh-issue: 133183
.. nonce: zCKUeQ
.. section: Build
iOS compiler shims now include ``IPHONEOS_DEPLOYMENT_TARGET`` in target
triples, ensuring that SDK version minimums are honored.
..
.. date: 2025-04-30-10-23-18
.. gh-issue: 133167
.. nonce: E0jrYJ
.. section: Build
Fix compilation process with ``--enable-optimizations`` and
``--without-docstrings``.
..
.. date: 2025-04-17-19-10-15
.. gh-issue: 132649
.. nonce: DZqGoq
.. section: Build
The :file:`PC\layout` script now allows passing ``--include-tcltk`` on
Windows ARM64.
..
.. date: 2025-04-16-09-38-48
.. gh-issue: 117088
.. nonce: EFt_5c
.. section: Build
AIX linker don't support -h option, so avoid it through platform check
..
.. date: 2025-04-02-21-08-36
.. gh-issue: 132026
.. nonce: ptnR7T
.. section: Build
Fix use of undefined identifiers in platform triplet detection on MIPS Linux
platforms.

View file

@ -1 +0,0 @@
Fix use of undefined identifiers in platform triplet detection on MIPS Linux platforms.

View file

@ -1 +0,0 @@
AIX linker don't support -h option, so avoid it through platform check

View file

@ -1,2 +0,0 @@
The :file:`PC\layout` script now allows passing ``--include-tcltk`` on
Windows ARM64.

View file

@ -1,2 +0,0 @@
Fix compilation process with ``--enable-optimizations`` and
``--without-docstrings``.

View file

@ -1,2 +0,0 @@
iOS compiler shims now include ``IPHONEOS_DEPLOYMENT_TARGET`` in target
triples, ensuring that SDK version minimums are honored.

View file

@ -1,3 +0,0 @@
Windows builds with profile-guided optimization enabled now use
``/GENPROFILE`` and ``/USEPROFILE`` instead of deprecated ``/LTCG:``
options.

View file

@ -1,2 +0,0 @@
Fix an overflow when handling the :ref:`K <capi-py-buildvalue-format-K>` format
in :c:func:`Py_BuildValue`. Patch by Bénédikt Tran.

View file

@ -1,2 +0,0 @@
Fix a bug that was allowing newlines inconsitently in format specifiers for
single-quoted f-strings. Patch by Pablo Galindo.

View file

@ -1 +0,0 @@
Fixed an assertion error for :func:`exec` passed a string ``source`` and a non-``None`` ``closure``. Patch by Bartosz Sławecki.

View file

@ -1 +0,0 @@
Fix support of unicode characters on Windows in the new REPL.

View file

@ -1,2 +0,0 @@
Fix support of unicode characters with two or more codepoints on Windows in
the new REPL.

View file

@ -1 +0,0 @@
Handle uncaught exceptions in the main input loop for the new REPL.

View file

@ -1,4 +0,0 @@
No longer call ``__iter__`` twice when creating and executing a generator expression.
Creating a generator expression from a non-interable will raise only when the
generator expression is executed.
This brings the behavior of generator expressions in line with other generators.

View file

@ -1,3 +0,0 @@
Compiler warnings originating from the same module and line number are now
only emitted once, matching the behaviour of warnings emitted from user
code. This can also be configured with :mod:`warnings` filters.

View file

@ -1 +0,0 @@
Fix decoding from the locale encoding in the C.UTF-8 locale.

View file

@ -1,2 +0,0 @@
Fix a crash when calling :meth:`~object.__get__` of a :term:`method` with a
:const:`None` second argument.

View file

@ -1,2 +0,0 @@
Fix ``repr(list)`` race condition: hold a strong reference to the item while
calling ``repr(item)``. Patch by Victor Stinner.

View file

@ -1,2 +0,0 @@
Fix two races in the type lookup cache. This affected the free-threaded
build and could cause crashes (apparently quite difficult to trigger).

View file

@ -1,2 +0,0 @@
Raise :exc:`ValueError` when constants ``True``, ``False`` or ``None`` are
used as an identifier after NFKC normalization.

View file

@ -1 +0,0 @@
:meth:`~dict.fromkeys` no longer loops forever when adding a small set of keys to a large base dict. Patch by Angela Liss.

View file

@ -1 +0,0 @@
Fix hashtable in dict can be bigger than intended in some situations.

View file

@ -1,2 +0,0 @@
Update :attr:`Thread.native_id <threading.Thread.native_id>` after
:manpage:`fork(2)` to ensure accuracy. Patch by Noam Cohen.

View file

@ -1,2 +0,0 @@
Fix crash upon setting an attribute with a :class:`dict` subclass.
Patch by Victor Stinner.

View file

@ -1,2 +0,0 @@
Fix a possible memory leak that could occur when directly accessing instance
dictionaries (``__dict__``) that later become part of a reference cycle.

View file

@ -1,2 +0,0 @@
Fix crash in the :term:`free threading` build when accessing an object
attribute that may be concurrently inserted or deleted.

View file

@ -1,2 +0,0 @@
Fix a use-after-free bug that occurs when an imported module isn't
in :data:`sys.modules` after its initial import. Patch by Nico-Posada.

View file

@ -1,3 +0,0 @@
Fixes an edge case where PyREPL improperly threw an error when Python is
invoked on a read only filesystem while trying to write history file
entries.

View file

@ -1 +0,0 @@
Fix :exc:`RuntimeError` when using a not-started :class:`threading.Thread` after calling :func:`os.fork`

View file

@ -1,2 +0,0 @@
No longer call ``__iter__`` twice in list comprehensions. This brings the
behavior of list comprehensions in line with other forms of iteration

View file

@ -1 +0,0 @@
Fix crash when iterating over lines in a text file on the :term:`free threaded <free threading>` build.

View file

@ -1,2 +0,0 @@
Move documentation and example code for :class:`threading.local` from its
docstring to the official docs.

View file

@ -1 +0,0 @@
fix IDLE: no Shell menu item in single-process mode.

View file

@ -1,2 +0,0 @@
Keep a reference to original :mod:`curses` windows in subwindows so
that the original window does not get deleted before subwindows.

View file

@ -1,3 +0,0 @@
Fix :class:`html.parser.HTMLParser` to not unescape character entities in
attribute values if they are followed by an ASCII alphanumeric or an equals
sign.

View file

@ -1,2 +0,0 @@
:meth:`html.parser.HTMLParser.close` no longer loses data when the
``<script>`` tag is not closed. Patch by Waylan Limberg.

View file

@ -1,3 +0,0 @@
:func:`hashlib.file_digest` now raises :exc:`BlockingIOError` when no data
is available during non-blocking I/O. Before, it added spurious null bytes
to the digest.

View file

@ -1,6 +0,0 @@
Remove :meth:`!__reduce__` and :meth:`!__reduce_ex__` methods that always
raise :exc:`TypeError` in the C implementation of :class:`io.FileIO`,
:class:`io.BufferedReader`, :class:`io.BufferedWriter` and
:class:`io.BufferedRandom` and replace them with default
:meth:`!__getstate__` methods that raise :exc:`!TypeError`.
This restores fine details of behavior of Python 3.11 and older versions.

View file

@ -1,3 +0,0 @@
Turn on virtual terminal mode and enable bracketed paste in REPL on Windows
console. (If the terminal does not support bracketed paste, enabling it
does nothing.)

View file

@ -1 +0,0 @@
Fix missing :data:`!socket.CAN_RAW_ERR_FILTER` constant in the socket module on Linux systems. It was missing since Python 3.11.

View file

@ -1,3 +0,0 @@
:func:`!http.cookiejar.join_header_words` is now more similar to the original
Perl version. It now quotes the same set of characters and always quote
values that end with ``"\n"``.

View file

@ -1,2 +0,0 @@
Fix REPL traceback reporting when using :func:`compile` with an inexisting
file. Patch by Bénédikt Tran.

View file

@ -1,2 +0,0 @@
Fix :class:`configparser.ConfigParser` parsing empty interpolation with
``allow_no_value`` set to ``True``.

View file

@ -1,2 +0,0 @@
Avoid exiting the new REPL and offer suggestions even if there are non-string
candidates when errors occur.

View file

@ -1 +0,0 @@
Systems using LibreSSL now successfully build.

View file

@ -1 +0,0 @@
Improve error reporting for incorrect format in :func:`time.strptime`.

View file

@ -1,2 +0,0 @@
Ignore log messages generated during handling of log messages, to avoid
deadlock or infinite recursion.

View file

@ -1,4 +0,0 @@
Respect ``follow_wrapped`` for :meth:`!__init__` and :meth:`!__new__` methods
when getting the class signature for a class with :func:`inspect.signature`.
Preserve class signature after wrapping with :func:`warnings.deprecated`.
Patch by Xuehai Pan.

View file

@ -1,2 +0,0 @@
Prevent exceptions that evaluate as falsey (namely, when their ``__bool__`` method returns ``False`` or their ``__len__`` method returns 0)
from being ignored by :class:`concurrent.futures.ProcessPoolExecutor` and :class:`concurrent.futures.ThreadPoolExecutor`.

View file

@ -1 +0,0 @@
Fixed the :exc:`SystemError` in :mod:`cProfile` when locating the actual C function of a method raises an exception.

View file

@ -1,3 +0,0 @@
A :class:`traceback.TracebackException` now correctly renders the ``__context__``
and ``__cause__`` attributes from :ref:`falsey <truth>` :class:`Exception`,
and the ``exceptions`` attribute from falsey :class:`ExceptionGroup`.

View file

@ -1,2 +0,0 @@
Fix instance error suggestions trigger potential exceptions
in :meth:`object.__getattr__` in :mod:`traceback`.

View file

@ -1,3 +0,0 @@
Fix a ``NULL`` pointer dereference when a C function called using
:mod:`ctypes` with ``restype`` :class:`~ctypes.py_object` returns
``NULL``.

View file

@ -1,2 +0,0 @@
:meth:`QueueListener.start <logging.handlers.QueueListener.start>` now
raises a :exc:`RuntimeError` if the listener is already started.

View file

@ -1 +0,0 @@
Fix support of Bluetooth sockets on NetBSD and DragonFly BSD.

View file

@ -1,2 +0,0 @@
Fix ``PyREPL`` on Windows: characters entered via AltGr are swallowed.
Patch by Chris Eibl.

View file

@ -1 +0,0 @@
Include the valid typecode 'w' in the error message when an invalid typecode is passed to :class:`array.array`.

View file

@ -1,2 +0,0 @@
Fix a crash when using ``_align_ = 0`` and ``_fields_ = []`` in a
:class:`ctypes.Structure`.

View file

@ -1 +0,0 @@
Fix error when ``pyrepl`` is suspended, then resumed and terminated.

View file

@ -1 +0,0 @@
Bump the version of pip bundled in ensurepip to version 25.1.1

View file

@ -1,3 +0,0 @@
:mod:`xml.etree.ElementTree`: Fix a crash in :meth:`Element.__deepcopy__
<object.__deepcopy__>` when the element is concurrently mutated.
Patch by Bénédikt Tran.

View file

@ -1,4 +0,0 @@
Use original timeout value for :exc:`subprocess.TimeoutExpired`
when the func :meth:`subprocess.run` is called with a timeout
instead of sometimes a confusing partial remaining time out value
used internally on the final ``wait()``.

View file

@ -1,4 +0,0 @@
``ldexp()`` on Windows doesn't round subnormal results before Windows 11,
but should. Python's :func:`math.ldexp` wrapper now does round them, so
results may change slightly, in rare cases of very small results, on
Windows versions before 11.

View file

@ -1,3 +0,0 @@
Fix attribute caching issue when setting :attr:`ctypes._Pointer._type_` in
the undocumented and deprecated :func:`!ctypes.SetPointerType` function and the
undocumented :meth:`!set_type` method.

View file

@ -1,2 +0,0 @@
:func:`random.getrandbits` can now generate more that 2\ :sup:`31` bits.
:func:`random.randbytes` can now generate more that 256 MiB.

View file

@ -1,2 +0,0 @@
Fix handling of invalid markup declarations in
:class:`html.parser.HTMLParser`.

View file

@ -1,3 +0,0 @@
Raise :exc:`ValueError` in :func:`open` if *opener* returns a negative
file-descriptor in the Python implementation of :mod:`io` to match the
C implementation.

View file

@ -1 +0,0 @@
In 3.13.3 we accidentally changed the signature of the asyncio ``create_task()`` family of methods and how it calls a custom task factory in a backwards incompatible way. Since some 3rd party libraries have already made changes to work around the issue that might break if we simply reverted the changes, we're instead changing things to be backwards compatible with 3.13.2 while still supporting those workarounds for 3.13.3. In particular, the special-casing of ``name`` and ``context`` is back (until 3.14) and consequently eager tasks may still find that their name hasn't been set before they execute their first yielding await.

View file

@ -1,3 +0,0 @@
:mod:`ipaddress`: fix collisions in :meth:`~object.__hash__` for
:class:`~ipaddress.IPv4Network` and :class:`~ipaddress.IPv6Network`
objects.

View file

@ -1,2 +0,0 @@
Fix handling paths that end with a percent-encoded slash (``%2f`` or
``%2F``) in :class:`http.server.SimpleHTTPRequestHandler`.

View file

@ -1,3 +0,0 @@
The generated directory listing page in
:class:`http.server.SimpleHTTPRequestHandler` now only shows the decoded
path component of the requested URL, and not the query and fragment.

View file

@ -1 +0,0 @@
Fix interaction of the new :term:`REPL` and :option:`-X showrefcount <-X>` command line option.

View file

@ -1,2 +0,0 @@
The :mod:`tarfile` module now handles :exc:`UnicodeEncodeError` in the same
way as :exc:`OSError` when cannot extract a member.

View file

@ -1,3 +0,0 @@
Emit :exc:`RuntimeWarning` in the Python implementation of :mod:`io` when
the :term:`file-like object <file object>` is not closed explicitly in the
presence of multiple I/O layers.

View file

@ -1,2 +0,0 @@
Remove import of C implementation of :class:`io.FileIO` from Python
implementation which has its own implementation

View file

@ -1,2 +0,0 @@
Fixed :exc:`UnboundLocalError` that could occur during :mod:`email` header
parsing if an expected trailing delimiter is missing in some contexts.

View file

@ -1 +0,0 @@
Fix :mod:`asyncio` to not close subprocess pipes which would otherwise error out when the event loop is already closed.

View file

@ -1,2 +0,0 @@
:func:`multiprocessing.freeze_support` now checks for work on any "spawn"
start method platform rather than only on Windows.

View file

@ -1,2 +0,0 @@
:func:`curses.window.getch` now correctly handles signals. Patch by Bénédikt
Tran.

View file

@ -1,5 +0,0 @@
Built-in HACL* and OpenSSL implementations of hash function constructors
now correctly accept the same *documented* named arguments. For instance,
:func:`~hashlib.md5` could be previously invoked as ``md5(data=data)``
or ``md5(string=string)`` depending on the underlying implementation
but these calls were not compatible. Patch by Bénédikt Tran.

View file

@ -1 +0,0 @@
Fix parsing long IPv6 addresses with embedded IPv4 address.

View file

@ -1,2 +0,0 @@
:func:`ast.dump` now only omits ``None`` and ``[]`` values if they are
default values.

View file

@ -1,2 +0,0 @@
Short-circuit the processing of long IPv6 addresses early in :mod:`ipaddress` to prevent excessive
memory consumption and a minor denial-of-service.

View file

@ -1,2 +0,0 @@
Fix use-after-free in the "unicode-escape" decoder with a non-"strict" error
handler.

View file

@ -1,6 +0,0 @@
Fixes multiple issues that allowed ``tarfile`` extraction filters
(``filter="data"`` and ``filter="tar"``) to be bypassed using crafted
symlinks and hard links.
Addresses :cve:`2024-12718`, :cve:`2025-4138`, :cve:`2025-4330`, and :cve:`2025-4517`.

View file

@ -1,3 +0,0 @@
The test helper that counts the list of open file descriptors now uses the
optimised ``/dev/fd`` approach on all Apple platforms, not just macOS.
This avoids crashes caused by guarded file descriptors.

View file

@ -1,2 +0,0 @@
The iOS testbed will now select the most recently released "SE-class" device
for testing if a device isn't explicitly specified.

View file

@ -1,2 +0,0 @@
Fix ``TestPyReplAutoindent.test_auto_indent_default()`` doesn't run
``input_code``.

View file

@ -1,3 +0,0 @@
Fix multiprocessing interrupt test. Add an event to synchronize the parent
process with the child process: wait until the child process starts
sleeping. Patch by Victor Stinner.

View file

@ -1,2 +0,0 @@
Add warnings to :ref:`launcher` about use of subcommands belonging to the
Python install manager.

View file

@ -1,2 +0,0 @@
Ensures packages are not accidentally bundled into the traditional
installer.

View file

@ -1 +0,0 @@
Make :func:`os.path.realpath` ignore Windows error 1005 when in non-strict mode.

View file

@ -1,2 +0,0 @@
Fix a race in internal calls into WMI that can result in an "invalid handle"
exception under high load. Patch by Chris Eibl.

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