guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

04/08: gnu: emacs: Byte compile the site-lisp directory, without couplin


From: guix-commits
Subject: 04/08: gnu: emacs: Byte compile the site-lisp directory, without coupling.
Date: Sun, 22 Mar 2020 21:45:15 -0400 (EDT)

apteryx pushed a commit to branch master
in repository guix.

commit ffaec30702f392a50cbd6d3ba229506b5a38e207
Author: Maxim Cournoyer <address@hidden>
AuthorDate: Sun Mar 22 12:40:25 2020 -0400

    gnu: emacs: Byte compile the site-lisp directory, without coupling.
    
    This re-instates what the previously reverted commit did, but without adding
    a dependency on the (guix build emacs-utils) module.
    
    * gnu/packages/emacs.scm (emacs)[phases]{install-site-start}: Define a
    EMACS-BYTE-COMPILE-DIRECTORY procedure, and use it.
---
 gnu/packages/emacs.scm | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 794cbca..ec5e668 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -9,7 +9,7 @@
 ;;; Copyright © 2016 David Thompson <address@hidden>
 ;;; Copyright © 2016 ng0 <address@hidden>
 ;;; Copyright © 2017 Marius Bakke <address@hidden>
-;;; Copyright © 2017, 2019 Maxim Cournoyer <address@hidden>
+;;; Copyright © 2017, 2019, 2020 Maxim Cournoyer <address@hidden>
 ;;; Copyright © 2017 Alex Vong <address@hidden>
 ;;; Copyright © 2017, 2018 Ricardo Wurmus <address@hidden>
 ;;; Copyright © 2017 Jan Nieuwenhuizen <address@hidden>
@@ -143,7 +143,18 @@
            ;; Elisp packages found in EMACSLOADPATH.
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out      (assoc-ref outputs "out"))
-                    (lisp-dir (string-append out "/share/emacs/site-lisp")))
+                    (lisp-dir (string-append out "/share/emacs/site-lisp"))
+                    (emacs (string-append out "/bin/emacs")))
+
+               ;; This is duplicated from emacs-utils to prevent coupling.
+               (define* (emacs-byte-compile-directory dir)
+                 (let ((expr `(progn
+                               (setq byte-compile-debug t)
+                               (byte-recompile-directory
+                                (file-name-as-directory ,dir) 0 1))))
+                   (invoke emacs "--quick" "--batch"
+                           (format "--eval=~s" expr))))
+
                (copy-file (assoc-ref inputs "guix-emacs.el")
                           (string-append lisp-dir "/guix-emacs.el"))
                (with-output-to-file (string-append lisp-dir "/site-start.el")
@@ -156,7 +167,8 @@
                ;; share/emacs/site-lisp union when added to EMACSLOADPATH,
                ;; which leads to conflicts.
                (delete-file (string-append lisp-dir "/subdirs.el"))
-               #t))))))
+               ;; Byte compile the site-start files.
+               (emacs-byte-compile-directory lisp-dir)))))))
     (inputs
      `(("gnutls" ,gnutls)
        ("ncurses" ,ncurses)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]