Next: , Previous: Limitations, Up: Top


Appendix A Platform-specific features

CFFI does some platform tests on loading. The details vary between Lisps; in fact, the purpose is to unify the list of available platform features for use elsewhere in the CFFI code. These features are also part of the public interface; see define-foreign-library.

The exact meanings of the features follow. Though you will usually refer to these symbols as keywords, CFFI internally views them in the package cffi-features.

flat-namespace
This Lisp has a flat namespace for foreign symbols meaning that you won't be able to load two different libraries with homograph functions and successfully differentiate them through the :library option to defcfun, defcvar, etc...
darwin
This operating system is Darwin or a derivative thereof, such as Mac OS X.
no-foreign-funcall
The macro foreign-funcall is not available. On such platforms, the only way to call a foreign function is through defcfun. See foreign-funcall, and defcfun.
no-long-long
The C long long type is not available as a foreign type.
no-stdcall
This Lisp doesn't support the stdcall calling convention. Note that it only makes sense to support stdcall on (32-bit) x86 platforms.
ppc32
The underlying CPU architecture is 32-bit PowerPC.
unix
This operating system is a unix-like, such as GNU/Linux, Darwin, or even Cygwin on Lisps that show the unix-like interface provided by Cygwin to Lisp code.
windows
This operating system is Windows.
x86
The underlying CPU architecture is x86, such as on processors from Intel or AMD.