]> git.eshelyaron.com Git - emacs.git/commitdiff
comp: make comp-run don't require cl-lib at runtime
authorAndrea Corallo <acorallo@gnu.org>
Wed, 25 Oct 2023 15:58:43 +0000 (17:58 +0200)
committerAndrea Corallo <acorallo@gnu.org>
Thu, 9 Nov 2023 11:34:22 +0000 (12:34 +0100)
* lisp/emacs-lisp/comp-run.el (cl-lib): Require it only at compile
time.
(native-compile-async-skip-p): Use 'seq-some'.
(native--compile-async): Don't use 'cl-substitute'.

lisp/emacs-lisp/comp-run.el

index bf54c64dd68b26e78a855b8c8c4f978251792ac3..9ea770135c18378fa563bb7dd4c074abdb918654 100644 (file)
@@ -31,7 +31,7 @@
 
 ;;; Code:
 
-(require 'cl-lib)
+(eval-when-compile (require 'cl-lib))
 (require 'warnings)
 
 (defgroup comp-run nil
@@ -209,7 +209,7 @@ LOAD and SELECTOR work as described in `native--compile-async'."
       ;; any of the regexps in
       ;; `native-comp-jit-compilation-deny-list' matches.
       (and (eq load 'late)
-           (cl-some (lambda (re)
+           (seq-some (lambda (re)
                       (string-match-p re file))
                     native-comp-jit-compilation-deny-list))))
 
@@ -433,14 +433,18 @@ bytecode definition was not changed in the meantime)."
             (t (signal 'native-compiler-error
                        (list "Not a file nor directory" file-or-dir)))))
     (dolist (file file-list)
-      (if-let ((entry (cl-find file comp-files-queue :key #'car :test #'string=)))
+      (if-let ((entry (seq-find (lambda (x) (string= file (car x))) comp-files-queue)))
           ;; Most likely the byte-compiler has requested a deferred
           ;; compilation, so update `comp-files-queue' to reflect that.
           (unless (or (null load)
                       (eq load (cdr entry)))
             (setf comp-files-queue
-                  (cl-substitute (cons file load) (car entry) comp-files-queue
-                                 :key #'car :test #'string=)))
+                  (cl-loop for i in comp-files-queue
+                           with old = (car entry)
+                           if (string= (car i) old)
+                             collect (cons file load)
+                           else
+                             collect i)))
 
         (unless (native-compile-async-skip-p file load selector)
           (let* ((out-filename (comp-el-to-eln-filename file))