From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.emacs.gnus.general/55020 Path: main.gmane.org!not-for-mail From: "Simon Josefsson" Newsgroups: gmane.emacs.gnus.general Subject: Re: two agent nits Date: Mon, 1 Dec 2003 20:45:26 +0100 (CET) Sender: ding-owner@lists.math.uh.edu Message-ID: <39991.217.208.175.28.1070307926.squirrel@yxa.extundo.com> References: NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: sea.gmane.org 1070308036 11452 80.91.224.253 (1 Dec 2003 19:47:16 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Mon, 1 Dec 2003 19:47:16 +0000 (UTC) Cc: ding@gnus.org Original-X-From: ding-owner+M3560@lists.math.uh.edu Mon Dec 01 20:47:14 2003 Return-path: Original-Received: from malifon.math.uh.edu ([129.7.128.13]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1AQu0o-0002oy-00 for ; Mon, 01 Dec 2003 20:47:14 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.math.uh.edu) by malifon.math.uh.edu with smtp (Exim 3.20 #1) id 1AQtzG-00067q-00; Mon, 01 Dec 2003 13:45:38 -0600 Original-Received: from justine.libertine.org ([66.139.78.221] ident=postfix) by malifon.math.uh.edu with esmtp (Exim 3.20 #1) id 1AQtz7-00067i-00 for ding@lists.math.uh.edu; Mon, 01 Dec 2003 13:45:29 -0600 Original-Received: from yxa.extundo.com (178.230.13.217.in-addr.dgcsystems.net [217.13.230.178]) by justine.libertine.org (Postfix) with ESMTP id AAEA03A003A for ; Mon, 1 Dec 2003 13:45:27 -0600 (CST) Original-Received: from yxa.extundo.com (localhost.localdomain [127.0.0.1]) by yxa.extundo.com (8.12.10/8.12.10) with ESMTP id hB1JjQrh013294 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO); Mon, 1 Dec 2003 20:45:26 +0100 Original-Received: (from apache@localhost) by yxa.extundo.com (8.12.10/8.12.1/Submit) id hB1JjQSA013293; Mon, 1 Dec 2003 20:45:26 +0100 X-Authentication-Warning: yxa.extundo.com: apache set sender to jas@extundo.com using -f Original-Received: from 217.208.175.28 (SquirrelMail authenticated user jas) by yxa.extundo.com with HTTP; Mon, 1 Dec 2003 20:45:26 +0100 (CET) In-Reply-To: Original-To: "Kevin Greiner" User-Agent: SquirrelMail/1.5.0 [CVS] X-Priority: 3 Importance: Normal Precedence: bulk Xref: main.gmane.org gmane.emacs.gnus.general:55020 X-Report-Spam: http://spam.gmane.org/gmane.emacs.gnus.general:55020 > Simon Josefsson writes: > >> Kevin Greiner writes: >> >>> Simon Josefsson writes: >>> >>>> Kevin Greiner writes: >>>> >>>>> Simon Josefsson writes: >>>>> >>>>>> * I can't seem to get the agent to fetch read articles. >>>>>> gnus-agent-consider-all-articles's value is t >>>>>> The default agent category predicate is 'true'. >>>>>> `J s' and `J u' just download unread or ticked articles. >>>>> >>>>> Have to tried setting gnus-agent-consider-all-articles to nil? That >>>>> seems to work for me. >>>> >>>> I tried, but still the same. Pressing `J u' on groups just say it is >>>> finished, but only the unread/ticked articles are in my local cache. >>>> >>>> Hm. The manual and the docstring for the variable doesn't seem to be >>>> in sync. I thought the variable did what the docstring said, but the >>>> manual just discuss missing headers. Which one is correct? >>> >>> The variable gnus-agent-consider-all-articles appears in >>> gnus-agent-fetch-headers but NOT gnus-agent-fetch-articles. However, >>> gnus-agent-fetch-group-1 calls gnus-agent-fetch-headers to get the >>> list of new articles so gnus-agent-consider-all-articles may, by >>> modifying the return value of gnus-agent-fetch-headers, effect the >>> list of articles being fetched by gnus-agent-fetch-articles. >> >> Thanks for the pointers, I think I isolated the problem, from g-a-f-a: >> >> (let* ((fetch-all (and gnus-agent-consider-all-articles >> ;; Do not fetch all headers if the predicate >> ;; implies that we only consider unread >> articles. >> (not (gnus-predicate-implies-unread >> (gnus-agent-find-parameter group >> 'agent-predica= te))))) >> >> Fetch-all evaluate to nil for me, causing the function to only return >> a list of unread articles. Since g-a-c-a-a is t, the reason fetch-al >> is nil is because of the second statement. >> >> (gnus-predicate-implies-unread 'true) >> =3D> ignore >> >> (not (gnus-predicate-implies-unread 'true)) >> =3D> nil >> >> Reading the docstring: >> >> (gnus-predicate-implies-unread PREDICATE) >> Say whether PREDICATE implies unread articles only. >> It is okay to miss some cases, but there must be no false positives. >> That is, if this function returns true, then indeed the predicate must >> return only unread articles. >> >> The 'ignore return value is not documented, and because it is non-nil >> it is treated as true by the caller in this case. >> >> If I apply this change, everything works, but I can't tell if it is >> the right thing. > > Thanks for isolating the problem. I'm also not certain that this is > the right thing to do. It is certainly the correct answer if the > function is gnus-agent-true but what if the function is a compiled > function returned by gnus-category-make-function? Returning nil may be a false negative, in that case. But the docstring says that's fine, just as long as there aren't any false positives. I guess the only bad thing that happens is that the agent downloads all headers? >> Now, continuing, I found that most of my groups had .agentviews >> looking like: >> >> ((731544 66) (731540 64 . 65) ... >> 2 >> >> I.e., they have large integers in them, which look like corruption. > > That isn't corruption. The large numbers are the timestamps when the > articles were fetched. The original format looked like > ((66 . 731544) (64 . 731540) (65 . 731540)) but it was slow to load > for large groups as it repeated the large numbers endlessly. The > gnus-agent-load-alist function now loads either format and converts > internally to the alist form. Ah, right, thanks. Weird I had to remove the .agentview file to trigger re-downloading articles then. Too late to debug now. Gnus has filled my disk with 300MB worth of data, and counting, so I think it works now...