lightly edited for &SBCL;, and substituted into this manual. But in
the meantime, the original &CMUCL; manual is still 95+% correct for
the &SBCL; version of the foreign function interface. (The main
-difference is that the package names have changed from
-<quote><literal>ALIEN</></> and <quote><literal>C-CALL</></> to
-<quote><literal>SB-ALIEN</></> and <quote><literal>SB-C-CALL</></>.)
+difference is that the package names have changed. CMU CL's FFI
+is in two packages named <quote><literal>ALIEN</></> and
+<quote><literal>C-CALL</></>. The corresponding SBCL FFI is
+in a single package named
+<quote><literal>SB-ALIEN</></>.)
<!-- FIXME: Oh, and I seem to remember that the CMUCL manual
was out of date about how to test for a null pointer,
there's a builtin operator to do it, you don't need to
do the nasty idiom the manual says you need to do. -->
<!-- FIXME: Also, the CMU CL alien documentation claims you
- can just do (DEFINE-ALIEN-VARIABLE "errno" INT), which fails
- with modern multithreading hacks. -->
- <!-- FIXME: Also, LOAD-FOREIGN isn't implemented as of sbcl-0.6.7,
- but LOAD-1-FOREIGN is. -->
+ can just do (DEFINE-ALIEN-VARIABLE "errno" INT), but it's
+ wrong. That fails with the multithreading hacks hacks
+ now built into the C library. -->
+ <!-- FIXME: Also, we support not only LOAD-FOREIGN but
+ also LOAD-1-FOREIGN. -->
See the sections
<itemizedlist>
<listitem><para>Type Translations</></>