bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#68931: 30.0.50; Gnus byte-compilation error with (display . [not exp


From: Eric Abrahamsen
Subject: bug#68931: 30.0.50; Gnus byte-compilation error with (display . [not expire]) with git emacs
Date: Sat, 02 Mar 2024 18:30:14 -0800
User-agent: Gnus/5.13 (Gnus v5.13)

Eric Abrahamsen <eric@ericabrahamsen.net> writes:

> Dan Christensen <jdc@uwo.ca> writes:
>
>> On Feb 5, 2024, Stefan Monnier via "Bug reports for GNU Emacs, the
>> Swiss army knife of text editors" <bug-gnu-emacs@gnu.org> wrote:
>>
>>> diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el
>>> index 604eea4c33d..cfcbea2e233 100644
>>> --- a/lisp/gnus/gnus-agent.el
>>> +++ b/lisp/gnus/gnus-agent.el
>>> @@ -2925,8 +2921,9 @@ gnus-category-make-function-1
>>>     ;; Functions are just returned as is.
>>>     ((or (symbolp predicate)
>>>     (functionp predicate))
>>> -    `(,(or (cdr (assq predicate gnus-category-predicate-alist))
>>> -      predicate)))
>>> +    (let ((fun (or (cdr (assq predicate gnus-category-predicate-alist))
>>> +              predicate)))
>>> +      (if (symbolp fun) `(,fun) `(funcall ',fun))))
>>>     ;; More complex predicate.
>>>     ((consp predicate)
>>>      `(,(cond
>>
>> I see that this part was committed and then reverted.  I just manually
>> applied it to master, and it makes the warnings in the *Compile-Log*
>> buffer go away, and my display predicate still works correctly.  The
>> warnings said:
>>
>>  Warning: Use ‘funcall’ instead of ‘#[0 \301\300!\207 [expire
>>     gnus-article-marked-p] 2]’ in the function position
>>
>> So I recommend that this be committed again.
>
> It will be! I only reverted because I'd committed completely by
> accident, and Stefan had mentioned it might need some equivalent
> adjustments elsewhere to be completely correct. I just haven't tested it
> fully yet.

Okay, it went back in as-is. Stefan mentioned
`gnus-function-implies-unread-1` and `gnus-category-make-function`, but
it looks like the problem only arises when the agent code is used for
Summary display predicate purposes, and the byte-compiled stuff is
cached. The rest of the agent code operates on symbolic structures only.

At least, I hope so! If people start complaining about their Agent
predicates going wonky, we'll know where to look.

Eric





reply via email to

[Prev in Thread] Current Thread [Next in Thread]