Subject: Re: bug#62734: Always fully rebuild autoloads in package-generate-autoloads

From: Eli Zaretskii <[email-masked]>
Date: Sat, 29 Apr 2023 08:43:00 +0300

> From: Philip Kaludercic <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Fri, 28 Apr 2023 18:22:43 +0000
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> > What is meant by "building the package"?  Is it just compiling the
> > Lisp files?
> 
> >From `package-vc-rebuild':
> 
>   Rebuilding an installation means scraping for new autoload
>   cookies, re-compiling Emacs Lisp files, building and installing
>   any documentation, downloading any missing dependencies.

Thanks.  As a tangent: this is confusing terminology, so it is
unfortunate that it was selected for this operation.

> >> (time-less-p output-time
> >>   (file-attribute-modification-time
> >>   (file-attributes file)))
> >> --8<---------------cut here---------------end--------------->8---
> >> 
> >> does not hold
> >
> > Why would it not hold?  Updating from VCS should update the timestamp
> > of the updated files.
> 
> I don't think this necessarily holds if there were no changes affecting
> a file.

I don't follow: a file that didn't change doesn't need its autoloads
updated, right?

> >> Another idea is just to get rid of this faulty optimisation.  From my
> >> tests this would also resolve the bug.
> >
> > I don't yet understand what optimization is that, but getting rid of
> > it should not alter what the code does for the loaddefs files inside
> > the Emacs tree, because there it does work, and I don't want to touch
> > that.
> 
> Are you sure it does work?

It works well in the Emacs tree, I'm sure.  So if it doesn't in this
case, I'd encourage some debugging, because it could be that this is
some subtle bug or feature in loaddefs-generate, and we should
investigate that and fix whatever needs fixing now, since this
function is new in Emacs 29.