Browse Source

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.
version-0.8.3
Ludovic Courtès 8 years ago
parent
commit
07254feb24
  1. 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)))))

Loading…
Cancel
Save