r1518: Initial revision
[uffi.git] / doc / intro.sgml
1 <!-- -*- DocBook -*- -->
2
3 <chapter>
4   <title>Introduction</title>
5   <sect1>
6     <title>Purpose</title>
7     <para> This reference guide describes
8       &uffi;, a Lisp package that provides persistent cross-implementation
9       support of C-language compatible libraries.
10     </para>
11   </sect1>
12
13   <sect1>
14     <title>Background
15     </title>
16     <para>
17       Every Common Lisp implementation has
18       a method for interfacing to C-language compatible
19       libraries. Unfortunately, these method vary widely amongst
20       implementations. Currently, to support multiple implementations,
21       developers must write a different interface library for each Common
22       Lisp implementation.
23     </para>
24     <para>
25       &uffi; gathers a common subset of functionality between Common Lisp
26       implementations. &uffi; wraps this common subset of functionality with
27       it's own syntax and provides macro translation of uffi functions into
28       the specific syntax of supported Common Lisp implementations.
29     </para>
30     <para>
31       Developers who use &uffi; to interface with C libraries will
32       automatically have their code function in each of uffi's supported
33       implementations.
34     </para>
35   </sect1>
36
37   <sect1>
38     <title>Supported Implementations</title> 
39     <para> The primary tested and supported platforms for &uffi; are: 
40     </para>
41     <itemizedlist mark="opencircle">
42       <listitem><para>&acl; v6.1 on Redhat Linux 7.2 and Microsoft Windows.</para></listitem>
43       <listitem><para>&lw; v4.2 on Redhat Linux 7.2 and Microsoft Windows.</para></listitem>
44       <listitem><para>&cmucl; 18c on Redhat Linux 7.2.</para></listitem>
45     </itemizedlist>
46   </sect1>
47
48   <sect1>
49     <title>Installation</title>
50     <para>
51       Installation is fairly simple. The main requirement is that you
52       have a copy of &defsystem;. You can download the latest version
53       of &defsystem; from the <ulink
54       url="http://www.sourceforge.net/projects/clocc">
55       <citetitle>CLOCC</citetitle></ulink>
56       CVS tree. After installing &defsystem;, simply
57       <function>push</function> the
58       directory containing &uffi; into
59       <varname>mk:*central-registry*</varname>. Whenever you
60 want to load the &uffi; package, use the function
61       <computeroutput>(mk:oos :uffi 'load)</computeroutput>.
62     </para>
63   </sect1>
64 </chapter>