source_code()
will parse through x
looking for functions tagged with
// [[ export() ]]
and will compile the code block and export those
functions to the R side.
source_code(x, includes = NULL, no_remap = TRUE, show = FALSE)
x |
A block of C code to compile. |
---|---|
includes |
Extra includes to add manually. By default, |
no_remap |
Should |
show |
Should the output of compiling the source code with |
A named list containing the functions specified for export.
code <- " static SEXP helper(SEXP x) { return x; } // [[ export() ]] SEXP fn1(SEXP x) { return helper(x); } // [[ export() ]] SEXP fn2(SEXP x, SEXP y) { double result = REAL(x)[0] + REAL(y)[0]; return Rf_ScalarReal(result); } " sourced <- source_code(code) sourced$fn1(1)#> [1] 1sourced$fn2(1, 2)#> [1] 3