Kyoto Common Lisp (KCL) is a complete implementation of Common Lisp written by T. Yuasa and M. Hagiya working under Professor R. Nakajima at the Research Institute for Mathematical Sciences, Kyoto University. It runs on many different machines and is highly portable. It executes very efficiently and it is superbly documented. KCL is being made available at no fee through the implementors' generosity. The complete sources are included. One channel of distribution is via ftp on the Arpanet/Internet. LICENSE REQUIRED! IMPORTANT: Although there is no fee, KCL is not in the public domain. You are authorized to obtain it only after signing and mailing in a license agreement. Before you ftp KCL files you MUST fill out and send in the license agreement included in this message. Otherwise, you are not permitted to make copies of KCL. COPYING KCL VIA INTERNET KCL may be obtained from Internet source rascal.ics.utexas.edu [128.83.144.1], a Sun-3 at the University of Texas at Austin. To obtain KCL, login as "ftp" with password "guest". There are three tar files: /pub/kcl.tar, 4.0 megabytes /pub/kcl.tar.C, produced by compact from kcl.tar, 2.8 megabytes /pub/kcl.tar.Z, produced by compress from kcl.tar, 1.2 megabytes Any of the three files is sufficient to generate KCL. Please ftp the compressed file if possible. Please use ftp at an odd hour if possible to reduce traffic on a sometimes heavily loaded network. Be sure to use binary mode with ftp. A current version of this message may be found as the file /pub/kcl.broadcast. MACHINES ON WHICH KCL RUNS KCL runs on many machines. With the sources provided in the ftp file, KCL may be executed on the following machines (and operating systems). VAX/UNIX (4.2BSD) SUN2 (OS2, 3) SUN3 (OS3) SONY'S NEWS (4.2BSD) ATT3B2 (System V) Fujitu S3000 (System V) Sumitomo's E15 (Uniplus System V) Data General MV (DGUX) Instructions for making the system are in the file doc/porting in the ftp tar file. KCL LICENSE FORM To obtain the right to copy KCL, sign this license form and send it and a copy to the Kyoto address at the end of the form. ONCE YOU HAVE MAILED THE SIGNED LICENSE FORM, YOU MAY COPY KCL. YOU DO NOT HAVE TO WAIT FOR RECEIPT OF THE SIGNED FORM. --------------------------- cut here ---------------------------- LICENSE AGREEMENT FOR KYOTO COMMON LISP The Special Interest Group in LISP (Taiichi Yuasa and Masami Hagiya) at the Research Institute for Mathematical Sciences, Kyoto University (hereinafter referred to as SIGLISP) grants to USER NAME: _________________________________________ USER ADDRESS: ______________________________________ ______________________________________ (hereinafter referred to as USER), a non-transferable and non-exclusive license to copy and use Kyoto Common LISP (hereinafter referred to as KCL) under the following terms and conditions and for the period of time identified in Paragraph 6. 1. This license agreement grants to the USER the right to use KCL within their own home or organization. The USER may make copies of KCL for use within their own home or organization, but may not further distribute KCL except as provided in paragraph 2. 2. SIGLISP intends that KCL be widely distributed and used, but in a manner which preserves the quality and integrity of KCL. The USER may send a copy of KCL to another home or organization only after either receiving permission from SIGLISP or after seeing written evidence that the other home or organization has signed this agreement and sent a hard copy of it to SIGLISP. If the USER has made modifications to KCL and wants to distribute that modified copy, the USER will first obtain permission from SIGLISP by written or electronic communication. Any USER which has received such a modified copy can pass it on as received, but must receive further permission for further modifications. All modifications to copies of KCL passed on to other homes or organizations shall be clearly and conspicuously indicated in all such copies. Under no other circumstances than provided in this paragraph shall a modified copy of KCL be represented as KCL. 3. The USER will ensure that all their copies of KCL, whether modified or not, carry as the first information item the following copyright notice: (c) Copyright Taiichi Yuasa and Masami Hagiya, 1984. All rights reserved. Copying of this file is authorized to users who have executed the true and proper "License Agreement for Kyoto Common LISP" with SIGLISP. 4. Title to and ownership of KCL and its copies shall at all times remain with SIGLISP and those admitted by SIGLISP as contributors to the development of KCL. The USER will return to SIGLISP for further distribution modifications to KCL, modifications being understood to mean changes which increase the speed, reliability and existing functionality of the software delivered to the USER. The USER may make for their own ownership and use enhancements to KCL which add new functionality and applications which employ KCL. Such modules may be returned to SIGLISP at the option of the USER. 5. KCL IS LICENSED WITH NO WARRANTY OF ANY KIND. SIGLISP WILL NOT BE RESPONSIBLE FOR THE CORRECTION OF ANY BUGS OR OTHER DEFICIENCIES. IN NO EVENT SHALL SIGLISP BE LIABLE FOR ANY DAMAGES OF ANY KIND, INCLUDING SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF KCL. 6. This license for KCL shall be effective from the date hereof and shall remain in force until the USER discontinues use of KCL. In the event the USER neglects or fails to perform or observe any obligations under this Agreement, this Agreement and the License granted hereunder shall be immediately terminated and the USER shall certify to SIGLISP in writing that all copies of KCL in whatever form in its possession or under its control have been destroyed. 7. Requests. KCL is provided by SIGLISP in a spirit of friendship and cooperation. SIGLISP asks that people enjoying the use of KCL cooperate in return to help further develop and distribute KCL. Specifically, SIGLISP would like to know which machines KCL gets used on. A brief notice form is appended to this agreement which the user is requested to send by email or otherwise. Please send in further notifications at reasonable intervals if you increase the number and type of machines on which KCL is loaded. You may send these notices to another USER which is cooperating with SIGLISP for this purpose. USER DATE: _________________________________________ BY: ___________________________________________ TITLE: ________________________________________ ADDRESS: ______________________________________ ______________________________________ SIGLISP DATE: _________________________________________ BY: ___________________________________________ Taiichi Yuasa Masami Hagiya Special Interest Group in LISP Research Institute for Mathematical Sciences Kyoto University Kyoto, 606, JAPAN Telex: 05422020 RIMS J JUNET: siglisp@kurims.kurims.kyoto-u.junet CSNET: siglisp%kurims.kurims.kyoto-u.junet@utokyo-relay.csnet USER has loaded KCL on the following machines since (date): Model Number Production Name Number of Machines END OF LICENSE FORM --------------------------- cut here ------------------------ DOCUMENTATION The principal documentation for KCL is, of course, the book "Common Lisp The Language" by Guy L. Steele, Jr. with contributions by Scott E. Fahlman, Richard P. Gabriel, David A. Moon, and Daniel L. Weinreb, Digital Press, 1984. Implementation-specific details of KCL (debugging, garbage collection, data structure format, declarations, operating system interface, installation) may be found in the 131 page "Kyoto Common Lisp Report" by Taiichi Yuasa and Masami Hagiya, the authors of KCL. This report is available from: Teikoku Insatsu Inc. Shochiku-cho, Ryogae-cho-dori Takeya-machi Sagaru, Naka-gyo-ku, Kyoto, 604, Japan tel: 075-231-4757 for 5,000 yen plus postage. The KCL Report is produced by the text-formatter KROFF (Kyoto ROFF), which is used locally within Kyoto University. Currently KROFF works only on printers available in Japan. It is possible that an American distributorship of this report will be arranged. The source of the report, with KROFF commands, is found in the file doc/report on the ftp tar file. It is possible to read this source, though it is as hard on the eyes as TeX or Scribe source. A translation of this source into TeX is underway and will be available as part of the distribution tape. Future information about the availability of the KCL Report will be available in updated versions of this message, in the file /pub/kcl.broadcast. A document describing how to port KCL to other systems is available at no charge from the authors of KCL. Each of the KCL primitives is thoroughly described by the "describe" function, which is based on 340K bytes of documentation. SUPPORT KCL is one of the most bug-free large software systems that we have ever used. However, when bugs are found, they may be reported to the implementors: hagiya%kurims.kurims.kyoto-u.junet%utokyo-relay.csnet@RELAY.CS.NET yuasa%kurims.kurims.kyoto-u.junet%utokyo-relay.csnet@RELAY.CS.NET We have found them extremely responsive to bug reports and suggestions. SAMPLE TRANSCRIPT Below is a complete transcript for obtaining and installing KCL on a Sun-3. Make a directory for locating KCL tutorial% mkdir /usr/joe/kcl Get the compressed tar file tutorial% cd /usr/joe/kcl tutorial% ftp 128.83.144.1 220 rascal FTP server (Version 4.7 Sun Sep 14 12:44:57 PDT 1986) ready. Name: ftp Password: guest ftp>binary ftp>get /pub/kcl.tar.Z kcl.tar.Z ftp>quit Build the KCL directory structure tutorial% uncompress kcl.tar.Z tutorial% tar -xvf kcl.tar . tutorial% rm kcl.tar Make KCL tutorial% cd /usr/joe/kcl/ tutorial% su password: super-user-password tutorial# cp h/cmpinclude.h /usr/include tutorial# exit tutorial% make Edit and Install Two Files We wish to replace "~" by "/usr/joe" in lc and kcl, and put them in a directory on the search path e.g. "/usr/joe/bin" tutorial% cd /usr/joe/kcl/unixport tutorial% mkdir /usr/joe/bin tutorial% sed -e "s.~./usr/joe/kcl.g" lc > /usr/joe/bin/lc tutorial% sed -e "s.~./usr/joe/kcl.g" kcl > /usr/joe/bin/kcl tutorial% chmod a+x /usr/joe/bin/lc /usr/joe/bin/kcl It is now possible to run kcl: tutorial% /usr/joe/bin/kcl KCL (Kyoto Common Lisp) >(+ 2 3) 5 >(bye) It is best to become super user and execute the following commands, so that all users may execute kcl. tutorial% su Password: superuser-password tutorial# cp /usr/joe/bin/kcl /usr/local/bin tutorial# cp /usr/joe/bin/lc /usr/local/bin tutorial# exit This transcript puts the entire kcl system, including sources and documentation, in the directory /usr/joe/kcl. Any other directory name would do as well, e.g., /usr/local instead of /usr/joe. Although this transcript has worked perfectly for us on a Sun-3, it might not work for you if you are running under NFS but not logged into the right machine: you may need to login as root on the system where /usr/include and /usr/local/bin are really located to do the super-user things. Immediately after the make is finished about 8.4 megatyes of disk space are in use. SINCERELY YOURS Robert S. Boyer William F. Schelter cl.boyer@r20.utexas.edu atp.schelter@r20.utexas.edu This message was written by Robert S. Boyer and William F. Schelter. The opinions expressed are theirs and are not necessarily those of the authors of KCL, the University of Texas, or MCC. The authors of KCL have, however, indicated that they have no objection to our distributing this message. P.S. Thanks to Dave Capshaw, George Fann, Warren Hunt, Ken Rimey, and Carl Quillen for helping debug this message. Ken Rimey, rimey@ernie.Berkeley.EDU, makes the following remarks about bringing up this release of KCL under BSD 4.3 on a Vax. 1. Bringing up KCL under BSD4.3. The machine on which I installed kcl was a Vax 88xx running Ultrix V2.0. Kcl crashed when executing the final save-system command in init_kcl.lsp. It also did so on a Vax running BSD4.3. (I don't know of any Vaxen still running 4.2.) The problem is caused by some highly non-portable code introduced into Lsave() in c/unixsave.c since the version of March 28, 1986. I deleted the new code and reintroduced the old which had been commented out. Here is the resulting working Lsave(): Lsave() { char filename[256]; check_arg(1); check_type_or_pathname_string_symbol_stream(&vs_base[0]); coerce_to_filename(vs_base[0], filename); _cleanup(); memory_save(kcl_self, filename); exit(0); /* no return */ } KCL ran successfully after only fixing the Lsave problem. 2. The files o/makefile and unixport/makefile define variables that need to be changed when compiling for any machine other than a Sun-3. These definitions are found at the heads of these files. Here is the head of my copy of o/makefile: MACHINE = VAX # Select 'VAX', 'SUN', 'SUN2R3', 'SUN3', 'ISI', 'SEQ', 'IBMRT', # or 'NEWS'. CHTAB = char_table.s # Select 'char_table.s' or 'sun_chtab.s'. # 1) char_table.s : for VAX, SEQ and NEWS # 2) sun_chtab.s : for SUN, SUN2R3 and SUN3 # 3) isi_chtab.s : for ISI # 4) ibmrt_chtab.s: for IBMRT For machines other than Sun-3, one might change the MAKE KCL section of this message to: tutorial% cd /usr/joe/kcl/ tutorial% vi o/makefile (If not Sun-3, change definitions MACHINE and CHTAB.) tutorial% vi o/unixport (If not Sun-3, change definition of MACHINE.) tutorial% su password: super-user-password tutorial# cp h/cmpinclude.h /usr/include tutorial# exit tutorial% make