From gregory.warnes at mac.com  Tue Dec 11 23:47:15 2007
From: gregory.warnes at mac.com (Gregory Warnes)
Date: Tue, 11 Dec 2007 17:47:15 -0500
Subject: [Rd] Interactiveness
In-Reply-To: <475ED488.4080805@acm.org>
References: <475EA1FB.8010002@Update.UU.SE>	<Pine.LNX.4.64.0712111454180.7824@auk.stats><475EB378.7030101@Update.UU.SE>
	<475ED488.4080805@acm.org>
Message-ID: <20921CBE-9E8C-4EB1-AB2B-DBB3E6E96507@mac.com>


You might also find many of the tools provided in the 'session'  
package helpful for interacting with R in this way.

'session' package description:

Utility functions for interacting with R processes from external  
programs. This package includes functions to save and restore session  
information (including loaded packages, and attached data objects),  
as well as functions to evaluate strings containing R commands and  
return the printed results or an execution transcript.

-Greg


On Dec 11, 2007, at 1:18PM , Tony Plate wrote:

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



[Rd] Interactiveness
Gregory Warnes