Subject: Re: bug#36022: 26.2.50; errors byte-compiling gnus.el

From: Noam Postavsky <[email-masked]>
Date: Sat, 01 Jun 2019 17:11:55 -0400

"Basil L. Contovounesios" <[email-masked]> writes:

> Noam Postavsky <[email-masked]> writes:
>
>> Sven Joachim <[email-masked]> writes:
>>
>>>> | In gnus-interactive:
>>>> | gnus/gnus.el:3335:15:Error: Forgot to expand macro gnus-data-header
>>>> | in (gnus-data-header (gnus-data-find (gnus-summary-article-number)))
>>>> | gnus/gnus.el:3337:11:Error: Forgot to expand macro gnus-data-find in (gnus-data-find (gnus-summary-article-number))
>>>> | gnus/gnus.el:3337:29:Error: Forgot to expand macro gnus-summary-article-number in (gnus-summary-article-number)
>>>> | make[1]: *** [Makefile:297: gnus/gnus.elc] Fehler 1
>>>> `----
>>>>
>>>> The same error occurs on a fresh bootstrap, however I can successfully
>>>> byte-compile gnus.elc with a snapshot from May 12, so something has
>>>> broken in the meantime on emacs-26.
>>>
>>> Bisection showed that commit 134edc10367a8434167656e631865c85b5f10c42
>>> ("Warn about wrong number of args for subrs (Bug#35767))" is the
>>> culprit.
>>
>> I think this exposes what is arguably a bug in gnus.el, the
>> eval-when-compile around line 2378:
>>
>>     ;; Define some autoload functions Gnus might use.
>>     (eval-and-compile
>>
>>       ;; This little mapcar goes through the list below and marks the
>>       ;; symbols in question as autoloaded functions.
>>
>> is autoloading gnus-data-header, gnus-data-find, and
>> gnus-summary-article-number as functions (i.e., the TYPE arg is nil),
>> even though they're actually macros.
>>
>> But, we shouldn't start messing with that in the release branch
>
> Glenn already fixed this[1], right?  (Thanks Glenn!)
>
> [1: 008b263fee]: * lisp/gnus/gnus.el: Mark autoloaded macros as such.
>   2019-06-01 11:33:25 -0700
>   https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=008b263feeba8951a95bec93ec0a9e263cf230f7

I get this compilation warning though:

  ELC      gnus/gnus.elc
Warning: Eager macro-expansion skipped due to cycle:
  … => (load "gnus.el") => (macroexpand-all (defalias (quote gnus-interactive) …)) => (macroexpand (gnus-summary-skip-intangible …)) => (load "gnus.el")