Gnus development mailing list
 help / color / mirror / Atom feed
From: Kevin Greiner <kgreiner@xpediantsolutions.com>
Subject: Re: two agent nits
Date: Mon, 01 Dec 2003 11:30:30 -0600	[thread overview]
Message-ID: <uzneca1jd.fsf@xpediantsolutions.com> (raw)
In-Reply-To: <iluisl032px.fsf@latte.josefsson.org>

Simon Josefsson <jas@extundo.com> writes:

> Kevin Greiner <kgreiner@xpediantsolutions.com> writes:
>
>> Simon Josefsson <jas@extundo.com> writes:
>>
>>> Kevin Greiner <kgreiner@xpediantsolutions.com> writes:
>>>
>>>> Simon Josefsson <jas@extundo.com> 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-predicate)))))
>
> 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)
>  => ignore
>
> (not (gnus-predicate-implies-unread 'true))
>  => 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?

> --- gnus-agent.el.~6.180.~	2003-12-01 12:35:54.000000000 +0100
> +++ gnus-agent.el	2003-12-01 17:39:06.000000000 +0100
> @@ -2455,7 +2455,7 @@
>          ((not function)
>           nil)
>          ((functionp function)
> -         'ignore)
> +	 nil)
>          ((memq (car function) '(or and not))
>           (apply (car function)
>                  (mapcar 'gnus-function-implies-unread-1 (cdr function))))


> 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.

Kevin




  reply	other threads:[~2003-12-01 17:30 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-11-30 16:53 Simon Josefsson
2003-11-30 19:53 ` Harry Putnam
2003-11-30 20:18   ` Simon Josefsson
2003-12-01  3:13     ` Harry Putnam
2003-12-01  4:47 ` Kevin Greiner
2003-12-01 11:39   ` Simon Josefsson
2003-12-01 15:56     ` Kevin Greiner
2003-12-01 16:46       ` Simon Josefsson
2003-12-01 17:30         ` Kevin Greiner [this message]
2003-12-01 19:45           ` Simon Josefsson
2003-12-01 20:35             ` Harry Putnam
2003-12-02  3:02               ` Wes Hardaker
2003-12-02  6:01           ` Kevin Greiner
2003-12-02 17:40             ` Simon Josefsson
2003-12-03 21:47             ` Harry Putnam
2003-12-03 22:14               ` Simon Josefsson
2003-12-04  1:50                 ` Harry Putnam
2003-12-04  2:29                   ` Simon Josefsson
2003-12-04  5:54                     ` Harry Putnam
2003-12-05  2:57                       ` Harry Putnam
2003-12-05  3:25                         ` Simon Josefsson
2003-12-05  3:54                           ` Harry Putnam
2003-12-05  4:13                             ` Simon Josefsson
2003-12-05 13:33                               ` Harry Putnam
2003-12-02 20:35     ` Simon Josefsson
2003-12-02 22:28       ` Kevin Greiner
2003-12-01 12:30   ` Harry Putnam

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=uzneca1jd.fsf@xpediantsolutions.com \
    --to=kgreiner@xpediantsolutions.com \
    /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 NNTP newsgroup(s).