summary refs log tree commit diff
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)