summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/comp.el14
1 files changed, 13 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el
index 616410375ed..e6a43b85afb 100644
--- a/lisp/emacs-lisp/comp.el
+++ b/lisp/emacs-lisp/comp.el
@@ -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)