[Rd] Interactiveness

Tony Plate tplate at acm.org
Tue Dec 11 19:18:48 CET 2007

Bjarni Juliusson wrote:
> Prof Brian Ripley wrote:
>> On Tue, 11 Dec 2007, Bjarni Juliusson wrote:
>>> I'm developing R integration for a project called Bioclipse at Uppsala
>>> University. The current implementation works by simply forking an R and
>>> sending it text (with some substitutions on it) down a pipe, getting the
>>> printed output back up another pipe. This of course works fine, except
>>> it runs into one problem: R finds a pipe on its stdin and decides to be
>>> "non-interactive", which means that as soon as the user makes a typo and
>>> causes an error, R exits.
>> Actually, not so.  The default error handler for non-interactive use is 
>> to do that, but you can change it.
> Could you perhaps just point me in the right direction here? I really 
> have no idea how to do this.
Specify a non-NULL error handler by doing something like this:
 > options(error=dump.frames)
See ?options (look for "error") and ?stop for more details.

-- Tony Plate

> Also, what exactly does non-interactive mode imply, besides this default 
> error handling behaviour?
>>> I checked the source, and it's a couple of isatty()'s in the two files
>>> named system.c that are doing it. They are of course intended to be a
>>> feature, but in this case it causes us trouble. Would it be possible to
>>> get a command line switch to control this behaviour? I'm not sure pseudo
>>> terminals can be used portably, or can they?
>> They can, and are e.g. by ESS (except on Windows, where there is already 
>> a switch).  I think you need to look a bit more carefully at what other 
>> projects do.
> It needs to be portable to Windows. I'll look into this possibility next.
> Didn't mean to ask before I had done my homework. Thanks for your help!
> Bjarni

More information about the R-devel mailing list