Diff of /impnotes/system.html [000000] .. [458129] Maximize Restore

  Switch to side-by-side view

--- a
+++ b/impnotes/system.html
@@ -0,0 +1,2206 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<HTML
+><HEAD
+><TITLE
+>System Construction
+   [CLHS-24]</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REV="MADE"
+HREF="mailto:clisp-list@sf.net"><LINK
+REL="HOME"
+TITLE="Implementation Notes for GNU CLISP."
+HREF="impnotes-top.html"><LINK
+REL="UP"
+TITLE="Chapters or the Common Lisp HyperSpec"
+HREF="clhs-chapters.html"><LINK
+REL="PREVIOUS"
+TITLE="Function READTABLE-CASE"
+HREF="rt-case.html"><LINK
+REL="NEXT"
+TITLE="Environment
+   [CLHS-25]"
+HREF="environment.html"><LINK
+REL="STYLESHEET"
+TYPE="text/css"
+HREF="impnotes.css"></HEAD
+><BODY
+CLASS="chapter"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+SUMMARY="Header navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>Implementation Notes for <A
+HREF="http://www.gnu.org"
+TARGET="_top"
+>GNU</A
+> <A
+HREF="http://clisp.cons.org"
+TARGET="_top"
+><B
+CLASS="command"
+>CLISP</B
+></A
+>.: These notes document <A
+HREF="http://clisp.cons.org"
+TARGET="_top"
+><B
+CLASS="command"
+>CLISP</B
+></A
+> version 2.31.</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="rt-case.html"
+ACCESSKEY="P"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="environment.html"
+ACCESSKEY="N"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="chapter"
+><H1
+><A
+NAME="system"
+></A
+>Chapter 24. System Construction
+   <A
+HREF="http://www.lisp.org/HyperSpec/Body/chap-24.html"
+TARGET="_top"
+>[CLHS-24]</A
+></H1
+><DIV
+CLASS="TOC"
+><DL
+><DT
+><B
+>Table of Contents</B
+></DT
+><DT
+>24.1. <A
+HREF="system.html#system-dict"
+>The System Construction Dictionary
+   <A
+HREF="http://www.lisp.org/HyperSpec/Body/sec_the_syste_n_dictionary.html"
+TARGET="_top"
+>[CLHS-24.2]</A
+></A
+></DT
+></DL
+></DIV
+><DIV
+CLASS="section"
+><H1
+CLASS="section"
+><A
+NAME="system-dict"
+></A
+>24.1. The System Construction Dictionary
+   <A
+HREF="http://www.lisp.org/HyperSpec/Body/sec_the_syste_n_dictionary.html"
+TARGET="_top"
+>[CLHS-24.2]</A
+></H1
+><P
+ALIGN="justify"
+>The compiler can be called not only by the functions <A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_compile.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>COMPILE</TT
+></A
+>,
+ <A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_compile-file.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>COMPILE-FILE</TT
+></A
+> and <A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_disassemble.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>DISASSEMBLE</TT
+></A
+>, but also by the declaration <A
+HREF="declarations.html#compile-decl"
+><TT
+CLASS="sexp"
+>(compile)</TT
+></A
+>.</P
+><DIV
+CLASS="section"
+><H2
+CLASS="section"
+><A
+NAME="compilefile"
+></A
+>24.1.1. Function <A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_compile-file.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>COMPILE-FILE</TT
+></A
+></H2
+><P
+ALIGN="justify"
+><TT
+CLASS="sexp"
+>(<A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_compile-file.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>COMPILE-FILE</TT
+></A
+>
+  <TT
+CLASS="replaceable"
+><I
+>input-file</I
+></TT
+> <A
+HREF="http://www.lisp.org/HyperSpec/Body/sec_3-4-1.html"
+TARGET="_top"
+><TT
+CLASS="literal"
+>&#38;KEY</TT
+></A
+> <TT
+CLASS="constant"
+>:OUTPUT-FILE</TT
+>
+  :LISTING <TT
+CLASS="constant"
+>:WARNINGS</TT
+> <TT
+CLASS="constant"
+>:VERBOSE</TT
+> <TT
+CLASS="constant"
+>:PRINT</TT
+> <A
+HREF="stream-dict.html#extfmt"
+><TT
+CLASS="constant"
+>:EXTERNAL-FORMAT</TT
+></A
+>)</TT
+>
+compiles a file to platform-independent bytecode.</P
+><P
+></P
+><DIV
+CLASS="variablelist"
+><DL
+><DT
+><TT
+CLASS="replaceable"
+><I
+>input-file</I
+></TT
+></DT
+><DD
+><P
+ALIGN="justify"
+>should be a <A
+HREF="filename-dict.html#path-des"
+>pathname designator</A
+>.
+ </P
+></DD
+><DT
+><TT
+CLASS="constant"
+>:OUTPUT-FILE</TT
+></DT
+><DD
+><P
+ALIGN="justify"
+>should be <A
+HREF="http://www.lisp.org/HyperSpec/Body/convar_nil.html"
+TARGET="_top"
+><TT
+CLASS="constant"
+>NIL</TT
+></A
+> or <A
+HREF="http://www.lisp.org/HyperSpec/Body/convar_t.html"
+TARGET="_top"
+><TT
+CLASS="constant"
+>T</TT
+></A
+> or a <A
+HREF="filename-dict.html#path-des"
+>pathname designator</A
+> or an
+   <A
+HREF="http://www.lisp.org/HyperSpec/Body/glo_o.html#output"
+TARGET="_top"
+>output</A
+> <A
+HREF="http://www.lisp.org/HyperSpec/Body/syscla_stream.html"
+TARGET="_top"
+><TT
+CLASS="classname"
+>STREAM</TT
+></A
+>.  The default is <A
+HREF="http://www.lisp.org/HyperSpec/Body/convar_t.html"
+TARGET="_top"
+><TT
+CLASS="constant"
+>T</TT
+></A
+>.</P
+></DD
+><DT
+><TT
+CLASS="constant"
+>:LISTING</TT
+></DT
+><DD
+><P
+ALIGN="justify"
+>should be <A
+HREF="http://www.lisp.org/HyperSpec/Body/convar_nil.html"
+TARGET="_top"
+><TT
+CLASS="constant"
+>NIL</TT
+></A
+> or <A
+HREF="http://www.lisp.org/HyperSpec/Body/convar_t.html"
+TARGET="_top"
+><TT
+CLASS="constant"
+>T</TT
+></A
+> or a <A
+HREF="filename-dict.html#path-des"
+>pathname designator</A
+> or an
+   <A
+HREF="http://www.lisp.org/HyperSpec/Body/glo_o.html#output"
+TARGET="_top"
+>output</A
+> <A
+HREF="http://www.lisp.org/HyperSpec/Body/syscla_stream.html"
+TARGET="_top"
+><TT
+CLASS="classname"
+>STREAM</TT
+></A
+>.  The default is <A
+HREF="http://www.lisp.org/HyperSpec/Body/convar_nil.html"
+TARGET="_top"
+><TT
+CLASS="constant"
+>NIL</TT
+></A
+>.</P
+></DD
+><DT
+><TT
+CLASS="constant"
+>:WARNINGS</TT
+></DT
+><DD
+><P
+ALIGN="justify"
+>specifies whether warnings should also appear on the
+   screen.</P
+></DD
+><DT
+><TT
+CLASS="constant"
+>:VERBOSE</TT
+></DT
+><DD
+><P
+ALIGN="justify"
+>specifies whether error messages should also appear
+   on the screen.</P
+></DD
+><DT
+><TT
+CLASS="constant"
+>:PRINT</TT
+></DT
+><DD
+><P
+ALIGN="justify"
+>specifies whether an indication which forms are
+   being compiled should appear on the screen.
+</P
+></DD
+></DL
+></DIV
+><P
+ALIGN="justify"
+>The variables <STRONG
+CLASS="FIRST"
+><I
+CLASS="firstterm"
+><A
+HREF="system.html#compilefile"
+><TT
+CLASS="varname"
+>CUSTOM:*COMPILE-WARNINGS*</TT
+></A
+></I
+></STRONG
+>,
+ <A
+HREF="http://www.lisp.org/HyperSpec/Body/var_stcompile_le-verbosest.html"
+TARGET="_top"
+><TT
+CLASS="varname"
+>*COMPILE-VERBOSE*</TT
+></A
+>, <A
+HREF="http://www.lisp.org/HyperSpec/Body/var_stcompile_le-verbosest.html"
+TARGET="_top"
+><TT
+CLASS="varname"
+>*COMPILE-PRINT*</TT
+></A
+> provide defaults for the
+ <TT
+CLASS="constant"
+>:WARNINGS</TT
+>, <TT
+CLASS="constant"
+>:VERBOSE</TT
+>, <TT
+CLASS="constant"
+>:PRINT</TT
+> keyword arguments, respectively,
+ and are bound by <A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_compile-file.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>COMPILE-FILE</TT
+></A
+> to the values of the arguments, i.e.,
+ these arguments are recursive.</P
+><P
+ALIGN="justify"
+>For each input file (default file type: <TT
+CLASS="filename"
+>#P".lisp"</TT
+>)
+ the following files are generated:
+<DIV
+CLASS="informaltable"
+><A
+NAME="compile-file-new-files-table"
+></A
+><P
+></P
+><TABLE
+BORDER="1"
+CLASS="CALSTABLE"
+><THEAD
+><TR
+><TH
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>File</TH
+><TH
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>When</TH
+><TH
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>Default file type</TH
+><TH
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>Contents</TH
+></TR
+></THEAD
+><TBODY
+><TR
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>output file</TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>only if <TT
+CLASS="constant"
+>:OUTPUT-FILE</TT
+> is not <A
+HREF="http://www.lisp.org/HyperSpec/Body/convar_nil.html"
+TARGET="_top"
+><TT
+CLASS="constant"
+>NIL</TT
+></A
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><TT
+CLASS="filename"
+>#P".fas"</TT
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>can be loaded using the <A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_load.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>LOAD</TT
+></A
+> function</TD
+></TR
+><TR
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>auxiliary output file</TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>only if <TT
+CLASS="constant"
+>:OUTPUT-FILE</TT
+> is not <A
+HREF="http://www.lisp.org/HyperSpec/Body/convar_nil.html"
+TARGET="_top"
+><TT
+CLASS="constant"
+>NIL</TT
+></A
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><A
+HREF="system.html#require"
+><TT
+CLASS="filename"
+>#P".lib"</TT
+></A
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>used by <A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_compile-file.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>COMPILE-FILE</TT
+></A
+> when compiling a <A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_providecm_require.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>REQUIRE</TT
+></A
+> form referring
+    to the input file</TD
+></TR
+><TR
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>listing file</TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>only if <TT
+CLASS="constant"
+>:LISTING</TT
+> is not <A
+HREF="http://www.lisp.org/HyperSpec/Body/convar_nil.html"
+TARGET="_top"
+><TT
+CLASS="constant"
+>NIL</TT
+></A
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><TT
+CLASS="filename"
+>#P".lis"</TT
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>disassembly of the output file</TD
+></TR
+><TR
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><A
+HREF="http://www.eskimo.com/~scs/C-faq/top.html"
+TARGET="_top"
+><B
+CLASS="command"
+>C</B
+></A
+> output file</TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>only if <TT
+CLASS="constant"
+>:OUTPUT-FILE</TT
+> is not <A
+HREF="http://www.lisp.org/HyperSpec/Body/convar_nil.html"
+TARGET="_top"
+><TT
+CLASS="constant"
+>NIL</TT
+></A
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><TT
+CLASS="filename"
+>#P".c"</TT
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>foreign function interface; this file is deleted if it is
+    empty</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></P
+><DIV
+CLASS="warning"
+><P
+></P
+><TABLE
+CLASS="warning"
+WIDTH="100%"
+BORDER="0"
+><TR
+><TD
+WIDTH="25"
+ALIGN="CENTER"
+VALIGN="TOP"
+><IMG
+SRC="/usr/share/sgml/docbook/dsssl-stylesheets/images/warning.gif"
+HSPACE="5"
+ALT="Warning"></TD
+><TD
+ALIGN="LEFT"
+VALIGN="TOP"
+><P
+ALIGN="justify"
+>If you have two files in the same directory
+- <TT
+CLASS="filename"
+>#P"foo.lisp"</TT
+> and <TT
+CLASS="filename"
+>#P"foo.c"</TT
+>,
+and you compile the first file with <A
+HREF="http://clisp.cons.org"
+TARGET="_top"
+><B
+CLASS="command"
+>CLISP</B
+></A
+>, the second file will be
+<I
+CLASS="emphasis"
+>clobbered</I
+> if you have any <A
+HREF="dffi.html"
+><STRONG
+CLASS="package"
+><SPAN
+CLASS="QUOTE"
+>"FFI"</SPAN
+></STRONG
+></A
+> forms in
+the first one!</P
+></TD
+></TR
+></TABLE
+></DIV
+></DIV
+><DIV
+CLASS="section"
+><H2
+CLASS="section"
+><A
+NAME="compile-file-path"
+></A
+>24.1.2. Function <A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_compile-file-pathname.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>COMPILE-FILE-PATHNAME</TT
+></A
+></H2
+><P
+ALIGN="justify"
+>The default for the <TT
+CLASS="constant"
+>:OUTPUT-FILE</TT
+> argument is
+ <A
+HREF="http://www.lisp.org/HyperSpec/Body/convar_t.html"
+TARGET="_top"
+><TT
+CLASS="constant"
+>T</TT
+></A
+>, which means <TT
+CLASS="filename"
+>#P".fas"</TT
+>.</P
+></DIV
+><DIV
+CLASS="section"
+><H2
+CLASS="section"
+><A
+NAME="require"
+></A
+>24.1.3. Function <A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_providecm_require.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>REQUIRE</TT
+></A
+></H2
+><P
+ALIGN="justify"
+>The function <A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_providecm_require.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>REQUIRE</TT
+></A
+> receives as the optional argument either
+ a <A
+HREF="http://www.lisp.org/HyperSpec/Body/syscla_pathname.html"
+TARGET="_top"
+><TT
+CLASS="classname"
+>PATHNAME</TT
+></A
+> or a <A
+HREF="http://www.lisp.org/HyperSpec/Body/syscla_list.html"
+TARGET="_top"
+><TT
+CLASS="classname"
+>LIST</TT
+></A
+> of <A
+HREF="http://www.lisp.org/HyperSpec/Body/syscla_pathname.html"
+TARGET="_top"
+><TT
+CLASS="classname"
+>PATHNAME</TT
+></A
+>s: files to be <A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_load.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>LOAD</TT
+></A
+>ed
+ if the required module is not already present.</P
+><P
+ALIGN="justify"
+>At compile time, <TT
+CLASS="sexp"
+>(<A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_providecm_require.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>REQUIRE</TT
+></A
+> <TT
+CLASS="filename"
+>#P"foo"</TT
+>)</TT
+>
+forms are treated specially: <A
+HREF="system.html#load-paths"
+><TT
+CLASS="varname"
+>CUSTOM:*LOAD-PATHS*</TT
+></A
+> is searched for
+<TT
+CLASS="filename"
+>#P"foo.lisp"</TT
+> <I
+CLASS="emphasis"
+>and</I
+> <TT
+CLASS="filename"
+>#P"foo.lib"</TT
+>.
+If the latest such file is a <TT
+CLASS="filename"
+>#P".lisp"</TT
+>, it is compiled;
+otherwise the <A
+HREF="system.html#require"
+><TT
+CLASS="filename"
+>#P".lib"</TT
+></A
+> is loaded.</P
+><P
+ALIGN="justify"
+>The <A
+HREF="system.html#require"
+><TT
+CLASS="filename"
+>#P".lib"</TT
+></A
+> is a <SPAN
+CLASS="QUOTE"
+>"header"</SPAN
+> file which contains the
+constant, variable, inline and macro definitions necessary for
+compilation of the files that <A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_providecm_require.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>REQUIRE</TT
+></A
+> this file, but not the function
+definitions and calls that are not necessary for that.
+Thus it is <I
+CLASS="emphasis"
+>not</I
+> necessary to either enclose <A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_providecm_require.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>REQUIRE</TT
+></A
+> forms in
+<A
+HREF="http://www.lisp.org/HyperSpec/Body/speope_eval-when.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>EVAL-WHEN</TT
+></A
+> or to load the required files in the makefiles: if you have
+two files, <TT
+CLASS="filename"
+>#P"foo.lisp"</TT
+> and <TT
+CLASS="filename"
+>#P"bar.lisp"</TT
+>, and the
+latter requires the former, you can write in your <TT
+CLASS="filename"
+>#P"Makefile"</TT
+>:
+<TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="programlisting"
+>&#13;all: foo.fas bar.fas
+
+foo.fas: foo.lisp
+	clisp -c foo
+
+bar.fas: bar.lisp foo.fas
+        clisp -c bar
+</PRE
+></TD
+></TR
+></TABLE
+>
+instead of the more cumbersome (and slower, since <A
+HREF="system.html#require"
+><TT
+CLASS="filename"
+>#P".lib"</TT
+></A
+>s are
+usually smaller and load faster that <TT
+CLASS="filename"
+>#P".fas"</TT
+>s):
+<TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="programlisting"
+>&#13;bar.fas: bar.lisp foo.fas
+        clisp -i foo -c bar
+</PRE
+></TD
+></TR
+></TABLE
+>
+Thus, you do not need to <TT
+CLASS="sexp"
+>(<A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_load.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>LOAD</TT
+></A
+> <TT
+CLASS="filename"
+>#P"foo"</TT
+>)</TT
+>
+in order to <TT
+CLASS="sexp"
+>(<A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_compile-file.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>COMPILE-FILE</TT
+></A
+>
+ <TT
+CLASS="filename"
+>#P"bar.lisp"</TT
+>)</TT
+>.
+If memory is tight, and if <TT
+CLASS="filename"
+>#P"foo.lisp"</TT
+> contains
+only a few inline functions, macros, constants or variables,
+this is a space and time saver.
+If <TT
+CLASS="filename"
+>#P"foo.lisp"</TT
+> does a lot of initializations or side
+effects when being loaded, this is important as well.
+</P
+></DIV
+><DIV
+CLASS="section"
+><H2
+CLASS="section"
+><A
+NAME="loadfile"
+></A
+>24.1.4. Function <A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_load.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>LOAD</TT
+></A
+></H2
+><P
+ALIGN="justify"
+><A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_load.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>LOAD</TT
+></A
+> has four additional keywords <TT
+CLASS="constant"
+>:ECHO</TT
+>, <TT
+CLASS="constant"
+>:COMPILING</TT
+>,
+ <TT
+CLASS="constant"
+>:EXTRA-FILE-TYPES</TT
+>, and <TT
+CLASS="constant"
+>:OBSOLETE-ACTION</TT
+>.</P
+><P
+ALIGN="justify"
+><TT
+CLASS="sexp"
+>(<A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_load.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>LOAD</TT
+></A
+> <TT
+CLASS="replaceable"
+><I
+>filename</I
+></TT
+> <A
+HREF="http://www.lisp.org/HyperSpec/Body/sec_3-4-1.html"
+TARGET="_top"
+><TT
+CLASS="literal"
+>&#38;KEY</TT
+></A
+> <TT
+CLASS="constant"
+>:VERBOSE</TT
+>
+ <TT
+CLASS="constant"
+>:PRINT</TT
+> <TT
+CLASS="constant"
+>:ECHO</TT
+> <TT
+CLASS="constant"
+>:IF-DOES-NOT-EXIST</TT
+> <TT
+CLASS="constant"
+>:COMPILING</TT
+>
+ <TT
+CLASS="constant"
+>:EXTRA-FILE-TYPES</TT
+> <TT
+CLASS="constant"
+>:OBSOLETE-ACTION</TT
+>)</TT
+></P
+><P
+></P
+><DIV
+CLASS="variablelist"
+><DL
+><DT
+><TT
+CLASS="constant"
+>:VERBOSE</TT
+> <A
+HREF="http://www.lisp.org/HyperSpec/Body/convar_t.html"
+TARGET="_top"
+><TT
+CLASS="constant"
+>T</TT
+></A
+></DT
+><DD
+><P
+ALIGN="justify"
+>causes <A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_load.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>LOAD</TT
+></A
+> to emit a short message that a file is
+   being loaded.  The default is <A
+HREF="http://www.lisp.org/HyperSpec/Body/var_stload-pr_ad-verbosest.html"
+TARGET="_top"
+><TT
+CLASS="varname"
+>*LOAD-VERBOSE*</TT
+></A
+>, which is initially <A
+HREF="http://www.lisp.org/HyperSpec/Body/convar_t.html"
+TARGET="_top"
+><TT
+CLASS="constant"
+>T</TT
+></A
+>.
+  </P
+></DD
+><DT
+><TT
+CLASS="constant"
+>:PRINT</TT
+> <A
+HREF="http://www.lisp.org/HyperSpec/Body/convar_t.html"
+TARGET="_top"
+><TT
+CLASS="constant"
+>T</TT
+></A
+></DT
+><DD
+><P
+ALIGN="justify"
+>causes <A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_load.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>LOAD</TT
+></A
+> to print the value of each form.  The
+  default is <A
+HREF="http://www.lisp.org/HyperSpec/Body/var_stload-pr_ad-verbosest.html"
+TARGET="_top"
+><TT
+CLASS="varname"
+>*LOAD-PRINT*</TT
+></A
+>, which is initially <A
+HREF="http://www.lisp.org/HyperSpec/Body/convar_nil.html"
+TARGET="_top"
+><TT
+CLASS="constant"
+>NIL</TT
+></A
+>.
+  </P
+></DD
+><DT
+><TT
+CLASS="constant"
+>:ECHO</TT
+> <A
+HREF="http://www.lisp.org/HyperSpec/Body/convar_t.html"
+TARGET="_top"
+><TT
+CLASS="constant"
+>T</TT
+></A
+></DT
+><DD
+><P
+ALIGN="justify"
+>causes the input from the file to be echoed to
+  <A
+HREF="http://www.lisp.org/HyperSpec/Body/var_stdebug-i_ace-outputst.html"
+TARGET="_top"
+><TT
+CLASS="varname"
+>*STANDARD-OUTPUT*</TT
+></A
+> (normally to the screen).  Should
+  there be an error in the file, you can see at one glance where it is.
+  The default is <STRONG
+CLASS="FIRST"
+><I
+CLASS="firstterm"
+><A
+HREF="system.html#loadfile"
+><TT
+CLASS="varname"
+>CUSTOM:*LOAD-ECHO*</TT
+></A
+></I
+></STRONG
+>, which is
+  initially <A
+HREF="http://www.lisp.org/HyperSpec/Body/convar_nil.html"
+TARGET="_top"
+><TT
+CLASS="constant"
+>NIL</TT
+></A
+>.</P
+></DD
+><DT
+><TT
+CLASS="constant"
+>:COMPILING</TT
+> <A
+HREF="http://www.lisp.org/HyperSpec/Body/convar_t.html"
+TARGET="_top"
+><TT
+CLASS="constant"
+>T</TT
+></A
+></DT
+><DD
+><P
+ALIGN="justify"
+>causes each form read to be compiled on the fly.
+  The compiled code is executed at once and - in contrast to <A
+HREF="system.html#compilefile"
+><TT
+CLASS="function"
+>COMPILE-FILE</TT
+></A
+> - not
+  written to a file.
+  The default is <STRONG
+CLASS="FIRST"
+><I
+CLASS="firstterm"
+><A
+HREF="system.html#loadfile"
+><TT
+CLASS="varname"
+>CUSTOM:*LOAD-COMPILING*</TT
+></A
+></I
+></STRONG
+>,
+  which is initially <A
+HREF="http://www.lisp.org/HyperSpec/Body/convar_nil.html"
+TARGET="_top"
+><TT
+CLASS="constant"
+>NIL</TT
+></A
+>.</P
+></DD
+><DT
+><TT
+CLASS="constant"
+>:EXTRA-FILE-TYPES</TT
+> <A
+HREF="http://www.lisp.org/HyperSpec/Body/syscla_list.html"
+TARGET="_top"
+><TT
+CLASS="classname"
+>LIST</TT
+></A
+></DT
+><DD
+><P
+ALIGN="justify"
+>Specifies the additional file types considered for
+  loading, in addition to <STRONG
+CLASS="FIRST"
+><I
+CLASS="firstterm"
+><A
+HREF="system.html#loadfile"
+><TT
+CLASS="varname"
+>CUSTOM:*SOURCE-FILE-TYPES*</TT
+></A
+></I
+></STRONG
+>
+  (which is initially <TT
+CLASS="sexp"
+>("lisp" "lsp" "cl")</TT
+>)
+  and <STRONG
+CLASS="FIRST"
+><I
+CLASS="firstterm"
+><A
+HREF="system.html#loadfile"
+><TT
+CLASS="varname"
+>CUSTOM:*COMPILED-FILE-TYPES*</TT
+></A
+></I
+></STRONG
+>
+  (which is initially <TT
+CLASS="sexp"
+>("fas")</TT
+>).
+  </P
+><P
+ALIGN="justify"
+>When <TT
+CLASS="replaceable"
+><I
+>filename</I
+></TT
+> does not spefify a unique file
+  (e.g., <TT
+CLASS="replaceable"
+><I
+>filename</I
+></TT
+> is <TT
+CLASS="filename"
+>#P"foo"</TT
+> and both <TT
+CLASS="filename"
+>#P"foo.lisp"</TT
+>
+  and <TT
+CLASS="filename"
+>#P"foo.fas"</TT
+> are found in the
+  <A
+HREF="system.html#load-paths"
+><TT
+CLASS="varname"
+>CUSTOM:*LOAD-PATHS*</TT
+></A
+>), then the <I
+CLASS="emphasis"
+>newest</I
+> file is loaded.
+ </P
+></DD
+><DT
+><TT
+CLASS="constant"
+>:OBSOLETE-ACTION</TT
+> <A
+HREF="http://www.lisp.org/HyperSpec/Body/convar_nil.html"
+TARGET="_top"
+><TT
+CLASS="constant"
+>NIL</TT
+></A
+></DT
+><DD
+><P
+ALIGN="justify"
+>Specifies the action to take when loading a
+   <TT
+CLASS="filename"
+>#P".fas"</TT
+> with a different <A
+HREF="bytecode.html"
+>bytecode</A
+>
+   version from the one supported by this <A
+HREF="http://clisp.cons.org"
+TARGET="_top"
+><B
+CLASS="command"
+>CLISP</B
+></A
+> version.
+   The possible actions are <TT
+CLASS="constant"
+>:DELETE</TT
+> to delete the
+   <TT
+CLASS="filename"
+>#P".fas"</TT
+> and <TT
+CLASS="constant"
+>:ERROR</TT
+> to <A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_signal.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>SIGNAL</TT
+></A
+> an <A
+HREF="http://www.lisp.org/HyperSpec/Body/contyp_error.html"
+TARGET="_top"
+><TT
+CLASS="classname"
+>ERROR</TT
+></A
+>.
+   The default action is to <A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_warn.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>WARN</TT
+></A
+> and <A
+HREF="system.html#load-paths"
+>look
+   for another matching file</A
+>.
+   If no file can be loaded and <TT
+CLASS="constant"
+>:IF-DOES-NOT-EXIST</TT
+> is non-<A
+HREF="http://www.lisp.org/HyperSpec/Body/convar_nil.html"
+TARGET="_top"
+><TT
+CLASS="constant"
+>NIL</TT
+></A
+>,
+   an <A
+HREF="http://www.lisp.org/HyperSpec/Body/contyp_error.html"
+TARGET="_top"
+><TT
+CLASS="classname"
+>ERROR</TT
+></A
+> is <A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_signal.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>SIGNAL</TT
+></A
+>ed.
+   The default is <STRONG
+CLASS="FIRST"
+><I
+CLASS="firstterm"
+><A
+HREF="system.html#loadfile"
+><TT
+CLASS="varname"
+>CUSTOM:*LOAD-OBSOLETE-ACTION*</TT
+></A
+></I
+></STRONG
+>,
+   which is initially <A
+HREF="http://www.lisp.org/HyperSpec/Body/convar_nil.html"
+TARGET="_top"
+><TT
+CLASS="constant"
+>NIL</TT
+></A
+>.</P
+></DD
+></DL
+></DIV
+><P
+ALIGN="justify"
+>The variables <A
+HREF="http://www.lisp.org/HyperSpec/Body/var_stload-pr_ad-verbosest.html"
+TARGET="_top"
+><TT
+CLASS="varname"
+>*LOAD-VERBOSE*</TT
+></A
+>, <A
+HREF="http://www.lisp.org/HyperSpec/Body/var_stload-pr_ad-verbosest.html"
+TARGET="_top"
+><TT
+CLASS="varname"
+>*LOAD-PRINT*</TT
+></A
+>,
+<A
+HREF="system.html#loadfile"
+><TT
+CLASS="varname"
+>CUSTOM:*LOAD-OBSOLETE-ACTION*</TT
+></A
+>, <A
+HREF="system.html#loadfile"
+><TT
+CLASS="varname"
+>CUSTOM:*LOAD-COMPILING*</TT
+></A
+>, and <A
+HREF="system.html#loadfile"
+><TT
+CLASS="varname"
+>CUSTOM:*LOAD-ECHO*</TT
+></A
+> are bound by <A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_load.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>LOAD</TT
+></A
+> when it
+receives a corresponding keyword argument (<TT
+CLASS="constant"
+>:VERBOSE</TT
+>, <TT
+CLASS="constant"
+>:PRINT</TT
+>,
+<TT
+CLASS="constant"
+>:OBSOLETE-ACTION</TT
+>, <TT
+CLASS="constant"
+>:COMPILING</TT
+>, and <TT
+CLASS="constant"
+>:ECHO</TT
+>), i.e., these arguments
+are recursive, just like the arguments <TT
+CLASS="constant"
+>:WARNINGS</TT
+>, <TT
+CLASS="constant"
+>:VERBOSE</TT
+>, and
+<TT
+CLASS="constant"
+>:PRINT</TT
+> for <A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_compile-file.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>COMPILE-FILE</TT
+></A
+>.</P
+><DIV
+CLASS="formalpara"
+><P
+><A
+NAME="load-paths"
+></A
+><B
+>Variable <A
+HREF="system.html#load-paths"
+><TT
+CLASS="varname"
+>CUSTOM:*LOAD-PATHS*</TT
+></A
+>. </B
+>The variable <A
+HREF="system.html#load-paths"
+><TT
+CLASS="varname"
+>CUSTOM:*LOAD-PATHS*</TT
+></A
+> contains a list of directories where the
+ files are looked for - in addition to the specified or current
+ directory - by <A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_load.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>LOAD</TT
+></A
+>, <A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_providecm_require.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>REQUIRE</TT
+></A
+>, <A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_compile-file.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>COMPILE-FILE</TT
+></A
+> and
+ <A
+HREF="http://www.lisp.org/HyperSpec/Body/fun_load-logi_translations.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>LOAD-LOGICAL-PATHNAME-TRANSLATIONS</TT
+></A
+>.</P
+></DIV
+></DIV
+><DIV
+CLASS="section"
+><H2
+CLASS="section"
+><A
+NAME="features"
+></A
+>24.1.5. Variable <A
+HREF="http://www.lisp.org/HyperSpec/Body/var_stfeaturesst.html"
+TARGET="_top"
+><TT
+CLASS="varname"
+>*FEATURES*</TT
+></A
+></H2
+><P
+ALIGN="justify"
+>The variable <A
+HREF="http://www.lisp.org/HyperSpec/Body/var_stfeaturesst.html"
+TARGET="_top"
+><TT
+CLASS="varname"
+>*FEATURES*</TT
+></A
+> initially contains the symbols
+<DIV
+CLASS="table"
+><A
+NAME="features-table"
+></A
+><P
+><B
+>Table 24-1. <A
+HREF="http://www.lisp.org/HyperSpec/Body/var_stfeaturesst.html"
+TARGET="_top"
+><TT
+CLASS="varname"
+>*FEATURES*</TT
+></A
+> content</B
+></P
+><TABLE
+BORDER="1"
+CLASS="CALSTABLE"
+><THEAD
+><TR
+><TH
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>keyword</TH
+><TH
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>meaning</TH
+></TR
+></THEAD
+><TBODY
+><TR
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><TT
+CLASS="constant"
+>:CLISP</TT
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>the name of this implementation</TD
+></TR
+><TR
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><TT
+CLASS="constant"
+>:ANSI-CL</TT
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><TT
+CLASS="constant"
+>:COMMON-LISP</TT
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><TT
+CLASS="constant"
+>:INTERPRETER</TT
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><TT
+CLASS="constant"
+>:COMPILER</TT
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><TT
+CLASS="constant"
+>:SOCKETS</TT
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>see <A
+HREF="socket.html"
+><TT
+CLASS="classname"
+>SOCKET:SOCKET-STREAM</TT
+></A
+>s</TD
+></TR
+><TR
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><TT
+CLASS="constant"
+>:GENERIC-STREAMS</TT
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>see <A
+HREF="clos-stream.html"
+>Defining new kinds of
+    Streams</A
+></TD
+></TR
+><TR
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><TT
+CLASS="constant"
+>:SYSCALLS</TT
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>see <A
+HREF="modules.html#syscalls"
+>System Calls</A
+></TD
+></TR
+><TR
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><TT
+CLASS="constant"
+>:DIR-KEY</TT
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>see <A
+HREF="modules.html#dir-key"
+>Directory Access</A
+></TD
+></TR
+><TR
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><TT
+CLASS="constant"
+>:LOGICAL-PATHNAMES</TT
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><TT
+CLASS="constant"
+>:FFI</TT
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>if a foreign function interface (see <A
+HREF="dffi.html"
+><STRONG
+CLASS="package"
+><SPAN
+CLASS="QUOTE"
+>"FFI"</SPAN
+></STRONG
+></A
+>) is supported
+     <I
+CLASS="emphasis"
+>(Platform dependent: many <A
+HREF="http://www.UNIX-systems.org/online.html"
+TARGET="_top"
+><B
+CLASS="emphasis"
+>UNIX</B
+></A
+>, <A
+HREF="http://www.willows.com/"
+TARGET="_top"
+><B
+CLASS="emphasis"
+>Win32</B
+></A
+> platforms
+     only)</I
+></TD
+></TR
+><TR
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><TT
+CLASS="constant"
+>:GETTEXT</TT
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>if internationalization (see <A
+HREF="i18n.html"
+><STRONG
+CLASS="package"
+><SPAN
+CLASS="QUOTE"
+>"I18N"</SPAN
+></STRONG
+></A
+>) using the <A
+HREF="http://www.gnu.org"
+TARGET="_top"
+>GNU</A
+> <A
+HREF="http://www.gnu.org/software/gettext/gettext.html"
+TARGET="_top"
+>gettext</A
+>
+     package is supported
+     <I
+CLASS="emphasis"
+>(Platform dependent: most <A
+HREF="http://www.UNIX-systems.org/online.html"
+TARGET="_top"
+><B
+CLASS="emphasis"
+>UNIX</B
+></A
+> platforms
+     only)</I
+></TD
+></TR
+><TR
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><TT
+CLASS="constant"
+>:UNICODE</TT
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>if <A
+HREF="http://www.unicode.org/"
+TARGET="_top"
+><B
+CLASS="emphasis"
+>UNICODE</B
+></A
+> (ISO 10646) characters are supported (see
+     <A
+HREF="encoding.html"
+><STRONG
+CLASS="package"
+><SPAN
+CLASS="QUOTE"
+>"CHARSET"</SPAN
+></STRONG
+></A
+>)</TD
+></TR
+><TR
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><TT
+CLASS="constant"
+>:LOOP</TT
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><TT
+CLASS="constant"
+>:CLOS</TT
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><TT
+CLASS="constant"
+>:AMIGA</TT
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>if <TT
+CLASS="replaceable"
+><I
+>hardware</I
+></TT
+> = Amiga and <TT
+CLASS="replaceable"
+><I
+>operating system</I
+></TT
+> = Exec/AmigaDOS</TD
+></TR
+><TR
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><TT
+CLASS="constant"
+>:DOS</TT
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>if <TT
+CLASS="replaceable"
+><I
+>hardware</I
+></TT
+> = PC (clone) and <TT
+CLASS="replaceable"
+><I
+>operating system</I
+></TT
+> = DOS</TD
+></TR
+><TR
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><TT
+CLASS="constant"
+>:OS/2</TT
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>if <TT
+CLASS="replaceable"
+><I
+>hardware</I
+></TT
+> = PC (clone) and <TT
+CLASS="replaceable"
+><I
+>operating system</I
+></TT
+> = OS/2</TD
+></TR
+><TR
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><TT
+CLASS="constant"
+>:WIN32</TT
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>if <TT
+CLASS="replaceable"
+><I
+>hardware</I
+></TT
+> = PC (clone) and
+  <TT
+CLASS="replaceable"
+><I
+>operating system</I
+></TT
+> = Win32 (Windows 95/98/NT/Me/2000/XP)</TD
+></TR
+><TR
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><TT
+CLASS="constant"
+>:PC386</TT
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>if <TT
+CLASS="replaceable"
+><I
+>hardware</I
+></TT
+> = PC (clone) with a 386/486/586/686 CPU</TD
+></TR
+><TR
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><TT
+CLASS="constant"
+>:UNIX</TT
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>if <TT
+CLASS="replaceable"
+><I
+>operating system</I
+></TT
+> = Unix (in this case the <TT
+CLASS="replaceable"
+><I
+>hardware</I
+></TT
+> is irrelevant!)</TD
+></TR
+><TR
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+><TT
+CLASS="constant"
+>:CYGWIN</TT
+></TD
+><TD
+ALIGN="CENTER"
+VALIGN="MIDDLE"
+>if <A
+HREF="http://clisp.cons.org"
+TARGET="_top"
+><B
+CLASS="command"
+>CLISP</B
+></A
+> is using the <A
+HREF="http://cygwin.com/"
+TARGET="_top"
+><B
+CLASS="emphasis"
+>Cygwin</B
+></A
+> <A
+HREF="http://www.UNIX-systems.org/online.html"
+TARGET="_top"
+><B
+CLASS="emphasis"
+>UNIX</B
+></A
+> compatibility layer on
+  top of <A
+HREF="http://www.willows.com/"
+TARGET="_top"
+><B
+CLASS="emphasis"
+>Win32</B
+></A
+> (in that case <TT
+CLASS="constant"
+>:UNIX</TT
+> is also present)</TD
+></TR
+></TBODY
+></TABLE
+></DIV
+></P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="rt-case.html"
+ACCESSKEY="P"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="impnotes-top.html"
+ACCESSKEY="H"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="environment.html"
+ACCESSKEY="N"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>Function <A
+HREF="http://www.lisp.org/HyperSpec/Body/acc_readtable-case.html"
+TARGET="_top"
+><TT
+CLASS="function"
+>READTABLE-CASE</TT
+></A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="clhs-chapters.html"
+ACCESSKEY="U"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Environment
+   <A
+HREF="http://www.lisp.org/HyperSpec/Body/chap-25.html"
+TARGET="_top"
+>[CLHS-25]</A
+></TD
+></TR
+></TABLE
+></DIV
+><div
+class="custom-footer"
+><hr
+width="100%"><table
+width="100%"
+><tr
+><td
+align="left"
+><a
+href="http://clisp.cons.org"
+><img
+src="clisp.png"
+width="48"
+height="48"
+alt="[CLISP home]"></a
+></td
+><td
+align="center"
+><a
+href="http://www.gnu.org"
+><img
+src="http://www.gnu.org/graphics/gnubanner.jpg"
+width="468"
+height="60"
+alt="[Come and see what GNU creates for YOU]"></a
+></td
+><td
+align="right"
+><a
+href="http://sourceforge.net"
+><img
+src="http://sourceforge.net/sflogo.php?group_id=1355&amp;type=2"
+width="125"
+height="37"
+alt="[SourceForge]"></a
+></td
+></tr
+></table
+></div
+></BODY
+></HTML
+>