diff --git a/core/core-packages.el b/core/core-packages.el index bb7edf1de..c5cd968df 100644 --- a/core/core-packages.el +++ b/core/core-packages.el @@ -379,10 +379,9 @@ server, if necessary) by `doom/packages-install', `doom/packages-update' and `doom/packages-autoremove'. " (interactive) (if noninteractive - (progn + (ignore-errors (require 'server) - (ignore-errors - (server-eval-at "server" '(let (noninteractive) (doom/reload))))) + (server-eval-at "server" '(let (noninteractive) (doom/reload)))) (doom-initialize t) (doom/compile t) (message "Reloaded %d packages" (length doom--package-load-path)))) @@ -434,13 +433,10 @@ the commandline." (delete-file generated-autoload-file) (error "Couldn't evaluate autoloads.el: %s" (cadr ex)))))) -(defun doom/compile (&optional recompile-p lite-p) +(defun doom/compile (&optional lite-p) "Byte compile your emacs configuration (init.el, core/*.el & modules/*/*/**.el). DOOM Emacs was designed to benefit from this, but it may -take a while. - -If RECOMPILE-P is non-nil, don't byte-compile *.el files that don't have an -accompanying *.elc file." +take a while." (interactive) ;; Ensure all relevant config files are loaded. This way we don't need ;; eval-when-compile and require blocks scattered all over. @@ -452,13 +448,11 @@ accompanying *.elc file." results) (unless lite-p (dolist (path (doom--module-paths)) - (nconc targets (nreverse (directory-files-recursively path "\\.el$"))))) - (when recompile-p - (setq targets (cl-remove-if-not (lambda (file) (file-exists-p (concat (file-name-sans-extension file) ".elc"))) - targets))) + (nconc targets (append (reverse (directory-files path t "\\.el$" t)) + (reverse (file-expand-wildcards (expand-file-name "*/*.el" path))))))) (dolist (file targets) (push (cons (file-relative-name file doom-emacs-dir) - (byte-recompile-file file nil (unless recompile-p 0))) + (byte-recompile-file file t 0)) results)) (let* ((n-fail (cl-count-if (lambda (x) (null (cdr x))) results)) (n-nocompile (cl-count-if (lambda (x) (eq (cdr x) 'no-byte-compile)) results)) @@ -468,16 +462,15 @@ accompanying *.elc file." (message "\n")) (when (> n-fail 0) (message "\n%s" (mapconcat (lambda (file) (concat "+ ERROR: " (car file))) - (cl-remove-if 'cdr (reverse results)) "\n"))) - (message "%s %s file(s)" - (if recompile-p "Recompiled" "Compiled") + (cl-remove-if-not 'cdr (reverse results)) "\n"))) + (message "Compiled %s file(s)" (format (if (= total 0) "%s" "%s/%s") total-success total))))) -(defun doom/compile-lite (&optional recompile-p) +(defun doom/compile-lite () "A light-weight version of `doom/compile' which only compiles core files in your emacs configuration (init.el and core/**/*.el)." (interactive) - (doom/compile recompile-p t)) + (doom/compile t)) (defun doom/clean-cache () "Clear local cache (`doom-cache-dir'). You may need to restart Emacs for some