checkFF {tools} | R Documentation |
Performs checks on calls to compiled code from R code. Currently only
checks whether the interface functions such as .C
and
.Fortran
are called with a "NativeSymbolInfo"
first argument or with argument PACKAGE
specified, which is
highly recommended to avoid name clashes in foreign function calls.
checkFF(package, dir, file, lib.loc = NULL, verbose = getOption("verbose"))
package |
a character string naming an installed package. If given, the installed R code of the package is checked. |
dir |
a character string specifying the path to a package's root
source directory. This should contain the subdirectory ‘R’
(for R code). Only used if |
file |
the name of a file containing R code to be checked. Used
if neither |
lib.loc |
a character vector of directory names of R libraries,
or |
verbose |
a logical. If |
Note that we can only check if the name
argument is a symbol or
a character string, not what class of object the symbol resolves to
at run-time.
If the package has a namespace which contains a useDynLib
directive, calls in top-level functions in the package are not
reported as their symbols will be preferentially looked up in the DLL
named in the first useDynLib
directive.
As from R 2.15.2, this also checks that calls with PACKAGE
specified are to the same package, and reports separately those which
are in base packages and those which are in other packages (and if
those packages are specified in the ‘DESCRIPTION’ file). Direct
calls to the FORTRAN entry points for LINPACK in R itself are not
reported (but this does not include modifications of LINPACK routines
such as dqrls
).
An object of class "checkFF"
, which currently is a list of the
(parsed) foreign function calls with a character first argument and
no PACKAGE
argument.
There is a print
method to display the information contained in
such objects.
# order is pretty much random checkFF(package = "stats", verbose = TRUE)