]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.10] bpo-43475: Add what's new entry for NaN hash changes (GH-26725) (GH-26743)
authorMark Dickinson <mdickinson@enthought.com>
Tue, 15 Jun 2021 19:13:10 +0000 (20:13 +0100)
committerGitHub <noreply@github.com>
Tue, 15 Jun 2021 19:13:10 +0000 (20:13 +0100)
(cherry picked from commit 1d10bf0bb9409a406c56b0de8870df998637fd0f)

Co-authored-by: Mark Dickinson <mdickinson@enthought.com>
Doc/whatsnew/3.10.rst

index 530ffce59b15ba89d33b38ee23f2f95a83c535f5..6bd4157164f5be669eb63863e866ded9a13cd0eb 100644 (file)
@@ -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
 ===========