diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-01-13 15:42:13 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-01-13 17:43:21 +0100 |
commit | 8c9ef2c3a220c856ef7ec10cdb970988c96f2713 (patch) | |
tree | 3dd261a23adc426f769e0eb2c2bd771f6d489e6a | |
parent | e5a19fed193e0bb7cff883ad63d9cadc75aebcc8 (diff) | |
download | gnu-guix-8c9ef2c3a220c856ef7ec10cdb970988c96f2713.tar gnu-guix-8c9ef2c3a220c856ef7ec10cdb970988c96f2713.tar.gz |
monad-repl: Close connection when leaving the monad REPL.
* guix/monad-repl.scm (store-monad-language): Add 'store' parameter and
use it. Remove call to 'open-connection'.
(enter-store-monad): Use 'with-store' and pass the store to
'store-monad-language.
-rw-r--r-- | guix/monad-repl.scm | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/guix/monad-repl.scm b/guix/monad-repl.scm index ebd9151065..aefabdeebb 100644 --- a/guix/monad-repl.scm +++ b/guix/monad-repl.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -60,11 +60,10 @@ "Return the derivation of the default " (package-derivation store (default-guile) system)) -(define (store-monad-language) - "Return a compiler language for the store monad." - (let* ((store (open-connection)) - (guile (or (%guile-for-build) - (default-guile-derivation store)))) +(define (store-monad-language store) + "Return a compiler language for the store monad using STORE." + (let ((guile (or (%guile-for-build) + (default-guile-derivation store)))) (monad-language %store-monad (cut run-with-store store <> #:guile-for-build guile) @@ -84,10 +83,11 @@ Run EXP through the store monad." (define-meta-command ((enter-store-monad guix) repl) "enter-store-monad Enter a REPL for values in the store monad." - (let ((new (make-repl (store-monad-language)))) - ;; Force interpretation so that our specially-crafted language evaluator - ;; is actually used. - (repl-option-set! new 'interp #t) - (run-repl new))) + (with-store store + (let ((new (make-repl (store-monad-language store)))) + ;; Force interpretation so that our specially-crafted language evaluator + ;; is actually used. + (repl-option-set! new 'interp #t) + (run-repl new)))) ;;; monad-repl.scm ends here |