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

Vitalie Spinu spinuvit.list at gmail.com
Tue Oct 18 20:00:17 CEST 2011


Hi Mike,

I can reproduce your problem with plain ess. With ess-tracebug
(http://code.google.com/p/ess-tracebug/) it works smoothly.

Ess-trasebug redefines some critical evaluation routines including
ess-command (which org-babel probably uses internally). I remember
reporting ess-command wreckage on multi line code half a year or so
back. Probably this is what is going wrong here as well.

Cheers,
Vitalie.

On Tue, Oct 18, 2011 at 6:01 PM, Michael Hannon <jm_hannon at yahoo.com> wrote:
> 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/
>>
>
> ______________________________________________
> ESS-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/ess-help
>



More information about the ESS-help mailing list