Commit the local DARCS CFFI repo, as well as update to today.
[CommonLispStat.git] / external / cffi.darcs / _darcs / pristine / README
blob13b106954c72f6b9aeb93d254255e12135a917d8
2 CFFI, the Common Foreign Function Interface, purports to be a portable
3 foreign function interface, similar in spirit to UFFI.
5 Unlike UFFI, CFFI requires only a small set of low-level functionality
6 from the Lisp implementation, such as calling a foreign function by
7 name, allocating foreign memory, and dereferencing pointers.
9 More complex tasks like accessing foreign structures can be done in
10 portable "user space" code, making use of the low-level memory access
11 operations defined by the implementation-specific bits.
13 CFFI also aims to be more efficient than UFFI when possible.  In
14 particular, UFFI's use of aliens in CMUCL and SBCL can be tricky to
15 get right.  CFFI avoids this by using system area pointers directly
16 instead of alien objects.  All foreign function definitions and uses
17 should compile without alien-value compiler notes in CMUCL/SBCL.