[Python-checkins] bpo-43475: Add what's new entry for NaN hash changes (GH-26725)
mdickinson
webhook-mailer at python.org
Tue Jun 15 14:48:45 EDT 2021
https://github.com/python/cpython/commit/1d10bf0bb9409a406c56b0de8870df998637fd0f
commit: 1d10bf0bb9409a406c56b0de8870df998637fd0f
branch: main
author: Mark Dickinson <mdickinson at enthought.com>
committer: mdickinson <dickinsm at gmail.com>
date: 2021-06-15T19:48:35+01:00
summary:
bpo-43475: Add what's new entry for NaN hash changes (GH-26725)
files:
M Doc/whatsnew/3.10.rst
diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst
index 249eb733a88bf..9b9dd31a3beab 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
===========
More information about the Python-checkins
mailing list