r8205: reformatted
authorKevin M. Rosenberg <kevin@rosenberg.net>
Thu, 13 Nov 2003 22:16:41 +0000 (22:16 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Thu, 13 Nov 2003 22:16:41 +0000 (22:16 +0000)
doc/intro.xml

index 076343b8315c8f035b6ceca6517aaf481a9eb31c..6a384eb7e6374a9fa4e57027e1d47d801c34b73b 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
-               "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
 <!ENTITY % myents SYSTEM "entities.xml">
 %myents;
 ]>
@@ -9,9 +9,10 @@
   <title>Introduction</title>
   <sect1 id="purpose">
     <title>Purpose</title>
-    <para> This reference guide describes
-      &uffi;, a package that provides a cross-implementation
-      interface from Common Lisp to C-language compatible libraries.
+    <para>
+      This reference guide describes &uffi;, a package that provides a
+      cross-implementation interface from Common Lisp to C-language
+      compatible libraries.
     </para>
   </sect1>
   
     <title>Background
     </title>
     <para>
-      Every Common Lisp implementation has
-      a method for interfacing to C-language compatible
-      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. 
+      Every Common Lisp implementation has a method for interfacing to
+      C-language compatible 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
-      implementations. &uffi; wraps this common subset of functionality with
-      it's own syntax and provides macro translation of uffi functions into
-      the specific syntax of supported Common Lisp implementations.
+      &uffi; gathers a common subset of functionality between Common
+      Lisp implementations. &uffi; wraps this common subset of
+      functionality with it's own syntax and provides macro
+      translation of uffi functions into the specific syntax of
+      supported Common Lisp implementations.
     </para>
     <para>
       Developers who use &uffi; to interface with C libraries will
@@ -47,7 +47,7 @@ particular C-library.
     </para>
     <itemizedlist mark="opencircle">
       <listitem><para>&acl; v6.2 on Debian GNU/Linux
-FreeBSD 4.5, Solaris v2.8, and Microsoft Windows XP.</para></listitem>
+      FreeBSD 4.5, Solaris v2.8, and Microsoft Windows XP.</para></listitem>
       <listitem><para>&lw; v4.2 on Debian GNU/Linux and Microsoft Windows XP.</para></listitem>
       <listitem><para>&cmucl; 18d on Debian GNU/Linux, FreeBSD 4.5, and Solaris 2.8</para></listitem>
       <listitem><para>&sbcl; 0.7.8 on Debian GNU/Linux</para></listitem>
@@ -61,53 +61,53 @@ FreeBSD 4.5, Solaris v2.8, and Microsoft Windows XP.</para></listitem>
     </itemizedlist>
   </sect1>
 
-    <sect1 id="design">
-      <title>Design</title>
-      <sect2>
-       <title>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> 
-      </sect2>
+  <sect1 id="design">
+    <title>Design</title>
+    <sect2>
+      <title>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> 
+    </sect2>
 
-      <sect2>
-       <title>Priorities</title>
-       <para>
-         The design of &uffi; is dictated by the order of these priorities:
-       </para>
-       <itemizedlist>
-         <listitem>
-           <para>
-             Code using &uffi; must operate correctly on all
-             supported implementations.
-           </para>
-         </listitem>
-         <listitem>
-           <para>
-             Take advantage of implementation-specific optimizations. Ideally, 
-             there will not a situation where an implementation-specific
-             &ffi; will be chosen due to lack of optimizations in &uffi;.
-           </para>
-         </listitem>
-         <listitem>
-           <para>Provide a simple interface to developers using
-&uffi;.  This priority is quite a bit lower than the above priorities.
-This lower priority is manifest by programmers having to pass types in
-pointer and array dereferencing, needing to use
-<constant>cstring</constant> wrapper functions, and the use of
-ensure-char-character and ensure-char-integer functions. My hope is
-that the developer inconvenience will be outweighed by the generation
-of optimized code that is cross-implementation compatible.
-           </para>
-         </listitem>
-       </itemizedlist>
-      </sect2>
-    </sect1>
+    <sect2>
+      <title>Priorities</title>
+      <para>
+       The design of &uffi; is dictated by the order of these priorities:
+      </para>
+      <itemizedlist>
+       <listitem>
+         <para>
+           Code using &uffi; must operate correctly on all
+           supported implementations.
+         </para>
+       </listitem>
+       <listitem>
+         <para>
+           Take advantage of implementation-specific optimizations. Ideally, 
+           there will not a situation where an implementation-specific
+           &ffi; will be chosen due to lack of optimizations in &uffi;.
+         </para>
+       </listitem>
+       <listitem>
+         <para>Provide a simple interface to developers using
+         &uffi;.  This priority is quite a bit lower than the above priorities.
+         This lower priority is manifest by programmers having to pass types in
+         pointer and array dereferencing, needing to use
+         <constant>cstring</constant> wrapper functions, and the use of
+         ensure-char-character and ensure-char-integer functions. My hope is
+         that the developer inconvenience will be outweighed by the generation
+         of optimized code that is cross-implementation compatible.
+         </para>
+       </listitem>
+      </itemizedlist>
+    </sect2>
+  </sect1>
 
 </chapter>