This file is indexed.

/usr/share/doc/cmucl-docs/introduction.html is in cmucl-docs 20c-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
            "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>

<META http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<META name="GENERATOR" content="hevea 1.10">

<link rel="stylesheet" href="cmucl.css" type="text/css">
<meta http-equiv="Content-Language" content="en">
<LINK rel="stylesheet" type="text/css" href="cmu-user.css">
<TITLE>CMUCL User&#X2019;s Manual: Introduction</TITLE>
</HEAD>
<BODY >
<A HREF="cmu-user.htoc.html"><IMG SRC="previous_motif.gif" ALT="Previous"></A>
<A HREF="index.html"><IMG SRC="contents_motif.gif" ALT="Up"></A>
<A HREF="extensions.html"><IMG SRC="next_motif.gif" ALT="Next"></A>
<HR>
<H1 CLASS="chapter"><A NAME="htoc1">Chapter&#XA0;1</A>&#XA0;&#XA0;Introduction</H1><UL>
<LI><A HREF="introduction.html#toc1">Distribution and Support</A>
</LI><LI><A HREF="introduction.html#toc2">Command Line Options</A>
</LI><LI><A HREF="introduction.html#toc3">Credits</A>
</LI></UL>
<P>CMUCL is a free, high-performance implementation of the Common Lisp
programming language which runs on most major Unix platforms. It
mainly conforms to the ANSI Common Lisp standard. Here is a summary of
its main features:</P><UL CLASS="itemize"><LI CLASS="li-itemize">
a <EM>sophisticated native-code compiler</EM> which is capable of
powerful type inferences, and generates code competitive in speed with
C compilers.</LI><LI CLASS="li-itemize">generational garbage collection and multiprocessing
capability on the x86 ports.</LI><LI CLASS="li-itemize">a foreign function interface which allows interfacing with C code and
system libraries, including shared libraries on most platforms, and
direct access to Unix system calls.</LI><LI CLASS="li-itemize">support for interprocess communication and remote procedure
calls.</LI><LI CLASS="li-itemize">an implementation of CLOS, the Common Lisp Object System, which
includes multimethods and a metaobject protocol.</LI><LI CLASS="li-itemize">a graphical source-level debugger using a Motif interface, and a
code profiler.</LI><LI CLASS="li-itemize">an interface to the X11 Window System (CLX), and a sophisticated
graphical widget library (Garnet).</LI><LI CLASS="li-itemize">programmer-extensible input and output streams.</LI><LI CLASS="li-itemize">an Emacs-like editor implemented in Common Lisp.</LI><LI CLASS="li-itemize">public domain: free, with full source code and no
strings attached (and no warranty). Like GNU/Linux and the *BSD
operating systems, CMUCL is maintained and improved by a team of
volunteers collaborating over the Internet.
</LI></UL><P>This user&#X2019;s manual contains only implementation-specific information
about CMUCL. Users will also need a separate manual describing the
Common Lisp standard, for example, the
<A HREF="http://www.lispworks.com/documentation/HyperSpec/Front/index.htm">Hyperspec</A>.</P><P>In addition to the language itself, this document describes a number
of useful library modules that run in CMUCL. Hemlock, an Emacs-like
text editor, is included as an integral part of the CMUCL
environment. Two documents describe Hemlock: the <I>Hemlock
User&#X2019;s Manual</I>, and the <I>Hemlock Command Implementor&#X2019;s Manual</I>.</P><H2 CLASS="section"><A NAME="toc1"></A><A NAME="htoc2">1.1</A>&#XA0;&#XA0;Distribution and Support</H2><P>CMUCL is developed and maintained by a group of volunteers who
collaborate over the internet. Sources and binary releases for the
various supported platforms can be obtained from
<A HREF="http://www.cons.org/cmucl/">www.cons.org/cmucl</A>. These pages
describe how to download by FTP or CVS.</P><P>A number of mailing lists are available for users and developers;
please see the web site for more information. </P><H2 CLASS="section"><A NAME="toc2"></A><A NAME="htoc3">1.2</A>&#XA0;&#XA0;Command Line Options</H2><P>
<A NAME="@concept0"></A>
<A NAME="command-line-options"></A></P><P>The command line syntax and environment is described in the
<CODE>lisp(1)</CODE> man page in the man/man1 directory of the distribution.
See also <CODE>cmucl(1)</CODE>. Currently CMUCL accepts the following
switches:</P><DL CLASS="list"><DT CLASS="dt-list">

