]> git.eshelyaron.com Git - emacs.git/commitdiff
* Add 'comp-deferred-compilation-black-list' customize
authorAndrea Corallo <akrl@sdf.org>
Sat, 9 May 2020 12:52:30 +0000 (13:52 +0100)
committerAndrea Corallo <akrl@sdf.org>
Sat, 9 May 2020 13:06:43 +0000 (14:06 +0100)
* lisp/emacs-lisp/comp.el (comp-deferred-compilation-black-list):
New customize.
(native-compile-async): Make use of
'comp-deferred-compilation-black-list'.

lisp/emacs-lisp/comp.el

index 616410375ed15a922a449b1039723d9bc6cef086..e6a43b85afb969e5dcb47ca1ed32cf2dd847d203 100644 (file)
@@ -84,6 +84,13 @@ This intended for debugging the compiler itself.
   :type 'boolean
   :group 'comp)
 
+(defcustom comp-deferred-compilation-black-list
+  '()
+  "List of regexps to exclude files from deferred native compilation.
+Skip if any is matching."
+  :type 'list
+  :group 'comp)
+
 (defcustom comp-bootstrap-black-list
   '("^leim/")
   "List of regexps to exclude files from native compilation during bootstrap.
@@ -2369,7 +2376,12 @@ LOAD can be nil t or 'late."
 queued with LOAD %"
                      file load (cdr entry))
         ;; Make sure we are not already compiling `file' (bug#40838).
-        (unless (gethash file comp-async-compilations)
+        (unless (and (gethash file comp-async-compilations)
+                     ;; Exclude some file from deferred compilation if
+                     ;; `comp-deferred-compilation-black-list' says so.
+                     (or (not (eq load 'late))
+                         (cl-notany (lambda (re) (string-match re file))
+                                    comp-deferred-compilation-black-list)))
           (let ((out-dir (comp-output-directory file))
                 (out-filename (comp-output-filename file)))
             (if (or (file-writable-p out-filename)