]> git.eshelyaron.com Git - emacs.git/commitdiff
* Introduce `emacs-lisp-native-compile'.
authorAndrea Corallo <acorallo@gnu.org>
Thu, 10 Aug 2023 08:18:43 +0000 (10:18 +0200)
committerAndrea Corallo <acorallo@gnu.org>
Thu, 10 Aug 2023 08:32:02 +0000 (10:32 +0200)
* lisp/progmodes/elisp-mode.el (emacs-lisp-native-compile): New command.
(emacs-lisp-native-compile-and-load): Make use of.

lisp/progmodes/elisp-mode.el

index 1b42051ab93561c94efa9808450a2dc2dff1e5fa..5343be48bb30808c44ae846cc59d3ced6a650c5e 100644 (file)
@@ -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.