Log message:
python311 py311-html-docs: updated to 3.11.6
Python 3.11.6 final
Core and Builtins
gh-109351: Fix crash when compiling an invalid AST involving a named (walrus) \
expression.
gh-109207: Fix a SystemError in __repr__ of symtable entry object.
gh-109179: Fix bug where the C traceback display drops notes from SyntaxError.
gh-88943: Improve syntax error for non-ASCII character that follows a numerical \
literal. It now points on the invalid non-ASCII character, not on the valid \
numerical literal.
gh-108959: Fix caret placement for error locations for subscript and binary \
operations that involve non-semantic parentheses and spaces. Patch by Pablo \
Galindo
gh-108520: Fix multiprocessing.synchronize.SemLock.__setstate__() to properly \
initialize multiprocessing.synchronize.SemLock._is_fork_ctx. This fixes a \
regression when passing a SemLock accross nested processes.
Rename multiprocessing.synchronize.SemLock.is_fork_ctx to \
multiprocessing.synchronize.SemLock._is_fork_ctx to avoid exposing it as public \
API.
Library
gh-110036: On Windows, multiprocessing Popen.terminate() now catchs \
PermissionError and get the process exit code. If the process is still running, \
raise again the PermissionError. Otherwise, the process terminated as expected: \
store its exit code. Patch by Victor Stinner.
gh-110038: Fixed an issue that caused KqueueSelector.select() to not return all \
the ready events in some cases when a file descriptor is registered for both \
read and write.
gh-109631: re functions such as re.findall(), re.split(), re.search() and \
re.sub() which perform short repeated matches can now be interrupted by user.
gh-109593: Avoid deadlocking on a reentrant call to the multiprocessing resource \
tracker. Such a reentrant call, though unlikely, can happen if a GC pass invokes \
the finalizer for a multiprocessing object such as SemLock.
gh-109613: Fix os.stat() and os.DirEntry.stat(): check for exceptions. \
Previously, on Python built in debug mode, these functions could trigger a fatal \
Python error (and abort the process) when a function succeeded with an exception \
set. Patch by Victor Stinner.
gh-109375: The pdb alias command now prevents registering aliases without arguments.
gh-107219: Fix a race condition in concurrent.futures. When a process in the \
process pool was terminated abruptly (while the future was running or pending), \
close the connection write end. If the call queue is blocked on sending bytes to \
a worker process, closing the connection write end interrupts the send, so the \
queue can be closed. Patch by Victor Stinner.
gh-50644: Attempts to pickle or create a shallow or deep copy of codecs streams \
now raise a TypeError. Previously, copying failed with a RecursionError, while \
pickling produced wrong results that eventually caused unpickling to fail with a \
RecursionError.
gh-108987: Fix _thread.start_new_thread() race condition. If a thread is created \
during Python finalization, the newly spawned thread now exits immediately \
instead of trying to access freed memory and lead to a crash. Patch by Victor \
Stinner.
gh-108843: Fix an issue in ast.unparse() when unparsing f-strings containing \
many quote types.
gh-108682: Enum: raise TypeError if super().__new__() is called from a custom \
__new__.
gh-105829: Fix concurrent.futures.ProcessPoolExecutor deadlock
gh-64662: Fix support for virtual tables in sqlite3.Connection.iterdump(). Patch \
by Aviv Palivoda.
gh-107913: Fix possible losses of errno and winerror values in OSError \
exceptions if they were cleared or modified by the cleanup code before creating \
the exception object.
gh-104372: On Linux where subprocess can use the vfork() syscall for faster \
spawning, prevent the parent process from blocking other threads by dropping the \
GIL while it waits for the vfork’ed child process exec() outcome. This \
prevents spawning a binary from a slow filesystem from blocking the rest of the \
application.
gh-84867: unittest.TestLoader no longer loads test cases from exact \
unittest.TestCase and unittest.FunctionTestCase classes.
Documentation
gh-109209: The minimum Sphinx version required for the documentation is now 4.2.
gh-105052: Update timeit doc to specify that time in seconds is just the default.
gh-102823: Document the return type of x // y when x and y have type float.
Tests
gh-110031: Skip test_threading tests using thread+fork if Python is built with \
Address Sanitizer (ASAN). Patch by Victor Stinner.
gh-110088: Fix test_asyncio timeouts: don’t measure the maximum duration, a \
test should not measure a CI performance. Only measure the minimum duration when \
a task has a timeout or delay. Add CLOCK_RES to test_asyncio.utils. Patch by \
Victor Stinner.
gh-110033: Fix test_interprocess_signal() of test_signal. Make sure that the \
subprocess.Popen object is deleted before the test raising an exception in a \
signal handler. Otherwise, Popen.__del__() can get the exception which is logged \
as Exception ignored in: ... and the test fails. Patch by Victor Stinner.
gh-109594: Fix test_timeout() of test_concurrent_futures.test_wait. Remove the \
future which may or may not complete depending if it takes longer than the \
timeout ot not. Keep the second future which does not complete before wait() \
timeout. Patch by Victor Stinner.
gh-109748: Fix test_zippath_from_non_installed_posix() of test_venv: don’t \
copy __pycache__/ sub-directories, because they can be modified by other Python \
tests running in parallel. Patch by Victor Stinner.
gh-103053: Skip test_freeze_simple_script() of test_tools.test_freeze if Python \
is built with ./configure --enable-optimizations, which means with Profile \
Guided Optimization (PGO): it just makes the test too slow. The freeze tool is \
tested by many other CIs with other (faster) compiler flags. Patch by Victor \
Stinner.
gh-109396: Fix test_socket.test_hmac_sha1() in FIPS mode. Use a longer key: FIPS \
mode requires at least of at least 112 bits. The previous key was only 32 bits. \
Patch by Victor Stinner.
gh-104736: Fix test_gdb on Python built with LLVM clang 16 on Linux ppc64le (ex: \
Fedora 38). Search patterns in gdb “bt” command output to detect when gdb \
fails to retrieve the traceback. For example, skip a test if Backtrace stopped: \
frame did not save the PC is found. Patch by Victor Stinner.
gh-109237: Fix test_site.test_underpth_basic() when the working directory \
contains at least one non-ASCII character: encode the ._pth file to UTF-8 and \
enable the UTF-8 Mode to use UTF-8 for the child process stdout. Patch by Victor \
Stinner.
gh-109230: Fix test_pyexpat.test_exception(): it can now be run from a directory \
different than Python source code directory. Before, the test failed in this \
case. Skip the test if Modules/pyexpat.c source is not available. Skip also the \
test on Python implementations other than CPython. Patch by Victor Stinner.
gh-109015: Fix test_asyncio, test_imaplib and test_socket tests on FreeBSD if \
the TCP blackhole is enabled (sysctl net.inet.tcp.blackhole). Skip the few tests \
which failed with ETIMEDOUT which such non standard configuration. Currently, \
the FreeBSD GCP image enables TCP and UDP blackhole (sysctl \
net.inet.tcp.blackhole=2 and sysctl net.inet.udp.blackhole=1). Patch by Victor \
Stinner.
gh-91960: Skip test_gdb if gdb is unable to retrieve Python frame objects: if a \
frame is <optimized out>. When Python is built with “clang -Og”, gdb \
can fail to retrive the frame parameter of _PyEval_EvalFrameDefault(). In this \
case, tests like py_bt() are likely to fail. Without getting access to Python \
frames, python-gdb.py is mostly clueless on retrieving the Python traceback. \
Moreover, test_gdb is no longer skipped on macOS if Python is built with Clang. \
Patch by Victor Stinner.
gh-108962: Skip test_tempfile.test_flags() if chflags() fails with “OSError: \
[Errno 45] Operation not supported” (ex: on FreeBSD 13). Patch by Victor \
Stinner.
gh-89392: Removed support of test_main() function in tests. They now always use \
normal unittest test runner.
gh-108851: Fix test_tomllib recursion tests for WASI buildbots: reduce the \
recursion limit and compute the maximum nested array/dict depending on the \
current available recursion limit. Patch by Victor Stinner.
gh-108851: Add get_recursion_available() and get_recursion_depth() functions to \
the test.support module. Patch by Victor Stinner.
gh-108822: regrtest now computes statistics on all tests: successes, failures \
and skipped. test_netrc, test_pep646_syntax and test_xml_etree now return \
results in their test_main() function. Patch by Victor Stinner and Alex Waygood.
gh-108388: Convert test_concurrent_futures to a package of 7 sub-tests. Patch by \
Victor Stinner.
gh-108388: Split test_multiprocessing_fork, test_multiprocessing_forkserver and \
test_multiprocessing_spawn into test packages. Each package is made of 4 \
sub-tests: processes, threads, manager and misc. It allows running more tests in \
parallel and so reduce the total test duration. Patch by Victor Stinner.
gh-101634: When running the Python test suite with -jN option, if a worker \
stdout cannot be decoded from the locale encoding report a failed testn so the \
exitcode is non-zero. Patch by Victor Stinner.
gh-100086: The Python test runner (libregrtest) now logs Python build \
information like “debug” vs “release” build, or LTO and PGO \
optimizations. Patch by Victor Stinner.
gh-98903: The Python test suite now fails wit exit code 4 if no tests ran. It \
should help detecting typos in test names and test methods.
gh-95027: On Windows, when the Python test suite is run with the -jN option, the \
ANSI code page is now used as the encoding for the stdout temporary file, rather \
than using UTF-8 which can lead to decoding errors. Patch by Victor Stinner.
gh-93353: regrtest now checks if a test leaks temporary files or directories if \
run with -jN option. Patch by Victor Stinner.
Build
gh-63760: Fix Solaris build: no longer redefine the gethostname() function. \
Solaris defines the function since 2005. Patch by Victor Stinner, original patch \
by Jakub Kulík.
gh-108740: Fix a race condition in make regen-all. The deepfreeze.c source and \
files generated by Argument Clinic are now generated or updated before \
generating “global objects”. Previously, some identifiers may miss depending \
on the order in which these files were generated. Patch by Victor Stinner.
Windows
gh-109991: Update Windows build to use OpenSSL 3.0.11.
gh-107565: Update Windows build to use OpenSSL 3.0.10.
macOS
gh-109991: Update macOS installer to use OpenSSL 3.0.11.
Tools/Demos
gh-109991: Update GitHub CI workflows to use OpenSSL 3.0.11 and multissltests to \
use 1.1.1w, 3.0.11, and 3.1.3.
|
Log message:
python311 py311-html-docs: updated to 3.11.5
Python 3.11.5
Security
gh-108310: Fixed an issue where instances of ssl.SSLSocket were vulnerable to a \
bypass of the TLS handshake and included protections (like certificate \
verification) and treating sent unencrypted data as if it were post-handshake \
TLS encrypted data. Security issue reported as CVE-2023-40217 by Aapo Oksman. \
Patch by Gregory P. Smith.
Core and Builtins
gh-104432: Fix potential unaligned memory access on C APIs involving returned \
sequences of char * pointers within the grp and socket modules. These were \
revealed using a -fsaniziter=alignment build on ARM macOS. Patch by Christopher \
Chavez.
gh-77377: Ensure that multiprocessing synchronization objects created in a fork \
context are not sent to a different process created in a spawn context. This \
changes a segfault into an actionable RuntimeError in the parent process.
gh-106092: Fix a segmentation fault caused by a use-after-free bug in \
frame_dealloc when the trashcan delays the deallocation of a PyFrameObject.
gh-106719: No longer suppress arbitrary errors in the __annotations__ getter and \
setter in the type and module types.
gh-106723: Propagate frozen_modules to multiprocessing spawned process interpreters.
gh-105979: Fix crash in _imp.get_frozen_object() due to improper exception handling.
gh-105840: Fix possible crashes when specializing function calls with too many \
__defaults__.
gh-105588: Fix an issue that could result in crashes when compiling malformed \
ast nodes.
gh-105375: Fix bugs in the builtins module where exceptions could end up being \
overwritten.
gh-105375: Fix bug in the compiler where an exception could end up being overwritten.
gh-105375: Improve error handling in PyUnicode_BuildEncodingMap() where an \
exception could end up being overwritten.
gh-105235: Prevent out-of-bounds memory access during mmap.find() calls.
gh-101006: Improve error handling when read marshal data.
Library
gh-105736: Harmonized the pure Python version of OrderedDict with the C version. \
Now, both versions set up their internal state in __new__. Formerly, the pure \
Python version did the set up in __init__.
gh-107963: Fix multiprocessing.set_forkserver_preload() to check the given list \
of modules names. Patch by Dong-hee Na.
gh-106242: Fixes os.path.normpath() to handle embedded null characters without \
truncating the path.
gh-107845: tarfile.data_filter() now takes the location of symlinks into account \
when determining their target, so it will no longer reject some valid tarballs \
with LinkOutsideDestinationError.
gh-107715: Fix doctest.DocTestFinder.find() in presence of class names with \
special characters. Patch by Gertjan van Zwieten.
gh-100814: Passing a callable object as an option value to a Tkinter image now \
raises the expected TclError instead of an AttributeError.
gh-106684: Close asyncio.StreamWriter when it is not closed by application \
leading to memory leaks. Patch by Kumar Aditya.
gh-107077: Seems that in some conditions, OpenSSL will return SSL_ERROR_SYSCALL \
instead of SSL_ERROR_SSL when a certification verification has failed, but the \
error parameters will still contain ERR_LIB_SSL and \
SSL_R_CERTIFICATE_VERIFY_FAILED. We are now detecting this situation and raising \
the appropiate ssl.SSLCertVerificationError. Patch by Pablo Galindo
gh-107396: tarfiles; Fixed use before assignment of self.exception for gzip \
decompression
gh-62519: Make gettext.pgettext() search plural definitions when translation is \
not found.
gh-83006: Document behavior of shutil.disk_usage() for non-mounted filesystems \
on Unix.
gh-106186: Do not report MultipartInvariantViolationDefect defect when the \
email.parser.Parser class is used to parse emails with headersonly=True.
gh-106831: Fix potential missing NULL check of d2i_SSL_SESSION result in _ssl.c.
gh-106774: Update the bundled copy of pip to version 23.2.1.
gh-106752: Fixed several bug in zipfile.Path in name/suffix/suffixes/stem \
operations when no filename is present and the Path is not at the root of the \
zipfile.
gh-106602: Add __copy__ and __deepcopy__ in enum
gh-106530: Revert a change to colorsys.rgb_to_hls() that caused division by zero \
for certain almost-white inputs. Patch by Terry Jan Reedy.
gh-106052: re module: fix the matching of possessive quantifiers in the case of \
a subpattern containing backtracking.
gh-106510: Improve debug output for atomic groups in regular expressions.
gh-105497: Fix flag mask inversion when unnamed flags exist.
gh-90876: Prevent multiprocessing.spawn from failing to import in environments \
where sys.executable is None. This regressed in 3.11 with the addition of \
support for path-like objects in multiprocessing.
gh-106350: Detect possible memory allocation failure in the libtommath function \
mp_init() used by the _tkinter module.
gh-102541: Make pydoc.doc catch bad module ImportError when output stream is not \
None.
gh-106263: Fix crash when calling repr with a manually constructed SignalDict \
object. Patch by Charlie Zhao.
gh-105375: Fix a bug in _Unpickler_SetInputStream() where an exception could end \
up being overwritten in case of failure.
gh-105375: Fix bugs in sys where exceptions could end up being overwritten \
because of deferred error handling.
gh-105605: Harden pyexpat error handling during module initialisation to prevent \
exceptions from possibly being overwritten, and objects from being dereferenced \
twice.
gh-105375: Fix bug in decimal where an exception could end up being overwritten.
gh-105375: Fix bugs in _datetime where exceptions could be overwritten in case \
of module initialisation failure.
gh-105375: Fix bugs in _ssl initialisation which could lead to leaked references \
and overwritten exceptions.
gh-105375: Fix a bug in array.array where an exception could end up being \
overwritten.
gh-105375: Fix bugs in _ctypes where exceptions could end up being overwritten.
gh-105375: Fix a bug in the posix module where an exception could be overwritten.
gh-105375: Fix bugs in _elementtree where exceptions could be overwritten.
gh-105375: Fix bugs in zoneinfo where exceptions could be overwritten.
gh-105375: Fix bugs in pickle where exceptions could be overwritten.
gh-105497: Fix flag inversion when alias/mask members exist.
gh-105375: Fix bugs in pickle where exceptions could be overwritten.
gh-103171: Revert undocumented behaviour change with runtime-checkable protocols \
decorated with typing.final() in Python 3.11. The behaviour change had meant \
that objects would not be considered instances of these protocols at runtime \
unless they had a __final__ attribute. Patch by Alex Waygood.
gh-105375: Fix a bug in sqlite3 where an exception could be overwritten in the \
collation callback.
gh-105332: Revert pickling method from by-name back to by-value.
gh-104554: Add RTSPS scheme support in urllib.parse
gh-100061: Fix a bug that causes wrong matches for regular expressions with \
possessive qualifier.
gh-102541: Hide traceback in help() prompt, when import failed.
gh-99203: Restore following CPython <= 3.10.5 behavior of \
shutil.make_archive(): do not create an empty archive if root_dir is not a \
directory, and, in that case, raise FileNotFoundError or NotADirectoryError \
regardless of format choice. Beyond the brought-back behavior, the function may \
now also raise these exceptions in dry_run mode.
gh-94777: Fix hanging multiprocessing ProcessPoolExecutor when a child process \
crashes while data is being written in the call queue.
bpo-18319: Ensure gettext(msg) retrieve translations even if a plural form \
exists. In other words: gettext(msg) == ngettext(msg, '', 1).
Documentation
gh-107008: Document the curses module variables LINES and COLS.
gh-106948: Add a number of standard external names to nitpick_ignore.
gh-54738: Add documentation on how to localize the argparse module.
Tests
gh-105776: Fix test_cppext when the C compiler command -std=c11 option: remove \
-std= options from the compiler command. Patch by Victor Stinner.
gh-107237: test_logging: Fix test_udp_reconnection() by increasing the timeout \
from 100 ms to 5 minutes (LONG_TIMEOUT). Patch by Victor Stinner.
gh-101634: When running the Python test suite with -jN option, if a worker \
stdout cannot be decoded from the locale encoding report a failed testn so the \
exitcode is non-zero. Patch by Victor Stinner.
Build
gh-107814: When calling find_python.bat with -q it did not properly silence the \
output of nuget. That is now fixed.
gh-106881: Check for linux/limits.h before including it in Modules/posixmodule.c.
gh-104692: Include commoninstall as a prerequisite for bininstall
This ensures that commoninstall is completed before bininstall is started when \
parallel builds are used (make -j install), and so the python3 symlink is only \
installed after all standard library modules are installed.
gh-100340: Allows -Wno-int-conversion for wasm-sdk 17 and onwards, thus enables \
building WASI builds once against the latest sdk.
Windows
gh-106242: Fixes realpath() to behave consistently when passed a path containing \
an embedded null character on Windows. In strict mode, it now raises OSError \
instead of the unexpected ValueError, and in non-strict mode will make the path \
absolute.
gh-106844: Fix integer overflow in _winapi.LCMapStringEx() which affects \
ntpath.normcase().
gh-99079: Update Windows build to use OpenSSL 3.0.9
gh-105436: Ensure that an empty environment block is terminated by two null \
characters, as is required by Windows.
macOS
gh-107565: Update macOS installer to use OpenSSL 3.0.10.
gh-99079: Update macOS installer to use OpenSSL 3.0.9.
Tools/Demos
gh-107565: Update multissltests and GitHub CI workflows to use OpenSSL 1.1.1v, \
3.0.10, and 3.1.2.
gh-95065: Argument Clinic now supports overriding automatically generated \
signature by using directive @text_signature. See How to override the generated \
signature.
gh-106970: Fix bugs in the Argument Clinic destination <name> clear \
command; the destination buffers would never be cleared, and the destination \
directive parser would simply continue to the fault handler after processing the \
command. Patch by Erlend E. Aasland.
C API
gh-107916: C API functions PyErr_SetFromErrnoWithFilename(), \
PyErr_SetExcFromWindowsErrWithFilename() and \
PyErr_SetFromWindowsErrWithFilename() save now the error code before calling \
PyUnicode_DecodeFSDefault().
gh-107915: Such C API functions as PyErr_SetString(), PyErr_Format(), \
PyErr_SetFromErrnoWithFilename() and many others no longer crash or ignore \
errors if it failed to format the error message or decode the filename. Instead, \
they keep a corresponding error.
gh-107226: PyModule_AddObjectRef() is now only available in the limited API \
version 3.10 or later.
gh-105375: Fix a bug in PyErr_WarnExplicit() where an exception could end up \
being overwritten if the API failed internally.
gh-99612: Fix PyUnicode_DecodeUTF8Stateful() for ASCII-only data: *consumed was \
not set.
|