From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=RCVD_IN_DNSWL_MED,RDNS_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: (qmail 30332 invoked from network); 18 Mar 2020 17:58:55 -0000 Received: from unknown (HELO lists1.math.uh.edu) (129.7.128.208) by inbox.vuxu.org with ESMTP; 18 Mar 2020 17:58:55 -0000 Received: from localhost ([127.0.0.1] helo=lists.math.uh.edu) by lists1.math.uh.edu with smtp (Exim 4.92.3) (envelope-from ) id 1jEcxV-0007L2-3J; Wed, 18 Mar 2020 12:58:25 -0500 Received: from mx1.math.uh.edu ([129.7.128.32]) by lists1.math.uh.edu with esmtps (TLSv1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.92.3) (envelope-from ) id 1jEcxQ-0007IL-Uz for ding@lists.math.uh.edu; Wed, 18 Mar 2020 12:58:20 -0500 Received: from quimby.gnus.org ([95.216.78.240]) by mx1.math.uh.edu with esmtps (TLSv1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.92.3) (envelope-from ) id 1jEcxP-0001pX-Ki for ding@lists.math.uh.edu; Wed, 18 Mar 2020 12:58:20 -0500 Received: from ericabrahamsen.net ([52.70.2.18] helo=mail.ericabrahamsen.net) by quimby.gnus.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jEcxI-0003ED-Q2 for ding@gnus.org; Wed, 18 Mar 2020 18:58:15 +0100 Received: from localhost (c-73-254-86-141.hsd1.wa.comcast.net [73.254.86.141]) (Authenticated sender: eric@ericabrahamsen.net) by mail.ericabrahamsen.net (Postfix) with ESMTPSA id C8919FA094; Wed, 18 Mar 2020 17:58:09 +0000 (UTC) From: Eric Abrahamsen To: hobbes@poukram.net (=?utf-8?Q?R=C3=A9mi?= Letot) Cc: ding@gnus.org Subject: Re: gnus registry takes 21 seconds to save and I can't prune it References: <8736a5stvd.fsf@lybrafox.be> Date: Wed, 18 Mar 2020 10:58:08 -0700 In-Reply-To: <8736a5stvd.fsf@lybrafox.be> (=?utf-8?Q?=22R=C3=A9mi?= Letot"'s message of "Wed, 18 Mar 2020 13:57:42 +0100") Message-ID: <87wo7hy28f.fsf@ericabrahamsen.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable List-ID: Precedence: bulk hobbes@poukram.net (R=C3=A9mi Letot) writes: > Hello, > > I have noticed quite a few slowdowns in my emacs for some times, but it > never became annoying enough for me to investigate. > > Until now :-) > > Starting emacs, gnus, or quitting them has become annoyingly long. It is > not really problematic because I leave emacs/gnus on for weeks at a > time, but still. Besides, pressing s in the group buffer is far too long > to be comfortable. > > So, I diagnosed it to gnus-registry-save taking 21 seconds.=20 > > I tried to see what happens in there, and noticed that I could set > gnus-registry-max-entries to a sensible number, but then I get an error > whenever I try to prune the registry (meaning as soon as I try to do > anything in gnus). > > The error is "cl-some: Wrong type argument: listp, quote". Slow saving is a separate issue, and one that annoys a lot of people, but this error sounds a lot like something that was going on a year or more ago. If it's the same thing, there ought to be a solution: 1. Shut down Gnus 2. Back up your registry file 3. Start Gnus again 4. Eval the code below 5. Run M-x gnus-registry-fixit 6. Save Gnus With any luck that will resolve the error. (defun gnus-registry-strip-quotes (lst) (let (acc) (when (consp lst) (while (eq (car lst) 'quote) (setq lst (cadr lst))) (while (consp lst) (if (eq (car lst) 'quote) (setq lst (cadr lst)) (push (gnus-registry-strip-quotes (car lst)) acc) (setq lst (cdr lst))))) (nconc (nreverse (delete-dups acc)) lst))) (defun gnus-registry-fixit () "Fix Gnus registry after eieio-persistent patches. For use with Emacs master branch, after installing 0afb43eeb, or the 26 branch, after daa9e853bd." (interactive) (unless (gnus-alive-p) (gnus)) (when gnus-registry-enabled (with-slots (tracker data) gnus-registry-db (maphash (lambda (track-sym hsh) (maphash (lambda (k v) (setf (gethash k hsh) (gnus-registry-strip-quotes v))) hsh)) tracker) (maphash (lambda (k v) (setf (gethash k data) (gnus-registry-strip-quotes v))) data))))=20=20=20