Subject: bug#40704: 28.0.50; Improve and speed up (Gnus) registry saving

From: Lars Ingebrigtsen <[email-masked]>
Date: Thu, 01 Oct 2020 20:22:59 +0200

Michael Heerdegen <[email-masked]> writes:

> (3) I also decided to change `eieio-override-prin1' to print hash tables
> "by hand" from Lisp.  The eieio-persistent requires to modify how
> elements in the hash tables are printed, and the current way of doing
> this (make a copy of the complete table, change the elements, prin1 and
> re-read the result) is not only hackish but also inefficient (it does
> this recursively for nested tables).

[...]

> +         (princ "#s(hash-table size ")
> +         (prin1 (hash-table-size thing))
> +         (princ " test ")
> +         (prin1 (hash-table-test thing))
> +         (princ " weakness ")
> +         (prin1 (hash-table-weakness thing))
> +         (princ " rehash-size ")
> +         (prin1 (hash-table-rehash-size thing))
> +         (princ " rehash-threshold ")
> +         (prin1 (hash-table-rehash-threshold thing))
> +         (princ " data (")

I'm still not enthusiastic about duplicating the hash printing here.
Whenever print_vectorlike changes, this has to be changed, too.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no