<TT class=code>&#X2013;help</TT><BR>
</DT><DD CLASS="dd-list"> Same as <TT class=code>-help</TT>.</DD><DT CLASS="dt-list"><TT class=code>-help</TT><BR>
</DT><DD CLASS="dd-list"> Print ou the command line options and exit.</DD><DT CLASS="dt-list"><TT class=code>-batch</TT><BR>
</DT><DD CLASS="dd-list"> specifies batch mode, where all input is
directed from standard-input. An error code of 0 is returned upon
encountering an EOF and 1 otherwise.</DD><DT CLASS="dt-list"><TT class=code>-quiet</TT><BR>
</DT><DD CLASS="dd-list"> enters quiet mode. This implies setting the
variables <TT class=code>*load-verbose*</TT>, <TT class=code>*compile-verbose*</TT>,
<TT class=code>*compile-print*</TT>, <TT class=code>*compile-progress*</TT>,
<TT class=code>*require-verbose*</TT> and <TT class=code>*gc-verbose*</TT> to NIL, and
disables the printing of the startup banner.</DD><DT CLASS="dt-list"><TT class=code>-core</TT><BR>
</DT><DD CLASS="dd-list"> requires an argument that should be the name of a
core file. Rather than using the default core file, which is searched
in a number of places, according to the initial value of the
<TT class=code>library:</TT> search-list, the specified core file is loaded. This
switch overrides the value of the <TT class=code>CMUCLCORE</TT> environment variable,
if present.</DD><DT CLASS="dt-list"><TT class=code>-lib</TT><BR>
</DT><DD CLASS="dd-list"> requires an argument that should be the path to the
CMUCL library directory, which is going to be used to initialize the
<TT class=code>library:</TT> search-list, among other things. This switch overrides
the value of the <TT class=code>CMUCLLIB</TT> environment variable, if present.</DD><DT CLASS="dt-list"><TT class=code>-dynamic-space-size</TT><BR>
</DT><DD CLASS="dd-list"> requires an argument that should be
the number of megabytes (1048576 bytes) that should be allocated to
the heap. If not specified, a platform-specific default is used.
The actual maximum allowed heap size is platform-specific.<P>Currently, this option is only available for the x86 and sparc
platforms. </P></DD><DT CLASS="dt-list"><TT class=code>-edit</TT><BR>
</DT><DD CLASS="dd-list"> specifies to enter Hemlock. A file to edit may be
specified by placing the name of the file between the program name
(usually <TT class=filename>lisp</TT>) and the first switch.</DD><DT CLASS="dt-list"><TT class=code>-eval</TT><BR>
</DT><DD CLASS="dd-list"> accepts one argument which should be a Lisp form
to evaluate during the start up sequence. The value of the form
will not be printed unless it is wrapped in a form that does output.</DD><DT CLASS="dt-list"><TT class=code>-hinit</TT><BR>
</DT><DD CLASS="dd-list"> accepts an argument that should be the name of
the hemlock init file to load the first time the function
<A NAME="@funs0"></A><TT class=code>ed</TT> is invoked. The default is to load
<TT class=filename>hemlock-init.<TT class=variable>object-type</TT></TT>, or if that does not exist,
<TT class=filename>hemlock-init.lisp</TT> from the user&#X2019;s home directory. If the
file is not in the user&#X2019;s home directory, the full path must be
specified.</DD><DT CLASS="dt-list"><TT class=code>-init</TT><BR>
</DT><DD CLASS="dd-list"> accepts an argument that should be the name of an
init file to load during the normal start up sequence. The default
is to load <TT class=filename>init.<TT class=variable>object-type</TT></TT> or, if that does not exist,
<TT class=filename>init.lisp</TT> from the user&#X2019;s home directory. If neither exists,
CMUCLtries <TT class=filename>.cmucl-init.<TT class=variable>object-type</TT></TT> and then
<TT class=filename>.cmucl-init.lisp</TT>. If the file is not
in the user&#X2019;s home directory, the full path must be specified. If
the file does not exist, CMUCLsilently ignores it.</DD><DT CLASS="dt-list"><TT class=code>-noinit</TT><BR>
</DT><DD CLASS="dd-list"> accepts no arguments and specifies that an init
file should not be loaded during the normal start up sequence.
Also, this switch suppresses the loading of a hemlock init file when
Hemlock is started up with the <TT class=code>-edit</TT> switch.</DD><DT CLASS="dt-list"><TT class=code>-nositeinit</TT><BR>
</DT><DD CLASS="dd-list"> accepts no arguments and specifies that the
site init file should not be loaded during the normal start up
sequence. </DD><DT CLASS="dt-list"><TT class=code>-load</TT><BR>
</DT><DD CLASS="dd-list"> accepts an argument which should be the name of a
file to load into Lisp before entering Lisp&#X2019;s read-eval-print loop.</DD><DT CLASS="dt-list"><TT class=code>-slave</TT><BR>
</DT><DD CLASS="dd-list"> specifies that Lisp should start up as a
islave Lisp and try to connect to an editor Lisp. The name of
the editor to connect to must be specified&#X2014;to find the
editor&#X2019;s name, use the Hemlock &#X201C;<TT class=code>Accept Slave
Connections</TT>&#X201D; command. The name for the editor Lisp is of the
form:
<BLOCKQUOTE class=example><PRE>
    <TT class=variable>machine-name</TT><TT class=code>:</TT><TT class=variable>socket</TT>
  </PRE></BLOCKQUOTE>
