Force stop or halt on error Force stop or halt on error r r

Force stop or halt on error


If R/ESS is hogging up so much compute time that your emacs/ESS is unresponsive to C-c C-c, you can also save it by sending an INTERRUPT signal from the terminal.

First: figure out R's processID using top or ps. (mine was 98490Then:kill -2 98490That sends an interrupt signal and you get your ESS/Emacs and R session back


According to the ESS manual, this should work:C-c C-c (comint-interrupt-subjob)Sends a Control-C signal to the ESS process. This has the effect of aborting the current command.

John Fox has a website where he offers a configuration for ESS. In it, he has this function:

(defun stop-R ()"Interrupt R process in lower window."(interactive)(select-window win2)(comint-interrupt-subjob)(select-window win1))

You should be able to add this function to the menu in XEmacs using:

(defun R-menu ()  "Hook to install R menu and sub-menus"  (add-menu-item '("ESS" "R") "Interrupt computation" 'stop-R))(add-hook 'ess-mode-hook 'R-menu)

You might check out the rest of his configuration file and documentation to see if it interests you. I haven't tried this yet, but I hope that it works for you!

Charlie


?break

Only gets you out of loop.

?try

Lets you set up code that might fail and gracefully recover.