forked from pool/python315
Update to Python 3.15.0~a2
Extremely long changelog omitted for clarity.
This commit is contained in:
@@ -1,3 +1,357 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Nov 21 02:06:55 UTC 2025 - Steve Kowalik <steven.kowalik@suse.com>
|
||||
|
||||
- Update to 3.15.0~a2:
|
||||
* Tools/Demos
|
||||
+ gh-139198: Remove Tools/scripts/checkpip.py script.
|
||||
+ gh-139188: Remove Tools/tz/zdump.py script.
|
||||
* Tests
|
||||
+ gh-140482: Preserve and restore the state of stty echo as part of the
|
||||
test environment.
|
||||
+ gh-140082: Update python -m test to set FORCE_COLOR=1 when being run
|
||||
with color enabled so that unittest which is run by it with redirected
|
||||
output will output in color.
|
||||
+ gh-136442: Use exitcode 1 instead of 5 if
|
||||
unittest.TestCase.setUpClass() raises an exception
|
||||
* Security
|
||||
+ gh-137836: Add support of the “plaintext” element, RAWTEXT elements
|
||||
“xmp”, “iframe”, “noembed” and “noframes”, and optionally RAWTEXT
|
||||
element “noscript” in html.parser.HTMLParser.
|
||||
+ gh-136063: email.message: ensure linear complexity for legacy HTTP
|
||||
parameters parsing. Patch by Bénédikt Tran.
|
||||
+ gh-136065: Fix quadratic complexity in os.path.expandvars().
|
||||
* Library
|
||||
+ gh-141497: ipaddress: ensure that the methods IPv4Network.hosts() and
|
||||
IPv6Network.hosts() always return an iterator.
|
||||
+ gh-140938: The statistics.stdev() and statistics.pstdev() functions now
|
||||
raise a ValueError when the input contains an infinity or a NaN.
|
||||
+ gh-124111: Updated Tcl threading configuration in _tkinter to assume
|
||||
that threads are always available in Tcl 9 and later.
|
||||
+ gh-137109: The os.fork and related forking APIs will no longer warn in
|
||||
the common case where Linux or macOS platform APIs return the number of
|
||||
threads in a process and find the answer to be 1 even when a
|
||||
os.register_at_fork() after_in_parent= callback (re)starts a thread.
|
||||
+ gh-141314: Fix assertion failure in io.TextIOWrapper.tell() when
|
||||
reading files with standalone carriage return (\r) line endings.
|
||||
+ gh-141311: Fix assertion failure in io.BytesIO.readinto() and undefined
|
||||
behavior arising when read position is above capcity in io.BytesIO.
|
||||
+ gh-87710: mimetypes: Update mime type for .ai files to application/pdf.
|
||||
+ gh-85524: Update io.FileIO.readall, an implementation of
|
||||
io.RawIOBase.readall(), to follow io.IOBase guidelines and raise
|
||||
io.UnsupportedOperation when a file is in "w" mode rather than OSError
|
||||
+ gh-141141: Fix a thread safety issue with base64.b85decode().
|
||||
+ gh-141018: mimetypes: Update .exe, .dll, .rtf and (when
|
||||
strict=False) .jpg to their correct IANA mime type.
|
||||
+ gh-137969: Fix annotationlib.ForwardRef.evaluate() returning ForwardRef
|
||||
objects which don’t update with new globals.
|
||||
+ gh-75593: Add support of path-like objects and bytes-like objects in
|
||||
wave.open().
|
||||
+ gh-140797: The undocumented re.Scanner class now forbids regular
|
||||
expressions containing capturing groups in its lexicon patterns.
|
||||
Patterns using capturing groups could previously lead to crashes with
|
||||
segmentation fault. Use non-capturing groups (?:…) instead.
|
||||
+ gh-125115: Refactor the pdb parsing issue so positional arguments can
|
||||
pass through intuitively.
|
||||
+ gh-140815: faulthandler now detects if a frame or a code object is
|
||||
invalid or freed. Patch by Victor Stinner.
|
||||
+ gh-100218: Correctly set errno when socket.if_nametoindex() or
|
||||
socket.if_indextoname() raise an OSError. Patch by Bénédikt Tran.
|
||||
+ gh-140734: multiprocessing: fix off-by-one error when checking the
|
||||
length of a temporary socket file path. Patch by Bénédikt Tran.
|
||||
+ gh-140873: Add support of non-descriptor callables in
|
||||
functools.singledispatchmethod().
|
||||
+ gh-140874: Bump the version of pip bundled in ensurepip to version 25.3
|
||||
+ gh-140808: The internal class mailbox._ProxyFile is no longer a
|
||||
parameterized generic.
|
||||
+ gh-140691: In urllib.request, when opening a FTP URL fails because a
|
||||
data connection cannot be made, the control connection's socket is now
|
||||
closed to avoid a ResourceWarning.
|
||||
+ gh-103847: Fix hang when cancelling process created by
|
||||
asyncio.create_subprocess_exec() or asyncio.create_subprocess_shell().
|
||||
+ gh-137821: Convert _json module to use Argument Clinic.
|
||||
+ gh-140790: Initialize all Pdb's instance variables in __init__, remove
|
||||
some hasattr/getattr
|
||||
+ gh-140766: Add enum.show_flag_values() and enum.bin to enum.__all__.
|
||||
+ gh-120057: Add os.reload_environ() to os.__all__.
|
||||
+ gh-140741: Fix profiling.sampling.sample() incorrectly handling a
|
||||
FileNotFoundError or PermissionError.
|
||||
+ gh-140228: Avoid making unnecessary filesystem calls for frozen modules
|
||||
in linecache when the global module cache is not present.
|
||||
+ gh-139946: Error and warning keywords in argparse.ArgumentParser
|
||||
messages are now colorized when color output is enabled, fixing a
|
||||
visual inconsistency in which they remained plain text while other
|
||||
output was colorized.
|
||||
+ gh-140590: Fix arguments checking for functools.partial.__setstate__()
|
||||
that may lead to internal state corruption and crash.
|
||||
+ gh-140634: Fix a reference counting bug in os.sched_param.__reduce__().
|
||||
+ gh-140650: Fix an issue where closing io.BufferedWriter could crash if
|
||||
the closed attribute raised an exception on access or could not be
|
||||
converted to a boolean.
|
||||
+ gh-140601: xml.etree.ElementTree.iterparse() now emits a
|
||||
ResourceWarning when the iterator is not explicitly closed and was
|
||||
opened with a filename.
|
||||
+ gh-140593: xml.parsers.expat: Fix a memory leak that could affect users
|
||||
with ElementDeclHandler() set to a custom element declaration handler.
|
||||
+ gh-140607: Inside io.RawIOBase.read(), validate that the count of bytes
|
||||
returned by io.RawIOBase.readinto() is valid (inside the provided
|
||||
buffer).
|
||||
+ gh-138162: Fix logging.LoggerAdapter with merge_extra=True and without
|
||||
the extra argument.
|
||||
+ gh-140481: Improve error message when trying to iterate a Tk widget,
|
||||
image or font.
|
||||
+ gh-138774: ast.unparse() now generates full source code when handling
|
||||
ast.Interpolation nodes that do not have a specified source.
|
||||
+ gh-140474: Fix memory leak in array.array when creating arrays from an
|
||||
empty str and the u type code.
|
||||
+ gh-140448: Change the default of suggest_on_error to True in
|
||||
argparse.ArgumentParser.
|
||||
+ gh-137530: dataclasses Fix annotations for generated __init__ methods
|
||||
by replacing the annotations that were in-line in the generated source
|
||||
code with __annotate__ functions attached to the methods.
|
||||
+ gh-140348: Fix regression in Python 3.14.0 where using the | operator
|
||||
on a typing.Union object combined with an object that is not a type
|
||||
would raise an error.
|
||||
+ gh-76007: decimal: Deprecate __version__ and replace with
|
||||
decimal.SPEC_VERSION.
|
||||
+ gh-76007: Deprecate __version__ from a imaplib.
|
||||
+ gh-140272: Fix memory leak in the clear() method of the dbm.gnu
|
||||
database.
|
||||
+ gh-129117: unicodedata: Add isxidstart() and isxidcontinue() functions
|
||||
to check whether a character can start or continue a Unicode Standard
|
||||
Annex #31 identifier.
|
||||
+ gh-140251: Colorize the default import statement import asyncio in
|
||||
asyncio REPL.
|
||||
+ gh-140212: Calendar's HTML formatting now accepts year and month as
|
||||
options.
|
||||
+ gh-135801: Improve filtering by module in warnings.warn_explicit() if
|
||||
no module argument is passed
|
||||
+ gh-139707: Improve ModuleNotFoundError error message when a standard
|
||||
library module is missing.
|
||||
+ gh-140120: Fixed a memory leak in hmac when it was using the hacl-star
|
||||
backend.
|
||||
+ gh-140141: The importlib.metadata.PackageNotFoundError traceback raised
|
||||
when importlib.metadata.Distribution.from_name cannot discover a
|
||||
distribution no longer includes a transient StopIteration exception
|
||||
trace.
|
||||
+ gh-140166: mimetypes: Per the IANA assignment, update the MIME type for
|
||||
the .texi and .texinfo file formats to application/texinfo, instead of
|
||||
application/x-texinfo.
|
||||
+ gh-140135: Speed up io.RawIOBase.readall() by using PyBytesWriter API
|
||||
+ gh-136702: encodings: Deprecate passing a non-ascii encoding name to
|
||||
encodings.normalize_encoding() and schedule removal of support for
|
||||
Python 3.17.
|
||||
+ gh-139940: Print clearer error message when using pdb to attach to a
|
||||
non-existing process.
|
||||
+ gh-139462: When a child process in a
|
||||
concurrent.futures.ProcessPoolExecutor terminates abruptly, the
|
||||
resulting traceback will now tell you the PID and exit code of the
|
||||
terminated process. Contributed by Jonathan Berg.
|
||||
+ gh-63161: Fix tokenize.detect_encoding(). Support non-UTF-8 shebang and
|
||||
comments if non-UTF-8 encoding is specified. Detect decoding error for
|
||||
non-UTF-8 encoding. Detect null bytes in source code.
|
||||
+ gh-101828: Fix 'shift_jisx0213', 'shift_jis_2004', 'euc_jisx0213' and
|
||||
'euc_jis_2004' codecs truncating null chars as they were treated as
|
||||
part of multi-character sequences.
|
||||
+ gh-139246: fix: paste zero-width in default repl width is wrong.
|
||||
+ gh-83714: Implement os.statx() on Linux kernel versions 4.11 and later
|
||||
with glibc versions 2.28 and later.
|
||||
+ gh-138891: Fix SyntaxError when inspect.get_annotations(f,
|
||||
eval_str=True) is called on a function annotated with a PEP 646
|
||||
star_expression
|
||||
+ gh-138859: Fix generic type parameterization raising a TypeError when
|
||||
omitting a ParamSpec that has a default which is not a list of types.
|
||||
+ gh-138764: Prevent annotationlib.call_annotate_function() from calling
|
||||
__annotate__ functions that don't support VALUE_WITH_FAKE_GLOBALS in a
|
||||
fake globals namespace with empty globals.
|
||||
+ Make FORWARDREF and STRING annotations fall back to using VALUE
|
||||
annotations in the case that neither their own format, nor
|
||||
VALUE_WITH_FAKE_GLOBALS are supported.
|
||||
+ gh-138775: Use of python -m with base64 has been fixed to detect input
|
||||
from a terminal so that it properly notices EOF.
|
||||
+ gh-98896: Fix a failure in multiprocessing resource_tracker when
|
||||
SharedMemory names contain colons. Patch by Rani Pinchuk.
|
||||
+ gh-138425: Fix partial evaluation of annotationlib.ForwardRef objects
|
||||
which rely on names defined as globals.
|
||||
+ gh-138151: In annotationlib, improve evaluation of forward references
|
||||
to nonlocal variables that are not yet defined when the annotations are
|
||||
initially evaluated.
|
||||
+ gh-69528: The mode attribute of files opened in the 'wb+' mode is now
|
||||
'wb+' instead of 'rb+'.
|
||||
+ gh-137627: Speed up csv.Sniffer.sniff() delimiter detection by up to
|
||||
1.6x.
|
||||
+ gh-55531: encodings: Improve normalize_encoding() performance by
|
||||
implementing the function in C using the private _Py_normalize_encoding
|
||||
which has been modified to make lowercase conversion optional.
|
||||
+ gh-136057: Fixed the bug in pdb and bdb where next and step can't go
|
||||
over the line if a loop exists in the line.
|
||||
+ gh-133390: Support table, index, trigger, view, column, function, and
|
||||
schema completion for sqlite3's command-line interface.
|
||||
+ gh-135307: email: Fix exception in set_content() when encoding text and
|
||||
max_line_length is set to 0 or None (unlimited).
|
||||
+ gh-133789: Fix unpickling of pathlib objects that were pickled in
|
||||
Python 3.13.
|
||||
+ gh-133601: Remove deprecated typing.no_type_check_decorator().
|
||||
+ gh-132686: Add parameters inherit_class_doc and fallback_to_class_doc
|
||||
for inspect.getdoc().
|
||||
+ gh-131116: inspect.getdoc() now correctly returns an inherited
|
||||
docstring on cached_property objects if none is given in a subclass.
|
||||
+ gh-130693: Add support for -nolinestop, and -strictlimits options to
|
||||
tkinter.Text.search(). Also add the tkinter.Text.search_all() method
|
||||
for -all and -overlap options.
|
||||
+ gh-122255: In the linecache module and in the Python implementation of
|
||||
the warnings module, a DeprecationWarning is issued when mod.__loader__
|
||||
differs from mod.__spec__.loader (like in the C implementation of the
|
||||
warnings module).
|
||||
+ gh-121011: math.log() now supports arbitrary large integer-like
|
||||
arguments in the same way as arbitrary large integer arguments.
|
||||
+ gh-119668: Publicly expose and document
|
||||
importlib.machinery.NamespacePath.
|
||||
+ gh-102431: Clarify constraints for "logical" arguments in methods of
|
||||
decimal.Context.
|
||||
+ gh-81313: Add the math.integer module (PEP 791).
|
||||
* Core and Builtins
|
||||
+ gh-141579: Fix sys.activate_stack_trampoline() to properly support the
|
||||
perf_jit backend. Patch by Pablo Galindo.
|
||||
+ gh-114203: Skip locking if object is already locked by two-mutex
|
||||
critical section.
|
||||
+ gh-141528: Suggest using concurrent.interpreters.Interpreter.close()
|
||||
instead of the private _interpreters.destroy function when warning
|
||||
about remaining subinterpreters. Patch by Sergey Miryanov.
|
||||
+ gh-141367: Specialize CALL_LIST_APPEND instruction only for lists, not
|
||||
for list subclasses, to avoid unnecessary deopt.
|
||||
+ gh-141312: Fix the assertion failure in the __setstate__ method of the
|
||||
range iterator when a non-integer argument is passed.
|
||||
+ gh-140643: Add support for <GC> and <native> frames to
|
||||
profiling.sampling output to denote active garbage collection and calls
|
||||
to native code.
|
||||
+ gh-140942: Add .cjs to mimetypes to give CommonJS modules a MIME type
|
||||
of application/node.
|
||||
+ gh-140479: Update JIT compilation to use LLVM 21 at build time.
|
||||
+ gh-140939: Fix memory leak when bytearray or bytes is formated with the
|
||||
%*b format with a large width that results in a MemoryError.
|
||||
+ gh-140260: Fix struct data race in endian table initialization with
|
||||
subinterpreters. Patch by Shamil Abdulaev.
|
||||
+ gh-140530: Fix a reference leak when raise exc from cause fails.
|
||||
+ gh-90344: Replace io.IncrementalNewlineDecoder with non incremental
|
||||
newline decoders in codebase where
|
||||
io.IncrementalNewlineDecoder.decode() was being called once.
|
||||
+ gh-140373: Correctly emit PY_UNWIND event when generator object is
|
||||
closed. Patch by Mikhail Efimov.
|
||||
+ gh-140729: Fix pickling error in the sampling profiler when using
|
||||
concurrent.futures.ProcessPoolExecutor script can not be properly
|
||||
pickled and executed in worker processes.
|
||||
+ gh-131527: Dynamic borrow checking for stackrefs is added to
|
||||
Py_STACKREF_DEBUG mode. Patch by Mikhail Efimov.
|
||||
+ gh-140576: Fixed crash in tokenize.generate_tokens() in case of
|
||||
specific incorrect input. Patch by Mikhail Efimov.
|
||||
+ gh-140544: Speed up accessing interpreter state by caching it in a
|
||||
thread local variable. Patch by Kumar Aditya.
|
||||
+ gh-140551: Fixed crash in dict if dict.clear() is called at the lookup
|
||||
stage. Patch by Mikhail Efimov and Inada Naoki.
|
||||
+ gh-140517: Fixed a reference leak when iterating over the result of
|
||||
map() with strict=True when the input iterables have different lengths.
|
||||
+ gh-133467: Fix race when updating type.__bases__ that could allow a
|
||||
read of type.__base__ to observe an inconsistent value on the free
|
||||
threaded build.
|
||||
+ gh-140471: Fix potential buffer overflow in ast.AST node initialization
|
||||
when encountering malformed _fields containing non-str.
|
||||
+ gh-140443: The logarithm functions (such as math.log10() and
|
||||
math.log()) may now produce slightly different results for extremely
|
||||
large integers that cannot be converted to floats without overflow.
|
||||
These results are generally more accurate, with reduced worst-case
|
||||
error and a tighter overall error distribution.
|
||||
+ gh-140431: Fix a crash in Python's garbage collector due to partially
|
||||
initialized coroutine objects when coroutine origin tracking depth is
|
||||
enabled (sys.set_coroutine_origin_tracking_depth()).
|
||||
+ gh-140476: Optimize PySet_Add() for frozenset in free threaded build.
|
||||
+ gh-140398: Fix memory leaks in readline functions read_init_file(),
|
||||
read_history_file(), write_history_file(), and append_history_file()
|
||||
when PySys_Audit() fails.
|
||||
+ gh-140406: Fix memory leak when an object's __hash__() method returns
|
||||
an object that isn't an int.
|
||||
+ gh-140358: Restore elapsed time and unreachable object count in GC
|
||||
debug output.
|
||||
+ gh-139109: A new tracing frontend for the JIT compiler has been
|
||||
implemented.
|
||||
+ gh-140306: Fix memory leaks in cross-interpreter channel operations and
|
||||
shared namespace handling.
|
||||
+ gh-116738: Make _suggestions module thread-safe on the free threaded
|
||||
build.
|
||||
+ gh-140301: Fix memory leak of PyConfig in subinterpreters.
|
||||
+ gh-140257: Fix data race between interpreter_clear() and take_gil() on
|
||||
eval_breaker during finalization with daemon threads.
|
||||
+ gh-139951: Fixes a regression in GC performance for a growing heap
|
||||
composed mostly of small tuples.
|
||||
+ gh-140253: Wrong placement of a double-star pattern inside a mapping
|
||||
pattern now throws a specialized syntax error.
|
||||
+ gh-140104: Fix a bug with exception handling in the JIT.
|
||||
+ gh-140149: Speed up parsing bytes literals concatenation by using
|
||||
PyBytesWriter API and a single memory allocation (about 3x faster).
|
||||
+ gh-140061: Fixing the checking of whether an object is uniquely
|
||||
referenced to ensure free-threaded compatibility.
|
||||
+ gh-140080: Fix hang during finalization when attempting to call atexit
|
||||
handlers under no memory.
|
||||
+ gh-139871: Update bytearray to use a bytes under the hood as its buffer
|
||||
and add bytearray.take_bytes() to take it out.
|
||||
+ gh-140067: Fix memory leak in sub-interpreter creation.
|
||||
+ gh-139817: Attribute __qualname__ is added to typing.TypeAliasType.
|
||||
+ gh-135801: Many functions related to compiling or parsing Python code,
|
||||
such as compile(), ast.parse(), symtable.symtable(), and
|
||||
importlib.abc.InspectLoader.source_to_code() now allow to specify the
|
||||
module name. It is needed to unambiguous filter syntax warnings by
|
||||
module name.
|
||||
+ gh-139640: ast.parse() no longer emits syntax warnings for
|
||||
return/break/continue in finally (see PEP 765) - they are only emitted
|
||||
during compilation.
|
||||
+ gh-139640: Fix swallowing some syntax warnings in different modules if
|
||||
they accidentally have the same message and are emitted from the same
|
||||
line. Fix duplicated warnings in the finally block.
|
||||
+ gh-139475: Changes in stackref debugging mode when Py_STACKREF_DEBUG is
|
||||
set. We use the same pattern of refcounting for stackrefs as in
|
||||
production build.
|
||||
+ gh-139269: Fix undefined behavior when using unaligned store in JIT's
|
||||
patch_* functions.
|
||||
+ gh-138944: Fix SyntaxError message when invalid syntax appears on the
|
||||
same line as a valid import ... as ... or from ... import ... as ...
|
||||
statement. Patch by Brian Schubert.
|
||||
+ gh-138857: Improve SyntaxError message for case keyword placed outside
|
||||
match body.
|
||||
+ gh-131253: Support the --enable-pystats build option for the
|
||||
free-threaded build.
|
||||
+ gh-136327: Errors when calling functions with invalid values after *
|
||||
and ** now do not include the function name. Patch by Ilia Solin.
|
||||
+ gh-134786: If Py_TPFLAGS_MANAGED_DICT and Py_TPFLAGS_MANAGED_WEAKREF
|
||||
are used, then Py_TPFLAGS_HAVE_GC must be used as well.
|
||||
* C API
|
||||
+ gh-116146: Add a new PyImport_CreateModuleFromInitfunc() C-API for
|
||||
creating a module from a spec and initfunc. Patch by Itamar Oren.
|
||||
+ gh-141042: Make qNaN in PyFloat_Pack2() and PyFloat_Pack4(), if while
|
||||
conversion to a narrower precision floating-point format - the
|
||||
remaining after truncation payload will be zero.
|
||||
+ gh-141004: Py_MATH_El and Py_MATH_PIl are deprecated.
|
||||
+ gh-141004: The Py_INFINITY macro is soft deprecated.
|
||||
+ gh-140556: PEP 793: Add a new entry point for C extension modules,
|
||||
PyModExport_<modulename>.
|
||||
+ gh-140487: Fix Py_RETURN_NOTIMPLEMENTED in limited C API 3.11 and
|
||||
older: don’t treat Py_NotImplemented as immortal.
|
||||
+ gh-140153: Fix Py_REFCNT() definition on limited C API 3.11-3.13.
|
||||
+ gh-139653: Add PyUnstable_ThreadState_SetStackProtection() and
|
||||
PyUnstable_ThreadState_ResetStackProtection() functions to set the
|
||||
stack protection base address and stack protection size of a Python
|
||||
thread state. Patch by Victor Stinner.
|
||||
* Build
|
||||
+ gh-140454: When building the JIT, match the jit_stencils filename
|
||||
expectations in Makefile with the generator script. This avoid needless
|
||||
JIT recompilation during make install.
|
||||
+ gh-140768: Warn when the WASI SDK version doesn’t match what's
|
||||
supported.
|
||||
+ gh-140513: Generate a clear compilation error when _Py_TAIL_CALL_INTERP
|
||||
is enabled but either preserve_none or musttail is not supported.
|
||||
+ gh-140475: Support WASI SDK 25.
|
||||
+ gh-140239: Check statx availability only on Linux (including Android).
|
||||
+ gh-137618: PYTHON_FOR_REGEN now requires Python 3.10 to Python 3.15.
|
||||
- Drop patch CVE-2025-6075-expandvars-perf-degrad.patch, included upstream.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 13 17:13:03 UTC 2025 - Matej Cepl <mcepl@cepl.eu>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user