summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/guix.texi6
-rw-r--r--guix/gexp.scm27
2 files changed, 13 insertions, 20 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 1a14ff9f0e..6d424b23e0 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -3908,7 +3908,7 @@ This is the declarative counterpart of @code{gexp->derivation}.
@deffn {Monadic Procedure} gexp->script @var{name} @var{exp}
Return an executable script @var{name} that runs @var{exp} using
-@var{guile} with @var{modules} in its search path.
+@var{guile}, with @var{exp}'s imported modules in its search path.
The example below builds a script that simply invokes the @command{ls}
command:
@@ -3934,10 +3934,10 @@ executable file @file{/gnu/store/@dots{}-list-files} along these lines:
@end deffn
@deffn {Scheme Procedure} program-file @var{name} @var{exp} @
- [#:modules '()] [#:guile #f]
+ [#:guile #f]
Return an object representing the executable store item @var{name} that
runs @var{gexp}. @var{guile} is the Guile package used to execute that
-script, and @var{modules} is the list of modules visible to that script.
+script.
This is the declarative counterpart of @code{gexp->script}.
@end deffn
diff --git a/guix/gexp.scm b/guix/gexp.scm
index ec4fe0896a..302879fb42 100644
--- a/guix/gexp.scm
+++ b/guix/gexp.scm
@@ -56,7 +56,6 @@
program-file?
program-file-name
program-file-gexp
- program-file-modules
program-file-guile
scheme-file
@@ -296,29 +295,25 @@ This is the declarative counterpart of 'gexp->derivation'."
(apply gexp->derivation name gexp options))))
(define-record-type <program-file>
- (%program-file name gexp modules guile)
+ (%program-file name gexp guile)
program-file?
(name program-file-name) ;string
(gexp program-file-gexp) ;gexp
- (modules program-file-modules) ;list of module names
(guile program-file-guile)) ;package
-(define* (program-file name gexp
- #:key (modules '()) (guile #f))
+(define* (program-file name gexp #:key (guile #f))
"Return an object representing the executable store item NAME that runs
-GEXP. GUILE is the Guile package used to execute that script, and MODULES is
-the list of modules visible to that script.
+GEXP. GUILE is the Guile package used to execute that script.
This is the declarative counterpart of 'gexp->script'."
- (%program-file name gexp modules guile))
+ (%program-file name gexp guile))
(define-gexp-compiler (program-file-compiler (file program-file?)
system target)
;; Compile FILE by returning a derivation that builds the script.
(match file
- (($ <program-file> name gexp modules guile)
+ (($ <program-file> name gexp guile)
(gexp->script name gexp
- #:modules modules
#:guile (or guile (default-guile))))))
(define-record-type <scheme-file>
@@ -1000,13 +995,11 @@ they can refer to each other."
%load-compiled-path)))))))
(define* (gexp->script name exp
- #:key (modules '()) (guile (default-guile)))
- "Return an executable script NAME that runs EXP using GUILE with MODULES in
-its search path."
- (define %modules
- (append (gexp-modules exp) modules))
-
- (mlet %store-monad ((set-load-path (load-path-expression %modules)))
+ #:key (guile (default-guile)))
+ "Return an executable script NAME that runs EXP using GUILE, with EXP's
+imported modules in its search path."
+ (mlet %store-monad ((set-load-path
+ (load-path-expression (gexp-modules exp))))
(gexp->derivation name
(gexp
(call-with-output-file (ungexp output)