Estoy viendo el mismo problema. En una pequeña excavación, creo que he identificado el problema. Sin embargo, no estoy seguro de a quién se debe informar esto.
El problema está en la función org-babel-execute: clojure. Esta función tiene el siguiente bit de código
(setq result
(nrepl-dict-get
(nrepl-sync-request:eval
expanded (cider-current-connection) (cider-current-session))
(if (or (member "output" result-params)
(member "pp" result-params))
"out"
"value")))
El problema está en la llamada a nrepl-sync-request: eval. La documentación indica para esta función
(nrepl-sync-request: eval INPUT CONNECTION y NS opcional)
Envíe la ENTRADA al servidor nREPL sincrónicamente. La solicitud se envía a través de CONNECTION. Si NS no es nulo, inclúyalo en la solicitud.
Tenga en cuenta el último argumento opcional NS. Se supone que este es un espacio de nombres clojure. Sin embargo, la función org-babel-execute: clojure está llamando a esta función con la salida de cider-current-session, que devuelve una ID única que representa la sesión actual. Como resultado, la llamada está devolviendo una estructura de datos con un error y sin salida (quizás se requiera algún manejo de errores). El resultado devuelto es
(dict status (namespace-not-found done error done state state) id 17 session 43e9fd6c-82ed-49fe-9624-0cfc6f56f8b1 changed-namespaces (dict) repl-type cljclj)
Tenga en cuenta el espacio de nombres no encontrado
O el argumento debería ser una llamada a (cider-current-ns) o tal vez debería omitirse, ya que no veo cómo puede pasar el espacio de nombres como parte de la evaluación del bloque.
EDITAR: aquí hay un parche simple que parece solucionar el problema. Generado contra el actual jefe de org git repo
---
lisp/ob-clojure.el | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/lisp/ob-clojure.el b/lisp/ob-clojure.el
index d407105..e542a29 100644
--- a/lisp/ob-clojure.el
+++ b/lisp/ob-clojure.el
@@ -44,6 +44,7 @@
(declare-function cider-current-connection "ext:cider-client" (&optional type))
(declare-function cider-current-session "ext:cider-client" ())
+(declare-function cider-current-ns "ext:cider-client" ())
(declare-function nrepl--merge "ext:nrepl-client" (dict1 dict2))
(declare-function nrepl-dict-get "ext:nrepl-client" (dict key))
(declare-function nrepl-dict-put "ext:nrepl-client" (dict key value))
@@ -118,7 +119,7 @@ using the :show-process parameter."
org-babel-clojure-sync-nrepl-timeout))
(nrepl-sync-request:eval expanded
(cider-current-connection)
- (cider-current-session))))
+ (cider-current-ns))))
(setq result
(concat
(nrepl-dict-get response
@@ -153,7 +154,7 @@ using the :show-process parameter."
;; Update the status of the nREPL output session.
(setq status (nrepl-dict-get response "status")))
(cider-current-connection)
- (cider-current-session))
+ (cider-current-ns))
;; Wait until the nREPL code finished to be processed.
(while (not (member "done" status))
--
2.7.4
También envió el parche a la lista emacs-orgmode
(cider-current-ns)
? Y si es así, ¿dónde puedo encontrar esa función?