ui: Avoid circularity with (guix gexp).
Fixes a regression introduced in 56b8210
("guix build: Allow gexps to be
passed to '-e'.")
* guix/ui.scm (%guix-user-module): Wrap in 'delay'.
(read/eval): Adjust accordingly.
This commit is contained in:
parent
240a2775de
commit
07254feb24
14
guix/ui.scm
14
guix/ui.scm
|
@ -240,11 +240,13 @@ interpreted."
|
||||||
|
|
||||||
(define %guix-user-module
|
(define %guix-user-module
|
||||||
;; Module in which user expressions are evaluated.
|
;; Module in which user expressions are evaluated.
|
||||||
(let ((module (make-module)))
|
;; Compute lazily to avoid circularity with (guix gexp).
|
||||||
(beautify-user-module! module)
|
(delay
|
||||||
;; Use (guix gexp) so that one can use #~ & co.
|
(let ((module (make-module)))
|
||||||
(module-use! module (resolve-interface '(guix gexp)))
|
(beautify-user-module! module)
|
||||||
module))
|
;; Use (guix gexp) so that one can use #~ & co.
|
||||||
|
(module-use! module (resolve-interface '(guix gexp)))
|
||||||
|
module)))
|
||||||
|
|
||||||
(define (read/eval str)
|
(define (read/eval str)
|
||||||
"Read and evaluate STR, raising an error if something goes wrong."
|
"Read and evaluate STR, raising an error if something goes wrong."
|
||||||
|
@ -256,7 +258,7 @@ interpreted."
|
||||||
str args)))))
|
str args)))))
|
||||||
(catch #t
|
(catch #t
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(eval exp %guix-user-module))
|
(eval exp (force %guix-user-module)))
|
||||||
(lambda args
|
(lambda args
|
||||||
(leave (_ "failed to evaluate expression `~a': ~s~%")
|
(leave (_ "failed to evaluate expression `~a': ~s~%")
|
||||||
exp args)))))
|
exp args)))))
|
||||||
|
|
Loading…
Reference in New Issue