James, > On Aug 15, 2021, at 4:41 PM, James Powell <powe...@pdx.edu> wrote: > > I write a deliberate syntax error into a code block: > > : #+begin_src R :session > : x <- 1 > : y xx z > : #+end_src > > I put my cursor in there and C-c C-c. > > What I expect: a gentle useful report about the error.
Right. But there is no error as far as babel is concerned. R has handled the condition. So there is nothing for babel to see/do. > Maybe even org would move the cursor to the point of the > error in the org buffer. If not, at least the buffer > "*Org-Babel Error Output*" will open and show me the error, > something like this (see also [1]), > > : Error: unexpected symbol in: > : "x <- 1 > : y xx" > : -UUU:@**--F2 *Org-Babel Error Output* All L17 (Compilation etu) > 4:13PM 0.53 Mail --------------------------------------------------$ > `:results output' might help you here, since it will send the terminal output back to babel. If that doesn't suffice, you might use handlers provided by R to find your way out. But I think that will get sticky as what you create in your example is a parse error. If the source blocks are eval'ed as part of an export, you have the option of exporting via ox-ravel[*] and using the knitr chunk options to handle errors in the way you want. > What happens instead: > > - the *R* buffer is displayed. It contains a long spammy traceback > that has run off of the top of the screen. To learn more I have to > move the cursor into the *R* buffer and page back to the top of the > traceback. > > On the other hand, if I set ":session none", I get much friendlier > behavior. The Error Output buffer opens with the simple error message > in it as I showed above when I use this source block: > > : #+begin_src R :session none > : x <- 1 > : y xx z > : #+end_src > Running R in this fashion starts a fresh process which signals an error that babel can handle. I see no easy way to get sessions to sends signals that babel can process. > I do not want to abandon :session because my code reads in a lot of > data to get started and I want my scripts, not my environment to be > "real" so I am not depending on R's ability to save and reload the > workspace at all [2] or on "Org's (clever and useful but) somewhat clunky > and inflexible method of passing data explicitly" [3]. One of the motivating factors for creating ox-ravel[*] was to have flexible caching of R objects. This is provided in knitr, Sweave, and similar report generators. For interactive use, knit-ing a document that has caching enabled at the start of a session is a fast and painless way to get all the objects needed to modify a document. HRH, Chuck [*] https://github.com/chasberry/orgmode-accessories > > Is there a way to get back to the "Error Output" buffer opening with a > simple message /while/ having :session being enabled? > > thank you, > James P. > > References > > [1] "Currently the only action Babel takes with STDERR is to display it in a > pop-up buffer when code block evaluation fails" (Eric Schulte in 2012, at > https://lists.gnu.org/archive/html/emacs-orgmode/2012-03/msg00057.html). > > [2] « what will you save as your lasting record of what happened? > [...[ As a beginning R user, it's OK to consider your environment > [...] "real." However, in the long run, you'll be much better off > if you consider your R scripts as "real." » (p. 111, Wickham, H. "R > for data science : import, tidy, transform, visualize, and model > data" O'Reilly Media, 2016). To facilitate this, I have disabled > 'save workspace' permanently: > : q <- function (save = "no", status = 0, runLast = TRUE) > : .Internal(quit(save, status, runLast)) > > [3] «When I look at Org and think of "session-based" blocks, I see a > potential big benefit in having multiple source-blocks throughout > my document share the same session» > (https://lists.gnu.org/archive/html/emacs-orgmode/2011-06/msg00654.html, > the only good hit for a search for "session Org-Babel Error Output" at > https://lists.gnu.org/archive/html/emacs-orgmode/ as of > [2021-08-15 Sun]). > > > -- > James E. Powell, MS > Pronouns: he/him/his > Applied Physics PhD Candidate > Department of Physics > Portland State University > Home page: http://web.pdx.edu/~powellj > Office: SRTC 409B Phone: +1-503-725-8515 > > >