

_F_o_r_e_i_g_n _F_u_n_c_t_i_o_n _I_n_t_e_r_f_a_c_e

     dyn.load(libname)
     dyn.unload(libname)

     is.loaded(symbol)
     symbol.C(name)
     symbol.For(name)

_A_r_g_u_m_e_n_t_s:

 libname: a character string giving the pathname to a DLL.

  symbol: a character string giving a symbol name.

    name: a character string giving either the name of a C
          function or Fortran subroutine. Fortran names
          probably need to be given entirely in lower case
          (but this may be system-dependent).

_V_a_l_u_e:

     The function `dyn.load' is used for its side effect
     which links the specified shared library to the execut-
     ing R image.  Calls to `.C', `.Fortran' and `.External'
     can then be used to execute compiled C functions or
     Fortran subroutines contained in the library.

     The function `dyn.unload' unlinks the shared library.

     Functions `symbol.C' and `symbol.For' map function /
     subroutine names to the symbol name in the compiled
     code: `is.loaded' checks if the symbol name is loaded
     and so available for use in `.C' ....

_N_o_t_e:

     The creation of shared libraries and the runtime link-
     ing of them into executing programs is very platform
     dependent.  In recent years there has been some sim-
     plification in the process because the C subroutine
     call `dlopen' has become the standard for doing this
     under UNIX.  Under UNIX `dyn.load' uses the `dlopen'
     mechanism and should work on all platforms which sup-
     port it. On Windows it uses the standard mechanisms for
     loading 32-bit DLLs.

     The original code for loading DLLs in UNIX was provided
     by Heiner Schwarte.  The compatibility code for HP-UX
     was provided by Luke Tierney.

_S_e_e _A_l_s_o:

     `.C', `.Fortran', `.External'.

_E_x_a_m_p_l_e_s:

     is.loaded(symbol.For("hcass2")) #-> probably  FALSE
     library(mva)
     is.loaded(symbol.For("hcass2")) #-> TRUE

