name-and-options ::= name | (name &key canary convention search-path)
load-clause ::= (feature library &key convention search-path)
A feature expression.
A library designator.
A string denoting a foreign symbol that will be searched in core
before attempting to load the library. If that symbol is found, the
library is assumed to be statically linked and
load-foreign-library only marks the library as loaded.
Some implementations (Clisp, ECL, SBCL) natively support static linking, sometimes referred to as a link kit.
:cdecl (default) or
A path or list of paths where the library will be searched if not found in system-global directories. Paths specified in a load clause take priority over paths specified as library option, with *foreign-library-directories* having lowest priority.
Creates a new library designator called name. The
load-clauses describe how to load that designator when passed to
When trying to load the library name, the relevant function searches the load-clauses in order for the first one where feature evaluates to true. That happens for any of the following situations:
(first feature), a keyword:
All of the feature expressions in
(rest feature) are
At least one of the feature expressions in
The feature expression
(second feature) is not true.
t, this load-clause is picked unconditionally.
Upon finding the first true feature, the library loader then loads the library. The meaning of “library designator” is described in load-foreign-library.
Functions associated to a library defined by
define-foreign-library (e.g. through
:library option, will inherit the library’s options. The
precedence is as follows:
See Loading foreign libraries.