R: Check Foreign Function Calls

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]