inferior: Add 'read-repl-response'.
* guix/inferior.scm (read-repl-response): New procedure. (read-inferior-response): Use it.
This commit is contained in:
parent
92a4087bf4
commit
d0ffa321dd
|
@ -59,6 +59,7 @@
|
||||||
inferior-eval
|
inferior-eval
|
||||||
inferior-eval-with-store
|
inferior-eval-with-store
|
||||||
inferior-object?
|
inferior-object?
|
||||||
|
read-repl-response
|
||||||
|
|
||||||
inferior-packages
|
inferior-packages
|
||||||
inferior-available-packages
|
inferior-available-packages
|
||||||
|
@ -183,7 +184,8 @@ equivalent. Return #f if the inferior could not be launched."
|
||||||
|
|
||||||
(set-record-type-printer! <inferior-object> write-inferior-object)
|
(set-record-type-printer! <inferior-object> write-inferior-object)
|
||||||
|
|
||||||
(define (read-inferior-response inferior)
|
(define (read-repl-response port)
|
||||||
|
"Read a (guix repl) response from PORT and return it as a Scheme object."
|
||||||
(define sexp->object
|
(define sexp->object
|
||||||
(match-lambda
|
(match-lambda
|
||||||
(('value value)
|
(('value value)
|
||||||
|
@ -191,12 +193,15 @@ equivalent. Return #f if the inferior could not be launched."
|
||||||
(('non-self-quoting address string)
|
(('non-self-quoting address string)
|
||||||
(inferior-object address string))))
|
(inferior-object address string))))
|
||||||
|
|
||||||
(match (read (inferior-socket inferior))
|
(match (read port)
|
||||||
(('values objects ...)
|
(('values objects ...)
|
||||||
(apply values (map sexp->object objects)))
|
(apply values (map sexp->object objects)))
|
||||||
(('exception key objects ...)
|
(('exception key objects ...)
|
||||||
(apply throw key (map sexp->object objects)))))
|
(apply throw key (map sexp->object objects)))))
|
||||||
|
|
||||||
|
(define (read-inferior-response inferior)
|
||||||
|
(read-repl-response (inferior-socket inferior)))
|
||||||
|
|
||||||
(define (send-inferior-request exp inferior)
|
(define (send-inferior-request exp inferior)
|
||||||
(write exp (inferior-socket inferior))
|
(write exp (inferior-socket inferior))
|
||||||
(newline (inferior-socket inferior)))
|
(newline (inferior-socket inferior)))
|
||||||
|
|
Loading…
Reference in New Issue