r1579: *** empty log message ***
[uffi.git] / doc / intro.sgml
index d432b9f218ff03fa9f237913cd45e99046046c56..df58ab6683625a9f0144e945f97ab212b7cbd7f5 100644 (file)
@@ -5,8 +5,8 @@
   <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>