From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id yPCpJGb5p15nQgAA0tVLHw (envelope-from ) for ; Tue, 28 Apr 2020 09:37:42 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id gGkqHm75p14pGgAA1q6Kng (envelope-from ) for ; Tue, 28 Apr 2020 09:37:50 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 6AABC9412E7 for ; Tue, 28 Apr 2020 09:37:49 +0000 (UTC) Received: from localhost ([::1]:49774 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTMgW-0007hz-7p for larch@yhetil.org; Tue, 28 Apr 2020 05:37:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34472) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTMay-000174-6h for emacs-orgmode@gnu.org; Tue, 28 Apr 2020 05:35:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jTMZ7-0002kZ-QY for emacs-orgmode@gnu.org; Tue, 28 Apr 2020 05:32:03 -0400 Received: from [183.249.128.92] (port=9358 helo=dark.localdomain) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTMZ6-00027k-9c for emacs-orgmode@gnu.org; Tue, 28 Apr 2020 05:30:09 -0400 Received: by dark.localdomain (Postfix, from userid 1000) id 2BE9A241722; Tue, 28 Apr 2020 17:29:59 +0800 (HKT) References: <20180422205003.87836-1-roberthambrock@gmail.com> <20180422205003.87836-3-roberthambrock@gmail.com> <87v9ocuesg.fsf@gmail.com> <87imkb7mwj.fsf@gnu.org> <87y2t6fqwj.fsf@gmail.com> <87pnei8oe0.fsf@bzg.fr> <87k14prbb5.fsf@gmail.com> <87eeuxqyeq.fsf@bzg.fr> <87eeuxqjxq.fsf@gmail.com> <87v9o8zyzs.fsf@gnu.org> <875zg8el5a.fsf@gmail.com> <878sl2ruk7.fsf@bzg.fr> User-agent: mu4e 1.4; emacs 28.0.50 From: stardiviner To: Bastien Subject: [BUG] ob-clojure.el new backend 'inf-clojure not compatible with latest version inf-clojure In-reply-to: <878sl2ruk7.fsf@bzg.fr> Date: Tue, 28 Apr 2020 17:29:58 +0800 Message-ID: <87sggoez55.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Received-SPF: softfail client-ip=183.249.128.92; envelope-from=numbchild@gmail.com; helo=dark.localdomain X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/28 05:30:00 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] X-Received-From: 183.249.128.92 X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: numbchild@gmail.com Cc: Tim Cross , emacs-orgmode@gnu.org Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Scanner: scn0 X-Spam-Score: 3.09 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Scan-Result: default: False [3.09 / 13.00]; HAS_REPLYTO(0.00)[numbchild@gmail.com]; GENERIC_REPUTATION(0.00)[-0.55572129718846]; MX_INVALID(1.00)[cached]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:209.51.188.0/24:c]; FREEMAIL_FROM(0.00)[gmail.com]; DWL_DNSWL_FAIL(0.00)[209.51.188.17:server fail]; REPLYTO_ADDR_EQ_FROM(0.00)[]; R_MISSING_CHARSET(2.50)[]; IP_REPUTATION_HAM(0.00)[asn: 22989(0.18), country: US(-0.00), ip: 209.51.188.17(-0.56)]; MAILLIST(-0.20)[mailman]; FORGED_RECIPIENTS_MAILLIST(0.00)[]; RCVD_TLS_LAST(0.00)[]; R_DKIM_NA(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; TAGGED_FROM(0.00)[larch=yhetil.org]; ASN(0.00)[asn:22989, ipnet:209.51.188.0/24, country:US]; ARC_NA(0.00)[]; RCVD_COUNT_FIVE(0.00)[5]; FROM_NEQ_ENVFROM(0.00)[numbchild@gmail.com,emacs-orgmode-bounces@gnu.org]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; URIBL_BLOCKED(0.00)[stardiviner.github.io:url,gnu.org:email]; MIME_GOOD(-0.10)[text/plain]; FREEMAIL_REPLYTO(0.00)[gmail.com]; HAS_LIST_UNSUB(-0.01)[]; DNSWL_BLOCKED(0.00)[209.51.188.17:from]; MIME_TRACE(0.00)[0:+]; FREEMAIL_CC(0.00)[gmail.com,gnu.org]; FORGED_SENDER_MAILLIST(0.00)[]; DMARC_POLICY_SOFTFAIL(0.10)[gmail.com : SPF not aligned (relaxed), No valid DKIM,none] X-TUID: tRhiF9Mb0b8+ =2D----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Bastien writes: > Hi Tim, > > thanks for your email. > > Tim Cross writes: > >> I wonder if it would make sense to use shadow-cljs rather than cider as >> a back end for evaluating clojurescript? > > I am inclined to question the usefulness of evaluating ClojureScript > code *at all*. > >> More generally, I wonder if there would be any benefit in considering a >> Clojure CLI Tools back end integration and bypassing CIDER altogether? > > Yes, I agree this would be better. > > I implemented (in master now) the support of inf-clojure.el to > evaluate Clojure blocks. I try to use 'inf-clojure babel eval backend. But I got error: #+begin_example Debugger entered--Lisp error: (void-function inf-clojure-cmd) (inf-clojure-cmd (inf-clojure-project-type)) (let* ((alias (cdr (assq :alias params))) (cmd0 (inf-clojure-cmd (inf-clo= jure-project-type))) (cmd (if alias (replace-regexp-in-string "clojure" (fo= rmat "clojure -A%s" alias) cmd0) cmd0))) (setq comint-prompt-regexp inf-clo= jure-comint-prompt-regexp) (funcall-interactively #'inf-clojure cmd) (goto-= char (point-max))) (progn (let* ((alias (cdr (assq :alias params))) (cmd0 (inf-clojure-cmd (= inf-clojure-project-type))) (cmd (if alias (replace-regexp-in-string "cloju= re" (format "clojure -A%s" alias) cmd0) cmd0))) (setq comint-prompt-regexp = inf-clojure-comint-prompt-regexp) (funcall-interactively #'inf-clojure cmd)= (goto-char (point-max)))) (unwind-protect (progn (let* ((alias (cdr (assq :alias params))) (cmd0 (i= nf-clojure-cmd (inf-clojure-project-type))) (cmd (if alias (replace-regexp-= in-string "clojure" (format "clojure -A%s" alias) cmd0) cmd0))) (setq comin= t-prompt-regexp inf-clojure-comint-prompt-regexp) (funcall-interactively #'= inf-clojure cmd) (goto-char (point-max)))) (set-window-configuration wconfi= g)) (let ((wconfig (current-window-configuration))) (unwind-protect (progn (l= et* ((alias (cdr (assq :alias params))) (cmd0 (inf-clojure-cmd (inf-clojure= -project-type))) (cmd (if alias (replace-regexp-in-string "clojure" ... cmd= 0) cmd0))) (setq comint-prompt-regexp inf-clojure-comint-prompt-regexp) (fu= ncall-interactively #'inf-clojure cmd) (goto-char (point-max)))) (set-windo= w-configuration wconfig))) (if (and inf-clojure-buffer (buffer-live-p (get-buffer inf-clojure-buffer= ))) nil (let ((wconfig (current-window-configuration))) (unwind-protect (pr= ogn (let* ((alias (cdr ...)) (cmd0 (inf-clojure-cmd ...)) (cmd (if alias ..= . cmd0))) (setq comint-prompt-regexp inf-clojure-comint-prompt-regexp) (fun= call-interactively #'inf-clojure cmd) (goto-char (point-max)))) (set-window= -configuration wconfig))) (sit-for 1)) ob-clojure-eval-with-inf-clojure("(print \"hello, world\")" ((:colname-na= mes) (:rowname-names) (:result-params "replace") (:result-type . value) (:r= esults . "replace") (:exports . "") (:session . "none") (:hlines . "no") (:= tangle . "no") (:cache . "yes") (:mkdirp . "yes") (:show-process . "no") (:= noweb . "yes") (:eval . "yes"))) (cond ((eq org-babel-clojure-backend 'inf-clojure) (ob-clojure-eval-with-= inf-clojure expanded params)) ((eq org-babel-clojure-backend 'cider) (ob-cl= ojure-eval-with-cider expanded params)) ((eq org-babel-clojure-backend 'sli= me) (ob-clojure-eval-with-slime expanded params))) (setq result (cond ((eq org-babel-clojure-backend 'inf-clojure) (ob-cloju= re-eval-with-inf-clojure expanded params)) ((eq org-babel-clojure-backend '= cider) (ob-clojure-eval-with-cider expanded params)) ((eq org-babel-clojure= -backend 'slime) (ob-clojure-eval-with-slime expanded params)))) (let* ((expanded (org-babel-expand-body:clojure body params)) (result-par= ams (cdr (assq :result-params params))) result) (setq result (cond ((eq org= -babel-clojure-backend 'inf-clojure) (ob-clojure-eval-with-inf-clojure expa= nded params)) ((eq org-babel-clojure-backend 'cider) (ob-clojure-eval-with-= cider expanded params)) ((eq org-babel-clojure-backend 'slime) (ob-clojure-= eval-with-slime expanded params)))) (let ((--params result-params)) (if (me= mber "none" --params) nil (if (or (member "scalar" --params) (member "verba= tim" --params) (member "html" --params) (member "code" --params) (member "p= p" --params) (member "file" --params) (and (or (member "output" --params) (= member "raw" --params) (member "org" --params) (member "drawer" --params)) = (not (member "table" --params)))) result (condition-case nil (org-babel-scr= ipt-escape result) (error result)))))) org-babel-execute:clojure("(print \"hello, world\")" ((:colname-names) (:= rowname-names) (:result-params "replace") (:result-type . value) (:results = . "replace") (:exports . "") (:session . "none") (:hlines . "no") (:tangle = . "no") (:cache . "yes") (:mkdirp . "yes") (:show-process . "no") (:noweb .= "yes") (:eval . "yes"))) funcall(org-babel-execute:clojure "(print \"hello, world\")" ((:colname-n= ames) (:rowname-names) (:result-params "replace") (:result-type . value) (:= results . "replace") (:exports . "") (:session . "none") (:hlines . "no") (= :tangle . "no") (:cache . "yes") (:mkdirp . "yes") (:show-process . "no") (= :noweb . "yes") (:eval . "yes"))) (let ((r (funcall cmd body params))) (if (and (eq (cdr (assq :result-type= params)) 'value) (or (member "vector" result-params) (member "table" resul= t-params)) (not (listp r))) (list (list r)) r)) (setq result (let ((r (funcall cmd body params))) (if (and (eq (cdr (assq= :result-type params)) 'value) (or (member "vector" result-params) (member = "table" result-params)) (not (listp r))) (list (list r)) r))) (if (member "none" result-params) (progn (funcall cmd body params) (messa= ge "result silenced")) (setq result (let ((r (funcall cmd body params))) (i= f (and (eq (cdr (assq :result-type params)) 'value) (or (member "vector" re= sult-params) (member "table" result-params)) (not (listp r))) (list (list r= )) r))) (let ((file (and (member "file" result-params) (cdr (assq :file par= ams))))) (if file (progn (if (and result (not (or ... ...))) (progn (let (.= .. ...) (unwind-protect ... ...)))) (setq result file))) (let ((post (cdr (= assq :post params)))) (if post (progn (let ((*this* ...)) (setq result (org= -babel-ref-resolve post)) (if file (progn ...)))))) (org-babel-insert-resul= t result result-params info new-hash lang))) (let* ((lang (nth 0 info)) (result-params (cdr (assq :result-params param= s))) (body (let ((coderef (nth 6 info)) (expand (if (org-babel-noweb-p para= ms :eval) (org-babel-expand-noweb-references info) (nth 1 info)))) (if (not= coderef) expand (replace-regexp-in-string (org-src-coderef-regexp coderef)= "" expand nil nil 1)))) (dir (cdr (assq :dir params))) (mkdirp (cdr (assq = :mkdirp params))) (default-directory (cond ((not dir) default-directory) ((= member mkdirp '("no" "nil" nil)) (file-name-as-directory (expand-file-name = dir))) (t (let ((d ...)) (make-directory d 'parents) d)))) (cmd (intern (co= ncat "org-babel-execute:" lang))) result) (if (fboundp cmd) nil (error "No = org-babel-execute function for %s!" lang)) (message "executing %s code bloc= k%s..." (capitalize lang) (let ((name (nth 4 info))) (if name (format " (%s= )" name) ""))) (if (member "none" result-params) (progn (funcall cmd body p= arams) (message "result silenced")) (setq result (let ((r (funcall cmd body= params))) (if (and (eq (cdr ...) 'value) (or (member "vector" result-param= s) (member "table" result-params)) (not (listp r))) (list (list r)) r))) (l= et ((file (and (member "file" result-params) (cdr (assq :file params))))) (= if file (progn (if (and result (not ...)) (progn (let ... ...))) (setq resu= lt file))) (let ((post (cdr (assq :post params)))) (if post (progn (let (..= .) (setq result ...) (if file ...))))) (org-babel-insert-result result resu= lt-params info new-hash lang))) (run-hooks 'org-babel-after-execute-hook) r= esult) (cond (current-cache (save-excursion (goto-char (org-babel-where-is-src-b= lock-result nil info)) (forward-line) (skip-chars-forward " \11") (let ((re= sult (org-babel-read-result))) (message (replace-regexp-in-string "%" "%%" = (format "%S" result))) result))) ((org-babel-confirm-evaluate info) (let* (= (lang (nth 0 info)) (result-params (cdr (assq :result-params params))) (bod= y (let ((coderef ...) (expand ...)) (if (not coderef) expand (replace-regex= p-in-string ... "" expand nil nil 1)))) (dir (cdr (assq :dir params))) (mkd= irp (cdr (assq :mkdirp params))) (default-directory (cond ((not dir) defaul= t-directory) ((member mkdirp ...) (file-name-as-directory ...)) (t (let ...= ... d)))) (cmd (intern (concat "org-babel-execute:" lang))) result) (if (f= boundp cmd) nil (error "No org-babel-execute function for %s!" lang)) (mess= age "executing %s code block%s..." (capitalize lang) (let ((name (nth 4 inf= o))) (if name (format " (%s)" name) ""))) (if (member "none" result-params)= (progn (funcall cmd body params) (message "result silenced")) (setq result= (let ((r ...)) (if (and ... ... ...) (list ...) r))) (let ((file (and ... = ...))) (if file (progn (if ... ...) (setq result file))) (let ((post ...)) = (if post (progn ...))) (org-babel-insert-result result result-params info n= ew-hash lang))) (run-hooks 'org-babel-after-execute-hook) result))) (let* ((params (nth 2 info)) (cache (let ((c (cdr (assq :cache params))))= (and (not arg) c (string=3D "yes" c)))) (new-hash (and cache (org-babel-sh= a1-hash info :eval))) (old-hash (and cache (org-babel-current-result-hash))= ) (current-cache (and new-hash (equal new-hash old-hash)))) (cond (current-= cache (save-excursion (goto-char (org-babel-where-is-src-block-result nil i= nfo)) (forward-line) (skip-chars-forward " \11") (let ((result (org-babel-r= ead-result))) (message (replace-regexp-in-string "%" "%%" (format "%S" resu= lt))) result))) ((org-babel-confirm-evaluate info) (let* ((lang (nth 0 info= )) (result-params (cdr (assq :result-params params))) (body (let (... ...) = (if ... expand ...))) (dir (cdr (assq :dir params))) (mkdirp (cdr (assq :mk= dirp params))) (default-directory (cond (... default-directory) (... ...) (= t ...))) (cmd (intern (concat "org-babel-execute:" lang))) result) (if (fbo= undp cmd) nil (error "No org-babel-execute function for %s!" lang)) (messag= e "executing %s code block%s..." (capitalize lang) (let ((name ...)) (if na= me (format " (%s)" name) ""))) (if (member "none" result-params) (progn (fu= ncall cmd body params) (message "result silenced")) (setq result (let (...)= (if ... ... r))) (let ((file ...)) (if file (progn ... ...)) (let (...) (i= f post ...)) (org-babel-insert-result result result-params info new-hash la= ng))) (run-hooks 'org-babel-after-execute-hook) result)))) (progn (let* ((c (nthcdr 2 info))) (setcar c (org-babel-process-params (c= ar c)))) (let* ((params (nth 2 info)) (cache (let ((c (cdr ...))) (and (not= arg) c (string=3D "yes" c)))) (new-hash (and cache (org-babel-sha1-hash in= fo :eval))) (old-hash (and cache (org-babel-current-result-hash))) (current= -cache (and new-hash (equal new-hash old-hash)))) (cond (current-cache (sav= e-excursion (goto-char (org-babel-where-is-src-block-result nil info)) (for= ward-line) (skip-chars-forward " \11") (let ((result ...)) (message (replac= e-regexp-in-string "%" "%%" ...)) result))) ((org-babel-confirm-evaluate in= fo) (let* ((lang (nth 0 info)) (result-params (cdr ...)) (body (let ... ...= )) (dir (cdr ...)) (mkdirp (cdr ...)) (default-directory (cond ... ... ...)= ) (cmd (intern ...)) result) (if (fboundp cmd) nil (error "No org-babel-exe= cute function for %s!" lang)) (message "executing %s code block%s..." (capi= talize lang) (let (...) (if name ... ""))) (if (member "none" result-params= ) (progn (funcall cmd body params) (message "result silenced")) (setq resul= t (let ... ...)) (let (...) (if file ...) (let ... ...) (org-babel-insert-r= esult result result-params info new-hash lang))) (run-hooks 'org-babel-afte= r-execute-hook) result))))) (if (org-babel-check-evaluate info) (progn (let* ((c (nthcdr 2 info))) (s= etcar c (org-babel-process-params (car c)))) (let* ((params (nth 2 info)) (= cache (let ((c ...)) (and (not arg) c (string=3D "yes" c)))) (new-hash (and= cache (org-babel-sha1-hash info :eval))) (old-hash (and cache (org-babel-c= urrent-result-hash))) (current-cache (and new-hash (equal new-hash old-hash= )))) (cond (current-cache (save-excursion (goto-char (org-babel-where-is-sr= c-block-result nil info)) (forward-line) (skip-chars-forward " \11") (let (= ...) (message ...) result))) ((org-babel-confirm-evaluate info) (let* ((lan= g ...) (result-params ...) (body ...) (dir ...) (mkdirp ...) (default-direc= tory ...) (cmd ...) result) (if (fboundp cmd) nil (error "No org-babel-exec= ute function for %s!" lang)) (message "executing %s code block%s..." (capit= alize lang) (let ... ...)) (if (member "none" result-params) (progn ... ...= ) (setq result ...) (let ... ... ... ...)) (run-hooks 'org-babel-after-exec= ute-hook) result)))))) (let* ((org-babel-current-src-block-location (or org-babel-current-src-bl= ock-location (nth 5 info) (org-babel-where-is-src-block-head))) (info (if i= nfo (copy-tree info) (org-babel-get-src-block-info)))) (let* ((c (nthcdr 2 = info))) (setcar c (org-babel-merge-params (car c) params))) (if (org-babel-= check-evaluate info) (progn (let* ((c (nthcdr 2 info))) (setcar c (org-babe= l-process-params (car c)))) (let* ((params (nth 2 info)) (cache (let (...) = (and ... c ...))) (new-hash (and cache (org-babel-sha1-hash info :eval))) (= old-hash (and cache (org-babel-current-result-hash))) (current-cache (and n= ew-hash (equal new-hash old-hash)))) (cond (current-cache (save-excursion (= goto-char ...) (forward-line) (skip-chars-forward " \11") (let ... ... resu= lt))) ((org-babel-confirm-evaluate info) (let* (... ... ... ... ... ... ...= result) (if ... nil ...) (message "executing %s code block%s..." ... ...) = (if ... ... ... ...) (run-hooks ...) result))))))) (closure (*this* org-babel-confirm-evaluate-answer-no org-babel-tangle-un= comment-comments org-src-preserve-indentation org-src-lang-modes org-edit-s= rc-content-indentation org-babel-library-of-babel t) (&optional arg info pa= rams) "Execute the current source code block.\nInsert the ..." (interactive= ) (let* ((org-babel-current-src-block-location (or org-babel-current-src-bl= ock-location (nth 5 info) (org-babel-where-is-src-block-head))) (info (if i= nfo (copy-tree info) (org-babel-get-src-block-info)))) (let* ((c (nthcdr 2 = info))) (setcar c (org-babel-merge-params (car c) params))) (if (org-babel-= check-evaluate info) (progn (let* ((c ...)) (setcar c (org-babel-process-pa= rams ...))) (let* ((params ...) (cache ...) (new-hash ...) (old-hash ...) (= current-cache ...)) (cond (current-cache ...) (... ...)))))))(nil ("clojure= " "(print \"hello, world\")" ((:colname-names) (:rowname-names) (:result-pa= rams "replace") (:result-type . value) (:results . "replace") (:exports . "= ") (:eval . "yes") (:noweb . "yes") (:show-process . "no") (:mkdirp . "yes"= ) (:cache . "yes") (:tangle . "no") (:hlines . "no") (:session . "none")) "= " nil 552720 "(ref:%s)") nil) apply((closure (*this* org-babel-confirm-evaluate-answer-no org-babel-tan= gle-uncomment-comments org-src-preserve-indentation org-src-lang-modes org-= edit-src-content-indentation org-babel-library-of-babel t) (&optional arg i= nfo params) "Execute the current source code block.\nInsert the ..." (inter= active) (let* ((org-babel-current-src-block-location (or org-babel-current-= src-block-location (nth 5 info) (org-babel-where-is-src-block-head))) (info= (if info (copy-tree info) (org-babel-get-src-block-info)))) (let* ((c (nth= cdr 2 info))) (setcar c (org-babel-merge-params (car c) params))) (if (org-= babel-check-evaluate info) (progn (let* ((c ...)) (setcar c (org-babel-proc= ess-params ...))) (let* ((params ...) (cache ...) (new-hash ...) (old-hash = ...) (current-cache ...)) (cond (current-cache ...) (... ...))))))) (nil ("= clojure" "(print \"hello, world\")" ((:colname-names) (:rowname-names) (:re= sult-params "replace") (:result-type . value) (:results . "replace") (:expo= rts . "") (:eval . "yes") (:noweb . "yes") (:show-process . "no") (:mkdirp = . "yes") (:cache . "yes") (:tangle . "no") (:hlines . "no") (:session . "no= ne")) "" nil 552720 "(ref:%s)") nil)) #f(advice-wrapper :after (closure (*this* org-babel-confirm-evaluate-answ= er-no org-babel-tangle-uncomment-comments org-src-preserve-indentation org-= src-lang-modes org-edit-src-content-indentation org-babel-library-of-babel = t) (&optional arg info params) "Execute the current source code block.\nIns= ert the results of execution into the buffer. Source code\nexecution and t= he collection and formatting of results can be\ncontrolled through a variet= y of header arguments.\n\nWith prefix argument ARG, force re-execution even= if an existing\nresult cached in the buffer would otherwise have been retu= rned.\n\nOptionally supply a value for INFO in the form returned by\n`org-b= abel-get-src-block-info'.\n\nOptionally supply a value for PARAMS which wil= l be merged with\nthe header arguments specified at the front of the source= code\nblock." (interactive) (let* ((org-babel-current-src-block-location (= or org-babel-current-src-block-location (nth 5 info) (org-babel-where-is-sr= c-block-head))) (info (if info (copy-tree info) (org-babel-get-src-block-in= fo)))) (let* ((c (nthcdr 2 info))) (setcar c (org-babel-merge-params (car c= ) params))) (if (org-babel-check-evaluate info) (progn (let* ((c (nthcdr 2 = info))) (setcar c (org-babel-process-params (car c)))) (let* ((params (nth = 2 info)) (cache (let ((c (cdr (assq :cache params)))) (and (not arg) c (str= ing=3D "yes" c)))) (new-hash (and cache (org-babel-sha1-hash info :eval))) = (old-hash (and cache (org-babel-current-result-hash))) (current-cache (and = new-hash (equal new-hash old-hash)))) (cond (current-cache (save-excursion = (goto-char (org-babel-where-is-src-block-result nil info)) (forward-line) (= skip-chars-forward " \11") (let ((result (org-babel-read-result))) (message= (replace-regexp-in-string "%" "%%" (format "%S" result))) result))) ((org-= babel-confirm-evaluate info) (let* ((lang (nth 0 info)) (result-params (cdr= (assq :result-params params))) (body (let ((coderef (nth 6 info)) (expand = (if (org-babel-noweb-p params :eval) (org-babel-expand-noweb-references inf= o) (nth 1 info)))) (if (not coderef) expand (replace-regexp-in-string (org-= src-coderef-regexp coderef) "" expand nil nil 1)))) (dir (cdr (assq :dir pa= rams))) (mkdirp (cdr (assq :mkdirp params))) (default-directory (cond ((not= dir) default-directory) ((member mkdirp '("no" "nil" nil)) (file-name-as-d= irectory (expand-file-name dir))) (t (let ((d (file-name-as-directory (expa= nd-file-name dir)))) (make-directory d 'parents) d)))) (cmd (intern (concat= "org-babel-execute:" lang))) result) (if (fboundp cmd) nil (error "No org-= babel-execute function for %s!" lang)) (message "executing %s code block%s.= .." (capitalize lang) (let ((name (nth 4 info))) (if name (format " (%s)" n= ame) ""))) (if (member "none" result-params) (progn (funcall cmd body param= s) (message "result silenced")) (setq result (let ((r (funcall cmd body par= ams))) (if (and (eq (cdr (assq :result-type params)) 'value) (or (member "v= ector" result-params) (member "table" result-params)) (not (listp r))) (lis= t (list r)) r))) (let ((file (and (member "file" result-params) (cdr (assq = :file params))))) (if file (progn (if (and result (not (or (member "link" r= esult-params) (member "graphics" result-params)))) (progn (let ((temp-file = file) (temp-buffer (generate-new-buffer " *temp file*"))) (unwind-protect (= prog1 (save-current-buffer (set-buffer temp-buffer) (insert (org-babel-form= at-result result (cdr (assq :sep params))))) (save-current-buffer (set-buff= er temp-buffer) (write-region nil nil temp-file nil 0))) (and (buffer-name = temp-buffer) (kill-buffer temp-buffer)))))) (setq result file))) (let ((pos= t (cdr (assq :post params)))) (if post (progn (let ((*this* (if (not file) = result (org-babel-result-to-file file (let ((desc (assq :file-desc params))= ) (and desc (or (cdr desc) result))))))) (setq result (org-babel-ref-resolv= e post)) (if file (progn (setq result-params (remove "file" result-params))= )))))) (org-babel-insert-result result result-params info new-hash lang))) = (run-hooks 'org-babel-after-execute-hook) result)))))))) my/org-redisplay-i= nline-images)(nil ("clojure" "(print \"hello, world\")" ((:colname-names) (= :rowname-names) (:result-params "replace") (:result-type . value) (:results= . "replace") (:exports . "") (:eval . "yes") (:noweb . "yes") (:show-proce= ss . "no") (:mkdirp . "yes") (:cache . "yes") (:tangle . "no") (:hlines . "= no") (:session . "none")) "" nil 552720 "(ref:%s)") nil) ob-async-org-babel-execute-src-block(#f(advice-wrapper :after (closure (*= this* org-babel-confirm-evaluate-answer-no org-babel-tangle-uncomment-comme= nts org-src-preserve-indentation org-src-lang-modes org-edit-src-content-in= dentation org-babel-library-of-babel t) (&optional arg info params) "Execut= e the current source code block.\nInsert the ..." (interactive) (let* ((org= -babel-current-src-block-location (or org-babel-current-src-block-location = (nth 5 info) (org-babel-where-is-src-block-head))) (info (if info (copy-tre= e info) (org-babel-get-src-block-info)))) (let* ((c (nthcdr 2 info))) (setc= ar c (org-babel-merge-params (car c) params))) (if (org-babel-check-evaluat= e info) (progn (let* (...) (setcar c ...)) (let* (... ... ... ... ...) (con= d ... ...)))))) my/org-redisplay-inline-images) nil ("clojure" "(print \"he= llo, world\")" ((:colname-names) (:rowname-names) (:result-params "replace"= ) (:result-type . value) (:results . "replace") (:exports . "") (:eval . "y= es") (:noweb . "yes") (:show-process . "no") (:mkdirp . "yes") (:cache . "y= es") (:tangle . "no") (:hlines . "no") (:session . "none")) "" nil 552720 "= (ref:%s)")) apply(ob-async-org-babel-execute-src-block #f(advice-wrapper :after (clos= ure (*this* org-babel-confirm-evaluate-answer-no org-babel-tangle-uncomment= -comments org-src-preserve-indentation org-src-lang-modes org-edit-src-cont= ent-indentation org-babel-library-of-babel t) (&optional arg info params) "= Execute the current source code block.\nInsert the ..." (interactive) (let*= ((org-babel-current-src-block-location (or org-babel-current-src-block-loc= ation (nth 5 info) (org-babel-where-is-src-block-head))) (info (if info (co= py-tree info) (org-babel-get-src-block-info)))) (let* ((c (nthcdr 2 info)))= (setcar c (org-babel-merge-params (car c) params))) (if (org-babel-check-e= valuate info) (progn (let* (...) (setcar c ...)) (let* (... ... ... ... ...= ) (cond ... ...)))))) my/org-redisplay-inline-images) (nil ("clojure" "(pri= nt \"hello, world\")" ((:colname-names) (:rowname-names) (:result-params "r= eplace") (:result-type . value) (:results . "replace") (:exports . "") (:ev= al . "yes") (:noweb . "yes") (:show-process . "no") (:mkdirp . "yes") (:cac= he . "yes") (:tangle . "no") (:hlines . "no") (:session . "none")) "" nil 5= 52720 "(ref:%s)"))) org-babel-execute-src-block(nil ("clojure" "(print \"hello, world\")" ((:= colname-names) (:rowname-names) (:result-params "replace") (:result-type . = value) (:results . "replace") (:exports . "") (:eval . "yes") (:noweb . "ye= s") (:show-process . "no") (:mkdirp . "yes") (:cache . "yes") (:tangle . "n= o") (:hlines . "no") (:session . "none")) "" nil 552720 "(ref:%s)")) (if org-babel-no-eval-on-ctrl-c-ctrl-c nil (org-babel-eval-wipe-error-buf= fer) (org-babel-execute-src-block current-prefix-arg (org-babel-get-src-blo= ck-info nil context))) (cond ((memq type '(src-block inline-src-block)) (if org-babel-no-eval-on= -ctrl-c-ctrl-c nil (org-babel-eval-wipe-error-buffer) (org-babel-execute-sr= c-block current-prefix-arg (org-babel-get-src-block-info nil context)))) ((= org-match-line "[ \11]*$") (or (run-hook-with-args-until-success 'org-ctrl-= c-ctrl-c-final-hook) (user-error (substitute-command-keys "`\\[org-ctrl-c-c= trl-c]' can do nothing useful...")))) ((memq type '(inline-babel-call babel= -call)) (let ((info (org-babel-lob-get-info context))) (if info (progn (org= -babel-execute-src-block nil info))))) ((eq type 'clock) (org-clock-update-= time-maybe)) ((eq type 'dynamic-block) (save-excursion (goto-char (org-elem= ent-property :post-affiliated context)) (org-update-dblock))) ((eq type 'fo= otnote-definition) (goto-char (org-element-property :post-affiliated contex= t)) (call-interactively 'org-footnote-action)) ((eq type 'footnote-referenc= e) (call-interactively #'org-footnote-action)) ((memq type '(inlinetask hea= dline)) (save-excursion (goto-char (org-element-property :begin context)) (= call-interactively #'org-set-tags-command))) ((eq type 'item) (if (or radio= -list-p (and (boundp org-list-checkbox-radio-mode) org-list-checkbox-radio-= mode)) (org-toggle-radio-button arg) (let* ((box (org-element-property :che= ckbox context)) (struct (org-element-property :structure context)) (old-str= uct (copy-tree struct)) (parents (org-list-parents-alist struct)) (prevs (o= rg-list-prevs-alist struct)) (orderedp (org-not-nil ...))) (org-list-set-ch= eckbox (org-element-property :begin context) struct (cond (... "[-]") (... = "[ ]") (... nil) (... "[ ]") (t "[X]"))) (org-list-struct-fix-ind struct pa= rents 2) (org-list-struct-fix-item-end struct) (org-list-struct-fix-bul str= uct prevs) (org-list-struct-fix-ind struct parents) (let ((block-item ...))= (if (and box ...) (if ... ... ...) (org-list-struct-apply-struct struct ol= d-struct) (org-update-checkbox-count-maybe)) (if block-item (progn ...)))))= ) ((eq type 'plain-list) (if (or radio-list-p (and (boundp org-list-checkbo= x-radio-mode) org-list-checkbox-radio-mode)) (org-toggle-radio-button arg) = (let* ((begin (org-element-property :contents-begin context)) (struct (org-= element-property :structure context)) (old-struct (copy-tree struct)) (firs= t-box (save-excursion ... ... ...)) (new-box (cond ... ... ... ...))) (cond= (arg (let ... ...)) ((and first-box ...) (org-list-set-checkbox begin stru= ct new-box))) (if (equal (org-list-write-struct struct ... old-struct) old-= struct) (progn (message "Cannot update this checkbox"))) (org-update-checkb= ox-count-maybe)))) ((eq type 'keyword) (let ((org-inhibit-startup-visibilit= y-stuff t) (org-startup-align-all-tables nil)) (if (boundp 'org-table-coord= inate-overlays) (progn (mapc #'delete-overlay org-table-coordinate-overlays= ) (setq org-table-coordinate-overlays nil))) (let* ((--invisible-types '...= ) (--markers\? 'use-markers) (--data (mapcar ... ...))) (unwind-protect (pr= ogn (org-mode-restart)) (save-excursion (save-restriction ... ... ...))))) = (message "Local setup has been refreshed")) ((memq type '(node-property pro= perty-drawer)) (call-interactively #'org-property-action)) ((eq type 'radio= -target) (call-interactively #'org-update-radio-target-regexp)) ((eq type '= statistics-cookie) (call-interactively #'org-update-statistics-cookies)) ((= memq type '(table-row table-cell table)) (if (eq (org-element-property :typ= e context) 'table\.el) (message "%s" (substitute-command-keys "\\Use `\\[org-edit-special]' to ...")) (if (or (eq type 'table) (and (eq = type ...) (=3D ... ...))) (save-excursion (if (org-at-TBLFM-p) (progn ... .= ..) (goto-char ...) (org-call-with-arg ... ...) (orgtbl-send-table ...))) (= org-table-maybe-eval-formula) (cond (arg (call-interactively ...)) ((org-ta= ble-maybe-recalculate-line)) (t (org-table-align)))))) ((eq type 'timestamp= ) (funcall pcase-0)) ((eq type 'planning) (cond ((org-at-timestamp-p 'lax) = (funcall pcase-0)) ((run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-fi= nal-hook) nil) (t (user-error (substitute-command-keys "`\\[org-ctrl-c-ctrl= -c]' can do nothing useful..."))))) ((null type) (cond ((org-at-heading-p) = (call-interactively #'org-set-tags-command)) ((run-hook-with-args-until-suc= cess 'org-ctrl-c-ctrl-c-final-hook) (funcall pcase-1)) (t (funcall pcase-2)= ))) ((run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-final-hook) (func= all pcase-1)) (t (funcall pcase-2))) (let* ((pcase-2 #'(lambda nil (user-error (substitute-command-keys "`\\[o= rg-ctrl-c-ctrl-c]' can do nothing useful here")))) (pcase-1 #'(lambda nil))= (pcase-0 #'(lambda nil (org-timestamp-change 0 'day)))) (cond ((memq type = '(src-block inline-src-block)) (if org-babel-no-eval-on-ctrl-c-ctrl-c nil (= org-babel-eval-wipe-error-buffer) (org-babel-execute-src-block current-pref= ix-arg (org-babel-get-src-block-info nil context)))) ((org-match-line "[ \1= 1]*$") (or (run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-final-hook)= (user-error (substitute-command-keys "`\\[org-ctrl-c-ctrl-c]' can do nothi= ng useful here")))) ((memq type '(inline-babel-call babel-call)) (let ((inf= o (org-babel-lob-get-info context))) (if info (progn (org-babel-execute-src= -block nil info))))) ((eq type 'clock) (org-clock-update-time-maybe)) ((eq = type 'dynamic-block) (save-excursion (goto-char (org-element-property :post= -affiliated context)) (org-update-dblock))) ((eq type 'footnote-definition)= (goto-char (org-element-property :post-affiliated context)) (call-interact= ively 'org-footnote-action)) ((eq type 'footnote-reference) (call-interacti= vely #'org-footnote-action)) ((memq type '(inlinetask headline)) (save-excu= rsion (goto-char (org-element-property :begin context)) (call-interactively= #'org-set-tags-command))) ((eq type 'item) (if (or radio-list-p (and (boun= dp org-list-checkbox-radio-mode) org-list-checkbox-radio-mode)) (org-toggle= -radio-button arg) (let* ((box (org-element-property :checkbox context)) (s= truct (org-element-property :structure context)) (old-struct (copy-tree str= uct)) (parents (org-list-parents-alist struct)) (prevs (org-list-prevs-alis= t struct)) (orderedp (org-not-nil ...))) (org-list-set-checkbox (org-elemen= t-property :begin context) struct (cond (... "[-]") (... "[ ]") (... nil) (= ... "[ ]") (t "[X]"))) (org-list-struct-fix-ind struct parents 2) (org-list= -struct-fix-item-end struct) (org-list-struct-fix-bul struct prevs) (org-li= st-struct-fix-ind struct parents) (let ((block-item ...)) (if (and box ...)= (if ... ... ...) (org-list-struct-apply-struct struct old-struct) (org-upd= ate-checkbox-count-maybe)) (if block-item (progn ...)))))) ((eq type 'plain= -list) (if (or radio-list-p (and (boundp org-list-checkbox-radio-mode) org-= list-checkbox-radio-mode)) (org-toggle-radio-button arg) (let* ((begin (org= -element-property :contents-begin context)) (struct (org-element-property := structure context)) (old-struct (copy-tree struct)) (first-box (save-excurs= ion ... ... ...)) (new-box (cond ... ... ... ...))) (cond (arg (let ... ...= )) ((and first-box ...) (org-list-set-checkbox begin struct new-box))) (if = (equal (org-list-write-struct struct ... old-struct) old-struct) (progn (me= ssage "Cannot update this checkbox"))) (org-update-checkbox-count-maybe))))= ((eq type 'keyword) (let ((org-inhibit-startup-visibility-stuff t) (org-st= artup-align-all-tables nil)) (if (boundp 'org-table-coordinate-overlays) (p= rogn (mapc #'delete-overlay org-table-coordinate-overlays) (setq org-table-= coordinate-overlays nil))) (let* ((--invisible-types '...) (--markers\? 'us= e-markers) (--data (mapcar ... ...))) (unwind-protect (progn (org-mode-rest= art)) (save-excursion (save-restriction ... ... ...))))) (message "Local se= tup has been refreshed")) ((memq type '(node-property property-drawer)) (ca= ll-interactively #'org-property-action)) ((eq type 'radio-target) (call-int= eractively #'org-update-radio-target-regexp)) ((eq type 'statistics-cookie)= (call-interactively #'org-update-statistics-cookies)) ((memq type '(table-= row table-cell table)) (if (eq (org-element-property :type context) 'table\= .el) (message "%s" (substitute-command-keys "\\Use `\\[org-ed= it-special]' to edit t...")) (if (or (eq type 'table) (and (eq type ...) (= =3D ... ...))) (save-excursion (if (org-at-TBLFM-p) (progn ... ...) (goto-c= har ...) (org-call-with-arg ... ...) (orgtbl-send-table ...))) (org-table-m= aybe-eval-formula) (cond (arg (call-interactively ...)) ((org-table-maybe-r= ecalculate-line)) (t (org-table-align)))))) ((eq type 'timestamp) (funcall = pcase-0)) ((eq type 'planning) (cond ((org-at-timestamp-p 'lax) (funcall pc= ase-0)) ((run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-final-hook) n= il) (t (user-error (substitute-command-keys "`\\[org-ctrl-c-ctrl-c]' can do= nothing useful here"))))) ((null type) (cond ((org-at-heading-p) (call-int= eractively #'org-set-tags-command)) ((run-hook-with-args-until-success 'org= -ctrl-c-ctrl-c-final-hook) (funcall pcase-1)) (t (funcall pcase-2)))) ((run= -hook-with-args-until-success 'org-ctrl-c-ctrl-c-final-hook) (funcall pcase= -1)) (t (funcall pcase-2)))) (let* ((context (org-element-lineage (org-element-context) '(babel-call c= lock dynamic-block footnote-definition footnote-reference inline-babel-call= inline-src-block inlinetask item keyword node-property paragraph plain-lis= t planning property-drawer radio-target src-block statistics-cookie table t= able-cell table-row timestamp) t)) (radio-list-p (org-at-radio-list-p)) (ty= pe (org-element-type context))) (if (eq type 'paragraph) (progn (let ((pare= nt (org-element-property :parent context))) (if (and (eq (org-element-type = parent) 'item) (=3D (line-beginning-position) (org-element-property :begin = parent))) (progn (setq context parent) (setq type 'item)))))) (let* ((pcase= -2 #'(lambda nil (user-error (substitute-command-keys "`\\[org-ctrl-c-ctrl-= c]' can do nothing useful here")))) (pcase-1 #'(lambda nil)) (pcase-0 #'(la= mbda nil (org-timestamp-change 0 'day)))) (cond ((memq type '(src-block inl= ine-src-block)) (if org-babel-no-eval-on-ctrl-c-ctrl-c nil (org-babel-eval-= wipe-error-buffer) (org-babel-execute-src-block current-prefix-arg (org-bab= el-get-src-block-info nil context)))) ((org-match-line "[ \11]*$") (or (run= -hook-with-args-until-success 'org-ctrl-c-ctrl-c-final-hook) (user-error (s= ubstitute-command-keys "`\\[org-ctrl-c-ctrl-c]' can do nothing useful here"= )))) ((memq type '(inline-babel-call babel-call)) (let ((info (org-babel-lo= b-get-info context))) (if info (progn (org-babel-execute-src-block nil info= ))))) ((eq type 'clock) (org-clock-update-time-maybe)) ((eq type 'dynamic-b= lock) (save-excursion (goto-char (org-element-property :post-affiliated con= text)) (org-update-dblock))) ((eq type 'footnote-definition) (goto-char (or= g-element-property :post-affiliated context)) (call-interactively 'org-foot= note-action)) ((eq type 'footnote-reference) (call-interactively #'org-foot= note-action)) ((memq type '(inlinetask headline)) (save-excursion (goto-cha= r (org-element-property :begin context)) (call-interactively #'org-set-tags= -command))) ((eq type 'item) (if (or radio-list-p (and (boundp org-list-che= ckbox-radio-mode) org-list-checkbox-radio-mode)) (org-toggle-radio-button a= rg) (let* ((box ...) (struct ...) (old-struct ...) (parents ...) (prevs ...= ) (orderedp ...)) (org-list-set-checkbox (org-element-property :begin conte= xt) struct (cond ... ... ... ... ...)) (org-list-struct-fix-ind struct pare= nts 2) (org-list-struct-fix-item-end struct) (org-list-struct-fix-bul struc= t prevs) (org-list-struct-fix-ind struct parents) (let (...) (if ... ... ..= . ...) (if block-item ...))))) ((eq type 'plain-list) (if (or radio-list-p = (and (boundp org-list-checkbox-radio-mode) org-list-checkbox-radio-mode)) (= org-toggle-radio-button arg) (let* ((begin ...) (struct ...) (old-struct ..= .) (first-box ...) (new-box ...)) (cond (arg ...) (... ...)) (if (equal ...= old-struct) (progn ...)) (org-update-checkbox-count-maybe)))) ((eq type 'k= eyword) (let ((org-inhibit-startup-visibility-stuff t) (org-startup-align-a= ll-tables nil)) (if (boundp 'org-table-coordinate-overlays) (progn (mapc ..= . org-table-coordinate-overlays) (setq org-table-coordinate-overlays nil)))= (let* ((--invisible-types ...) (--markers\? ...) (--data ...)) (unwind-pro= tect (progn ...) (save-excursion ...)))) (message "Local setup has been ref= reshed")) ((memq type '(node-property property-drawer)) (call-interactively= #'org-property-action)) ((eq type 'radio-target) (call-interactively #'org= -update-radio-target-regexp)) ((eq type 'statistics-cookie) (call-interacti= vely #'org-update-statistics-cookies)) ((memq type '(table-row table-cell t= able)) (if (eq (org-element-property :type context) 'table\.el) (message "%= s" (substitute-command-keys "\\Use `\\[org-edit-special]' to = edit t...")) (if (or (eq type ...) (and ... ...)) (save-excursion (if ... .= .. ... ... ...)) (org-table-maybe-eval-formula) (cond (arg ...) (...) (t ..= .))))) ((eq type 'timestamp) (funcall pcase-0)) ((eq type 'planning) (cond = ((org-at-timestamp-p 'lax) (funcall pcase-0)) ((run-hook-with-args-until-su= ccess 'org-ctrl-c-ctrl-c-final-hook) nil) (t (user-error (substitute-comman= d-keys "`\\[org-ctrl-c-ctrl-c]' can do nothing useful here"))))) ((null typ= e) (cond ((org-at-heading-p) (call-interactively #'org-set-tags-command)) (= (run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-final-hook) (funcall p= case-1)) (t (funcall pcase-2)))) ((run-hook-with-args-until-success 'org-ct= rl-c-ctrl-c-final-hook) (funcall pcase-1)) (t (funcall pcase-2))))) (cond ((and (boundp 'org-columns-overlays) org-columns-overlays) (org-col= umns-quit)) ((or (and (boundp 'org-clock-overlays) org-clock-overlays) org-= occur-highlights) (if (boundp 'org-clock-overlays) (progn (org-clock-remove= -overlays))) (org-remove-occur-highlights) (message "Temporary highlights/o= verlays removed from current...")) ((and (local-variable-p 'org-finish-func= tion) (fboundp org-finish-function)) (funcall org-finish-function)) ((org-b= abel-hash-at-point)) ((run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-= hook)) (t (let* ((context (org-element-lineage (org-element-context) '(babe= l-call clock dynamic-block footnote-definition footnote-reference inline-ba= bel-call inline-src-block inlinetask item keyword node-property paragraph p= lain-list planning property-drawer radio-target src-block statistics-cookie= table table-cell table-row timestamp) t)) (radio-list-p (org-at-radio-list= -p)) (type (org-element-type context))) (if (eq type 'paragraph) (progn (le= t ((parent ...)) (if (and ... ...) (progn ... ...))))) (let* ((pcase-2 #'(l= ambda nil ...)) (pcase-1 #'(lambda nil)) (pcase-0 #'(lambda nil ...))) (con= d ((memq type '...) (if org-babel-no-eval-on-ctrl-c-ctrl-c nil (org-babel-e= val-wipe-error-buffer) (org-babel-execute-src-block current-prefix-arg ...)= )) ((org-match-line "[ \11]*$") (or (run-hook-with-args-until-success ...) = (user-error ...))) ((memq type '...) (let (...) (if info ...))) ((eq type '= clock) (org-clock-update-time-maybe)) ((eq type 'dynamic-block) (save-excur= sion (goto-char ...) (org-update-dblock))) ((eq type 'footnote-definition) = (goto-char (org-element-property :post-affiliated context)) (call-interacti= vely 'org-footnote-action)) ((eq type 'footnote-reference) (call-interactiv= ely #'org-footnote-action)) ((memq type '...) (save-excursion (goto-char ..= .) (call-interactively ...))) ((eq type 'item) (if (or radio-list-p ...) (o= rg-toggle-radio-button arg) (let* ... ... ... ... ... ... ...))) ((eq type = 'plain-list) (if (or radio-list-p ...) (org-toggle-radio-button arg) (let* = ... ... ... ...))) ((eq type 'keyword) (let (... ...) (if ... ...) (let* ..= . ...)) (message "Local setup has been refreshed")) ((memq type '...) (call= -interactively #'org-property-action)) ((eq type 'radio-target) (call-inter= actively #'org-update-radio-target-regexp)) ((eq type 'statistics-cookie) (= call-interactively #'org-update-statistics-cookies)) ((memq type '...) (if = (eq ... ...) (message "%s" ...) (if ... ... ... ...))) ((eq type 'timestamp= ) (funcall pcase-0)) ((eq type 'planning) (cond (... ...) (... nil) (t ...)= )) ((null type) (cond (... ...) (... ...) (t ...))) ((run-hook-with-args-un= til-success 'org-ctrl-c-ctrl-c-final-hook) (funcall pcase-1)) (t (funcall p= case-2))))))) org-ctrl-c-ctrl-c(nil) funcall-interactively(org-ctrl-c-ctrl-c nil) call-interactively(org-ctrl-c-ctrl-c nil nil) command-execute(org-ctrl-c-ctrl-c) #+end_example Then I take a check, found that the latest version inf-clojure seems don't = have ~inf-clojure-cmd~, ~inf-clojure-project-type~ functions.=20 Am I wrong on searching? Comparing the new backend implement timestamp and inf-clojure commits history timestamp, Bastien will not add a function whic= h is already remove. So I did Git log search, those functions are indeed remove. > > Inf-clojure is more lightweight than cider. > > Also, with (setq org-babel-clojure-backend 'inf-clojure) you can now > add a :alias header arg to the src block and "clojure -Aalias" will > then be called to launch the repl. > >> While I love CIDER, I'm not sure it is the right tool for a org-babel >> type environment. I've recently been moving my projects from being lein >> based to Clojure CLI tools based and while I still use CIDER for larger >> development work, find the CLI great for basic execution of code. For >> me, CIDER has a lot of additional overhead and complexity which is often >> of little benefit to what I want via babel and I've found it to be a >> very fragile environment. > > Yep, I agree again. > >> Sean Corfield has a great example deps.edn file at >> https://github.com/seancorfield/doc-clojure and it shows how you can >> hook in various different REPLs - for example, a basic socket based >> REPL, which might provide a cleaner and more stable back end interface >> for evaluating Clojure (and potentially clojurescript) for babel. > > I am not sure it is worth getting rid of inf-clojure.el altogether, > but relying on tools.deps seems the way to go. > >> As I said, this is an initial and immature idea, but I think it could >> provide a back end which was a little more like other babel back ends >> and may be less fragile than one based on CIDER (plus I suspect it would >> be faster). What do people think? Is this something worth investigating >> further? > > Definitely! Thanks for sharing these idea. > > Please try the latest ob-clojure.el from master and let me know what > can be improved to better fit your (and others') needs. > > Thanks, =2D --=20 [ stardiviner ] I try to make every word tell the meaning that I want to express. Blog: https://stardiviner.github.io/ IRC(freenode): stardiviner, Matrix: stardiviner GPG: F09F650D7D674819892591401B5DF1C95AE89AC3 =20=20=20=20=20=20 =2D----BEGIN PGP SIGNATURE----- iQFIBAEBCAAyFiEE8J9lDX1nSBmJJZFAG13xyVromsMFAl6n95YUHG51bWJjaGls ZEBnbWFpbC5jb20ACgkQG13xyVromsNoqwf6Ap4NBd5DnbLgYgamIgD4QhSLwl9Y kMpAu/Drlixtu5+GOhkC49WfobavgxK9K0on+a+Jg3NTdeS4qRpmTq/E4YS2zF0D 74oHwADfuQ76ykv2klnvpQY4j0+3lyc9sfP/6e03ZpL91kUgRqEdGh80MbZd4u2J Y0vVAzTnLIf1IOVE3EX4kOTO9+WKG4xPFG3M9W13ZzkzWv/09Qjk39PQIns+ijqv 46sKLaswJRZ5X5yYKhE3/Z4KnOHoJFnEI5vtF0B4JU8dyn667WO1aG2zqbdKs+I1 89ZgjSOYrB7Op81YPUXQjFQ6eOVHImoxN83lrp3qZ+CEOf8pkvXOVU0low=3D=3D =3Dnieg =2D----END PGP SIGNATURE-----