From mboxrd@z Thu Jan 1 00:00:00 1970 From: stardiviner Subject: Re: ob-clojure with tangling current broken Date: Wed, 23 Jan 2019 14:38:23 +0800 Message-ID: <87bm47ubds.fsf@gmail.com> References: <8736plxh7j.fsf@gmail.com> Reply-To: numbchild@gmail.com Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([209.51.188.92]:55142) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gmC7Q-0007Qn-T5 for emacs-orgmode@gnu.org; Wed, 23 Jan 2019 01:34:38 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gmC7P-0000yY-Cf for emacs-orgmode@gnu.org; Wed, 23 Jan 2019 01:34:36 -0500 Received: from [61.175.244.13] (port=10376 helo=dark.localdomain) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gmC7P-0000w2-0D for emacs-orgmode@gnu.org; Wed, 23 Jan 2019 01:34:35 -0500 In-reply-to: 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" To: Frederick Giasson Cc: Org-mode Frederick Giasson writes: > Hi, > > That's why I added a patch recently. Now Nicolas already applied my > patch. You should already seen it now. > > Yeah I just received that email right after I sent mine. Didn't know it was in the pipeline, I just re-subscribed to the mailing list. > > > > > It turns out that the culprit is the following line: > > https://code.orgmode.org/bzg/org-mode/src/master/lisp/ob-clojure.el#L108 > > > > I am wondering why is there such code injection in > > "org-babel-expand-body:clojure". It looks like to be related to the Clojure code > > block execution, but it also appears to be called from the tangling function. > > Clearly those two different use cases needs to be properly handled at the level > > of "ob-clojure.el" > > > > Expanding clojure code is necessary to tangling, because when user have > noweb reference etc in source block, expanding here is necessary. > > Yes, that is right. What I was referring to I guess is to handle that case (tangling vs. code block execution within Emacs), which is what this patch is about, > thanks! > > > > I didn't follow all the changes to the "ob-clojure" mode in the last year or so, > > so please pardon my ignorance if the module is taking a different direction than > > I am used to. Is there a rational behind this behaviour or is there a new feature > > that I am not aware of which properly handle those two use cases? > > > > Which part you don't understand, I might can answer your question, > because I did most of those changes in last year. > > The only thing I meant here is that the last time I looked into this code, it was quite different, you guys appears to have worked a lot on it. > > Another thing I discovered is the =ob-clojure-literate=, but even after reading its [sparse] doc and its code, I am not sure what it concretely adds to =ob-clojure= > > Thanks for this work! Well, about this, you can read related things, here is the original repo: https://github.com/stardiviner/ob-clojure-literate. In the README, I describe my motivation. Before CIDER added "sesman" session manager, CIDER was not able to manage sessions easily. But ob-clojure need a session. So I created it, then I added some thing that I need for Clojure literate programming in Org Mode. About this extra library, here is what I think, keep it for a while, until no one or very rare use it, I will remove it from Org Mode contrib. Until now, no one except you asked me about what it is. BTW, I migrated some features into core/ob-clojure.el already, like session initialization. Specify session. Here is the list I collate right now. - [X] auto start REPL if necessary - [X] It's taken by CIDER sesman [Commit 2c5df17ed] - [X] use default session - [X] It's taken by CIDER sesman, now can easily switch session. - [ ] specify session in header argument :session, Org Babel has =[C-c C-v C-j]= by default. - [ ] provide interactive completion candidates of CIDER REPL connections - [X] initiate session =[C-c C-v z]= [Commit 4456dc880] - [X] CIDER use sesman to manage REPL session now. - [ ] support ob-core.el switch to corresponding session REPL buffer =[C-c C-v z]= - [X] dynamic clojure ns [Commit d7e12d1df] - [X] implemented with ~:ns~ header argument [Commit d7e12d1df] - [X] generate plot image in specific directory - [X] pass dir as variable into Clojure code - [X] org babel support graphics image file link as result [Commit b088389c6] - [X] I add this header argument value in commit already. [Commit 296b0de4e] If you want to read ob-clojure-literate.el source code, I suggest you read one commit by one. It will be much clear. You can search my name "stardiviner" and filter commits with "ob-clojure,ob-clojure-literate" in log. > > Take care, > > Fred Hope this will help you, Regards. -- [ stardiviner ] I try to make every word tell the meaning what I want to express. Blog: https://stardiviner.github.io/ IRC(freenode): stardiviner, Matrix: stardiviner GPG: F09F650D7D674819892591401B5DF1C95AE89AC3