GNU bug report logs -
#56255
28.1.50; sxhash-equal does not change when object is modified
Previous Next
Reported by: Ihor Radchenko <yantar92 <at> gmail.com>
Date: Mon, 27 Jun 2022 12:27:02 UTC
Severity: normal
Found in version 28.1.50
Fixed in version 29.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Full log
Message #11 received at 56255 <at> debbugs.gnu.org (full text, mbox):
Lars Ingebrigtsen <larsi <at> gnus.org> writes:
> So I think the doc string overstates things.
>
> --
> If (equal A B), then (= (sxhash-equal A) (sxhash-equal B)).
> --
>
> Is not remotely true, but:
>
> --
> If (= (sxhash-equal A) (sxhash-equal B)) then it's quite likely that
> (equal A B), but the opposite is not true for deeply nested structures.
> --
Sorry, that's all wrong, and what the doc string says is true. That is,
if they're equal, then the hash is =.
But (= (sxhash-equal A) (sxhash-equal B)) does not imply that
(equal A B), and the doc string should say that explicitly.
It's the manual that's wrong here:
If the two objects are not ‘equal’, the values returned by
‘sxhash-equal’ are usually different, but not always; once in a
rare while, by luck, you will encounter two distinct-looking
objects that give the same result from ‘sxhash-equal’.
It's not "once in a rare while" for deeply nested structures.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
This bug report was last modified 3 years and 58 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.