From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dr Rainer M Krug Subject: Re: [babel] feature request - tangle-and-evaluate-tangled-file Date: Tue, 13 Jul 2010 10:14:28 +0200 Message-ID: <4C3C2064.5020209@googlemail.com> References: <871vbdu77i.fsf@gmail.com> <874og8irrn.fsf@gmail.com> <87mxtwbii5.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Return-path: Received: from [140.186.70.92] (port=59308 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OYadN-0003KY-2k for emacs-orgmode@gnu.org; Tue, 13 Jul 2010 04:14:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OYadL-0007A7-OU for emacs-orgmode@gnu.org; Tue, 13 Jul 2010 04:14:33 -0400 Received: from mail-wy0-f169.google.com ([74.125.82.169]:47966) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OYadL-00079v-Fr for emacs-orgmode@gnu.org; Tue, 13 Jul 2010 04:14:31 -0400 Received: by wyj26 with SMTP id 26so4532947wyj.0 for ; Tue, 13 Jul 2010 01:14:30 -0700 (PDT) In-Reply-To: <87mxtwbii5.fsf@gmail.com> 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: Eric Schulte Cc: emacs-orgmode , Rainer M Krug -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 12/07/2010 19:51, Eric Schulte wrote: > 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. Thanks a lot for a very useful addition, and I will see abut the buffer-name and come back if it is still the org-file buffer for me, Rainer > > 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 >>>>> >>> -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkw8IGQACgkQoYgNqgF2egpm/ACdEttwt8P3epMZI6GfcksVW6s/ apIAnAj6BYlyAUgTcUST65NOjWk91Pmz =15EP -----END PGP SIGNATURE-----