[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
feature/native-comp a79365a 1/4: compile-async: Don't error out on defer
From: |
Stefan Kangas |
Subject: |
feature/native-comp a79365a 1/4: compile-async: Don't error out on deferred compilation after load |
Date: |
Fri, 20 Nov 2020 22:23:11 -0500 (EST) |
branch: feature/native-comp
commit a79365acaff843a144eacc620bfe6992051f84d4
Author: Stefan Kangas <stefan@marxist.se>
Commit: Stefan Kangas <stefan@marxist.se>
compile-async: Don't error out on deferred compilation after load
* lisp/emacs-lisp/comp.el (native-compile-async): Update
comp-files-queue when deferred compilation is requested. (Bug#44676)
---
lisp/emacs-lisp/comp.el | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el
index 633eded..095bd63 100644
--- a/lisp/emacs-lisp/comp.el
+++ b/lisp/emacs-lisp/comp.el
@@ -3511,14 +3511,12 @@ LOAD can be nil t or 'late."
(list "Path not a file nor directory" path)))))
(dolist (file files)
(if-let ((entry (cl-find file comp-files-queue :key #'car :test
#'string=)))
- ;; When no load is specified (plain async compilation) we
- ;; consider valid the one previously queued, otherwise we
- ;; check for coherence (bug#40602).
- (cl-assert (or (null load)
- (eq load (cdr entry)))
- nil "Trying to queue %s with LOAD %s but this is already \
-queued with LOAD %"
- file load (cdr entry))
+ ;; Most likely the byte-compiler has requested a deferred
+ ;; compilation, so update `comp-files-queue' to reflect that.
+ (unless (or (null load)
+ (eq load (cdr entry)))
+ (cl-substitute (cons file load) (car entry) comp-files-queue
+ :key #'car :test #'string=))
;; Make sure we are not already compiling `file' (bug#40838).
(unless (or (gethash file comp-async-compilations)
;; Also exclude files from deferred compilation if