From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Schulte Subject: Re: Bug: ob-clojure.el depends on deprecated swank-clojure [7.7] Date: Fri, 13 Jan 2012 13:10:05 -0700 Message-ID: <87hazz749u.fsf@gmx.com> References: <87k44wf81n.fsf@gmx.com> <87pqen75a1.fsf@gmx.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([140.186.70.92]:45975) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RlnS2-0006ne-Of for emacs-orgmode@gnu.org; Fri, 13 Jan 2012 15:10:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RlnS0-0008UZ-U6 for emacs-orgmode@gnu.org; Fri, 13 Jan 2012 15:10:14 -0500 Received: from mailout-us.gmx.com ([74.208.5.67]:42312 helo=mailout-us.mail.com) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1RlnS0-0008US-MM for emacs-orgmode@gnu.org; Fri, 13 Jan 2012 15:10:12 -0500 In-Reply-To: (Andrew Cheng's message of "Fri, 13 Jan 2012 14:58:59 -0500") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Andrew Cheng Cc: emacs-orgmode@gnu.org OK, I've just pushed up this change, please do test it out locally on some more code blocks and let me know if you run into any more problems. Thanks, Andrew Cheng writes: > I think so. Here's *Messages* after (def ^:dynamic *state* {}) ... > > org-babel-execute:clojure > Evaluate this clojure code block (state) on your system? (y or n) > executing Clojure code block (state)... > ("" "#'user/*state*") > > On Fri, Jan 13, 2012 at 2:48 PM, Eric Schulte wrot= e: >> Alright, >> >> if you load ob-clojure.el and then evaluate the following to over-ride >> the existing definition of `org-babel-execute:clojure' does clojure code >> evaluation work? >> >> (defun org-babel-execute:clojure (body params) >> =C2=A0"Execute a block of Clojure code with Babel." >> =C2=A0(require 'slime) >> =C2=A0(with-temp-buffer >> =C2=A0 =C2=A0(insert (org-babel-expand-body:clojure body params)) >> =C2=A0 =C2=A0((lambda (result) >> =C2=A0 =C2=A0 =C2=A0 (let ((result-params (cdr (assoc :result-params par= ams)))) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 (if (or (member "scalar" result-params) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (member "verbati= m" result-params)) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 result >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (condition-case nil (org-babel-script= -escape result) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (error result))))) >> =C2=A0 =C2=A0 (slime-eval >> =C2=A0 =C2=A0 =C2=A0`(swank:eval-and-grab-output >> =C2=A0 =C2=A0 =C2=A0 =C2=A0,(buffer-substring-no-properties (point-min) = (point-max))) >> =C2=A0 =C2=A0 =C2=A0(cdr (assoc :package params)))))) >> >> Thanks, >> >> Andrew Cheng writes: >> >>> I passed the question along to Phil Hagelberg in that Clojure google >>> group thread. His reply: >>> >>> "Yes, clojure-test-mode uses both slime-eval and slime-eval-async; he >>> should pick one of these like so: >>> >>> (defun clojure-test-eval (string &optional handler) >>> =C2=A0(slime-eval-async `(swank:eval-and-grab-output ,string) >>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(o= r handler #'identity))) >>> >>> (defun clojure-test-eval-sync (string) >>> =C2=A0(slime-eval `(swank:eval-and-grab-output ,string))) >>> >>> Actually swank:interactive-eval-region and friends are not elisp >>> functions; they are Clojure functions." >>> >>> (... end of reply) In case it helps, Stuart Sierra says he got >>> org-babel and clojure working together. His dotfiles are at >>> https://github.com/stuartsierra/dotfiles >>> >>> On Fri, Jan 13, 2012 at 1:09 AM, Eric Schulte wr= ote: >>>> I personally no longer use Clojure (having graduated to Common Lisp :)) >>>> so I'm not abreast of the current Clojure environment. >>>> >>>> The only function ob-clojure uses from swank-clojure is >>>> `swank:interactive-eval-region' (used with `slime-eval') in the >>>> `org-babel-execute:clojure' function. =C2=A0Which function would now b= e used >>>> to evaluate a region of clojure code? =C2=A0Would `slime-eval-region' >>>> suffice? >>>> >>>> Andrew Cheng writes: >>>> >>>>> ---------------------------------------------------------------------= --- >>>>> >>>>> Phil Hagelberg has said that the swank-clojure elisp package has been >>>>> deprecated and should not be used [1]. My version of ob-clojure.el >>>>> requires swank-clojure. If I don't have the swank-clojure package, I >>>>> get "org-babel-execute:clojure:Cannot open load file: swank-clojure". >>>>> If I follow the instructions at [2] and get the swank-clojure package, >>>>> I get past this error. Is org using a deprecated package, and is this >>>>> a bug? Thanks in advance. >>>>> >>>>> [1] https://groups.google.com/forum/#!starred/clojure/HT8wixvD3GE >>>>> [2] http://lists.gnu.org/archive/html/emacs-orgmode/2011-12/msg00629.= html >> >> -- >> Eric Schulte >> http://cs.unm.edu/~eschulte/ --=20 Eric Schulte http://cs.unm.edu/~eschulte/