[Rcpp-devel] Starting R Interpreter from C++

Wolf Vollprecht w.vollprecht at gmail.com
Wed Jun 14 00:22:38 CEST 2017


Dear all,

thanks so much for your help. Our tests are up and running on Travis now
(thanks to RInside!).

We've discovered one issue, though, when compiling with Clang. It might be
of interest to you:
https://travis-ci.org/QuantStack/xtensor-r/jobs/242587636
I am not 100% sure if the issue comes from RCpp or from xtensor (I'll need
more time to investigate, this is just a FYI).

In file included from
/home/travis/build/QuantStack/xtensor-r/test/test_rarray.cpp:11:
In file included from
/home/travis/build/QuantStack/xtensor-r/inst/include/xtensor-r/rarray.hpp:18:
In file included from
/home/travis/build/QuantStack/xtensor-r/inst/include/xtensor-r/rcontainer.hpp:19:
In file included from
/home/travis/miniconda/lib/R/library/Rcpp/include/Rcpp.h:65:
In file included from
/home/travis/miniconda/lib/R/library/Rcpp/include/Rcpp/InternalFunction.h:30:
In file included from
/home/travis/miniconda/lib/R/library/Rcpp/include/Rcpp/InternalFunctionWithStdFunction.h:27:
In file included from
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/tr1/functional:39:
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/tr1/tuple:130:5:
error: declaration conflicts with target of using declaration already in
scope
    class tuple : public _Tuple_impl<0, _Elements...>

Cheers,

Wolf

2017-06-12 13:15 GMT-07:00 JJ Allaire <jj.allaire at gmail.com>:

> There is also a way to write C++ unit test with the catch framework and
> have them added to the R test suite: https://rdrr.io/cran/
> testthat/man/use_catch.html
>
> Note this was originally built with integration with testthat in mind but
> you can call it from any R test suite (docs on doing this are on the linked
> to page).
>
> On Mon, Jun 12, 2017 at 3:47 PM, Wolf Vollprecht <w.vollprecht at gmail.com>
> wrote:
>
>> RInside seems to have done the trick! Awesome.
>>
>> I have no strong opinions on how to implement the tests. The only reason
>> why I wanted the embedded R solution is because we use it that way with
>> Python and Julia, and it gives us "raw C++" tests. In the future, we might
>> also have a xtensor-test package, that we can easily use to write tests for
>> all three languages (in C++) at the same time (through metaprogramming).
>>
>> But we will definitly also add tests in R (as we have done with Python
>> and Julia, too).
>> It would be awesome if you have a chance to add some to your variant.
>> I am going to fix up the C++ tests that I've added to the "big" PR and
>> make sure that at least those we have right now work fine to establish a
>> baseline to work from.
>>
>> Cheers!
>>
>> Wolf
>>
>>
>> 2017-06-12 4:11 GMT-07:00 Dirk Eddelbuettel <edd at debian.org>:
>>
>>>
>>> On 12 June 2017 at 11:22, Romain Francois wrote:
>>> | You might be looking for RInside.
>>>
>>> Exactly correct in the narrow sense of 'how to get R going from C++'.
>>>
>>> On 12 June 2017 at 01:11, Wolf Vollprecht wrote:
>>> | I am trying to run C++ tests from C++ directly.
>>> | It looks like I need to start the R interpreter for memory management
>>> etc.
>>>
>>> The wider, normal sense of the question is, I suspect, how to add unit
>>> tests
>>> to an R package such as your xtensor-r.  Give me a day or two and I may
>>> get a
>>> chance to add this to my variant of your project.
>>>
>>> You generally do NOT want force an embedded R interpreter __as any Rcpp
>>> project is already called from R__.  Use CRAN as a repository of (as of
>>> today) 1045 example packages.  I don't think a single one embeds R for
>>> testing.  The RUnit (older, used by Rcpp itself) and testthat frameworks
>>> are
>>> popular.
>>>
>>> Dirk
>>>
>>> --
>>> http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org
>>>
>>
>>
>> _______________________________________________
>> Rcpp-devel mailing list
>> Rcpp-devel at lists.r-forge.r-project.org
>> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20170613/038e989d/attachment.html>


More information about the Rcpp-devel mailing list