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