Subject: bug#36447: 27.0.50; New "Unknown keyword" errors

From: Eli Zaretskii <[email-masked]>
Date: Fri, 05 Jul 2019 15:33:10 +0300

> From: Pip Cet <[email-masked]>
> Date: Fri, 5 Jul 2019 09:09:13 +0000
> Cc: [email-masked], [email-masked], [email-masked]
> 
> > Sorry, I don't think I know what "this bug" is about,
> 
> The bug:

Thanks for the explanations.  I'm CC'ing Stefan who knows much more
about this than I do.

> The reasons are this: when a hash table is purecopied, its ->next
> vector is purecopied, which merges it with another, similar, hash
> table's ->next vector if purify-flag is a (third) hash table. The
> vectors are compared using `equal', but the pure copies are actually
> `eq'.

A naïve question: wouldn't the problem go away if we modified purecopy
not to do the above, i.e. not to merge the next vector of a hash table
with that of another?

> The (disappointingly trivial) fix:
> call copy-sequence on h->next before rehashing the table.

Rehashing is not only done during dumping, right?  So the fix you
propose also makes rehashing slightly less efficient.  Is that
necessary, i.e. are you saying that the bug is in rehashing, not in
purecopy?