The Foreign Function Interface</> <para>FIXME: The material in the &CMUCL; manual about the foreign function interface should be reviewed, reformatted in DocBook, 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</></>.) <!-- 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 (DEF-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. --> See the sections <itemizedlist> <listitem><para>Type Translations</></> <listitem><para>System Area Pointers</></> <listitem><para>Alien Objects</></> <listitem><para>Alien Types</></> <listitem><para>Alien Operations</></> <listitem><para>Alien Variables</></> <listitem><para>Alien Function Calls</></> </itemizedlist> </para> </chapter>