Subject: Re: bug#39529: 28.0.50; Metahelp does not contain help text

From: Paul Eggert <[email-masked]>
Date: Wed, 19 Feb 2020 01:00:37 -0800

On 2/18/20 6:34 PM, Pip Cet wrote:
> (defun hash-equal (a b)
>    (let ((ht (make-hash-table :test 'equal)))
>      (puthash a t ht)
>      (gethash b ht)))
> 
> (hash-equal (point-marker) (point-marker))
> (equal (point-marker) (point-marker))

Ah, OK, then I think we're in fundamental agreement about the problem.

However, I don't agree that the Emacs 27-and-earlier approach is tenable, as 
means that (and (equal a b) (gethash a ht) (not (gethash b ht))) can return t, 
and similarly unexpected and undesirable behavior elsewhere - even if there are 
no side effects on hash keys and no cycles in hash key values. For now it should 
suffice if Emacs handles the case where hash keys don't change and don't have 
cycles; we can worry about the fancier problems later (if ever).