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.
master
parent
240a2775de
commit
07254feb24
14
guix/ui.scm
14
guix/ui.scm
|
@ -240,11 +240,13 @@ interpreted."
|
|||
|
||||
(define %guix-user-module
|
||||
;; Module in which user expressions are evaluated.
|
||||
(let ((module (make-module)))
|
||||
(beautify-user-module! module)
|
||||
;; Use (guix gexp) so that one can use #~ & co.
|
||||
(module-use! module (resolve-interface '(guix gexp)))
|
||||
module))
|
||||
;; Compute lazily to avoid circularity with (guix gexp).
|
||||
(delay
|
||||
(let ((module (make-module)))
|
||||
(beautify-user-module! module)
|
||||
;; Use (guix gexp) so that one can use #~ & co.
|
||||
(module-use! module (resolve-interface '(guix gexp)))
|
||||
module)))
|
||||
|
||||
(define (read/eval str)
|
||||
"Read and evaluate STR, raising an error if something goes wrong."
|
||||
|
@ -256,7 +258,7 @@ interpreted."
|
|||
str args)))))
|
||||
(catch #t
|
||||
(lambda ()
|
||||
(eval exp %guix-user-module))
|
||||
(eval exp (force %guix-user-module)))
|
||||
(lambda args
|
||||
(leave (_ "failed to evaluate expression `~a': ~s~%")
|
||||
exp args)))))
|
||||
|
|
Reference in New Issue