summaryrefslogtreecommitdiff
path: root/lisp/progmodes/elisp-mode.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/progmodes/elisp-mode.el')
-rw-r--r--lisp/progmodes/elisp-mode.el17
1 files changed, 12 insertions, 5 deletions
diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el
index 1b42051ab93..5343be48bb3 100644
--- a/lisp/progmodes/elisp-mode.el
+++ b/lisp/progmodes/elisp-mode.el
@@ -221,6 +221,16 @@ All commands in `lisp-mode-shared-map' are inherited by this map."
(declare-function native-compile "comp")
(declare-function comp-write-bytecode-file "comp")
+(defun emacs-lisp-native-compile ()
+ "Native-compile synchronously the current file (if it has changed)."
+ (interactive nil emacs-lisp-mode)
+ (emacs-lisp--before-compile-buffer)
+ (let* ((byte+native-compile t)
+ (byte-to-native-output-buffer-file nil)
+ (eln (native-compile buffer-file-name)))
+ (when eln
+ (comp-write-bytecode-file eln))))
+
(defun emacs-lisp-native-compile-and-load ()
"Native-compile synchronously the current file (if it has changed).
Load the compiled code when finished.
@@ -229,11 +239,8 @@ Use `emacs-lisp-byte-compile-and-load' in combination with
`native-comp-jit-compilation' set to t to achieve asynchronous
native compilation."
(interactive nil emacs-lisp-mode)
- (emacs-lisp--before-compile-buffer)
- (let ((byte+native-compile t)
- (byte-to-native-output-buffer-file nil))
- (when-let ((eln (native-compile buffer-file-name)))
- (load (file-name-sans-extension (comp-write-bytecode-file eln))))))
+ (when-let ((byte-file (emacs-lisp-native-compile)))
+ (load (file-name-sans-extension byte-file))))
(defun emacs-lisp-macroexpand ()
"Macroexpand the form after point.