<sect1>
<title>Purpose</title>
<para> This reference guide describes
- &uffi;, a Lisp package that provides persistent cross-implementation
- support of C-language compatible libraries.
+ &uffi;, a package that provides a cross-implementation
+ interface from Common Lisp to C-language compatible libraries.
</para>
</sect1>
<para>
Every Common Lisp implementation has
a method for interfacing to C-language compatible
- libraries. Unfortunately, these method vary widely amongst
- implementations. Currently, to support multiple implementations,
- developers must write a different interface library for each Common
- Lisp implementation.
+ libraries. These methods are often termed a
+ <emphasis>Foreign Function Library Interface</emphasis>
+ (&ffi;). Unfortunately, these methods vary widely
+ amongst
+ implementations, thus preventing the writing of a portable FFI to a
+particular C-library.
</para>
<para>
&uffi; gathers a common subset of functionality between Common Lisp
</itemizedlist>
</sect1>
- <sect1>
- <title>Installation</title>
- <para>
- Installation is fairly simple. The main requirement is that you
- have a copy of &defsystem;. You can download the latest version
- of &defsystem; from the <ulink
- url="http://www.sourceforge.net/projects/clocc">
- <citetitle>CLOCC</citetitle></ulink>
- CVS tree. After installing &defsystem;, simply
- <function>push</function> the
- directory containing &uffi; into
- <varname>mk:*central-registry*</varname>. Whenever you
-want to load the &uffi; package, use the function
- <computeroutput>(mk:load-system :uffi)</computeroutput>.
- </para>
- </sect1>
+ <sect1>
+ <title>Design Overview</title>
+ <para>
+ &uffi; was designed as a cross-implementation compatible
+ <emphasis>Foreign Function Interface</emphasis>. Necessarily,
+ only a common subset of functionality can be
+ provided. Likewise, not every optimization for that a specific
+ implementation provides can be supported. Wherever possible,
+ though, implementation-specific optimizations are invoked.
+ </para>
+ </sect1>
+
</chapter>