GNU bug report logs - #79000
hash of f32vectors is constant

Previous Next

Package: guile;

Reported by: Théophile BRÉZOT <theophile.brezot <at> vulpecula.fr>

Date: Sat, 12 Jul 2025 18:00:02 UTC

Severity: normal

To reply to this bug, email your comments to 79000 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guile <at> gnu.org:
bug#79000; Package guile. (Sat, 12 Jul 2025 18:00:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Théophile BRÉZOT <theophile.brezot <at> vulpecula.fr>:
New bug report received and forwarded. Copy sent to bug-guile <at> gnu.org. (Sat, 12 Jul 2025 18:00:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Théophile BRÉZOT <theophile.brezot <at> vulpecula.fr>
To: bug-guile <at> gnu.org
Subject: hash of f32vectors is constant
Date: Sat, 12 Jul 2025 18:05:42 +0200
Hello,

Hashing two different f32vectors returns the same value:

```
(equal? (hash (f32vector 1) most-positive-fixnum)
        (hash (f32vector 2) most-positive-fixnum))
; => #t
```

This is wrong since these vectors are not equal?:

```
(equal? (f32vector 1)
        (f32vector 2))
; => #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éophile BRÉZOT




This bug report was last modified 4 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.