where <TT class=variable>machine-name</TT> is the internet host name for the machine
and <TT class=variable>socket</TT> is the decimal number of the socket to connect to.</DD><DT CLASS="dt-list"><TT class=code>-fpu</TT><BR>
</DT><DD CLASS="dd-list"> specifies what fpu should be used for x87 machines.
The possible values are &#X201C;<TT class=code>x87</TT>&#X201D;, &#X201C;<TT class=code>sse2</TT>&#X201D;, or
&#X201C;<TT class=code>auto</TT>&#X201D;, which is the default. By default, CMUCLwill
detect if the chip supports the SSE2 instruction set or not. If so
or if <TT class=code>-fpu sse2</TT> is specified, the SSE2 core will be loaded
that uses SSE2 for floating-point arithmetic. If SSE2 is not
available or if <TT class=code>-fpu x87</TT> is given, the legacy x87 core is
loaded.</DD><DT CLASS="dt-list"><TT class=code>&#X2013;</TT><BR>
</DT><DD CLASS="dd-list"> indicates that everything after &#X201C;<TT class=code>&#X2013;</TT>&#X201D; is not
subject to CMUCL&#X2019;s command line parsing. Everything after
&#X201C;<TT class=code>&#X2013;</TT>&#X201D; is placed in the variable
<TT class=code>ext:*command-line-application-arguments*</TT>.
</DD></DL><P>For more details on the use of the </P><TT class=code>-edit</TT><P> and </P><TT class=code>-slave</TT><P>
switches, see the <I>Hemlock User&#X2019;s Manual</I>.</P><P>Arguments to the above switches can be specified in one of two ways:
</P><TT class=variable>switch</TT><TT class=code>=</TT><TT class=variable>value</TT><P> or
</P><TT class=variable>switch</TT><P>&lt;</P><TT class=variable>space</TT><P>&gt;</P><TT class=variable>value</TT><P>. For example, to start up
the saved core file mylisp.core use either of the following two
commands:</P><BLOCKQUOTE class=example><PRE>
   lisp -core=mylisp.core
   lisp -core mylisp.core
