Opened 2 years ago

Closed 2 years ago

#5070 closed enhancement (fixed)

python3-3.10.5

Reported by: Bruce Dubbs Owned by: lfs-book
Priority: normal Milestone: 11.2
Component: Book Version: git
Severity: normal Keywords:
Cc:

Description

New point version.

Change History (2)

comment:1 by Bruce Dubbs, 2 years ago

Python 3.10.5 final

Release date: 2022-06-06 Core and Builtins

  • h-93418: Fixed an assert where an f-string has an equal sign ‘=’ following an expression, but there’s no trailing brace. For example, f”{i=”.
  • h-91924: Fix ltrace debug feature if the stdout encoding is not UTF-8.
  • h-93061: Backward jumps after async for loops are no longer given dubious line numbers.
  • h-93065: Fix contextvars HAMT implementation to handle iteration over deep trees.
  • h-92311: Fixed a bug where setting frame.f_lineno to jump over a list comprehension could misbehave or crash.
  • h-92112: Fix crash triggered by an evil custom mro() on a metaclass.
  • h-92036: Fix a crash in subinterpreters related to the garbage collector. When a subinterpreter is deleted, untrack all objects tracked by its GC. To prevent a crash in deallocator functions expecting objects to be tracked by the GC, leak a strong reference to these objects on purpose, so they are never deleted and their deallocator functions are not called.
  • h-91421: Fix a potential integer overflow in _Py_DecodeUTF8Ex.
  • po-47212: Raise IndentationError instead of SyntaxError for a bare except with no following indent. Improve SyntaxError locations for an un-parenthesized generator used as arguments.
  • po-47182: Fix a crash when using a named unicode character like "\N{digit nine}" after the main interpreter has been initialized a second time.
  • po-46775: Some Windows system error codes(>= 10000) are now mapped into the correct errno and may now raise a subclass of OSError.
  • po-47117: Fix a crash if we fail to decode characters in interactive mode if the tokenizer buffers are uninitialized.
  • po-39829: Removed the len() call when initializing a list and moved initializing to list_extend.
  • po-46962: Classes and functions that unconditionally declared their docstrings ignoring the --without-doc-strings compilation flag no longer do so.
    • The classes affected are ctypes.UnionType, pickle.PickleBuffer, testcapi.RecursingInfinitelyError, and types.GenericAlias.
    • The functions affected are 24 methods in ctypes.
  • po-36819: Fix crashes in built-in encoders with error handlers that return position less or equal than the starting position of non-encodable characters.

Library

  • h-93156: Accessing the pathlib.PurePath.parents sequence of an absolute path using negative index values produced incorrect results.
  • h-89973: Fix re.error raised in fnmatch if the pattern contains a character range with upper bound lower than lower bound (e.g. [c-a]). Now such ranges are interpreted as empty ranges.
  • h-93010: In a very special case, the email package tried to append the nonexistent InvalidHeaderError to the defect list. It should have been InvalidHeaderDefect.
  • h-92839: Fixed crash resulting from calling bisect.insort() or bisect.insort_left() with the key argument not equal to None.
  • h-91581: utcfromtimestamp() no longer attempts to resolve fold in the pure Python implementation, since the fold is never 1 in UTC. In addition to being slightly faster in the common case, this also prevents some errors when the timestamp is close to datetime.min.
  • h-92530: Fix an issue that occurred after interrupting threading.Condition.notify().
  • h-92049: Forbid pickling constants re._constants.SUCCESS etc. Previously, pickling did not fail, but the result could not be unpickled.
  • po-47029: Always close the read end of the pipe used by multiprocessing.Queue after the last write of buffered data to the write end of the pipe to avoid BrokenPipeError at garbage collection and at multiprocessing.Queue.close() calls.
  • h-91401: Provide a fail-safe way to disable subprocess use of vfork() via a private subprocess._USE_VFORK attribute. While there is currently no known need for this, if you find a need please only set it to False. File a CPython issue as to why you needed it and link to that from a comment in your code. This attribute is documented as a footnote in 3.11.
  • h-91910: Add missing f prefix to f-strings in error messages from the multiprocessing and asyncio modules.
  • h-91810: ElementTree method write() and function tostring() now use the text file’s encoding (“UTF-8” if not available) instead of locale encoding in XML declaration when encoding="unicode" is specified.
  • h-91832: Add required attribute to argparse.Action repr output.
  • h-91734: Fix OSS audio support on Solaris.
  • h-91700: Compilation of regular expression containing a conditional expression (?(group)...) now raises an appropriate re.error if the group number refers to not defined group. Previously an internal RuntimeError was raised.
  • h-91676: Fix unittest.IsolatedAsyncioTestCase to shutdown the per test event loop executor before returning from its run method so that a not yet stopped or garbage collected executor state does not persist beyond the test.
  • h-90568: Parsing \N escapes of Unicode Named Character Sequences in a regular expression raises now re.error instead of TypeError.
  • h-91595: Fix the comparison of character and integer inside Tools.gdb.libpython.write_repr()
  • h-91575: Update case-insensitive matching in the re module to the latest Unicode version.
  • h-91581: Remove an unhandled error case in the C implementation of calls to datetime.fromtimestamp with no time zone (i.e. getting a local time from an epoch timestamp). This should have no user-facing effect other than giving a possibly more accurate error message when called with timestamps that fall on 10000-01-01 in the local time.
  • po-47260: Fix os.closerange() potentially being a no-op in a Linux seccomp sandbox.
  • po-39064: zipfile.ZipFile now raises zipfile.BadZipFile instead of ValueError when reading a corrupt zip file in which the central directory offset is negative.
  • po-47151: When subprocess tries to use vfork, it now falls back to fork if vfork returns an error. This allows use in situations where vfork isn’t allowed by the OS kernel.
  • po-27929: Fix asyncio.loop.sock_connect() to only resolve names for socket.AF_INET or socket.AF_INET6 families. Resolution may not make sense for other families, like socket.AF_BLUETOOTH and socket.AF_UNIX.
  • po-43323: Fix errors in the email module if the charset itself contains undecodable/unencodable characters.
  • po-47101: hashlib.algorithms_available now lists only algorithms that are provided by activated crypto providers on OpenSSL 3.0. Legacy algorithms are not listed unless the legacy provider has been loaded into the default OSSL context.
  • po-46787: Fix concurrent.futures.ProcessPoolExecutor exception memory leak
  • po-45393: Fix the formatting for await x and not x in the operator precedence table when using the help() system.
  • po-46415: Fix ipaddress.ip_{address,interface,network} raising TypeError instead of ValueError if given invalid tuple as address parameter.
  • po-28249: Set doctest.DocTest.lineno to None when object does not have doc.
  • po-45138: Fix a regression in the sqlite3 trace callback where bound parameters were not expanded in the passed statement string. The regression was introduced in Python 3.10 by bpo-40318.
  • po-44493: Add missing terminated NUL in sockaddr_un’s length
    • This was potentially observable when using non-abstract AF_UNIX datagram sockets to processes written in another programming language.
  • po-42627: Fix incorrect parsing of Windows registry proxy settings
  • po-36073: Raise ProgrammingError instead of segfaulting on recursive usage of cursors in sqlite3 converters.

Documentation

  • h-86438: Clarify that -W and PYTHONWARNINGS are matched literally and case-insensitively, rather than as regular expressions, in warnings.
  • h-92240: Added release dates for “What’s New in Python 3.X” for 3.0, 3.1, 3.2, 3.8 and 3.10
  • h-91888: Add a new gh role to the documentation to link to GitHub issues.
  • h-91783: Document security issues concerning the use of the function shutil.unpack_archive()
  • h-91547: Remove “Undocumented modules” page.
  • po-44347: Clarify the meaning of dirs_exist_ok, a kwarg of shutil.copytree().
  • po-38668: Update the introduction to documentation for os.path to remove i warnings that became irrelevant after the implementations of PEP 383 and PEP 529.
  • po-47138: Pin Jinja to a version compatible with Sphinx version 3.2.1.
  • po-46962: All docstrings in code snippets are now wrapped into PyDoc_STR() to follow the guideline of PEP 7’s Documentation Strings paragraph.
  • bpo-26792: Improve the docstrings of runpy.run_module() and runpy.run_path().
  • po-40838: Document that inspect.getdoc(), inspect.getmodule(), and inspect.getsourcefile() might return None.
  • po-45790: Adjust inaccurate phrasing in Defining Extension Types: i Tutorial about the ob_base field and the macros used to access its contents.
  • po-42340: Document that in some circumstances KeyboardInterrupt may cause the code to enter an inconsistent state. Provided a sample workaround to avoid it if needed.
  • po-41233: Link the errnos referenced in Doc/library/exceptions.rst to their respective section in Doc/library/errno.rst, and vice versa. Previously this was only done for EINTR and InterruptedError.
  • po-38056: Overhaul the Error Handlers documentation in codecs.
  • po-13553: Document tkinter.Tk args.

Tests

  • h-92886: Fixing tests that fail when running with optimizations (-O) in test_imaplib.py.
  • h-92670: Skip test_shutil.TestCopy.test_copyfile_nonexistent_dir test on AIX as the test uses a trailing slash to force the OS consider the path as a directory, but on AIX the trailing slash has no effect and is considered as a file.
  • h-91904: Fix initialization of PYTHONREGRTEST_UNICODE_GUARD which prevented running regression tests on non-UTF-8 locale.
  • h-91607: Fix test_concurrent_futures to test the correct multiprocessing start method context in several cases where the test logic mixed this up.
  • po-47205: Skip test for sched_getaffinity() and sched_setaffinity() error case on FreeBSD.
  • po-47104: Rewrite asyncio.to_thread() tests to use unittest.IsolatedAsyncioTestCase.
  • po-29890: Add tests for ipaddress.IPv4Interface and ipaddress.IPv6Interface construction with tuple arguments. Original patch and tests by louisom.

Build

  • po-47103: Windows PGInstrument builds now copy a required DLL into the output directory, making it easier to run the profile stage of a PGO build.

Windows

  • h-92984: Explicitly disable incremental linking for non-Debug builds
  • po-47194: Update zlib to v1.2.12 to resolve CVE-2018-25032.
  • po-46785: Fix race condition between os.stat() and unlinking a file on Windows, by using errors codes returned by FindFirstFileW() when appropriate in win32_xstat_impl.
  • po-40859: Update Windows build to use xz-5.2.5

Tools/Demos

  • h-91583: Fix regression in the code generated by Argument Clinic i for functions with the defining_class parameter.

comment:2 by Bruce Dubbs, 2 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.