bug#79000: hash of f32vectors is constant
theophile.brezot--- via "Bug reports for GUILE, GNU's Ubiquitous Extension Language" <[email protected]> Sat, 12 Jul 2025 18:05:42 +0200
| Newsgroups | gmane.lisp.guile.bugs |
|---|---|
| Message-ID | <[email protected]> |
Hello,
Hashing two different f32vectors returns the same value:
```
(equal? (hash (f32vector 1) most-positive-fixnum)
(hash (f32vector 2) most-positive-fixnum))
; =3D> #t
```
This is wrong since these vectors are not equal?:
```
(equal? (f32vector 1)
(f32vector 2))
; =3D> #f
```
This has been tester on Guile v3.0.10-1.402e0df (guile-next install
using Guix) and on Guile v3.0.9 (guile install using Guix) on a Debian
Linux.
The same behavior can be observed using f64vectors.
This is in my opinion quite a serious bug since it degrades performance
of hash tables to linear time (measuring my program performances led me
to it) making them unusable (at least not directly usable) for such
types.
Best regards and thanks for your work,
--
Th=C3=A9ophile BR=C3=89ZOT