Subject: Re: bug#70357: 30.0.50; loadup.el, load nadvice before seq

From: Gerd Möllmann <[email-masked]>
Date: Sat, 13 Apr 2024 09:39:10 +0200

Eli Zaretskii <[email-masked]> writes:

>> From: Gerd Möllmann <[email-masked]>
>> Cc: Stefan Monnier <[email-masked]>,  [email-masked]
>> Date: Sat, 13 Apr 2024 09:07:43 +0200
>> 
>> Eli Zaretskii <[email-masked]> writes:
>> 
>> >> If a seq.elc exists, and we dump bootstrap-emacs.pdmp, and seq.el gets
>> >> loaded, then the cl-generic machinery will want to warn about the fact
>> >> that certain method stuff in seq.elc is already compiled.
>> >
>> > lost me: why is that warning being emitted, if all we need is to load
>> > seq.el during loadup?
>> 
>> loadup.el loads seq.elc in my case, not seq.el, and I think that's the
>> difference.
>
> But loadup always loads seq.elc, except when seq.el is newer, so what
> am I still missing here?

I can't answer that. Maybe it's the --temacs=pbootstrap that is used for
dumping? But that's just a guess, I don't know what that does. At least
that seems to be a difference.

>
>> My mental model is, Stefan please correct me, that cl-generic calls the
>> compiler on method functions, effective method function, and such.
>> 
>> If seq.el, the source file, is loaded from loadup, these functions are
>> not yet compiled. If seq.elc is loaded, the functions are apparently
>> already compiled, and a warning is emitted.
>
> How to create this situation?

I get that regularly when I make changes in some .c file, build in src,
which builds a new temacs, and so on, and all while seq.elc exists.