</PRE></BLOCKQUOTE><H2 CLASS="section"><A NAME="toc3"></A><A NAME="htoc4">1.3</A>&#XA0;&#XA0;Credits</H2><P>CMUCL was developed at the Computer Science Department of Carnegie
Mellon University. The work was a small autonomous part within the
Mach microkernel-based operating system project, and started more as a
tool development effort than a research project. The project started
out as Spice Lisp, which provided a modern Lisp implementation for use
in the CMU community. CMUCL has been under continual development since
the early 1980&#X2019;s (concurrent with the Common Lisp standardization
effort). Most of the CMU Common Lisp implementors went on to work on
the Gwydion environment for Dylan. The CMU team was lead by Scott E.
Fahlman, the Python compiler was written by Robert MacLachlan.</P><P>CMUCL&#X2019;s CLOS implementation is derived from the PCL reference
implementation written at Xerox PARC:
</P><BLOCKQUOTE CLASS="quotation">
Copyright (c) 1985, 1986, 1987, 1988, 1989, 1990 Xerox
Corporation.<BR>
All rights reserved.<P><BR>

Use and copying of this software and preparation of
derivative works based upon this software are permitted. Any
distribution of this software or derivative works must comply with all
applicable United States export control laws.</P><P><BR>

This software is made available AS IS, and Xerox Corporation
makes no warranty about the software, its performance or its
conformity to any specification.
</P></BLOCKQUOTE><P>
Its implementation of the LOOP macro was derived from code from
Symbolics, which was derived from code written at MIT:
</P><BLOCKQUOTE CLASS="quotation">
Portions of LOOP are Copyright (c) 1986 by the Massachusetts
Institute of Technology.<BR>
All Rights Reserved.<P><BR>

Permission to use, copy, modify and distribute this software
and its documentation for any purpose and without fee is hereby granted,
provided that the M.I.T. copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation. The names "M.I.T." and "Massachusetts
Institute of Technology" may not be used in advertising or publicity
pertaining to distribution of the software without specific, written
prior permission. Notice must be given in supporting documentation that
copying distribution is by permission of M.I.T. M.I.T. makes no
representations about the suitability of this software for any purpose.
It is provided "as is" without express or implied warranty.</P><P><BR>
<BR>
<BR>

Portions of LOOP are Copyright (c) 1989, 1990, 1991, 1992 by
Symbolics, Inc.<BR>
All Rights Reserved.</P><P><BR>

Permission to use, copy, modify and distribute this software
and its documentation for any purpose and without fee is hereby
granted, provided that the Symbolics copyright notice appear in all
copies and that both that copyright notice and this permission notice
appear in supporting documentation. The name "Symbolics" may not be
used in advertising or publicity pertaining to distribution of the
software without specific, written prior permission. Notice must be
given in supporting documentation that copying distribution is by
permission of Symbolics. Symbolics makes no representations about the
suitability of this software for any purpose. It is provided "as is"
without express or implied warranty.</P><P><BR>

Symbolics, CLOE Runtime, and Minima are trademarks, and
CLOE, Genera, and Zetalisp are registered trademarks of Symbolics,
Inc.
</P></BLOCKQUOTE><P>
The CLX code is copyrighted by Texas Instruments Incorporated:
</P><BLOCKQUOTE CLASS="quotation">
Copyright (C) 1987 Texas Instruments Incorporated.<P><BR>

Permission is granted to any individual or institution to
use, copy, modify, and distribute this software, provided that this
complete copyright and permission notice is maintained, intact, in all
copies and supporting documentation.</P><P><BR>

