Eli Zaretskii writes: >> From: Philip Kaludercic >> Cc: Basil Contovounesios , 63260@debbugs.gnu.org, >> rpluim@gmail.com >> Date: Sun, 07 May 2023 12:39:48 +0000 >> >> Eli Zaretskii writes: >> >> > AFAIU, in https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62734 I asked >> > Philip what would happen in this case, and he replied that the changes >> > he proposed did TRT in that case? So what is different here? Philip? >> >> No, that appears to have been my mistake. The issue is that >> `loaddefs-generate' generates the autoload file while looping over all >> definitions to autoload, but if there are no files, Basil is right that >> nothing happens. This is fine in general, but `loaddefs-generate' has >> the extra task of modifying load-path (which has been the root of the >> issue in bug#62734). Perhaps it is best to revert the commit, and come >> up with a alternative solution. I have an idea, but I'll have to test >> it again before I forget something like this. > > If we revert that commit, we will bring back bug#62734, which to me > sounds like a similarly serious, perhaps even more serious, issue, > don't you agree? My idea was that we could revert the commit, and then install a smaller change, basically just replacing the condition (and (not defs) extra-data) with (not defs) but thinking about it for a bit, I noticed that you are right that this would just re-introduce the same issue. > So I think maybe we need to amend that commit with > something that takes care of the particular situation reported here. > Specifically, it seems we need to detect the situation where a package > has no autoloads at all, and then produce the minimal autoloads file > that such packages expect. One hack might just be to check if `loaddefs-generate' has generated anything at all or not, and if that is not the case to do so manually in package.el. The reason this doesn't seem nice, is that we'd have to make the fact that `loaddefs-generate' does not generate a OUTPUT-FILE if there is no file with autoloads explicit, and finding a justification for that is difficult. Alternatively, this could be done inside of `loaddefs-generate'? Something like