gcl (1) - Linux Manuals
gcl: GCL Common Lisp interpreter/compiler
NAME
gcl - GCL Common Lisp interpreter/compilerSYNOPSIS
gcl [ options ]DESCRIPTION
The program gcl is an implementation of a subset of the Common Lisp Ansi standard. It is written in C and in Common Lisp, and is highly portable. It includes those features in the original definition of Common Lisp, (Guy Steele version 1.), as well as some features from the proposed new standard.
The best documentation is available in texinfo/info form, with there being three groups of information. gcl-si for basic common lisp descriptions, and features unique to gcl The gcl-tk info refers to the connection with tk window system, allowing all the power of the tcl/tk interaction system to be used from lisp. The third info file gcl details the Ansi standard for common lisp, to which this subset tries to adhere. It is highly recommended to write programs, which will be in the intersection of gcl and ansi common lisp. Unfortunately the Ansi standard is huge, and will require a substantial effort, and increase in the size of gcl, to include all of it.
When gcl is invoked from the shell, the variable si::*command-args* is set to the list of command line arguments. Various options are understood:
- -eval command
- Callreadandthenevalonthe command passed in.
- -load pathname
- Loadthefilewhose pathname is specified after -load.
- -f
-
Replace si::*command-args* by the the list starting after
-f.
Open the file following
-fforinput,skipthefirstline,and
then read and eval the rest of the forms in the file. This can
be used as with the shells to write small shell programs:
#!/usr/local/bin/gcl.exe -f
(format t "hello world ~a~%" (nth 1 si::*command-args*))
Thevalue si::*command-args* will have the appropriate value. Thus if the above 2 line file is made executable and called foo then
tutorial% foo billy
hello world billy
NOTE:Onmanysystems(egSunOs)thefirstlineofanexecutable script file such as: #!/usr/local/bin/gcl.exe-f only reads the first 32 characters! So if your pathname where the executable together with the '-f' amount to more than 32 characters the file will not be recognized. Also the executable must be the actual large binary file, [or a link to it], and not just a /bin/sh script. In latter case the /bin/sh interpreter would get invoked on the file.
Alternately one could invoke the file foo without making it executable:
tutorial% gcl -f foo "from bill"
hello world from bill
- -batch
-
Donotenterthecommandprintloop.Usefuliftheothercommand
line arguments do something. Do not print the License and
acknowledgement information. Note if your program does print any
License information, it must print the GCL header information also.
- -dir
-
Directorywheretheexecutablebinarythatisrunningislocated.
Needed by save and friends. This gets set as
si::*system-directory*
- -libdir
-
.BR-libdir
/d/wfs/gcl-2.0/
would mean that the files like gcl-tk/tk.o would be found by
concatting the path to the libdir path, ie in
/d/wfs/gcl-2.0/gcl-tk/tk.o
- -compile
-
Invokethecompileronthefilenamefollowing
-compile
flags affect compilation.
- -o-file
-
Ifnilfollows
-o-file
then do not produce an
.o
file.
- -c-file
-
If
-c-file
is specified, leave the intermediate
.c
file there.
- -h-file
-
If
-h-file
is specified, leave the intermediate
.h
file there.
- -data-file
-
If
-data-file
is specified, leave the intermediate
.data
file
there.
- -system-p
-
If
-system-p
is specified then invoke
compile-file
with the
:system-p t
keyword argument, meaning that the C init function
will bear a name based on the name of the file, so that it may be
invoked by name by C code.
This GNU package should not be confused with the proprietary program distributed by FRANZ, Inc. Nor should it be confused with the public domain or the proprietary . For anything other than program development, use of the lisp compiler glc(1L) is strongly recommended in preference to use of the interpreter, due to much higher speed.
FILES
- /site/subsys/gcl/bin/gcl
- executable file
- /site/subsys/gcl/bin/gclc
- compiler
- /usr/include/cmpinclude.h
- C library file
AUTHORS
The GCL system contains C and Lisp source files to build a Common Lisp sytem. CGL is derived from Kyoto Common LISP (kcl), which was written in 1984 by T. Yuasa and M. Hagiya (working under Professor R. Nakajima at the Research Institute for Mathematical Sciences, Kyoto University). The AKCL system work was begun in 1987 by William Schelter at the University of Texas, Austin, and continued through 1994. In 1994 AKCL was released as GCL (GNU Common Lisp) under the GNU public library license.
SEE ALSO
Common LISP: The Language, Guy L. Steele, Jr., Digital Press, Bedford, MA, 1984.
Common LISPcraft, Robert Wilensky, W. W. Norton & Co., New York, 1984.