Subject: bug#27057: closed (Re: bug#27057: 26.0.50; Equal defstruct objects not recognized in puthash)

From: [email-masked] (GNU bug Tracking System)
Date: Wed, 24 May 2017 15:57:03 +0000

Your bug report

#26639: 26.0.50; Equal defstruct objects not recognized in puthash

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
26639: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=26639
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#27057: 26.0.50; Equal defstruct objects not recognized in puthash
From: Stefan Monnier <[email-masked]>
To: [email-masked], [email-masked]
Cc: Lars Brinkhoff <[email-masked]>, Michael Albinus <[email-masked]>
Date: Wed, 24 May 2017 11:56:25 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

>     (progn
>       (cl-defstruct sm-foo a b)
>       (setq sm-hash (make-hash-table :test 'equal))
>       (puthash (make-sm-foo :a 4 :b 6) "test1" sm-hash)
>       (puthash (make-sm-foo :a 4 :b 6) "test2" sm-hash)
>       (hash-table-count sm-hash))
>
> this code return 2 here instead of 1.

This should be fixed now,

        Stefan

Subject: 26.0.50; Equal defstruct objects not recognized in puthash
From: Stefan Monnier <[email-masked]>
To: [email-masked]
Date: Wed, 24 May 2017 11:39:56 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Package: Emacs
Version: 26.0.50

It looks like the new records-based code introduced a bug in the way
records are handled as keys in hash-tables when the test is `equal`:

    (progn
      (cl-defstruct sm-foo a b)
      (setq sm-hash (make-hash-table :test 'equal))
      (puthash (make-sm-foo :a 4 :b 6) "test1" sm-hash)
      (puthash (make-sm-foo :a 4 :b 6) "test2" sm-hash)
      (hash-table-count sm-hash))

this code return 2 here instead of 1.  Lars, could you take a look at it?

        Stefan