emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] ob-clojure broken


From: Tim Cross
Subject: Re: [O] ob-clojure broken
Date: Sat, 4 Mar 2017 23:37:27 +1100

thanks. There is a later message to the list where I attached the patch.

tim


On 4 March 2017 at 23:04, address@hidden <address@hidden> wrote:


[stardiviner]           <Hack this world!>      GPG key ID: 47C32433
IRC(freeenode): stardiviner                     Twitter:  @numbchild
Key fingerprint = 9BAA 92BC CDDD B9EF 3B36  CB99 B8C4 B8E5 47C3 2433
Blog: http://stardiviner.github.io/

On Thu, Mar 2, 2017 at 7:01 AM, Tim Cross <address@hidden> wrote:
With current 9.0.5 org-plus-contrib package, ob-clojure is broken and trying to evaluate clojure source blocks just gives a code block produces no output message.

The problem is in the org-babel-execute:clojure function. This function has the following bit of code

(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")))

The problem is in the call to nrepl-sync-request:eval. The documentation states for this function

(nrepl-sync-request:eval INPUT CONNECTION &optional NS)

Send the INPUT to the nREPL server synchronously. The request is dispatched via CONNECTION. If NS is non-nil, include it in the request.
Note the last optional argument NS. This is supposed to be a clojure namespace. However, the org-babel-execute:clojure function is calling this function with the output from cider-current-session, which returns a unique ID representing the current session. As a result, the call is returning a data structure with an error and no output (perhaps some error handling is required). The returned result is

(dict status (namespace-not-found done error done state state) id 17 session 43e9fd6c-82ed-49fe-9624-0cfc6f56f8b1 changed-namespaces (dict) repl-type cljclj)

Note the namespace-not-found

Either the argument should be a call to (cider-current-ns) or perhaps it should just be left out as I don't see how you can pass the namespace as part of the block evaluation.


--
regards,

Tim

--
Tim Cross





--
regards,

Tim

--
Tim Cross


reply via email to

[Prev in Thread] Current Thread [Next in Thread]