From: Michael Heerdegen <michael_heerdegen@web.de>
To: Eric Abrahamsen <eric@ericabrahamsen.net>
Cc: help-gnu-emacs@gnu.org
Subject: Re: Gnus: Thread notes?
Date: Sat, 16 Dec 2017 13:21:17 +0100 [thread overview]
Message-ID: <878te2rhhe.fsf@web.de> (raw)
In-Reply-To: 874lovrhl1.fsf@ericabrahamsen.net
Eric Abrahamsen <eric@ericabrahamsen.net> writes:
> The idea with the registry is that it's sort of a catch-all slush
> bucket. I think it's expected that it will fill up rather quickly, and
> then get pruned as necessary.
FWIW, pruning now kicked in the first time, and it errored with
Debugger entered--Lisp error: (wrong-type-argument listp quote)
car(quote)
(memq (car entry-key) precious)
(cdr (memq (car entry-key) precious))
(lambda (entry-key) (cdr (memq (car entry-key) precious)))(quote)
cl-some((lambda (entry-key) (cdr (memq (car entry-key) precious))) '''''''''''''''''''''''''''''''''''''''''''''''''''''''((creation-time (23012 49774 793490 105000)) (group) (sender) (subject)))
apply(cl-some (lambda (entry-key) (cdr (memq (car entry-key) precious))) '''''''''''''''''''''''''''''''''''''''''''''''''''''''((creation-time (23012 49774 793490 105000)) (group) (sender) (subject)) nil)
cl-notany((lambda (entry-key) (cdr (memq (car entry-key) precious))) '''''''''''''''''''''''''''''''''''''''''''''''''''''''((creation-time (23012 49774 793490 105000)) (group) (sender) (subject)))
(if (cl-notany precious-p v) (progn (setq #1=#:--cl-var-- (cons (cons k v) #1#))))
(lambda (k v) (if (cl-notany precious-p v) (progn (setq #1=#:--cl-var-- (cons (cons k v) #1#)))))("" '''''''''''''''''''''''''''''''''''''''''''''''''''''''((creation-time (23012 49774 793490 105000)) (group) (sender) (subject)))
maphash((lambda (k v) (if (cl-notany precious-p v) (progn (setq #1=#:--cl-var-- (cons (cons k v) #1#))))) #<hash-table equal 25000/40000 0x1bbf149>)
(let* ((#1=#:--cl-var-- nil)) (maphash (function (lambda (k v) (if (cl-notany precious-p v) (progn (setq #1# (cons (cons k v) #1#)))))) data) (nreverse #1#))
(let* ((precious (eieio-oref db 'precious)) (precious-p (function (lambda (entry-key) (cdr (memq (car entry-key) precious))))) (data (eieio-oref db 'data)) (candidates (let* ((#1=#:--cl-var-- nil)) (maphash (function (lambda (k v) (if (cl-notany precious-p v) (progn (setq #1# (cons (cons k v) #1#)))))) data) (nreverse #1#)))) (if sortfunc (progn (setq candidates (sort candidates sortfunc)))) (cl-subseq (mapcar (function car) candidates) 0 (min limit (length candidates))))
(progn (let* ((precious (eieio-oref db 'precious)) (precious-p (function (lambda (entry-key) (cdr (memq (car entry-key) precious))))) (data (eieio-oref db 'data)) (candidates (let* ((#1=#:--cl-var-- nil)) (maphash (function (lambda (k v) (if (cl-notany precious-p v) (progn (setq #1# (cons (cons k v) #1#)))))) data) (nreverse #1#)))) (if sortfunc (progn (setq candidates (sort candidates sortfunc)))) (cl-subseq (mapcar (function car) candidates) 0 (min limit (length candidates)))))
(lambda (db limit sortfunc) "Collects pruning candidates from the registry-db object DB.\n\nProposes only entries without the :precious keys, and attempts to\nreturn LIMIT such candidates. If SORTFUNC is provided, sort\nentries first and return candidates from beginning of list." (progn (let* ((precious (eieio-oref db 'precious)) (precious-p (function (lambda (entry-key) (cdr (memq (car entry-key) precious))))) (data (eieio-oref db 'data)) (candidates (let* ((#1=#:--cl-var-- nil)) (maphash (function (lambda (k v) (if (cl-notany precious-p v) (progn (setq #1# (cons (cons k v) #1#)))))) data) (nreverse #1#)))) (if sortfunc (progn (setq candidates (sort candidates sortfunc)))) (cl-subseq (mapcar (function car) candidates) 0 (min limit (length candidates))))))(#<registry-db registry-db-195b
804> 2500 gnus-registry-sort-by-creation-time)
apply((lambda (db limit sortfunc) "Collects pruning candidates from the registry-db object DB.\n\nProposes only entries without the :precious keys, and attempts to\nreturn LIMIT such candidates. If SORTFUNC is provided, sort\nentries first and return candidates from beginning of list." (progn (let* ((precious (eieio-oref db 'precious)) (precious-p (function (lambda (entry-key) (cdr (memq (car entry-key) precious))))) (data (eieio-oref db 'data)) (candidates (let* ((#1=#:--cl-var-- nil)) (maphash (function (lambda (k v) (if (cl-notany precious-p v) (progn (setq #1# (cons (cons k v) #1#)))))) data) (nreverse #1#)))) (if sortfunc (progn (setq candidates (sort candidates sortfunc)))) (cl-subseq (mapcar (function car) candidates) 0 (min limit (length candidates)))))) #<registry-db registry-d
b-195b804> (2500 gnus-registry-sort-by-creation-time))
registry-collect-prune-candidates(#<registry-db registry-db-195b804> 2500 gnus-registry-sort-by-creation-time)
(setq candidates (registry-collect-prune-candidates db (- size target-size) sortfunc))
(progn (setq candidates (registry-collect-prune-candidates db (- size target-size) sortfunc)) (length (registry-delete db candidates nil)))
(if (registry-full db) (progn (setq candidates (registry-collect-prune-candidates db (- size target-size) sortfunc)) (length (registry-delete db candidates nil))) 0)
(let ((size (registry-size db)) (target-size (floor (- (eieio-oref db 'max-size) (* (eieio-oref db 'max-size) (eieio-oref db 'prune-factor))))) candidates) (if (registry-full db) (progn (setq candidates (registry-collect-prune-candidates db (- size target-size) sortfunc)) (length (registry-delete db candidates nil))) 0))
(progn (let ((size (registry-size db)) (target-size (floor (- (eieio-oref db 'max-size) (* (eieio-oref db 'max-size) (eieio-oref db 'prune-factor))))) candidates) (if (registry-full db) (progn (setq candidates (registry-collect-prune-candidates db (- size target-size) sortfunc)) (length (registry-delete db candidates nil))) 0)))
(lambda (db &optional sortfunc) "Prunes the registry-db object DB.\n\nAttempts to prune the number of entries down to (*\n:max-size :prune-factor) less than the max-size limit, so\npruning doesn't need to happen on every save. Removes only\nentries without the :precious keys, so it may not be possible to\nreach the target limit.\n\nEntries to be pruned are first sorted using SORTFUNC. Entries\nfrom the front of the list are deleted first.\n\nReturns the number of deleted entries." (progn (let ((size (registry-size db)) (target-size (floor (- (eieio-oref db 'max-size) (* (eieio-oref db 'max-size) (eieio-oref db 'prune-factor))))) candidates) (if (registry-full db) (progn (setq candidates (registry-collect-prune-candidates db (- size target-size) sortfunc)) (length (registry-delete db can
didates nil))) 0))))(#<registry-db registry-db-195b804> gnus-registry-sort-by-creation-time)
apply((lambda (db &optional sortfunc) "Prunes the registry-db object DB.\n\nAttempts to prune the number of entries down to (*\n:max-size :prune-factor) less than the max-size limit, so\npruning doesn't need to happen on every save. Removes only\nentries without the :precious keys, so it may not be possible to\nreach the target limit.\n\nEntries to be pruned are first sorted using SORTFUNC. Entries\nfrom the front of the list are deleted first.\n\nReturns the number of deleted entries." (progn (let ((size (registry-size db)) (target-size (floor (- (eieio-oref db 'max-size) (* (eieio-oref db 'max-size) (eieio-oref db 'prune-factor))))) candidates) (if (registry-full db) (progn (setq candidates (registry-collect-prune-candidates db (- size target-size) sortfunc)) (length (registry-delete
db candidates nil))) 0)))) #<registry-db registry-db-195b804> gnus-registry-sort-by-creation-time)
registry-prune(#<registry-db registry-db-195b804> gnus-registry-sort-by-creation-time)
gnus-registry-save()
run-hooks(gnus-save-newsrc-hook)
apply(run-hooks gnus-save-newsrc-hook)
gnus-run-hooks(gnus-save-newsrc-hook)
gnus-save-newsrc-file()
gnus-group-exit()
funcall-interactively(gnus-group-exit)
call-interactively(gnus-group-exit nil nil)
command-execute(gnus-group-exit)
There seems to be an entry with a lot of quotes. Any idea what could be
happening here? An eieio related thing, maybe? Where should I dig?
Thanks,
Michael.
next prev parent reply other threads:[~2017-12-16 12:21 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-12 12:44 Gnus: Thread notes? Michael Heerdegen
2017-10-12 12:56 ` Danny YUE
2017-10-12 16:36 ` Göktuğ Kayaalp
2017-10-12 19:25 ` Robert Pluim
2017-10-13 2:21 ` Eric Abrahamsen
2017-10-16 19:33 ` Michael Heerdegen
2017-10-16 20:14 ` Eric Abrahamsen
2017-10-18 12:18 ` Michael Heerdegen
2017-10-18 14:53 ` Eric Abrahamsen
2017-11-25 2:42 ` Michael Heerdegen
2017-11-25 6:35 ` Eric Abrahamsen
2017-11-26 5:30 ` Michael Heerdegen
2017-11-28 2:19 ` Eric Abrahamsen
2017-11-28 6:02 ` Michael Heerdegen
2017-11-28 16:44 ` Eric Abrahamsen
2017-11-29 8:10 ` Michael Heerdegen
2017-11-29 17:43 ` Eric Abrahamsen
2017-12-12 12:26 ` Michael Heerdegen
2017-12-12 17:17 ` Eric Abrahamsen
2017-12-13 12:42 ` Michael Heerdegen
2017-12-13 18:03 ` Eric Abrahamsen
2017-12-14 11:31 ` Michael Heerdegen
2017-12-14 23:41 ` Eric Abrahamsen
2017-12-15 11:38 ` Michael Heerdegen
2017-12-15 17:58 ` Eric Abrahamsen
2017-12-15 19:54 ` Michael Heerdegen
2017-12-16 6:10 ` Eric Abrahamsen
2017-12-28 20:30 ` Eric Abrahamsen
2017-12-14 15:30 ` Michael Heerdegen
2017-12-14 16:05 ` Michael Heerdegen
2017-12-14 16:59 ` Eric Abrahamsen
2017-12-14 17:25 ` Michael Heerdegen
2017-12-14 17:54 ` Eric Abrahamsen
2017-12-16 12:21 ` Michael Heerdegen [this message]
2017-12-16 21:08 ` Eric Abrahamsen
2017-12-18 11:40 ` Michael Heerdegen
2017-12-18 19:04 ` Eric Abrahamsen
2017-12-19 14:27 ` Michael Heerdegen
2017-12-19 16:14 ` Eric Abrahamsen
2017-11-28 7:44 ` Michael Heerdegen
2017-11-26 5:49 ` Michael Heerdegen
2017-10-15 15:43 ` Narendra Joshi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=878te2rhhe.fsf@web.de \
--to=michael_heerdegen@web.de \
--cc=eric@ericabrahamsen.net \
--cc=help-gnu-emacs@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).