Update README.
authorLuís Oliveira <loliveira@common-lisp.net>
Sun, 24 Feb 2013 13:50:49 +0000 (13:50 +0000)
committerLuís Oliveira <loliveira@common-lisp.net>
Sun, 24 Feb 2013 13:51:20 +0000 (13:51 +0000)
It's still a bit oriented towards the CFFI developer, rather than
potential users, but at least it doesn't revolve around a comparison
against UFFI which is not as relevant as it once was.

README

diff --git a/README b/README
index b76720d..ec40e1c 100644 (file)
--- a/README
+++ b/README
@@ -1,20 +1,15 @@
-
 CFFI, the Common Foreign Function Interface, purports to be a portable
-foreign function interface, similar in spirit to UFFI.
-
-Unlike UFFI, CFFI requires only a small set of low-level functionality
-from the Lisp implementation, such as calling a foreign function by
-name, allocating foreign memory, and dereferencing pointers.
-
-More complex tasks like accessing foreign structures can be done in
-portable "user space" code, making use of the low-level memory access
-operations defined by the implementation-specific bits.
-
-CFFI also aims to be more efficient than UFFI when possible.  In
-particular, UFFI's use of aliens in CMUCL and SBCL can be tricky to
-get right.  CFFI avoids this by using system area pointers directly
-instead of alien objects.  All foreign function definitions and uses
-should compile without alien-value compiler notes in CMUCL/SBCL.
+foreign function interface for Common Lisp. The CFFI library is
+composed of a Lisp-implementation-specific backend in the CFFI-SYS
+package, and a portable frontend in the CFFI package.
+
+The CFFI-SYS backend package defines a low-level interface to the
+native FFI support in the Lisp implementation. It offers operators for
+allocating and dereferencing foreign memory, calling foreign
+functions, and loading shared libraries. The CFFI frontend provides a
+declarative interface for defining foreign functions, structures,
+typedefs, enumerated types, etc. It is implemented in portable ANSI CL
+making use of the low-level operators exported by CFFI-SYS.
 
 Please consult the manual for further details, including installation
 instructions.