From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rainer M Krug Subject: Re: [babel] feature request - tangle-and-evaluate-tangled-file Date: Mon, 12 Jul 2010 09:46:32 +0200 Message-ID: References: <871vbdu77i.fsf@gmail.com> <874og8irrn.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1755702636==" Return-path: Received: from [140.186.70.92] (port=40716 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OYDim-0006LP-Dy for emacs-orgmode@gnu.org; Mon, 12 Jul 2010 03:46:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OYDik-0000Bh-OD for emacs-orgmode@gnu.org; Mon, 12 Jul 2010 03:46:36 -0400 Received: from mail-ww0-f49.google.com ([74.125.82.49]:44870) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OYDik-0000BY-HL for emacs-orgmode@gnu.org; Mon, 12 Jul 2010 03:46:34 -0400 Received: by wwb39 with SMTP id 39so154580wwb.30 for ; Mon, 12 Jul 2010 00:46:32 -0700 (PDT) In-Reply-To: <874og8irrn.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 --===============1755702636== Content-Type: multipart/alternative; boundary=002215b038a2824c13048b2bf37a --002215b038a2824c13048b2bf37a Content-Type: text/plain; charset=ISO-8859-1 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. > > 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 > >> > -- NEW GERMAN FAX NUMBER!!! Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany) Centre of Excellence for Invasion Biology Natural Sciences Building Office Suite 2039 Stellenbosch University Main Campus, Merriman Avenue Stellenbosch South Africa Cell: +27 - (0)83 9479 042 Fax: +27 - (0)86 516 2782 Fax: +49 - (0)321 2125 2244 email: Rainer@krugs.de Skype: RMkrug Google: R.M.Krug@gmail.com --002215b038a2824c13048b2bf37a Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi Eric,

On Fri, Jul 9, 2010 at 5:44 PM, = Eric Schulte <schulte.eric@gmail.com> wrote:
Hi Rainer,
[...]
>>
>> (add-hook 'org-babel-post-tangle-hook
>> =A0 =A0 =A0 =A0 =A0(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 trie= d to
> use the C-h v to customise the variable, but I don&#= 39;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.
<= /blockquote>

OK - that is working now.
=A0

> 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 wit= h
.R?

Isn't the buffer from which I a= m tangling the org buffer, and not the result from the tangling? (see below= for further remarks.
=A0

This minimal example with the hook defined as above works for me. =A0After<= br> tangling I can jump to the *R* buffer where both x and y are defined.

--8<---------------cut here---------------start------------->8---
** tangle R and load
=A0 :PROPERTIES:
=A0 :tangle: =A0 to-load.r
=A0 :END:

#+begin_src R :comments yes
=A0x <- 8
#+end_src

#+begin_src R
=A0y <- 9
#+end_src
--8<---------------cut here---------------end---------= ------>8---

Not here -=A0

Emacs and org-mode version:

GNU Emacs 23.2.1 (i686-pc-linux-gnu, GTK+ Version 2.20.1)
Org-mod= e 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 (I= nitial,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<= /div>

and from ESS:

= Error in source("/home/rkrug/tmp/R.org") :=A0
= =A0=A0/home/rkrug/tmp/R.org:1:1: unexpected '^'
1: **
=A0=A0=A0
it seems to submit th= e org file (the buffer is saved as R.org) to R.=A0

So=A0buffer-file-name should actually be replaced with the name from the f= ile name resulting from the tangling, in the easiest case (which would be f= ine with me) the org buffer name with .org replaced with .R.
So I did the following (my firs elisp code!):

=A0=A0(add-hook 'org-babel-post-tangle-hook
=A0= =A0 =A0 =A0 =A0 =A0 =A0(lambda () (ess-load-file (replace-regexp-in-string = ".org" ".R" buffer-file-name))))

and it is working - except that I still get the=A0Symbol's fu= nction definition is void: with-temp-filebuffer=A0, but it does not = seem to do anything.

Thanks a lo= t,

Rai= ner



=

>
> I am sorry about all these questions, but emac= s-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 <r.m.krug@g= mail.com> writes:
>>
>> > Hi
>> >
>> > I am using org-babel for literate programming in R and I am u= sing the
>> > following approach to test the code:
>> >
>> > 1) tangle
>> > 2) refresh buffer containing the tangled code (I use auto-rev= ert-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 se= quence.
>> > Therefore my suggestion:
>> >
>> > would it be possible to have a tangle-and-evaluate-tangled-fi= le
>> 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
>>



--
NEW GERMAN = FAX NUMBER!!!

Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (= Conservation Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellen= ce for Invasion Biology
Natural Sciences Building
Office Suite 2039
Stellenbosch UniversityMain Campus, Merriman Avenue
Stellenbosch
South Africa

Cell:= =A0 =A0 =A0 =A0 =A0=A0 +27 - (0)83 9479 042
Fax:=A0 =A0 =A0 =A0 =A0 =A0 = +27 - (0)86 516 2782
Fax:=A0 =A0 =A0 =A0 =A0 =A0 +49 - (0)321 2125 2244
email:=A0 =A0 =A0 =A0= =A0 Rainer@krugs.de

Skype:= =A0 =A0 =A0 =A0 =A0 RMkrug
Google:=A0 =A0 =A0 =A0=A0 R.M.Krug@gmail.com

--002215b038a2824c13048b2bf37a-- --===============1755702636== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode --===============1755702636==--