Move compile-time fix for disabled packages
This fix prevented the byte-compiler from trying to load packages that were disabled or failed their :when/:unless/:if predicates. This commit moves it into doom-byte-compile, so the :no-require predicate doesn't have to run on every package in an interactive session, eating MY PRECIOUS cpu cycles. I do love my cpu cycles, yessiree.
This commit is contained in:
parent
ab07e07352
commit
32954ecb69
3 changed files with 22 additions and 22 deletions
|
@ -733,8 +733,19 @@ If RECOMPILE-P is non-nil, only recompile out-of-date files."
|
|||
(message "Couldn't find any valid targets")
|
||||
(message "No targets to %scompile" (if recompile-p "re" "")))
|
||||
(cl-return-from 'byte-compile))
|
||||
(condition-case ex
|
||||
(let ((use-package-expand-minimally t))
|
||||
(condition-case e
|
||||
(let ((use-package-defaults use-package-defaults)
|
||||
(use-package-expand-minimally t))
|
||||
;; Prevent packages from being loaded at compile time if they
|
||||
;; don't meet their own predicates.
|
||||
(push (list :no-require t
|
||||
(lambda (_name args)
|
||||
(or (when-let* ((pred (or (plist-get args :if)
|
||||
(plist-get args :when))))
|
||||
(not (eval pred t)))
|
||||
(when-let* ((pred (plist-get args :unless)))
|
||||
(eval pred t)))))
|
||||
use-package-defaults)
|
||||
;; Always compile private init file
|
||||
(push (expand-file-name "init.el" doom-private-dir) target-files)
|
||||
(push (expand-file-name "init.el" doom-emacs-dir) target-files)
|
||||
|
|
|
@ -179,28 +179,16 @@ non-nil, return paths of possible modules, activated or otherwise."
|
|||
|
||||
(autoload 'use-package "use-package-core" nil nil t)
|
||||
|
||||
;; Adds the :after-call custom keyword to `use-package' (and consequently,
|
||||
;; `def-package!'). :after-call takes a symbol or list of symbols. These symbols
|
||||
;; can be functions or hook variables.
|
||||
;;
|
||||
;; (use-package X :after-call find-file-hook)
|
||||
;;
|
||||
;; This will load X on the first invokation of `find-file-hook' (then it will
|
||||
;; remove itself from the hook/function).
|
||||
(defvar doom--deferred-packages-alist ())
|
||||
(after! use-package-core
|
||||
;; Prevent packages from being loaded at compile time if they don't meet their
|
||||
;; own predicates.
|
||||
(push (list :no-require t
|
||||
(lambda (_name args)
|
||||
(and (bound-and-true-p byte-compile-current-file)
|
||||
(or (when-let* ((pred (or (plist-get args :if)
|
||||
(plist-get args :when))))
|
||||
(not (eval pred t)))
|
||||
(when-let* ((pred (plist-get args :unless)))
|
||||
(eval pred t))))))
|
||||
use-package-defaults)
|
||||
|
||||
;; Adds the :after-call custom keyword to `use-package' (and consequently,
|
||||
;; `def-package!'). :after-call takes a symbol or list of symbols. These
|
||||
;; symbols can be functions or hook variables.
|
||||
;;
|
||||
;; (use-package X :after-call find-file-hook)
|
||||
;;
|
||||
;; This will load X on the first invokation of `find-file-hook' (then it will
|
||||
;; remove itself from the hook/function).
|
||||
(add-to-list 'use-package-deferring-keywords :after-call nil #'eq)
|
||||
(setq use-package-keywords
|
||||
(use-package-list-insert :after-call use-package-keywords :after))
|
||||
|
|
|
@ -162,6 +162,7 @@ else (except for `window-setup-hook').")
|
|||
use-package-compute-statistics doom-debug-mode
|
||||
use-package-verbose doom-debug-mode
|
||||
use-package-minimum-reported-time (if doom-debug-mode 0 0.1)
|
||||
use-package-expand-minimally (not noninteractive)
|
||||
;; byte compilation
|
||||
byte-compile-verbose doom-debug-mode
|
||||
byte-compile-warnings '(not free-vars unresolved noruntime lexical make-local)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue