hmm. I agree that this should be handled by ESS and I have not given up yet.
as indicated in my previous mail, I dont know how to test if an R-session is remote because the command ess-remote deletes all local variables. a hack would be to let the R-process evaluate file.exists((file-name-directory org-babel-temp-file)) thanks Eric Schulte <schulte.e...@gmail.com> writes: > 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 <t...@biostat.ku.dk> writes: > >> yes, I am using ESS. ess-remote allows me to evaluate R-code from >> the local 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.file))} >> >> 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 >> host. >> 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 >> >> >> >> Eric Schulte <schulte.e...@gmail.com> writes: >> >>> Bastien <b...@gnu.org> writes: >>> >>>> Hi Thomas, thanks for the follow-up. Thomas Alexander Gerds >>>> <t...@biostat.ku.dk> 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, Øster Farimagsgade 5, 1014 Copenhagen, >> Denmark Office: CSS-15.2.07 (Gamle Kommunehospital) tel: 35327914 >> (sec: 35327901) -- Thomas A. Gerds -- Assoc. Prof. Department of Biostatistics University of Copenhagen, Øster Farimagsgade 5, 1014 Copenhagen, Denmark Office: CSS-15.2.07 (Gamle Kommunehospital) tel: 35327914 (sec: 35327901)