|
From: | Max Nikulin |
Subject: | bug#62762: circular dependencies in elisp files and make |
Date: | Sat, 13 May 2023 14:34:06 +0700 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 |
On 13/05/2023 13:50, Eli Zaretskii wrote:
Date: Sat, 13 May 2023 10:08:25 +0700 From: Max Nikulin ... 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.So you will make each build always do two byte-compilation passes where today we have just one? And the first one of these will use only *.el files, including for those that are preloaded into bootstrap-emacs? Doesn't that sound like a significant slow-down of the build?
I do not see a reason for significant slow-down because I do not suggest two passes of *byte-compilataion*.
1. A script reads dependency files (if they exist) created during previous build and removes stale .elc files. 2. Normal "make" pass that takes into account dependency between files for ordering of compile commands. Dependency files are created or updated as a side-effect of compilation.
Likely it is reasonable to split stage 2 into steps similar to current targets like main-first and mark most of files as dependent on a target that (throw its dependencies) compiles files required for byte compilation.
[Prev in Thread] | Current Thread | [Next in Thread] |