bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#62762: circular dependencies in elisp files and make


From: Max Nikulin
Subject: bug#62762: circular dependencies in elisp files and make
Date: Sat, 13 May 2023 10:08:25 +0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0

On 12/05/2023 23:01, Eli Zaretskii wrote:
Date: Fri, 12 May 2023 22:26:47 +0700 From: Max Nikulin

I expect that

emacs -Q --batch -l bytecomp --eval \
    "(mapc (lambda (x) (princ (car x) (terpri))) load-history)"

gives reasonable approximation to "files necessary to load bytecomp".
What should be added to prerequisites besides bytecomp dependencies?

Anything that bytecomp loads via autoloads while compiling.  Also
byte-opt and its autoloads, I think.

You are right concerning autoloads, while byte-opt is just one extra file in the dependency list. However the same expression evaluated when `batch-byte-compile' call finished gives list of dependencies for the just created .elc files. Basic statistics based on dependency files may provide better approximation which files should be compiled at first to achieve faster build. I do not think that complications you described are blockers for accurate dependency tracking.

My initial idea was to compile files necessary for byte compilation at first and for compilation of "regular" files load components required for byte compilation and after that suppress loading of .elc files. What can be better is removing all stale .elc file before compiling of updates sources. A script iterates over dependency files and deletes .elc if any its prerequisite has been updated. Following compilation pass can safely use .elc files that are either survived from previous build as up to date or just refreshed.





reply via email to

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