diff options
Diffstat (limited to 'slib_8.html')
-rw-r--r-- | slib_8.html | 767 |
1 files changed, 0 insertions, 767 deletions
diff --git a/slib_8.html b/slib_8.html deleted file mode 100644 index cddb1d5..0000000 --- a/slib_8.html +++ /dev/null @@ -1,767 +0,0 @@ -<!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"> < </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC278"> > </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_7.html#SEC183"> << </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"> >> </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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 <agj @ alum.mit.edu><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> </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> </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> </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> </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> </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"> < </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC279"> > </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> << </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"> >> </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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> - -<A NAME="Installation"> -</A> -</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"> < </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC280"> > </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> << </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> Up </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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"> < </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC281"> > </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> << </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> Up </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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->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"> < </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC282"> > </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> << </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> Up </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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"> < </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC283"> > </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> << </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> Up </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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> </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> </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"> < </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC284"> > </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> << </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> Up </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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> </td><td class=display><pre style="font-family: serif">From: Matthias Blume <blume @ cs.Princeton.EDU> -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 "vscm.init")</CODE> -<LI> -<CODE>(slib:dump "dumpfile")</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='"/usr/local/vscm/lib/scheme-boot"'. 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><prefix></CODE>, -<P> - -<OL> -<LI> -<CODE>cd</CODE> to the SLIB directory -<LI> -type <CODE>make prefix=<prefix> slib48</CODE>. -<LI> -To install the image, type <CODE>make prefix=<prefix> 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"> < </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC285"> > </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> << </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"> >> </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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> </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"> < </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC286"> > </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> << </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"> >> </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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> </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"> < </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC287"> > </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> << </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> Up </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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"> < </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC288"> > </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> << </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"> >> </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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> - -<A NAME="Copyrights"> -</A> -</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"> < </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC289"> > </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> << </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> Up </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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><my-name></VAR>, hereby affirm that I have placed the software -package <VAR><name></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"> < </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC290"> > </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> << </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> Up </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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"> < </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC291"> > </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> << </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> Up </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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><employer></VAR> Corporation hereby disclaims all copyright -interest in the program <VAR><program></VAR> written by <VAR><name></VAR>. -<P> - -<VAR><employer></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><signature and date></VAR>, -<VAR><name></VAR>, <VAR><title></VAR>, <VAR><employer></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"> < </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_9.html#SEC292"> > </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> << </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="slib_8.html#SEC277"> Up </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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"> << </A>]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> -<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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> |