diff --git a/user-config/emacs/.emacs.d/init.el b/user-config/emacs/.emacs.d/init.el index 6e846b9..602136f 100644 --- a/user-config/emacs/.emacs.d/init.el +++ b/user-config/emacs/.emacs.d/init.el @@ -30,4 +30,18 @@ ; executable (new in org 9.6) (org-confirm-babel-evaluate nil)) (when (file-exists-p config) - (org-babel-load-file config t))) + (when (or (not (file-exists-p el)) + (time-less-p + (file-attribute-modification-time (file-attributes el)) + (file-attribute-modification-time (file-attributes config)))) + (org-babel-tangle-file config el) + ;; Make sure that tangled file modification time is + ;; updated even when `org-babel-tangle-file' does not make changes. + ;; This avoids re-tangling changed FILE where the changes did + ;; not affect the tangled code. + (when (file-exists-p el) + (set-file-times el)) + + (byte-compile-file el) + (load-file (byte-compile-dest-file el)) + (message "Compiled and loaded %s" el))))