[ESS] Fw: [O] Missing newline in R code causes Org-Mode eval to hang

Michael Hannon jm_hannon at yahoo.com
Tue Oct 18 18:01:48 CEST 2011


Greetings.  I uncovered a minor inconsistency in running R code from an Emacs Org-Mode buffer, and one of the Org-Mode maintainers suggested it might best be fixed on the ESS side.  I've appended the discussion.

The fix to the problem in my own case is basically just not to be stupid, so I don't have any ax to grind here.  I pass this along just in case it might be indicative of a larger problem.

-- Mike



----- Forwarded Message -----
> From: Eric Schulte <schulte.eric at gmail.com>
> To: Michael Hannon <jm_hannon at yahoo.com>
> Cc: Org-Mode List <emacs-orgmode at gnu.org>
> Sent: Monday, October 17, 2011 1:30 PM
> Subject: Re: [O] Missing newline in R code causes Org-Mode eval to hang
> 
> Hi Michael,
> 
> I can confirm this problem occurs on my machine locally.  I believe the
> issue has something to do with how ESS sends inputs to R and waits for
> command prompts from R.  When the lines are pasted into an ESS buffer
> one at a time the problem does not occur, however when the lines are
> pasted into ESS all at once (without pressing enter between lines) the
> ESS comint buffer hangs.
> 
> One option could be to explicitly call `inferior-ess-send-input' between
> every line of R code, but I'm loath to touch the comint interface as
> small changes like this can sometimes have unpredictable effects.
> 
> Perhaps this could be fixed on the ESS side?
> 
> Best -- Eric
> 
> Michael Hannon <jm_hannon at yahoo.com> writes:
> 
>>  Greetings.  The appended R code fragment executes without problem in
>>  an ESS buffer, but it hangs indefinitely when I try to execute it
>>  directly from the Org buffer via C-c C-c.
>> 
>>  The solution is to add the trailing newline in the "noteToSelf"
>>  variable:
>> 
>>      noteToSelf <- "Buy low.\nSell high.\n"
>> 
>>  Obviously this isn't a big deal from my perspective, but it did
>>  surprise me, and it does seem inconsistent.
>> 
>>  BTW, I've appended also the details of my own (linux) configuration,
>>  but I tried the same thing on a different OS (Mac OS 10.6.8) and got
>>  the same results.
>> 
>>  -- Mike
>> 
>>  ###### Org code that exhibits error
>> 
>>  #+BABEL: :session *R* :cache yes :results output verbatim :exports both 
> :tangle yes
>> 
>>  * This is a test
>> 
>>  #+begin_src R
>> 
>>   x <- 42
>>   noteToSelf <- "Buy low.\nSell high."
>>   cat(noteToSelf)
>>   print("All done now")
>> 
>>  #+end_src
>> 
>> 
>>  ###### My set-up
>> 
>>  Emacs  : GNU Emacs 23.2.1 (x86_64-redhat-linux-gnu, GTK+ Version 2.24.4)
>>   of 2011-05-23 on x86-12.phx2.fedoraproject.org
>>  Package: Org-mode version 7.7 (release_7.7.328.g1a97)
>> 
>>  current state:
>>  ==============
>>  (setq
>>   org-export-latex-after-initial-vars-hook 
> '(org-beamer-after-initial-vars)
>>   org-structure-template-alist '(("r" "#+begin_src 
> R\n\n#+end_src" "<src 
> lang=\"R\">\n\n</src>")
>>  ("S" "#+BEGIN_SRC ?\n\n#+END_SRC" "<src 
> lang=\"?\">\n\n</src>")
>>  ("s" "#+begin_src ?\n\n#+end_src" "<src 
> lang=\"?\">\n\n</src>")
>>  ("e" "#+begin_example\n?\n#+end_example" 
> "<example>\n?\n</example>")
>>  ("q" "#+begin_quote\n?\n#+end_quote" 
> "<quote>\n?\n</quote>")
>>  ("v" "#+begin_verse\n?\n#+end_verse" 
> "<verse>\n?\n/verse>")
>>  ("c" "#+begin_center\n?\n#+end_center" 
> "<center>\n?\n/center>")
>>  ("l" "#+begin_latex\n?\n#+end_latex" 
> "<literal 
> style=\"latex\">\n?\n</literal>")
>>  ("L" "#+latex: " "<literal 
> style=\"latex\">?</literal>")
>>  ("h" "#+begin_html\n?\n#+end_html" 
> "<literal 
> style=\"html\">\n?\n</literal>")
>>  ("H" "#+html: " "<literal 
> style=\"html\">?</literal>") ("a" 
> "#+begin_ascii\n?\n#+end_ascii")
>>  ("A" "#+ascii: ") ("i" "#+index: ?" 
> "#+index: ?")
>>  ("I" "#+include %file ?" "<include file=%file 
> markup=\"?\">"))
>>   org-speed-command-hook '(org-speed-command-default-hook 
> org-babel-speed-command-hook)
>>   org-agenda-files '("~/Documents/scratch.org")
>>   org-babel-load-languages '((emacs-lisp . t) (R . t) (python . t) (sh . 
> t) (latex . t) (C . t) (octave \.t))
>>   org-metaup-hook '(org-babel-load-in-session-maybe)
>>   org-after-todo-state-change-hook '(org-clock-out-if-current)
>>   org-babel-tangle-lang-exts '(("C++" . "cpp") 
> ("latex" . "tex") ("python" . "py") 
> ("emacs-lisp" . "el"))
>>   org-export-blocks-postblock-hook '(org-exp-res/src-name-cleanup)
>>   org-export-latex-format-toc-function 
> 'org-export-latex-format-toc-default
>>   org-tab-first-hook '(org-hide-block-toggle-maybe 
> org-src-native-tab-command-maybe org-babel-hide-result-toggle-maybe)
>>   org-src-mode-hook '(org-src-babel-configure-edit-buffer 
> org-src-mode-configure-edit-buffer)
>>   org-confirm-shell-link-function 'yes-or-no-p
>>   org-export-first-hook '(org-beamer-initialize-open-trackers)
>>   org-agenda-before-write-hook '(org-agenda-add-entry-text)
>>   org-blank-before-new-entry nil
>>   org-babel-pre-tangle-hook '(save-buffer)
>>   org-cycle-hook '(org-cycle-hide-archived-subtrees 
> org-cycle-hide-drawers org-cycle-show-empty-lines
>>   org-optimize-window-after-visibility-change)
>>   org-export-preprocess-before-normalizing-links-hook 
> '(org-remove-file-link-modifiers)
>>   org-mode-hook '(#[nil 
> "\300\301\302\303\304$\207" [org-add-hook 
> change-major-mode-hook org-show-block-all append local] 5]
>>  #[nil "\300\301\302\303\304$\207" 
> [org-add-hook change-major-mode-hook org-babel-show-result-all append local] 5]
>>  org-babel-result-hide-spec org-babel-hide-all-hashes)
>>   org-ctrl-c-ctrl-c-hook '(org-babel-hash-at-point 
> org-babel-execute-safely-maybe)
>>   org-confirm-elisp-link-function 'yes-or-no-p
>>   org-export-interblocks '((lob org-babel-exp-lob-one-liners) (src 
> org-babel-exp-inline-src-blocks))
>>   org-clock-out-hook '(org-clock-remove-empty-clock-drawer)
>>   org-occur-hook '(org-first-headline-recenter)
>>   org-from-is-user-regexp "\\<Michael 
> Hannon\\>"
>>   org-export-preprocess-before-selecting-backend-code-hook 
> '(org-beamer-select-beamer-code)
>>   org-confirm-babel-evaluate 'my-org-confirm-babel-evaluate
>>   org-export-latex-final-hook '(org-beamer-amend-header 
> org-beamer-fix-toc org-beamer-auto-fragile-frames
>>        org-beamer-place-default-actions-for-lists)
>>   org-metadown-hook '(org-babel-pop-to-session-maybe)
>>   org-export-blocks '((src org-babel-exp-src-block nil) (comment 
> org-export-blocks-format-comment t)
>>      (ditaa org-export-blocks-format-ditaa nil) (dot 
> org-export-blocks-format-dot nil))
>>   )
>> 
> 
> -- 
> Eric Schulte
> http://cs.unm.edu/~eschulte/
>



More information about the ESS-help mailing list