Re: problem with (display . [not expire]) with git emacs

Dan Christensen <[email protected]>
Newsgroups gmane.emacs.gnus.general
Message-ID <[email protected]>
On Feb  1, 2024, Eric Abrahamsen <[email protected]> wrote:

> I just tried it out, and actually got a popup buffer with the "Malformed
> function" error you mentioned in your first message.

Glad to hear that it's not just me.  I wish I could get that pop-up as
well, or that I could make emacs enter the debugger when this happens.
It would be easier to figure out that way.  Any idea why we would have
different behaviour here?

> Looks like the culprit is effectively this:
>
> (gnus-byte-compile
>   `(lambda ()
>     ,(cdr (assoc 'expire gnus-summary-display-cache))))

I think it's like that but with '(not expire).  When the predicate
is a single symbol, it looks like this code skips byte compilation:

    (if (and (= (length func) 1)
	     (symbolp (car func)))
	(car func)
      (gnus-byte-compile `(lambda () ,func)))))

(But I'm not sure how (display . expire) results in a *list* of length
one.)  Can you confirm that you don't get the error with (display . expire)?

Do you think the issue is that we're trying to byte-compile an already
compiled function?  Do you think the commit I referenced introduces a
bug, or that it reveals an existing bug in Gnus?  Do you suggest that
I post to an emacs devel list, or can we fix it here?

Dan
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.