Deepayan Sarkar
2007-Apr-06 22:00 UTC
[Rd] wishlist: additional argument in R_tryEval (Rinternals.h)
Hi, R_tryEval, exported in Rinternals.h but not part of the API, is currently defined as: R_tryEval(SEXP e, SEXP env, int *ErrorOccurred); I'm trying to embed R in an application (basically yet another GUI), and this has been very helpful to catch errors. It would be even more helpful if it also gave access to the visibility flag. I can wrap this in a call to withVisible, and that works great, but if there is an error, traceback() contains a bunch of irrelevant levels. It seems fairly easy to add another argument, similar to ErrorOccurred, that is set to the visibility flag before returning. Is this something that could be considered for addition in R-devel? A possible patch for R/trunk is attached. Mac-GUI/REngine/REngine.m will also need a patch, but I don't understand the language it's written in. -Deepayan -------------- next part -------------- A non-text attachment was scrubbed... Name: tryEval-patch.diff Type: text/x-patch Size: 5296 bytes Desc: not available Url : https://stat.ethz.ch/pipermail/r-devel/attachments/20070406/e5e19008/attachment.bin
Duncan Temple Lang
2007-Apr-06 22:31 UTC
[Rd] wishlist: additional argument in R_tryEval (Rinternals.h)
Hi Deepayan. It is not part of the API, but it is used in numerous packages that would break if such a change were made. It is an easy change to make, but not necessarily a robust approach if we keep adding parameters. If we need the room to add more, using a structure whose fields are modified within the R_tryEval() would be more flexible for future evolutions. But then again, that is creeping towards an object and that is precisely what we need for the evaluator itself...... (More perhaps in the future.) D. Deepayan Sarkar wrote:> Hi, > > R_tryEval, exported in Rinternals.h but not part of the API, is > currently defined as: > > R_tryEval(SEXP e, SEXP env, int *ErrorOccurred); > > I'm trying to embed R in an application (basically yet another GUI), > and this has been very helpful to catch errors. It would be even more > helpful if it also gave access to the visibility flag. I can wrap this > in a call to withVisible, and that works great, but if there is an > error, traceback() contains a bunch of irrelevant levels. > > It seems fairly easy to add another argument, similar to > ErrorOccurred, that is set to the visibility flag before returning. Is > this something that could be considered for addition in R-devel? A > possible patch for R/trunk is attached. Mac-GUI/REngine/REngine.m will > also need a patch, but I don't understand the language it's written > in. > > -Deepayan > > > ------------------------------------------------------------------------ > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel
Luke Tierney
2007-Apr-06 22:39 UTC
[Rd] wishlist: additional argument in R_tryEval (Rinternals.h)
Even though it isn't officially part of the API it has seen some use so I'd prefer not to change the interface; instead add SEXP R_tryEvalWithVis(SEXP e, SEXP env, int *ErrorOccurred, int *visible); or something along those lines and define R_tryEval internally in terms of that. It may be worth thinking a bit more though to see if there is something else that might be useful at this point. I vaguely recall thinking recently about needing something else of this flavor but I can't seem to remember what it was exactly -- will try to see if I can recall. Best, luke On Fri, 6 Apr 2007, Deepayan Sarkar wrote:> Hi, > > R_tryEval, exported in Rinternals.h but not part of the API, is > currently defined as: > > R_tryEval(SEXP e, SEXP env, int *ErrorOccurred); > > I'm trying to embed R in an application (basically yet another GUI), > and this has been very helpful to catch errors. It would be even more > helpful if it also gave access to the visibility flag. I can wrap this > in a call to withVisible, and that works great, but if there is an > error, traceback() contains a bunch of irrelevant levels. > > It seems fairly easy to add another argument, similar to > ErrorOccurred, that is set to the visibility flag before returning. Is > this something that could be considered for addition in R-devel? A > possible patch for R/trunk is attached. Mac-GUI/REngine/REngine.m will > also need a patch, but I don't understand the language it's written > in. > > -Deepayan >-- Luke Tierney Chair, Statistics and Actuarial Science Ralph E. Wareham Professor of Mathematical Sciences University of Iowa Phone: 319-335-3386 Department of Statistics and Fax: 319-335-3017 Actuarial Science 241 Schaeffer Hall email: luke at stat.uiowa.edu Iowa City, IA 52242 WWW: http://www.stat.uiowa.edu