~ruther/guix-local

dc856223f5eab57d8a4881782ec0f50abd12afa3 — Ludovic Courtès 8 years ago a2985bb
ui: Add an 'unbound-variable' exception printer.

* guix/ui.scm (print-unbound-variable-error): New variable.
Use it as the 'unbound-variable' printer.
1 files changed, 12 insertions(+), 0 deletions(-)

M guix/ui.scm
M guix/ui.scm => guix/ui.scm +12 -0
@@ 149,6 149,18 @@ messages."
    (report-error args ...)
    (exit 1)))

(define (print-unbound-variable-error port key args default-printer)
  ;; Print unbound variable errors more nicely, and in the right language.
  (match args
    ((proc message (variable) _ ...)
     ;; We can always omit PROC because when it's useful (i.e., different from
     ;; "module-lookup"), it gets displayed before.
     (format port (G_ "~a: unbound variable") variable))
    (_
     (default-printer))))

(set-exception-printer! 'unbound-variable print-unbound-variable-error)

(define (make-user-module modules)
  "Return a new user module with the additional MODULES loaded."
  ;; Module in which the machine description file is loaded.