[R-pkg-devel] User defined RNG and code registration.

Ivan Krylov kry|ov@r00t @end|ng |rom gm@||@com
Sat Sep 23 21:30:31 CEST 2023


В Sat, 23 Sep 2023 08:42:25 +0000
Ralf Stubner <ralf.stubner using gmail.com> пишет:

> ?Random.user describes a way to hook a user- defined
> RNG into R. However, it looks like these two things are not
> compatible, i.e. `user_unif_rand` et al. are not found, if dynamic
> symbols are not allowed.

You're right! Looking at the code, if R_useDynamicSymbols(dll, FALSE)
has been called for a DLL, the branch that calls dlsym() or
GetProcAddress() to find symbols from that library by their shared
object symbol names gets completely disabled; only the registered
function names known to R matter at this point.

> Or can one register these routines somehow even though they are not
> following one of the standard calling conventions?

It sounds unsatisfying, but if you register your user_unif_rand
function with the right name and any of the ABIs supported by R, it
sounds like it should work as long as you never call it using the
.Call/.C/.Fortran ABI it's registered for.

-- 
Best regards,
Ivan



More information about the R-package-devel mailing list