Texas Instruments Incorporated provides this software "as
is" without express or implied warranty.
</P></BLOCKQUOTE><P>CMUCL was funded by DARPA under CMU&#X2019;s "Research on Parallel Computing"
contract. Rather than doing pure research on programming languages and
environments, the emphasis was on developing practical programming
tools. Sometimes this required new technology, but much of the work
was in creating a Common Lisp environment that incorporates
state-of-the-art features from existing systems (both Lisp and
non-Lisp). Archives of the project are available online.</P><P>The project funding stopped in 1994, so support at Carnegie Mellon
University has been discontinued. All code and documentation developed
at CMU was released into the public domain. The project continues as a
group of users and developers collaborating over the Internet. The
current and previous maintainers include:</P><UL CLASS="itemize"><LI CLASS="li-itemize">
Marco Antoniotti
</LI><LI CLASS="li-itemize">Martin Cracauer
</LI><LI CLASS="li-itemize">Fred Gilham
</LI><LI CLASS="li-itemize">Alex Goncharov
</LI><LI CLASS="li-itemize">Rob MacLachlan
</LI><LI CLASS="li-itemize">Pierre Mai
</LI><LI CLASS="li-itemize">Eric Marsden
</LI><LI CLASS="li-itemize">Gerd Moellman
</LI><LI CLASS="li-itemize">Tim Moore
</LI><LI CLASS="li-itemize">Carl Shapiro 
</LI><LI CLASS="li-itemize">Robert Swindells
</LI><LI CLASS="li-itemize">Raymond Toy
</LI><LI CLASS="li-itemize">Peter Van Eynde
</LI><LI CLASS="li-itemize">Paul Werkowski
</LI></UL><P>In particular, Paul Werkowski and Douglas Crosher completed the port
for the x86 architecture for FreeBSD. Peter VanEnyde took the FreeBSD
port and created a Linux version. Other people who have contributed to
the development of CMUCL since 1981 are</P><UL CLASS="itemize"><LI CLASS="li-itemize">
David Axmark
</LI><LI CLASS="li-itemize">Miles Bader
</LI><LI CLASS="li-itemize">Rick Busdiecker
</LI><LI CLASS="li-itemize">Bill Chiles
</LI><LI CLASS="li-itemize">Douglas Thomas Crosher
</LI><LI CLASS="li-itemize">Casper Dik
</LI><LI CLASS="li-itemize">Ted Dunning
</LI><LI CLASS="li-itemize">Scott Fahlman
</LI><LI CLASS="li-itemize">Mike Garland
</LI><LI CLASS="li-itemize">Paul Gleichauf
</LI><LI CLASS="li-itemize">Sean Hallgren
</LI><LI CLASS="li-itemize">Richard Harris
</LI><LI CLASS="li-itemize">Joerg-Cyril Hoehl
</LI><LI CLASS="li-itemize">Chris Hoover
</LI><LI CLASS="li-itemize">John Kolojejchick
</LI><LI CLASS="li-itemize">Todd Kaufmann
</LI><LI CLASS="li-itemize">Simon Leinen
</LI><LI CLASS="li-itemize">Sandra Loosemore
</LI><LI CLASS="li-itemize">William Lott
</LI><LI CLASS="li-itemize">Dave McDonald
</LI><LI CLASS="li-itemize">Tim Moore
</LI><LI CLASS="li-itemize">Skef Wholey
</LI><LI CLASS="li-itemize">Paul Foley
</LI><LI CLASS="li-itemize">Helmut Eller
</LI><LI CLASS="li-itemize">Jan Rychter
</LI></UL><P>Countless others have contributed to the project by sending in bug
reports, bug fixes, and new features.</P><P>This manual is based on CMU Technical Report CMU-CS-92-161, edited by
Robert A. MacLachlan, dated July 1992. Other contributors include
Raymond Toy, Paul Werkowski and Eric Marsden. The Hierarchical
Packages chapter is based on documentation written by Franz. Inc, and
is used with permission. The remainder of the document is in the
public domain.
</P><HR>
<A HREF="cmu-user.htoc.html"><IMG SRC="previous_motif.gif" ALT="Previous"></A>
<A HREF="index.html"><IMG SRC="contents_motif.gif" ALT="Up"></A>
<A HREF="extensions.html"><IMG SRC="next_motif.gif" ALT="Next"></A>
</BODY>
</HTML>