EQUALP HT fails to find float key using integer
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
Invalid
|
Undecided
|
Unassigned |
Bug Description
GETHASH fails to find a single-float key when queried with an integer under EQUALP:
Using
CL-USER> (lisp-implement
"2.0.1-4.fc33"
The following sequence works as expected:
CL-USER> (defparameter *ht* (make-hash-table :test 'equalp))
*HT*
CL-USER> (setf (gethash 6 *ht*) t)
T
CL-USER> (gethash 6 *ht*)
T
T
CL-USER> (gethash 6.0 *ht*)
T
T
By contrast, retreiving a single-float key using an integer does not work:
CL-USER> (defparameter *ht* (make-hash-table :test 'equalp))
*HT*
CL-USER> (setf (gethash 6.0 *ht*) t)
T
CL-USER> (gethash 6.0 *ht*)
T
T
CL-USER> (gethash 6 *ht*)
NIL
NIL
CL-USER> *features*
(:SWANK :CL-FAD :BORDEAUX-THREADS :THREAD-SUPPORT CFFI-FEATURES:
CFFI-FEATURES:
:SPLIT-SEQUENCE :SBCL-USES-
:ASDF3.3 :ASDF3.2 :ASDF3.1 :ASDF3 :ASDF2 :ASDF :OS-UNIX
:NON-BASE-
:ELF :GENCGC :IEEE-FLOATING-
:PACKAGE-
:SB-THREAD :SB-UNICODE :SBCL :UNIX)
CL-USER>
$ uname -a
Linux aguas-13 5.10.15-
>2.0.1
That's too old.