gnu: Fix top-level circular references between emacs.scm and llvm.scm.
authorLudovic Courtès <ludo@gnu.org>
Mon, 7 Jan 2019 13:59:01 +0000 (14:59 +0100)
committerLudovic Courtès <ludo@gnu.org>
Mon, 7 Jan 2019 14:09:30 +0000 (15:09 +0100)
Previously, loading either of these two modules could fail somewhat
non-deterministically because each top-level was referencing a variable
defined by the other module's top-level.

* gnu/packages/emacs.scm (package-elisp-from-package): Move to...
* gnu/packages/llvm.scm (package-elisp-from-package): Here.  Keep
private.

gnu/packages/emacs.scm
gnu/packages/llvm.scm

index 0c39a9c..33b011c 100644 (file)
@@ -331,35 +331,6 @@ editor (without an X toolkit)" )
              (lambda _
                (invoke "mkdir" "-p" "src/deps")))))))))
 
-(define-public (package-elisp-from-package
-                source-package package-name source-files)
-  "Return a package definition named PACKAGE-NAME that packages the Emacs Lisp
-SOURCE-FILES found in SOURCE-PACKAGE."
-  (let ((orig (package-source source-package)))
-    (package
-      (inherit source-package)
-      (name package-name)
-      (build-system emacs-build-system)
-      (source (origin
-                (method (origin-method orig))
-                (uri (origin-uri orig))
-                (sha256 (origin-sha256 orig))
-                (file-name (string-append package-name "-"
-                                          (package-version source-package)))
-                (modules '((guix build utils)
-                           (srfi srfi-1)
-                           (ice-9 ftw)))
-                (snippet
-                 `(let* ((source-files (quote ,source-files))
-                         (basenames (map basename source-files)))
-                    (map copy-file
-                         source-files basenames)
-                    (map delete-file-recursively
-                         (fold delete
-                               (scandir ".")
-                               (append '("." "..") basenames)))
-                    #t)))))))
-
 \f
 ;;;
 ;;; Emacs hacking.
index 6dab9c5..b1e41d7 100644 (file)
@@ -479,6 +479,35 @@ code analysis tools.")
      "This package provides a Python binding to LLVM for use in Numba.")
     (license license:bsd-3)))
 
+(define (package-elisp-from-package source-package package-name
+                                    source-files)
+  "Return a package definition named PACKAGE-NAME that packages the Emacs Lisp
+SOURCE-FILES found in SOURCE-PACKAGE."
+  (let ((orig (package-source source-package)))
+    (package
+      (inherit source-package)
+      (name package-name)
+      (build-system emacs-build-system)
+      (source (origin
+                (method (origin-method orig))
+                (uri (origin-uri orig))
+                (sha256 (origin-sha256 orig))
+                (file-name (string-append package-name "-"
+                                          (package-version source-package)))
+                (modules '((guix build utils)
+                           (srfi srfi-1)
+                           (ice-9 ftw)))
+                (snippet
+                 `(let* ((source-files (quote ,source-files))
+                         (basenames (map basename source-files)))
+                    (map copy-file
+                         source-files basenames)
+                    (map delete-file-recursively
+                         (fold delete
+                               (scandir ".")
+                               (append '("." "..") basenames)))
+                    #t)))))))
+
 (define-public emacs-clang-format
   (package
     (inherit clang)