emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: reftex.el autoloads


From: Phillip Lord
Subject: Re: reftex.el autoloads
Date: Fri, 11 Dec 2015 15:35:09 +0000
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Eli Zaretskii <address@hidden> writes:

>> From: address@hidden (Phillip Lord)
>> Cc: <address@hidden>
>> Date: Thu, 10 Dec 2015 22:03:32 +0000
>> 
>> So, quite a lot of files seem to set generated-autoload-file to
>> loaddefs.el which seems a bit odd (since it's the default).
>
> Only in lisp/cedet/, I think.  I'm guessing this is the result of
> integrating CEDET.  If you want the details, maybe the CEDET people
> and/or Chong (which did most of the work) could tell you the reasons
> for that.  I suggest to look at Git logs and maybe ask them Or maybe
> Glenn (CC'ed) remembers.

It's not a disaster either way.


>> I am not sure why only reftex.el causes me problems -- why not the
>> others, I wonder?
>
> Probably because the range of versions you tried to bisect didn't
> touch the others.  It obviously depends on which files whose autoloads
> are there are modified by the commits you are bisecting.

Yes, I guess that is true.

>> Also, the changed line is actually this...
>> 
>> >> +;;;### (autoloads nil "reftex-auc" "reftex-auc.el" 
>> >> "7c0e0b46919f4ceefe1026e31e73ebcd")
>> 
>> which is a comment. I don't know what this line does in the autoload
>> process.
>
> It's documented in the ELisp manual.  Which parts are unclear?

I did re-read the elisp manual, of course, and I can't find anything
which documents this; it describes comments in files to be autoloaded,
but not the autoloads. I tracked the source code, and it's inserted by
`autoload-insert-section-header'.

Deep in the bowels of autoload.el, there is a call to this which is
documented like this:

;; MD5 checksums are much better because they do not
;; change unless the file changes (so they'll be
;; equal on two different systems and will change
;; less often than time-stamps, thus leading to fewer
;; unneeded changes causing spurious conflicts), but
;; using time-stamps is a very useful optimization,
;; so we use time-stamps for the main autoloads file
;; (loaddefs.el) where we have special ways to
;; circumvent the "random change problem", and MD5
;; checksum in secondary autoload files where we do
;; not need the time-stamp optimization because it is
;; already provided by the primary autoloads file.

So, it's a checksum (not a git commit which was my first thought) of the
file contents (except in loaddefs.el when it's a timestamp). So it will
update whenever reftex-auc changes whether the autoloads need to change
or not.

Phil




reply via email to

[Prev in Thread] Current Thread [Next in Thread]