"Charles C. Berry" <[email protected]> writes: > On Wed, 6 Aug 2014, Aaron Ecay wrote: > >> Hi Eric, >> >> 2014ko abuztuak 6an, Eric Schulte-ek idatzi zuen: >> >> [...] >> >>> Perhaps you could begin with a patch for the regexp issue in this >>> thread? >> >> I have pushed a patch which allows us to avoid the regex issue >> entirely by using a native R method to capture the session output to a >> file. >> >> This introduces the change that the output no longer appears in the >> session buffer, but I think that’s actually an improvement: we were not >> previously echoing the commands to the buffer, such that the output >> would show up “out of the blue” without any indication of how it got >> there. > > Hi Aaron, > > I like what you are trying to do, but ... > > 1) The change has at least one bug: Remote sessions are broken by this > change. > > 2) The behavior of :results output is modified in ways that might not be > desired. i.e. warnings and errors will not show up in the output. > > Can you revert this change until the bugs are sorted out and consensus > about the proper handling of cases like '2' is reached? > > Can I also suggest that in the future before a change is pushed, that the > patch is announced so we can try it out or at least eyeball it and discuss > issues/bugs?
I think that would be a good idea, or create a separate branch for
testing these features.
>
> Details:
>
> Issue 1) ===========
>
> If I open a *.org file on a remote machine and C-c C-c on a src block that
> has `:session :results output', after the usual session startup the src
> block fails. The session buffer shows this
>
> ====
> Error in file(file, if (append) "a" else "w") :
> cannot open the connection
> In addition: Warning message:
> In file(file, if (append) "a" else "w") :
> cannot open file '/scpc:berry@<DELETED.URL>:/tmp/R-1155xWV':
> No such file or directory
>>
> ===
>
> The file '/tmp/R-1155xWV' was created.
>
> I think if the tramp file localname is used. it might work. I do not know
> tramp, but maybe something like
>
> (let output-file-localname
> (if (tramp-tramp-file-p output-file)
> (tramp-file-name-localname
> (tramp-dissect-file-name output-file))
> output-file))
>
> is good enough.
>
>
> Issue 2) ===========
>
> ECM:
>
> #+NAME: aa
> #+BEGIN_SRC R :session R2 :results output
> warning("this is a warning")
> 1+1
> #+END_SRC
>
> #+RESULTS: aa
> : [1] 2
>
> For some purposes having the warnings in the #+RESULTS: block is helpful.
>
> And when revising code, having the errors in the #+RESULTS helps -
> especially if I have to put aside work in progress.
Instead of capture.output, one could possibly use sink() as it can also
capture error messages and warnings, as shown in the help:
#+begin_src R
## capture all the output to a file.
zz <- file("all.Rout", open = "wt")
sink(zz)
sink(zz, type = "message")
try(log("a"))
## back to the console
sink(type = "message")
sink()
file.show("all.Rout")
#+end_src
This combined with a try() bloxk could work?
Cheers,
Rainer
>
> HTH,
>
> Chuck
>
--
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology,
UCT), Dipl. Phys. (Germany)
Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa
Tel : +33 - (0)9 53 10 27 44
Cell: +33 - (0)6 85 62 59 98
Fax : +33 - (0)9 58 10 27 44
Fax (D): +49 - (0)3 21 21 25 22 44
email: [email protected]
Skype: RMkrug
PGP: 0x0F52F982
pgpPoOAIsQV6v.pgp
Description: PGP signature
