From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Kitchin Subject: Re: What is Babel's relationship with a Lisp REPL? State or stateless? Date: Fri, 20 Feb 2015 09:13:10 -0500 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:49027) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YOoKy-00071n-J7 for emacs-orgmode@gnu.org; Fri, 20 Feb 2015 09:13:49 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YOoKu-0003nz-0j for emacs-orgmode@gnu.org; Fri, 20 Feb 2015 09:13:48 -0500 Received: from smtp.andrew.cmu.edu ([128.2.105.204]:58020) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YOoKt-0003nJ-Rl for emacs-orgmode@gnu.org; Fri, 20 Feb 2015 09:13:43 -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-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Lawrence Bottorff Cc: emacs-orgmode@gnu.org I think it saves state, and remembers what has been done, at least as long as emacs is open. If you close emacs, it will forget everything, and you would have to rerun each block. You could tangle (or selectively tangle) the blocks out, to get an emacs-lisp file, which might then be a library you would load or run. Here is a little example I tried it out on. If you run these blocks in order you should see the state is saved as if it was a continuous session. What do you gain? That is for you to say. you can write emacs lisp and execute one sexp at a time in an emacs-lisp buffer, and write comments almost the same way. I like/prefer editing in org-mode for text, and simple sexps. For really big libraries, I like using org-mode to organize it into an outline. sometimes I prefer emacs-lisp mode for editing emacs-lisp code. these are C-c ' apart in org-mode, or if you have tried the lentic package, you can have separate views of the same file in different modes. * elisp #+BEGIN_SRC emacs-lisp (setq *some-var* "test") #+END_SRC #+RESULTS: : test Now some commentary #+BEGIN_SRC emacs-lisp *some-var* #+END_SRC #+RESULTS: : test define something #+BEGIN_SRC emacs-lisp (defun test-func () *some-var*) #+END_SRC #+RESULTS: : test-func #+BEGIN_SRC emacs-lisp (test-func) #+END_SRC #+RESULTS: : test Lawrence Bottorff writes: > If I'm creating an org file in a buffer which has source blocks for, say, > Lisp, then I can "run" these blocks of Lisp code and Babel will fill in the > "answer" just below in my buffer. Good. As advertised. But what is really > happening to this code? Does Babel invoke a Lisp REPL once, do the code, > print out the results my buffer and go away? Or is this invoked REPL > somehow persistent, able to remember what has happened before? > > With regular Lisp and SLIME, you have a buffer where you write your code > next to a running REPL that handles the code when you ask it to. It keeps > "state" and your program grows. But this arrangement is not really literate > programming. Maybe good comments are possible, but it's not orgmode > literate programming. > > But then again, if Babel doesn't support REPL "state," then what am I > gaining? Please enlighten me. . . . > > > LB -- Professor John Kitchin Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 @johnkitchin http://kitchingroup.cheme.cmu.edu