]> git.eshelyaron.com Git - emacs.git/commitdiff
* Do not produce .elc temporary file when unnecessary (bug#48978)
authorAndrea Corallo <akrl@sdf.org>
Mon, 14 Jun 2021 12:37:14 +0000 (14:37 +0200)
committerAndrea Corallo <akrl@sdf.org>
Mon, 14 Jun 2021 13:02:17 +0000 (15:02 +0200)
* lisp/emacs-lisp/bytecomp.el (byte-compile-file): Produce .elc
temporary files only when non native compiling or when native
compiling but `byte+native-compile' is non nil.

lisp/emacs-lisp/bytecomp.el

index 909a1b4412a9a0e9d906754c54364189cc450e40..5ed6bfeddccddb56048303b438af534cc6f1aa02 100644 (file)
@@ -2067,16 +2067,17 @@ See also `emacs-lisp-byte-compile-and-load'."
          (insert "\n")                 ; aaah, unix.
          (cond
           ((null target-file) nil)     ;We only wanted the warnings!
-          ((or byte-native-compiling
-               (and (file-writable-p target-file)
-                    ;; We attempt to create a temporary file in the
-                    ;; target directory, so the target directory must be
-                    ;; writable.
-                    (file-writable-p
-                     (file-name-directory
-                      ;; Need to expand in case TARGET-FILE doesn't
-                      ;; include a directory (Bug#45287).
-                      (expand-file-name target-file)))))
+          ((and (or (null byte-native-compiling)
+                     (and byte-native-compiling byte+native-compile))
+                 (file-writable-p target-file)
+                ;; We attempt to create a temporary file in the
+                ;; target directory, so the target directory must be
+                ;; writable.
+                (file-writable-p
+                 (file-name-directory
+                  ;; Need to expand in case TARGET-FILE doesn't
+                  ;; include a directory (Bug#45287).
+                  (expand-file-name target-file))))
            ;; We must disable any code conversion here.
            (let* ((coding-system-for-write 'no-conversion)
                   ;; Write to a tempfile so that if another Emacs
@@ -2105,11 +2106,9 @@ See also `emacs-lisp-byte-compile-and-load'."
              ;; recompiled).  Previously this was accomplished by
              ;; deleting target-file before writing it.
              (if byte-native-compiling
-                  (if byte+native-compile
-                      ;; Defer elc final renaming.
-                      (setf byte-to-native-output-file
-                            (cons tempfile target-file))
-                    (delete-file tempfile))
+                  ;; Defer elc final renaming.
+                  (setf byte-to-native-output-file
+                        (cons tempfile target-file))
                 (rename-file tempfile target-file t)))
            (or noninteractive
                byte-native-compiling