On Friday, 4 June 2021 at 07:26:53 UTC, data pulverizer wrote:

Thanks. Looks like I have some more reading to do. I did know about embedr, but I saw it had dependencies and I wanted a standalone and fully transparent D solution.

It requires an R package if you want to call D functions from R. You need to link to R itself if you want to do something like pass a vector from R to D and then access that data from D. Since R is aware of the location of all the underlying libraries, it's easiest to let it generate the dub.sdl for you.

I guess you're using the older .C interface [as done here](http://users.stat.umn.edu/~geyer/rc/). Good enough if passing double* and int* pointers to D functions will suffice. Only thing you need to do to initialize the D runtime is add this to your D code

```
struct DllInfo;

extern(C) void R_init_libfoo(DllInfo * info) {
    Runtime.initialize();
}
```

where foo is the name of the library you're loading (foo.so).

Reply via email to