gexp: Add 'imported+compiled-modules'.

* guix/gexp.scm (imported+compiled-modules): New procedure.
(lower-gexp): Use it instead of separate calls to 'imported-modules' and
'compiled-modules'.
This commit is contained in:
Ludovic Courtès 2019-10-27 18:55:44 +01:00
parent f726f6f802
commit f58b45350b
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5

View File

@ -654,6 +654,28 @@ names and file names suitable for the #:allowed-references argument to
(load-path lowered-gexp-load-path) ;list of store items
(load-compiled-path lowered-gexp-load-compiled-path)) ;list of store items
(define* (imported+compiled-modules modules system
#:key (extensions '())
deprecation-warnings guile
(module-path %load-path))
"Return a pair where the first element is the imported MODULES and the
second element is the derivation to compile them."
(mlet %store-monad ((modules (if (pair? modules)
(imported-modules modules
#:system system
#:module-path module-path)
(return #f)))
(compiled (if (pair? modules)
(compiled-modules modules
#:system system
#:module-path module-path
#:extensions extensions
#:guile guile
#:deprecation-warnings
deprecation-warnings)
(return #f))))
(return (cons modules compiled))))
(define* (lower-gexp exp
#:key
(module-path %load-path)
@ -719,20 +741,15 @@ derivations--e.g., code evaluated for its side effects."
(lambda (obj)
(lower-object obj system))
extensions))
(modules (if (pair? %modules)
(imported-modules %modules
#:system system
#:module-path module-path)
(return #f)))
(compiled (if (pair? %modules)
(compiled-modules %modules
#:system system
#:module-path module-path
#:extensions extensions
#:guile guile
#:deprecation-warnings
deprecation-warnings)
(return #f))))
(modules+compiled (imported+compiled-modules
%modules system
#:extensions extensions
#:deprecation-warnings
deprecation-warnings
#:guile guile
#:module-path module-path))
(modules -> (car modules+compiled))
(compiled -> (cdr modules+compiled)))
(define load-path
(search-path modules exts
(string-append "/share/guile/site/" effective-version)))