From: Mark Dickinson Date: Tue, 15 Jun 2021 19:13:10 +0000 (+0100) Subject: [3.10] bpo-43475: Add what's new entry for NaN hash changes (GH-26725) (GH-26743) X-Git-Tag: v3.10.0b3~8 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8d0b2ca493e236fcad8709a622c1ac8ad29c372d;p=thirdparty%2FPython%2Fcpython.git [3.10] bpo-43475: Add what's new entry for NaN hash changes (GH-26725) (GH-26743) (cherry picked from commit 1d10bf0bb9409a406c56b0de8870df998637fd0f) Co-authored-by: Mark Dickinson --- diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst index 530ffce59b15..6bd4157164f5 100644 --- a/Doc/whatsnew/3.10.rst +++ b/Doc/whatsnew/3.10.rst @@ -836,6 +836,13 @@ Other Language Changes effectless under ``from __future__ import annotations``. (Contributed by Batuhan Taskaya in :issue:`42725`.) +* Hashes of NaN values of both :class:`float` type and + :class:`decimal.Decimal` type now depend on object identity. Formerly, they + always hashed to ``0`` even though NaN values are not equal to one another. + This caused potentially quadratic runtime behavior due to excessive hash + collisions when creating dictionaries and sets containing multiple NaNs. + (Contributed by Raymond Hettinger in :issue:`43475`.) + New Modules ===========