#4767: python3-3.9.1
--------------------+-----------------------
 Reporter:  bdubbs  |       Owner:  lfs-book
     Type:  task    |      Status:  new
 Priority:  normal  |   Milestone:  10.1
Component:  Book    |     Version:  SVN
 Severity:  normal  |  Resolution:
 Keywords:          |
--------------------+-----------------------

Comment (by bdubbs):

 What's New in Python 3.9.1 final?

 *Release date: 2020-12-07*

 Core and Builtins

 - bpo-42576: ``types.GenericAlias`` will now raise a ``TypeError`` when
   attempting to initialize with a keyword argument.  Previously, this
 would
   cause the interpreter to crash if the interpreter was compiled with
 debug
   symbols. This does not affect interpreters compiled for release.  Patch
 by
   Ken Jin.

 Library

 - bpo-5054: CGIHTTPRequestHandler.run_cgi() HTTP_ACCEPT improperly parsed.
   Replace the special purpose getallmatchingheaders with generic get_all
   method and add relevant tests.

 - bpo-17735: :func:`inspect.findsource` now raises :exc:`OSError` instead
 of
   :exc:`IndexError` when :attr:`co_lineno` of a code object is greater
 than
   the file length. This can happen, for example, when a file is edited
 after
   it was imported.

 - bpo-42116: Fix handling of trailing comments by
 :func:`inspect.getsource`.

 - bpo-42487: ChainMap.__iter__ no longer calls __getitem__ on underlying
   maps

 - bpo-42482: :class:`~traceback.TracebackException` no longer holds a
   reference to the exception's traceback object. Consequently, instances
 of
   TracebackException for equivalent but non-equal exceptions now compare
 as
   equal.

 - bpo-42406: We fixed an issue in `pickle.whichmodule` in which importing
   `multiprocessing` could change the how pickle identifies which module an
   object belongs to, potentially breaking the unpickling of those objects.

 - bpo-34215: Clarify the error message for
   :exc:`asyncio.IncompleteReadError` when ``expected`` is ``None``.

 - bpo-12800: Extracting a symlink from a tarball should succeed and
   overwrite the symlink if it already exists. The fix is to remove the
   existing file or symlink before extraction.

 Tests

 - bpo-41473: Reenable test_gdb on gdb 9.2 and newer:
   https://bugzilla.redhat.com/show_bug.cgi?id=1866884 bug is fixed in gdb
   10.1.

 - bpo-42553: Fix ``test_asyncio.test_call_later()`` race condition: don't
   measure asyncio performance in the ``call_later()`` unit test. The test
   failed randomly on the CI.

 macOS

 - bpo-41116: If no explicit macOS SDK was specified, setup.py should check
   for Tcl and TK frameworks in /Library/Frameworks; the previous commit
   inadvertently broke that test.

 - bpo-42504: Fix build on macOS Big Sur when MACOSX_DEPLOYMENT_TARGET=11

 IDLE

 - bpo-42508: Keep IDLE running on macOS.  Remove obsolete workaround that
   prevented running files with shortcuts when using new universal2
   installers built on macOS 11.

 What's New in Python 3.9.1 release candidate 1?

 *Release date: 2020-11-24*

 Security

 - bpo-42103: Prevented potential DoS attack via CPU and RAM exhaustion
 when
   processing malformed Apple Property List files in binary format.

 - bpo-42051: The :mod:`plistlib` module no longer accepts entity
   declarations in XML plist files to avoid XML vulnerabilities. This
 should
   not affect users as entity declarations are not used in regular plist
   files.

 - bpo-40791: Add ``volatile`` to the accumulator variable in
   ``hmac.compare_digest``, making constant-time-defeating optimizations
 less
   likely.

 Core and Builtins

 - bpo-41686: On Windows, the ``SIGINT`` event, ``_PyOS_SigintEvent()``, is
   now created even if Python is configured to not install signal handlers
   (if :c:member:`PyConfig.install_signal_handlers` equals to 0, or
   ``Py_InitializeEx(0)``).

 - bpo-42381: Allow assignment expressions in set literals and set
   comprehensions as per PEP 572.

 - bpo-42374: Fix a regression introduced by the new parser, where an
   unparenthesized walrus operator was not allowed within generator
   expressions.

 - bpo-42296: On Windows, fix a regression in signal handling which
 prevented
   to interrupt a program using CTRL+C. The signal handler can be run in a
   thread different than the Python thread, in which case the test deciding
   if the thread can handle signals is wrong.

 - bpo-42332: :class:`types.GenericAlias` objects can now be the targets of
   weakrefs.

 - bpo-42218: Fixed a bug in the PEG parser that was causing crashes in
 debug
   mode. Now errors are checked in left-recursive rules to avoid cases
 where
   such errors do not get handled in time and appear as long-distance
 crashes
   in other places.

 - bpo-42214: Fixed a possible crash in the PEG parser when checking for
 the
   '!=' token in the ``barry_as_flufl`` rule. Patch by Pablo Galindo.

 - bpo-42143: Fix handling of errors during creation of
 ``PyFunctionObject``,
   which resulted in operations on uninitialized memory. Patch by Yonatan
   Goldschmidt.

 - bpo-41659: Fix a bug in the parser, where a curly brace following a
   `primary` didn't fail immediately. This led to invalid expressions like
 `a
   {b}` to throw a :exc:`SyntaxError` with a wrong offset, or invalid
   expressions ending with a curly brace like `a {` to not fail immediately
   in the REPL.

 - bpo-42150: Fix possible buffer overflow in the new parser when checking
   for continuation lines.

 - bpo-42123: Run the parser two times. On the first run, disable all the
   rules that only generate better error messages to gain performance. If
   there's a parse failure, run the parser a second time with those
 enabled.

 - bpo-41910: Document the default implementation of `object.__eq__`.

 - bpo-42057: Fix peephole optimizer misoptimize conditional jump +
   JUMP_IF_NOT_EXC_MATCH pair.

 - bpo-41984: The garbage collector now tracks all user-defined classes.

 - bpo-41993: Fixed potential issues with removing not completely
 initialized
   module from ``sys.modules`` when import fails.

 - bpo-41979: Star-unpacking is now allowed for with item's targets in the
   PEG parser.

 - bpo-41909: Fixed stack overflow in :func:`issubclass` and
   :func:`isinstance` when getting the ``__bases__`` attribute leads to
   infinite recursion.

 - bpo-41894: When loading a native module and a load failure occurs,
 prevent
   a possible UnicodeDecodeError when not running in a UTF-8 locale by
   decoding the load error message using the current locale's encoding.

 - bpo-39934: Correctly count control blocks in 'except' in compiler.
 Ensures
   that a syntax error, rather a fatal error, occurs for deeply nested,
 named
   exception handlers.

 Library

 - bpo-42328: Fixed :meth:`tkinter.ttk.Style.map`. The function accepts now
   the representation of the default state as empty sequence (as returned
 by
   ``Style.map()``). The structure of the result is now the same on all
   platform and does not depend on the value of ``wantobjects``.

 - bpo-42345: Fix various issues with ``typing.Literal`` parameter handling
   (flatten, deduplicate, use type to cache key).

 - bpo-42350: Fix the :class:`threading.Thread` class at fork: do nothing
 if
   the thread is already stopped (ex: fork called at Python exit).
   Previously, an error was logged in the child process.

 - bpo-42014: The ``onerror`` callback from ``shutil.rmtree`` now receives
   correct function when ``os.open`` fails.

 - bpo-42237: Fix `os.sendfile()` on illumos.

 - bpo-42249: Fixed writing binary Plist files larger than 4 GiB.

 - bpo-35455: On Solaris, :func:`~time.thread_time` is now implemented with
   ``gethrvtime()`` because ``clock_gettime(CLOCK_THREAD_CPUTIME_ID)`` is
 not
   always available. Patch by Jakub Kulik.

 - bpo-42233: The :func:`repr` of :mod:`typing` types containing
   :ref:`Generic Alias Types <types-genericalias>` previously did not show
   the parameterized types in the ``GenericAlias``.  They have now been
   changed to do so.

 - bpo-41754: webbrowser: Ignore *NotADirectoryError* when calling
   ``xdg-settings``.

 - bpo-29566: ``binhex.binhex()`` consisently writes macOS 9 line endings.

 - bpo-42183: Fix a stack overflow error for asyncio Task or Future repr().

   The overflow occurs under some circumstances when a Task or Future
   recursively returns itself.

 - bpo-42146: Fix memory leak in :func:`subprocess.Popen` in case an uid
   (gid) specified in `user` (`group`, `extra_groups`) overflows `uid_t`
   (`gid_t`).

 - bpo-42140: Improve asyncio.wait function to create the futures set just
   one time.

 - bpo-42103: :exc:`~plistlib.InvalidFileException` and
 :exc:`RecursionError`
   are now the only errors caused by loading malformed binary Plist file
   (previously ValueError and TypeError could be raised in some specific
   cases).

 - bpo-41052: Pickling heap types implemented in C with protocols 0 and 1
   raises now an error instead of producing incorrect data.

 - bpo-41491: plistlib: fix parsing XML plists with hexadecimal integer
   values

 - bpo-42065: Fix an incorrectly formatted error from
   :meth:`_codecs.charmap_decode` when called with a mapped value outside
 the
   range of valid Unicode code points.

 - bpo-41966: Fix pickling pure Python :class:`datetime.time` subclasses.

 - bpo-41976: Fixed a bug that was causing :func:`ctypes.util.find_library`
   to return ``None`` when triying to locate a library in an environment
 when
   gcc>=9 is available and ``ldconfig`` is not.

 - bpo-41900: C14N 2.0 serialisation in xml.etree.ElementTree failed for
   unprefixed attributes when a default namespace was defined.

 - bpo-41840: Fix a bug in the :mod:`symtable` module that was causing
   module-scope global variables to not be reported as both local and
 global.

 - bpo-41831: ``str()`` for the ``type`` attribute of the ``tkinter.Event``
   object always returns now the numeric code returned by Tk instead of the
   name of the event type.

 - bpo-41817: fix `tkinter.EventType` Enum so all members are strings, and
   none are tuples

 - bpo-41815: Fix SQLite3 segfault when backing up closed database. Patch
   contributed by Peter David McCormick.

 - bpo-41316: Fix the :mod:`tarfile` module to write only basename of TAR
   file to GZIP compression header.

 - bpo-16936: Allow ``ctypes.wintypes`` to be imported on non-Windows
   systems.

 - bpo-40592: :func:`shutil.which` now ignores empty entries in
   :envvar:`PATHEXT` instead of treating them as a match.

 - bpo-40550: Fix time-of-check/time-of-action issue in
   subprocess.Popen.send_signal.

 - bpo-40492: Fix ``--outfile`` for :mod:`cProfile` / :mod:`profile` not
   writing the output file in the original directory when the program being
   profiled changes the working directory.

 - bpo-40105: ZipFile truncates files to avoid corruption when a shorter
   comment is provided in append ("a") mode.

 - bpo-27321: Fixed KeyError exception when flattening an email to a string
   attempts to replace a non-existent Content-Transfer-Encoding header.

 Documentation

 - bpo-42153: Fix the URL for the IMAP protocol documents.

 - bpo-42061: Document __format__ functionality for IP addresses.

 - bpo-42010: Clarify that subscription expressions are also valid for
   certain :term:`classes <class>` and :term:`types <type>` in the standard
   library, and for user-defined classes and types if the classmethod
   :meth:`__class_getitem__` is provided.

 - bpo-41805: Documented :ref:`generic alias type <types-genericalias>` and
   :data:`types.GenericAlias`. Also added an entry in glossary for
   :term:`generic types <generic type>`.

 - bpo-41774: In Programming FAQ "Sequences (Tuples/Lists)" section, add
 "How
   do you remove multiple items from a list".

 - bpo-35293: Fix RemovedInSphinx40Warning when building the documentation.

 - bpo-41726: Update the refcounts info of ``PyType_FromModuleAndSpec``.

 - bpo-39693: Fix tarfile's extractfile documentation

 - bpo-39416: Document some restrictions on the default string
   representations of numeric classes.

 Tests

 - bpo-40754: Include ``_testinternalcapi`` module in Windows installer for
   test suite

 - bpo-41739: Fix test_logging.test_race_between_set_target_and_flush():
 the
   test now waits until all threads complete to avoid leaking running
   threads.

 - bpo-41970: Avoid a test failure in ``test_lib2to3`` if the module has
   already imported at the time the test executes. Patch by Pablo Galindo.

 - bpo-41944: Tests for CJK codecs no longer call ``eval()`` on content
   received via HTTP.

 - bpo-41939: Fix test_site.test_license_exists_at_url(): call
   ``urllib.request.urlcleanup()`` to reset the global
   ``urllib.request._opener``. Patch by Victor Stinner.

 - bpo-41561: test_ssl: skip test_min_max_version_mismatch when TLS 1.0 is
   not available

 - bpo-41602: Add tests for SIGINT handling in the runpy module.

 - bpo-41306: Fixed a failure in ``test_tk.test_widgets.ScaleTest``
 happening
   when executing the test with Tk 8.6.10.

 Build

 - bpo-42398: Fix a race condition in "make regen-all" when make -jN option
   is used to run jobs in parallel. The clinic.py script now only use
 atomic
   write to write files. Moveover, generated files are now left unchanged
 if
   the content does not change, to not change the file modification time.

 - bpo-41617: Fix building ``pycore_bitutils.h`` internal header on old
 clang
   version without ``__builtin_bswap16()`` (ex: Xcode 4.6.3 on Mac OS X
   10.7). Patch by Joshua Root and Victor Stinner.

 - bpo-38249: Update :c:macro:`Py_UNREACHABLE` to use
 __builtin_unreachable()
   if only the compiler is able to use it. Patch by Dong-hee Na.

 - bpo-40998: Addressed three compiler warnings found by undefined behavior
   sanitizer (ubsan).

 Windows

 - bpo-42120: Remove macro definition of ``copysign`` (to ``_copysign``) in
   headers.

 - bpo-38439: Updates the icons for IDLE in the Windows Store package.

 - bpo-41744: Fixes automatic import of props file when using the Nuget
   package.

 - bpo-41557: Update Windows installer to use SQLite 3.33.0.

 - bpo-38324: Avoid Unicode errors when accessing certain locale data on
   Windows.

 macOS

 - bpo-41116: Ensure distutils.unixxcompiler.find_library_file can find
   system provided libraries on macOS 11.

 - bpo-41100: Add support for macOS 11 and Apple Silicon systems.

   It is now possible to build "Universal 2" binaries using
   "--enable-universalsdk --with-universal-archs=universal2".

   Binaries build on later macOS versions can be deployed back to older
   versions (tested up to macOS 10.9), when using the correct deployment
   target. This is tested using Xcode 11 and later.

 - bpo-38443: The ``--enable-universalsdk`` and ``--with-universal-archs``
   options for the configure script now check that the specified
   architectures can be used.

 - bpo-41471: Ignore invalid prefix lengths in system proxy excludes.

 - bpo-41557: Update macOS installer to use SQLite 3.33.0.

 IDLE

 - bpo-42426: Fix reporting offset of the RE error in searchengine.

 - bpo-42415: Get docstrings for IDLE calltips more often by using
   inspect.getdoc.

 - bpo-33987: Mostly finish using ttk widgets, mainly for editor, settings,
   and searches.

 - bpo-41775: Use 'IDLE Shell' as shell title

 - bpo-35764: Rewrite the Calltips doc section.

 - bpo-40181: In calltips, stop reminding that '/' marks the end of
   positional-only arguments.

 - bpo-40511: Typing opening and closing parentheses inside the parentheses
   of a function call will no longer cause unnecessary "flashing" off and
 on
   of an existing open call-tip, e.g. when typed in a string literal.

 - bpo-38439: Add a 256×256 pixel IDLE icon to the Windows .ico file.
 Created
   by Andrew Clover. Remove the low-color gif variations from the .ico
 file.

 C API

 - bpo-42015: Fix potential crash in deallocating method objects when
   dynamically allocated `PyMethodDef`'s lifetime is managed through the
   ``self`` argument of a `PyCFunction`.

 - bpo-41986: :c:data:`Py_FileSystemDefaultEncodeErrors` and
   :c:data:`Py_UTF8Mode` are available again in limited API.

--
Ticket URL: <http://wiki.linuxfromscratch.org/lfs/ticket/4767#comment:1>
LFS Trac <http://wiki.linuxfromscratch.org/lfs/>
Linux From Scratch: Your Distro, Your Rules.
-- 
http://lists.linuxfromscratch.org/listinfo/lfs-book
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to