aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-01-13 15:42:13 +0100
committerLudovic Courtès <ludo@gnu.org>2016-01-13 17:43:21 +0100
commit8c9ef2c3a220c856ef7ec10cdb970988c96f2713 (patch)
tree3dd261a23adc426f769e0eb2c2bd771f6d489e6a
parente5a19fed193e0bb7cff883ad63d9cadc75aebcc8 (diff)
downloadguix-8c9ef2c3a220c856ef7ec10cdb970988c96f2713.tar.gz
guix-8c9ef2c3a220c856ef7ec10cdb970988c96f2713.zip
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.scm22
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