From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Eric Schulte" Subject: Re: [babel] feature request - tangle-and-evaluate-tangled-file Date: Mon, 12 Jul 2010 10:51:07 -0700 Message-ID: <87mxtwbii5.fsf@gmail.com> References: <871vbdu77i.fsf@gmail.com> <874og8irrn.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from [140.186.70.92] (port=38844 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OYOnR-0006Af-Pq for emacs-orgmode@gnu.org; Mon, 12 Jul 2010 15:36:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OYOn8-0005gp-PV for emacs-orgmode@gnu.org; Mon, 12 Jul 2010 15:35:52 -0400 Received: from mail-pz0-f41.google.com ([209.85.210.41]:65157) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OYOn8-0005ga-HI for emacs-orgmode@gnu.org; Mon, 12 Jul 2010 15:35:50 -0400 Received: by pzk33 with SMTP id 33so2955281pzk.0 for ; Mon, 12 Jul 2010 12:35:49 -0700 (PDT) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Rainer M Krug Cc: emacs-orgmode Rainer M Krug writes: > Hi Eric, > > On Fri, Jul 9, 2010 at 5:44 PM, Eric Schulte wrote: > >> Hi Rainer, >> >> Rainer M Krug writes: >> >> > On Thu, Jul 8, 2010 at 9:03 PM, Eric Schulte >> wrote: >> [...] >> >> >> >> (add-hook 'org-babel-post-tangle-hook >> >> (lambda () (ess-load-file (buffer-file-name)))) >> >> >> > >> > Unfortunately, this does not work. I put the code above into my >> > emacs.organd nothing happens - not even an error message. I tried to >> > use the C-h v to customise the variable, but I don't manage it. >> >> If the variable isn't registered with C-h v, then it sounds like maybe >> you need to update Org-mode, and/or re-run make clean && make. >> > > OK - that is working now. > > >> >> > In addition, The filename for es-load-file shoud not be the buffer >> > name, but the buffer name with the extension replaced with R. >> > >> >> `buffer-file-name', returns the name of the file that the buffer is >> visiting, so wouldn't this already be the case if the filename ends with >> .R? >> > > Isn't the buffer from which I am tangling the org buffer, and not the result > from the tangling? (see below for further remarks. > No this hook is run from /within/ a buffer visiting the file of tangled code, so in the example hook function above (buffer-file-name) will equal the name of the file of tangled R code. From your later message it looks like the issues below have been resolved. Best -- Eric > > >> >> This minimal example with the hook defined as above works for me. After >> tangling I can jump to the *R* buffer where both x and y are defined. >> >> --8<---------------cut here---------------start------------->8--- >> ** tangle R and load >> :PROPERTIES: >> :tangle: to-load.r >> :END: >> >> #+begin_src R :comments yes >> x <- 8 >> #+end_src >> >> #+begin_src R >> y <- 9 >> #+end_src >> --8<---------------cut here---------------end--------------->8--- >> > > Not here - > > Emacs and org-mode version: > > GNU Emacs 23.2.1 (i686-pc-linux-gnu, GTK+ Version 2.20.1) > Org-mode version 6.36trans (release_6.36.603.g227b) > > 1) if no R process is running, I get the following message: > ess-start-process-specific: No ESS processes running; not yet implemented to > start (Initial,nil) > No problem 0 I can start an R process manually. > > 2) when an R session is running, I get the following error message from ESS: > Errors: Use C-c ` to find error. > Symbol's function definition is void: with-temp-filebuffer > > and from ESS: > > Error in source("/home/rkrug/tmp/R.org") : > /home/rkrug/tmp/R.org:1:1: unexpected '^' > 1: ** > > it seems to submit the org file (the buffer is saved as R.org) to R. > > So buffer-file-name should actually be replaced with the name from the file > name resulting from the tangling, in the easiest case (which would be fine > with me) the org buffer name with .org replaced with .R. > So I did the following (my firs elisp code!): > > (add-hook 'org-babel-post-tangle-hook > (lambda () (ess-load-file (replace-regexp-in-string ".org" ".R" > buffer-file-name)))) > > and it is working - except that I still get the Symbol's function definition > is void: with-temp-filebuffer , but it does not seem to do anything. > > Thanks a lot, > > Rainer > > > > > >> > >> > I am sorry about all these questions, but emacs-lisp I have never used >> > emacs-lisp (I should - and I will!) >> > >> >> No problem at all, but be careful about learning too much lisp as you >> may begin to grow dissatisfied with R :) >> >> Best -- Eric >> >> > >> > Cheers and thanks for your patience, >> > >> > Rainer >> > >> > >> >> Best -- Eric >> >> >> >> Rainer M Krug writes: >> >> >> >> > Hi >> >> > >> >> > I am using org-babel for literate programming in R and I am using the >> >> > following approach to test the code: >> >> > >> >> > 1) tangle >> >> > 2) refresh buffer containing the tangled code (I use auto-revert-mode >> or >> >> > global-auto-revert-mode for that) >> >> > 3) load the tangled file into an existing R session via ESS R for >> >> evaluation >> >> > >> >> > This involves switching between buffers in always the same sequence. >> >> > Therefore my suggestion: >> >> > >> >> > would it be possible to have a tangle-and-evaluate-tangled-file >> >> funcction, >> >> > which is doing this automatically? >> >> > >> >> > C-c - 0 and org-babel-execute-buffer do not work in this case, as >> >> functions >> >> > are split over several code blocks in R. >> >> > >> >> > Cheers, >> >> > >> >> > Rainer >> >> >>