Displaying 5 results from an estimated 5 matches for "r_execwithcleanup".
2019 Mar 29
3
Use of C++ in Packages
...has a 'open' and 'close' step, the same sort of issue
will arise.
What I believe we should do, and what Rcpp has made steps towards, is
make it possible to interact with some subset of the R API safely from
C++ contexts. This has always been possible with e.g. R_ToplevelExec()
and R_ExecWithCleanup(), and now things are even better with
R_UnwindProtect(). In theory, as a prototype, an R package could
provide a 'safe' C++ interface to the R API using R_UnwindProtect()
and friends as appropriate, and client packages could import and link
to that package to gain access to the interface....
2019 Mar 29
0
Use of C++ in Packages
...up native objects in any 3rd party library that are created during the call.
> What I believe we should do, and what Rcpp has made steps towards, is make it possible to interact with some subset of the R API safely from C++ contexts. This has always been possible with e.g. R_ToplevelExec() and R_ExecWithCleanup(), and now things are even better with R_UnwindProtect(). In theory, as a prototype, an R package could provide a 'safe' C++ interface to the R API using R_UnwindProtect() and friends as appropriate, and client packages could import and link to that package to gain access to the interface....
2019 Mar 29
4
Use of C++ in Packages
First, thank you to Tomas for writing his recent post[0] on the R
developer blog. It raised important issues in interfacing R's C API
and C++ code.
However I do _not_ think the conclusion reached in the post is helpful
> don?t use C++ to interface with R
There are now more than 1,600 packages on CRAN using C++, the time is
long past when that type of warning is going to be useful to the
2019 Mar 30
3
Use of C++ in Packages
...cts in any 3rd party library that are created during the call.
>
>
>> What I believe we should do, and what Rcpp has made steps towards, is make it possible to interact with some subset of the R API safely from C++ contexts. This has always been possible with e.g. R_ToplevelExec() and R_ExecWithCleanup(), and now things are even better with R_UnwindProtect(). In theory, as a prototype, an R package could provide a 'safe' C++ interface to the R API using R_UnwindProtect() and friends as appropriate, and client packages could import and link to that package to gain access to the interface....
2019 Mar 29
0
Use of C++ in Packages
...t should be made clear that it was not what Tomas' blog was about.
I agree with Tomas that it is safer to give an advice to not use C++ to call R API since C++ may give a false impression that you don't need to know what you're doing. Note that it is possible to avoid longjmps by using R_ExecWithCleanup() which can catch any longjmps from the called function. So if you know what you're doing you can make things work. I think the issue here is not necessarily lack of tools, it is lack of knowledge - which is why I think Tomas' post is so important.
Cheers,
Simon
> On Mar 29, 2019, at...