3
5
Fork 0
mirror of git://git.savannah.gnu.org/guix.git synced 2023-12-14 03:33:07 +01:00

gexp: 'program-file' and 'gexp->script' no longer have #:modules.

* guix/gexp.scm (<program-file>)[modules]: Remove.
(program-file): Remove #:modules and adjust accordingly.
(program-file-compiler): Likewise.
(gexp->script): Likewise.
This commit is contained in:
Ludovic Courtès 2016-07-12 17:57:28 +02:00
parent a769bffb65
commit 9c14a487bb
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
2 changed files with 13 additions and 20 deletions

View file

@ -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

View file

@ -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)