checkFF {tools}R Documentation

Check Foreign Function Calls

Description

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.

Usage

checkFF(package, dir, file, lib.loc = NULL,
        verbose = getOption("verbose"))

Arguments

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 package is not given.

file

the name of a file containing R code to be checked. Used if neither package nor dir are given.

lib.loc

a character vector of directory names of R libraries, or NULL. The default value of NULL corresponds to all libraries currently known. The specified library trees are used to search for package.

verbose

a logical. If TRUE, additional diagnostics are printed (and the result is returned invisibly).

Details

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 and if that 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.

Value

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.

See Also

.C, .Fortran; Foreign.

Examples

 # order is pretty much random
checkFF(package = "stats", verbose = TRUE)

[Package tools version 2.15.1 Index]