1 <!-- -*- DocBook -*- -->
4 <title>Introduction</title>
7 <para> This reference guide describes
8 &uffi;, a Lisp package that provides persistent cross-implementation
9 support of C-language compatible libraries.
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
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.
31 Developers who use &uffi; to interface with C libraries will
32 automatically have their code function in each of uffi's supported
38 <title>Supported Implementations</title>
39 <para> The primary tested and supported platforms for &uffi; are:
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>
49 <title>Design Overview</title>
51 &uffi; was designed as a cross-implementation compatible
52 <emphasis>Foreign Function Interface</emphasis>. Necessarily,
53 only a common subset of functionality can be
54 provided. Likewise, not every optimization for that a specific
55 implementation provides can be supported. Wherever possible,
56 though, implementation-specific optimizations are invoked.