Subject: bug#59194: 29.0.50; Tramp autoloads and ordering

From: Michael Albinus <[email-masked]>
Date: Fri, 18 Nov 2022 21:19:37 +0100

Stefan Monnier via "Bug reports for GNU Emacs, the Swiss army knife of
text editors" <[email-masked]> writes:

Hi Stefan,

> `tramp.el` has the following:
>
>     ;;;###tramp-autoload
>     (progn
>       (defvar tramp--startup-hook nil
>         "Forms to be executed at the end of tramp.el.")
>       (put 'tramp--startup-hook 'tramp-suppress-trace t)
>
>       (defmacro tramp--with-startup (&rest body)
>         "Schedule BODY to be executed at the end of tramp.el."
>         `(add-hook 'tramp--startup-hook (lambda () ,@body))))
>
> and then various other Tramp files have autoloaded forms like:
>
>     ;;;###tramp-autoload
>     (tramp--with-startup
>      (add-to-list 'tramp-methods
>       ...))
>
> The problem here is that the resulting `tramp-loaddefs.el` may or may
> not be valid depending on the order in which it gets filled, which is
> not something that's documented/guaranteed.

I'm aware of this. It was already reported on emacs-devel, see thread
starting with <[email-masked]>. In that case I've added
some variable declarations.

However, I don't know how to fix this in general.

>         Stefan

Best regards, Michael.