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

Martin Maechler maechler at stat.math.ethz.ch
Sat Oct 22 21:37:41 CEST 2011


On Tue, Oct 18, 2011 at 20:00, Vitalie Spinu <spinuvit.list at gmail.com> wrote:
> Hi Mike,
>
> I can reproduce your problem with plain ess. With ess-tracebug
> (http://code.google.com/p/ess-tracebug/) it works smoothly.

well... can you tell us *how* you reproduce the problem?
or even better point us to the (ess-help archive of the) report you
mention below?
If this is a bug *with a fix* it would really make sense to be fixed
"upstreams", no?

>
> 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
>>
>
> ______________________________________________
> ESS-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/ess-help
>
>



More information about the ESS-help mailing list