From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Schulte Subject: Re: minor bug in babel with silent output and remote R session Date: Sun, 14 Apr 2013 09:23:07 -0600 Message-ID: <871uadf39l.fsf@gmail.com> References: <87ppy6sq69.fsf@bzg.ath.cx> <87zjx6ed7d.fsf@bzg.ath.cx> <87vc7re5kw.fsf@gmail.com> <86txn95tls.fsf@biostat.ku.dk> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([208.118.235.92]:47870) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1URQR5-0005nL-3l for emacs-orgmode@gnu.org; Sun, 14 Apr 2013 13:09:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1URQR3-0003p6-9K for emacs-orgmode@gnu.org; Sun, 14 Apr 2013 13:09:51 -0400 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: Thomas Alexander Gerds Cc: Bastien , emacs-orgmode@gnu.org It is a shame that this can't be handled gracefully either through ESS or R code. I agree it would be nice to raise a warning rather than hang waiting for a file which won't ever exist. So, how can we tell from the Babel source if the R session is remote? Thanks, Thomas Alexander Gerds writes: > yes, I am using ESS. ess-remote allows me to evaluate R-code from the loc= al > emacs-session on a remote machine connected to via ssh. > > there are two problems: > > 1) the remote machine cannot write to org-babel-temp-file because the > tmp-directory exists on the local machine. here we could add > > if(!file.exists(dirname(transfer.file))){dir.create(dirname(transfer.f= ile))} >=20=20=20=20 > in the middle of the variable org-babel-R-write-object-command > this would achieve that the file is at least generated on the remote hos= t. > > 2) however, still the transfer file does not exist on the local > machine. there are several possiblities: > > a) tell org-babel-comint-eval-invisibly-and-wait-for-file > that the file is remote and then test if > (concat "/" username "@" host ":" file) exists instead of file. > > b) use tramp to transfer the file from the remote to the local > machine. the function ssh does define ssh-host and ssh-username, > however, calling ess-remote removes these variables again. > > c) tell org-babel-comint-eval-invisibly-and-wait-for-file not to wait > for file if it is remote > > my conclusion: it would be nice to have this functionality, but perhaps > it is not worth the efforts and it would be sufficient to avoid the > endless loop when waiting for a file which never will generated. > > cheers thomas > > >=20=20 > Eric Schulte writes: > >> Bastien writes: >> >>> Hi Thomas, >>> thanks for the follow-up. >>> Thomas Alexander Gerds writes: >>> >>>> I think that I can describe the problem a bit better now. It is not >>>> related to the silent option but occurs whenever ":results value". >>>> Emacs freezes due to the following line in >>>> org-babel-comint-eval-invisibly-and-wait-for-file >>>> (while (not (file-exists-p file)) (sit-for (or period 0.25))) >>>> it seems that R cannot transfer the file and hence this is an >>>> endless loop. >>> I'm not knowledgeable enough in this area to provide a fix, maybe >>> someone else will. >>> >> >> Could this be a problem with whatever tool (I'm assuming ESS) you are >> using to maintain the R session and generate the R file? >> >> Perhaps babel needs to modify the R code used to create the file (held >> in the `org-babel-R-write-object-command' variable). Could you take a >> shot at providing another version of this variable? I don't really >> use R myself. >> >> Thanks, > -- > Thomas A. Gerds -- Assoc. Prof. Department of Biostatistics > University of Copenhagen, =C3=98ster Farimagsgade 5, 1014 Copenhagen, Den= mark > Office: CSS-15.2.07 (Gamle Kommunehospital) > tel: 35327914 (sec: 35327901)=20 --=20 Eric Schulte http://cs.unm.edu/~eschulte