- Tests
- gh-59022: Add tests for pkgutil.extend_path(). Patch by
Andreas Stocker.
- gh-99242: os.getloadavg() may throw OSError when
running regression tests under certain conditions (e.g.
chroot). This error is now caught and ignored, since
reporting load average is optional.
- Security
- gh-122133: Authenticate the socket connection for the
socket.socketpair() fallback on platforms where AF_UNIX is
not available like Windows.
- Patch by Gregory P. Smith <greg@krypto.org> and Seth Larson
<seth@python.org>. Reported by Ellie <el@horse64.org>
- gh-121957: Fixed missing audit events around interactive
use of Python, now also properly firing for python -i, as
well as for python -m asyncio. The events in question are
cpython.run_stdin and cpython.run_startup.
- Library
- gh-122400: Handle ValueErrors raised by os.stat() in
filecmp.dircmp and filecmp.cmpfiles(). Patch by Bénédikt
Tran.
- gh-122311: Fix some error messages in pickle.
- gh-122332: Fixed segfault with asyncio.Task.get_coro() when
using an eager task factory.
- gh-105733: ctypes.ARRAY() is now soft deprecated: it no
longer emits deprecation warnings and is not scheduled for
removal.
- gh-122087: Restore inspect.ismethoddescriptor() and
inspect.isroutine() returning False for functools.partial
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python313?expand=0&rev=31
- Tests
- gh-121084: Fix test_typing random leaks. Clear typing ABC
caches when running tests for refleaks (-R option): call
_abc_caches_clear() on typing abstract classes and their
subclasses.
- gh-121160: Add a test for
readline.set_history_length(). Note that this test may fail
on readline libraries.
- gh-121200: Fix test_expanduser_pwd2() of
test_posixpath. Call getpwnam() to get pw_dir, since it
can be different than getpwall() pw_dir.
- gh-121188: When creating the JUnit XML file, regrtest
now escapes characters which are invalid in XML, such
as the chr(27) control character used in ANSI escape
sequences.
- Library
- gh-57141: The shallow argument to filecmp.dircmp (new in
Python 3.13) is now keyword-only.
- gh-121245: Simplify handling of the history file in
site.register_readline() helper. The CAN_USE_PYREPL
variable now will be initialized, when imported.
- gh-121332: Fix constructor of ast nodes with custom
_attributes. Previously, passing custom attributes would
raise a DeprecationWarning. Passing arguments to the
constructor that are not in _fields or _attributes remains
deprecated.
- gh-121279: Avoid NameError for the warnings module when
accessing the depracated atributes of the importlib.abc
module.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python313?expand=0&rev=26
* Core and Builtins
- gh-119462: Make sure that invariants of type versioning are
maintained:
* Superclasses always have their version number assigned
before subclasses
* The version tag is always zero if the tag is not valid.
* The version tag is always non-zero if the tag is valid.
- gh-120437: Fix _CHECK_STACK_SPACE optimization problems
introduced in gh-118322.
- gh-120722: Correctly set the bytecode position on return
instructions within lambdas. Patch by Jelle Zijlstra.
- gh-120367: Fix bug where compiler creates a redundant
jump during pseudo-op replacement. Can only happen with
a synthetic AST that has a try on the same line as the
instruction following the exception handler.
- gh-113993: Strings interned with sys.intern() are again
garbage-collected when no longer used, as per the
documentation. Strings interned with the C function
PyUnicode_InternInPlace() are still immortal. Internals of
the string interning mechanism have been changed. This may
affect performance and identities of str objects.
- gh-120384: Fix an array out of bounds crash in
list_ass_subscript, which could be invoked via some
specificly tailored input: including concurrent
modification of a list object, where one thread assigns a
slice and another clears it.
- gh-120367: Fix crash in compiler on code with redundant
NOPs and JUMPs which show up after exception handlers are
moved to the end of the code.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python313?expand=0&rev=19
- Security
- gh-113659: Skip .pth files with names starting with a dot or
hidden file attribute.
- gh-112302: Created a Software Bill-of-Materials document and
tooling for tracking dependencies.
- Core and Builtins
- gh-107901: Compiler duplicates basic blocks that have an eval
breaker check, no line number, and multiple predecessors.
- gh-107901: A jump leaving an exception handler back to normal
code no longer checks the eval breaker.
- gh-113655: Set the C recursion limit to 4000 on Windows, and
10000 on Linux/OSX. This seems to be near the sweet spot to
maintain safety, but not compromise backwards compatibility.
- gh-113710: Add typed stack effects to the interpreter DSL, along
with various instruction annotations.
- gh-77046: On Windows, file descriptors wrapping Windows handles
are now created non inheritable by default (PEP 446). Patch by
Zackery Spytz and Victor Stinner.
- gh-113853: Guarantee that all executors make progress. This then
guarantees that tier 2 execution always makes progress.
- gh-113753: Fix an issue where the finalizer of PyAsyncGenASend
objects might not be called if they were allocated from a free
list.
- gh-107901: Compiler changed so that synthetic jumps which are
not at loop end no longer check the eval breaker.
- gh-113703: Fix a regression in the codeop module that was
causing it to incorrectly identify incomplete f-strings. Patch
by Pablo Galindo
- gh-89811: Check for a valid tp_version_tag before performing
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python313?expand=0&rev=3
Python 3.13.0 alpha 2¶
- Core and Builtins:
- Don’t include comments in f-string debug expressions. Patch
by Pablo Galindo
- Slightly optimize the Tier 2 (uop) interpreter by only
loading oparg and operand when needed. Also double the
trace size limit again, to 512 this time.
- Change docstrings of __dict__ and __weakref__.
- Lower the max parser stack depth to 1000 under WASI debug
builds.
- When Python is built in debug mode, set the C recursion
limit to 500 instead of 1500. A debug build is likely built
with low optimization level which implies higher stack
memory usage than a release build. Patch by Victor Stinner.
- Enable translating unspecialized FOR_ITER to Tier 2.
- Make hashlib related modules thread-safe without the GIL
- Deprecate assignment to a function’s __code__ field when
the new code object is of a mismatched type (e.g., from a
generator to a plain function).
- Raise exception if frame.clear() is called on a suspended
frame.
- Implement native thread ids for GNU KFreeBSD.
- Use exponential backoff to reduce the number of failed tier
2 optimization attempts by over 99%.
- Joining a thread now ensures the underlying OS thread has
exited. This is required for safer fork() in multi-threaded
processes.
- Make sure that tier 2 traces are de-optimized if the code
is instrumented
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python313?expand=0&rev=2