summaryrefslogtreecommitdiffstats
path: root/slib_8.html
diff options
context:
space:
mode:
Diffstat (limited to 'slib_8.html')
-rw-r--r--slib_8.html767
1 files changed, 767 insertions, 0 deletions
diff --git a/slib_8.html b/slib_8.html
new file mode 100644
index 0000000..cddb1d5
--- /dev/null
+++ b/slib_8.html
@@ -0,0 +1,767 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html40/loose.dtd">
+<HTML>
+<!-- Created on January, 10 2005 by texi2html 1.66 -->
+<!--
+Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
+ Karl Berry <karl@freefriends.org>
+ Olaf Bachmann <obachman@mathematik.uni-kl.de>
+ and many others.
+Maintained by: Many creative people <dev@texi2html.cvshome.org>
+Send bugs and suggestions to <users@texi2html.cvshome.org>
+
+-->
+<HEAD>
+<TITLE>SLIB: About SLIB</TITLE>
+
+<META NAME="description" CONTENT="SLIB: About SLIB">
+<META NAME="keywords" CONTENT="SLIB: About SLIB">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<META NAME="Generator" CONTENT="texi2html 1.66">
+
+</HEAD>
+
+<BODY LANG="en" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
+
+<A NAME="SEC277"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_7.html#SEC276"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC278"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_7.html#SEC183"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib.html#SEC_Top"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_9.html#SEC292"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_toc.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_abt.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H1> 8. About SLIB </H1>
+<!--docid::SEC277::-->
+<P>
+
+More people than I can name have contributed to SLIB. Thanks to all of
+you!
+</P>
+<P>
+
+<BLOCKQUOTE>
+SLIB 3a1, released January 2005.<BR>
+Aubrey Jaffer &lt;agj @ alum.mit.edu&gt;<BR>
+<I>Hyperactive Software</I> -- The Maniac Inside!<BR>
+<A HREF="http://swissnet.ai.mit.edu/~jaffer/SLIB.html">http://swissnet.ai.mit.edu/~jaffer/SLIB.html</A>
+</BLOCKQUOTE>
+<P>
+
+<TABLE BORDER="0" CELLSPACING="0">
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="slib_8.html#SEC278">8.1 Installation</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to install SLIB on your system.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="slib_8.html#SEC284">8.2 Porting</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">SLIB to new platforms.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="slib_8.html#SEC285">8.3 Coding Guidelines</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to write modules for SLIB.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="slib_8.html#SEC287">8.4 Copyrights</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Intellectual propery issues.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="slib_8.html#SEC291">8.5 About this manual</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
+</TABLE>
+<P>
+
+<A NAME="Installation"></A>
+<HR SIZE="6">
+<A NAME="SEC278"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC279"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC284"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_toc.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_abt.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 8.1 Installation </H2>
+<!--docid::SEC278::-->
+<P>
+
+&lt;A NAME=&quot;Installation&quot;&gt;
+&lt;/A&gt;
+</P>
+<P>
+
+<A NAME="IDX1639"></A>
+<A NAME="IDX1640"></A>
+There are four parts to installation:
+</P>
+<P>
+
+<UL>
+<LI>
+Unpack the SLIB distribution.
+<LI>
+Configure the Scheme implementation(s) to locate the SLIB directory.
+<LI>
+Arrange for Scheme implementation to load its SLIB initialization file.
+<LI>
+Build the SLIB catalog for the Scheme implementation.
+</UL>
+<P>
+
+<HR SIZE="6">
+<A NAME="SEC279"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC278"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC280"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_toc.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_abt.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 8.1.1 Unpacking the SLIB Distribution </H3>
+<!--docid::SEC279::-->
+<P>
+
+If the SLIB distribution is a Linux RPM, it will create the SLIB
+directory `<TT>/usr/share/slib</TT>'.
+</P>
+<P>
+
+If the SLIB distribution is a ZIP file, unzip the distribution to create
+the SLIB directory. Locate this `<TT>slib</TT>' directory either in your
+home directory (if only you will use this SLIB installation); or put it
+in a location where libraries reside on your system. On unix systems
+this might be `<TT>/usr/share/slib</TT>', `<TT>/usr/local/lib/slib</TT>', or
+`<TT>/usr/lib/slib</TT>'. If you know where SLIB should go on other
+platforms, please inform agj @ alum.mit.edu.
+</P>
+<P>
+
+<HR SIZE="6">
+<A NAME="SEC280"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC279"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC281"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_toc.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_abt.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 8.1.2 Configure Scheme Implementation to Locate SLIB </H3>
+<!--docid::SEC280::-->
+<P>
+
+If the Scheme implementation supports <CODE>getenv</CODE>, then the value of
+the shell environment variable <VAR>SCHEME_LIBRARY_PATH</VAR> will be used
+for <CODE>(library-vicinity)</CODE> if it is defined. Currently, Chez, Elk,
+MITScheme, scheme-&gt;c, VSCM, and SCM support <CODE>getenv</CODE>. Scheme48
+supports <CODE>getenv</CODE> but does not use it for determining
+<CODE>library-vicinity</CODE>. (That is done from the Makefile.)
+</P>
+<P>
+
+The <CODE>(library-vicinity)</CODE> can also be specified from the SLIB
+initialization file or by implementation-specific means.
+</P>
+<P>
+
+<HR SIZE="6">
+<A NAME="SEC281"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC280"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC282"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_toc.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_abt.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 8.1.3 Loading SLIB Initialization File </H3>
+<!--docid::SEC281::-->
+<P>
+
+Check the manifest in `<TT>README</TT>' to find a configuration file for
+your Scheme implementation. Initialization files for most IEEE P1178
+compliant Scheme Implementations are included with this distribution.
+</P>
+<P>
+
+You should check the definitions of <CODE>software-type</CODE>,
+<CODE>scheme-implementation-version</CODE>,
+<CODE>implementation-vicinity</CODE>,
+and <CODE>library-vicinity</CODE> in the initialization file. There are
+comments in the file for how to configure it.
+</P>
+<P>
+
+Once this is done, modify the startup file for your Scheme
+implementation to <CODE>load</CODE> this initialization file.
+</P>
+<P>
+
+<HR SIZE="6">
+<A NAME="SEC282"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC281"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC283"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_toc.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_abt.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 8.1.4 Build New SLIB Catalog for Implementation </H3>
+<!--docid::SEC282::-->
+<P>
+
+When SLIB is first used from an implementation, a file named
+`<TT>slibcat</TT>' is written to the <CODE>implementation-vicinity</CODE> for that
+implementation. Because users may lack permission to write in
+<CODE>implementation-vicinity</CODE>, it is good practice to build the new
+catalog when installing SLIB.
+</P>
+<P>
+
+To build (or rebuild) the catalog, start the Scheme implementation (with
+SLIB), then:
+</P>
+<P>
+
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>(require 'new-catalog)
+</pre></td></tr></table><P>
+
+The catalog also supports color-name dictionaries. With an
+SLIB-installed scheme implementation, type:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>(require 'color-names)
+(make-slib-color-name-db)
+(require 'new-catalog)
+(slib:exit)
+</pre></td></tr></table><P>
+
+<HR SIZE="6">
+<A NAME="SEC283"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC282"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC284"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_toc.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_abt.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 8.1.5 Implementation-specific Instructions </H3>
+<!--docid::SEC283::-->
+<P>
+
+Multiple implementations of Scheme can all use the same SLIB directory.
+Simply configure each implementation's initialization file as outlined
+above.
+</P>
+<P>
+
+<A NAME="IDX1641"></A>
+</P>
+<DL>
+<DT><U>Implementation:</U> <B>SCM</B>
+<DD>The SCM implementation does not require any initialization file as SLIB
+support is already built into SCM. See the documentation with SCM for
+installation instructions.
+</DL>
+<P>
+
+<A NAME="IDX1642"></A>
+</P>
+<DL>
+<DT><U>Implementation:</U> <B>VSCM</B>
+<DD><TABLE><tr><td>&nbsp;</td><td class=display><pre style="font-family: serif">From: Matthias Blume &lt;blume @ cs.Princeton.EDU&gt;
+Date: Tue, 1 Mar 1994 11:42:31 -0500
+</pre></td></tr></table><P>
+
+Disclaimer: The code below is only a quick hack. If I find some time to
+spare I might get around to make some more things work.
+</P>
+<P>
+
+You have to provide `<TT>vscm.init</TT>' as an explicit command line
+argument. Since this is not very nice I would recommend the following
+installation procedure:
+</P>
+<P>
+
+<OL>
+<LI>
+run scheme
+<LI>
+<CODE>(load &quot;vscm.init&quot;)</CODE>
+<LI>
+<CODE>(slib:dump &quot;dumpfile&quot;)</CODE>
+<LI>
+mv dumpfile place-where-vscm-standard-bootfile-resides
+e.g. mv dumpfile /usr/local/vscm/lib/scheme-boot
+(In this case vscm should have been compiled with flag
+-DDEFAULT_BOOTFILE='&quot;/usr/local/vscm/lib/scheme-boot&quot;'. See Makefile
+(definition of DDP) for details.)
+</OL>
+<P>
+
+</P>
+</DL>
+<P>
+
+<A NAME="IDX1643"></A>
+</P>
+<DL>
+<DT><U>Implementation:</U> <B>Scheme48</B>
+<DD>To make a Scheme48 image for an installation under <CODE>&lt;prefix&gt;</CODE>,
+<P>
+
+<OL>
+<LI>
+<CODE>cd</CODE> to the SLIB directory
+<LI>
+type <CODE>make prefix=&lt;prefix&gt; slib48</CODE>.
+<LI>
+To install the image, type <CODE>make prefix=&lt;prefix&gt; install48</CODE>. This
+will also create a shell script with the name <CODE>slib48</CODE> which will
+invoke the saved image.
+</OL>
+</DL>
+<P>
+
+<A NAME="IDX1644"></A>
+</P>
+<DL>
+<DT><U>Implementation:</U> <B>PLT Scheme</B>
+<DD><A NAME="IDX1645"></A>
+<DT><U>Implementation:</U> <B>DrScheme</B>
+<DD><A NAME="IDX1646"></A>
+<DT><U>Implementation:</U> <B>MzScheme</B>
+<DD><P>
+
+The `<TT>init.ss</TT>' file in the _slibinit_ collection is an SLIB
+initialization file.
+</P>
+<P>
+
+To use SLIB in MzScheme, set the <VAR>SCHEME_LIBRARY_PATH</VAR> environment
+variable to the installed SLIB location; then invoke MzScheme thus:
+</P>
+<P>
+
+<CODE>mzscheme -f ${SCHEME_LIBRARY_PATH}DrScheme.init</CODE>
+</P>
+</DL>
+<P>
+
+<A NAME="IDX1647"></A>
+</P>
+<DL>
+<DT><U>Implementation:</U> <B>MIT Scheme</B>
+<DD><CODE>scheme -load ${SCHEME_LIBRARY_PATH}mitscheme.init</CODE>
+</DL>
+<P>
+
+<A NAME="IDX1648"></A>
+</P>
+<DL>
+<DT><U>Implementation:</U> <B>Guile</B>
+<DD><CODE>guile -l ${SCHEME_LIBRARY_PATH}guile.init</CODE>
+</DL>
+<P>
+
+<A NAME="Porting"></A>
+<HR SIZE="6">
+<A NAME="SEC284"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC283"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC285"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC285"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_toc.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_abt.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 8.2 Porting </H2>
+<!--docid::SEC284::-->
+<P>
+
+If there is no initialization file for your Scheme implementation, you
+will have to create one. Your Scheme implementation must be largely
+compliant with
+<TABLE><tr><td>&nbsp;</td><td class=example><pre><CITE>IEEE Std 1178-1990</CITE>,
+<CITE>Revised^4 Report on the Algorithmic Language Scheme</CITE>, or
+<CITE>Revised^5 Report on the Algorithmic Language Scheme</CITE>
+</pre></td></tr></table>in order to support SLIB. <A NAME="DOCF7" HREF="slib_fot.html#FOOT7">(7)</A>
+<P>
+
+`<TT>Template.scm</TT>' is an example configuration file. The comments
+inside will direct you on how to customize it to reflect your system.
+Give your new initialization file the implementation's name with
+`<TT>.init</TT>' appended. For instance, if you were porting
+<CODE>foo-scheme</CODE> then the initialization file might be called
+`<TT>foo.init</TT>'.
+</P>
+<P>
+
+Your customized version should then be loaded as part of your scheme
+implementation's initialization. It will load `<TT>require.scm</TT>' from
+the library; this will allow the use of <CODE>provide</CODE>,
+<CODE>provided?</CODE>, and <CODE>require</CODE> along with the <EM>vicinity</EM>
+functions (these functions are documented in the sections
+<A HREF="slib_1.html#SEC2">1.1 Feature</A> and <A HREF="slib_1.html#SEC3">1.2 Require</A>). The rest of the library will then
+be accessible in a system independent fashion.
+</P>
+<P>
+
+Please mail new working configuration files to <CODE>agj @ alum.mit.edu</CODE>
+so that they can be included in the SLIB distribution.
+</P>
+<P>
+
+<A NAME="Coding Guidelines"></A>
+<HR SIZE="6">
+<A NAME="SEC285"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC284"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC286"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC287"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_toc.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_abt.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 8.3 Coding Guidelines </H2>
+<!--docid::SEC285::-->
+<P>
+
+All library packages are written in IEEE P1178 Scheme and assume that a
+configuration file and `<TT>require.scm</TT>' package have already been
+loaded. Other versions of Scheme can be supported in library packages
+as well by using, for example, <CODE>(provided? 'r3rs)</CODE> or
+<CODE>(require 'r3rs)</CODE> (see section <A HREF="slib_1.html#SEC3">1.2 Require</A>).
+<A NAME="IDX1649"></A>
+</P>
+<P>
+
+If a procedure defined in a module is called by other procedures in
+that module, then those procedures should instead call an alias
+defined in that module:
+</P>
+<P>
+
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>(define module-name:foo foo)
+</pre></td></tr></table><P>
+
+The module name and `<SAMP>:</SAMP>' should prefix that symbol for the
+internal name. Do not export internal aliases.
+</P>
+<P>
+
+A procedure is exported from a module by putting Schmooz-style
+comments (see section <A HREF="slib_4.html#SEC87">4.14 Schmooz</A>) or `<SAMP>;@</SAMP>' at the beginning of the line
+immediately preceding the definition (<CODE>define</CODE>,
+<CODE>define-syntax</CODE>, or <CODE>defmacro</CODE>). Modules, exports and other
+relevant issues are discussed in <A HREF="slib_1.html#SEC7">1.6 Compiling Scheme</A>.
+</P>
+<P>
+
+Code submitted for inclusion in SLIB should not duplicate (more than
+one) routines already in SLIB files. Use <CODE>require</CODE> to force
+those library routines to be used by your package.
+</P>
+<P>
+
+Documentation should be provided in Emacs Texinfo format if possible,
+but documentation must be provided.
+</P>
+<P>
+
+Your package will be released sooner with SLIB if you send me a file
+which tests your code. Please run this test <EM>before</EM> you send me
+the code!
+</P>
+<P>
+
+<HR SIZE="6">
+<A NAME="SEC286"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC285"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC287"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_toc.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_abt.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 8.3.1 Modifications </H3>
+<!--docid::SEC286::-->
+<P>
+
+Please document your changes. A line or two for `<TT>ChangeLog</TT>' is
+sufficient for simple fixes or extensions. Look at the format of
+`<TT>ChangeLog</TT>' to see what information is desired. Please send me
+<CODE>diff</CODE> files from the latest SLIB distribution (remember to send
+<CODE>diff</CODE>s of `<TT>slib.texi</TT>' and `<TT>ChangeLog</TT>'). This makes for
+less email traffic and makes it easier for me to integrate when more
+than one person is changing a file (this happens a lot with
+`<TT>slib.texi</TT>' and `<SAMP>*.init</SAMP>' files).
+</P>
+<P>
+
+If someone else wrote a package you want to significantly modify, please
+try to contact the author, who may be working on a new version. This
+will insure against wasting effort on obsolete versions.
+</P>
+<P>
+
+Please <EM>do not</EM> reformat the source code with your favorite
+beautifier, make 10 fixes, and send me the resulting source code. I do
+not have the time to fish through 10000 diffs to find your 10 real fixes.
+</P>
+<P>
+
+<A NAME="Copyrights"></A>
+<HR SIZE="6">
+<A NAME="SEC287"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC286"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC288"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC291"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_toc.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_abt.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 8.4 Copyrights </H2>
+<!--docid::SEC287::-->
+<P>
+
+&lt;A NAME=&quot;Copyrights&quot;&gt;
+&lt;/A&gt;
+</P>
+<P>
+
+This section has instructions for SLIB authors regarding copyrights.
+<A NAME="IDX1650"></A>
+</P>
+<P>
+
+Each package in SLIB must either be in the public domain, or come with a
+statement of terms permitting users to copy, redistribute and modify it.
+The comments at the beginning of `<TT>require.scm</TT>' and
+`<TT>macwork.scm</TT>' illustrate copyright and appropriate terms.
+</P>
+<P>
+
+If your code or changes amount to less than about 10 lines, you do not
+need to add your copyright or send a disclaimer.
+</P>
+<P>
+
+<HR SIZE="6">
+<A NAME="SEC288"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC287"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC289"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_toc.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_abt.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 8.4.1 Putting code into the Public Domain </H3>
+<!--docid::SEC288::-->
+<P>
+
+In order to put code in the public domain you should sign a copyright
+disclaimer and send it to the SLIB maintainer. Contact
+agj @ alum.mit.edu for the address to mail the disclaimer to.
+</P>
+<P>
+
+<BLOCKQUOTE>
+I, <VAR>&lt;my-name&gt;</VAR>, hereby affirm that I have placed the software
+package <VAR>&lt;name&gt;</VAR> in the public domain.
+<P>
+
+I affirm that I am the sole author and sole copyright holder for the
+software package, that I have the right to place this software package
+in the public domain, and that I will do nothing to undermine this
+status in the future.
+<PRE> <VAR>signature and date</VAR>
+</PRE>
+</BLOCKQUOTE>
+<P>
+
+This wording assumes that you are the sole author. If you are not the
+sole author, the wording needs to be different. If you don't want to
+be bothered with sending a letter every time you release or modify a
+module, make your letter say that it also applies to your future
+revisions of that module.
+</P>
+<P>
+
+Make sure no employer has any claim to the copyright on the work you
+are submitting. If there is any doubt, create a copyright disclaimer
+and have your employer sign it. Mail the signed disclaimer to the
+SLIB maintainer. Contact agj @ alum.mit.edu for the address to mail
+the disclaimer to. An example disclaimer follows.
+</P>
+<P>
+
+<HR SIZE="6">
+<A NAME="SEC289"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC288"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC290"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_toc.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_abt.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 8.4.2 Explicit copying terms </H3>
+<!--docid::SEC289::-->
+<P>
+
+If you submit more than about 10 lines of code which you are not
+placing into the Public Domain (by sending me a disclaimer) you need
+to:
+</P>
+<P>
+
+<UL>
+<LI>
+Arrange that your name appears in a copyright line for the appropriate
+year. Multiple copyright lines are acceptable.
+<LI>
+With your copyright line, specify any terms you require to be
+different from those already in the file.
+<LI>
+Make sure no employer has any claim to the copyright on the work you
+are submitting. If there is any doubt, create a copyright disclaimer
+and have your employer sign it. Mail the signed disclaim to the SLIB
+maintainer. Contact agj @ alum.mit.edu for the address to mail the
+disclaimer to.
+</UL>
+<P>
+
+<HR SIZE="6">
+<A NAME="SEC290"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC289"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC291"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_toc.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_abt.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 8.4.3 Example: Company Copyright Disclaimer </H3>
+<!--docid::SEC290::-->
+<P>
+
+This disclaimer should be signed by a vice president or general
+manager of the company. If you can't get at them, anyone else
+authorized to license out software produced there will do. Here is a
+sample wording:
+</P>
+<P>
+
+<BLOCKQUOTE>
+<VAR>&lt;employer&gt;</VAR> Corporation hereby disclaims all copyright
+interest in the program <VAR>&lt;program&gt;</VAR> written by <VAR>&lt;name&gt;</VAR>.
+<P>
+
+<VAR>&lt;employer&gt;</VAR> Corporation affirms that it has no other intellectual
+property interest that would undermine this release, and will do
+nothing to undermine it in the future.
+</P>
+<P>
+
+<PRE><VAR>&lt;signature and date&gt;</VAR>,
+<VAR>&lt;name&gt;</VAR>, <VAR>&lt;title&gt;</VAR>, <VAR>&lt;employer&gt;</VAR> Corporation
+</PRE>
+</BLOCKQUOTE>
+<P>
+
+<A NAME="About this manual"></A>
+<HR SIZE="6">
+<A NAME="SEC291"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC290"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_9.html#SEC292"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_toc.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_abt.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 8.5 About this manual </H2>
+<!--docid::SEC291::-->
+<P>
+
+<UL>
+<LI>
+Entries that are labeled as Functions are called for their return
+values. Entries that are labeled as Procedures are called primarily for
+their side effects.
+<P>
+
+</P>
+<LI>
+Examples in this text were produced using the <CODE>scm</CODE> Scheme
+implementation.
+<P>
+
+</P>
+<LI>
+At the beginning of each section, there is a line that looks like
+<A NAME="IDX1651"></A>
+<CODE>(require 'feature)</CODE>. Include this line in your code prior to
+using the package.
+</UL>
+<P>
+
+<A NAME="Index"></A>
+<HR SIZE="6">
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_toc.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_abt.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<BR>
+<FONT SIZE="-1">
+This document was generated
+by <I>Steve Langasek</I> on <I>January, 10 2005</I>
+using <A HREF="http://texi2html.cvshome.org"><I>texi2html</I></A>
+</FONT>
+
+</BODY>
+</HTML>