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.
This commit is contained in:
parent
e5a19fed19
commit
8c9ef2c3a2
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; 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.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -60,11 +60,10 @@
|
||||||
"Return the derivation of the default "
|
"Return the derivation of the default "
|
||||||
(package-derivation store (default-guile) system))
|
(package-derivation store (default-guile) system))
|
||||||
|
|
||||||
(define (store-monad-language)
|
(define (store-monad-language store)
|
||||||
"Return a compiler language for the store monad."
|
"Return a compiler language for the store monad using STORE."
|
||||||
(let* ((store (open-connection))
|
(let ((guile (or (%guile-for-build)
|
||||||
(guile (or (%guile-for-build)
|
(default-guile-derivation store))))
|
||||||
(default-guile-derivation store))))
|
|
||||||
(monad-language %store-monad
|
(monad-language %store-monad
|
||||||
(cut run-with-store store <>
|
(cut run-with-store store <>
|
||||||
#:guile-for-build guile)
|
#:guile-for-build guile)
|
||||||
|
@ -84,10 +83,11 @@ Run EXP through the store monad."
|
||||||
(define-meta-command ((enter-store-monad guix) repl)
|
(define-meta-command ((enter-store-monad guix) repl)
|
||||||
"enter-store-monad
|
"enter-store-monad
|
||||||
Enter a REPL for values in the store monad."
|
Enter a REPL for values in the store monad."
|
||||||
(let ((new (make-repl (store-monad-language))))
|
(with-store store
|
||||||
;; Force interpretation so that our specially-crafted language evaluator
|
(let ((new (make-repl (store-monad-language store))))
|
||||||
;; is actually used.
|
;; Force interpretation so that our specially-crafted language evaluator
|
||||||
(repl-option-set! new 'interp #t)
|
;; is actually used.
|
||||||
(run-repl new)))
|
(repl-option-set! new 'interp #t)
|
||||||
|
(run-repl new))))
|
||||||
|
|
||||||
;;; monad-repl.scm ends here
|
;;; monad-repl.scm ends here
|
||||||
|
|
Loading…
Reference in New Issue