From 1d10bf0bb9409a406c56b0de8870df998637fd0f Mon Sep 17 00:00:00 2001 From: Mark Dickinson Date: Tue, 15 Jun 2021 19:48:35 +0100 Subject: [PATCH] bpo-43475: Add what's new entry for NaN hash changes (GH-26725) --- Doc/whatsnew/3.10.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst index 249eb733a88bf8..9b9dd31a3beabf 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 ===========