checkFF                package:tools                R Documentation

Check Foreign Function Calls

Description:

     Performs checks on calls to compiled code from R code.  Currently
     only 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.

Warning:

     This function is still experimental.  Both name and interface
     might change in future versions.

See Also:

     '.C', '.Fortran'; 'Foreign'.

Examples:

     checkFF(package = "stats", verbose = TRUE)

