Kyoto Common Lisp (KCL) is a complete implementation of Common Lisp written by T. Yuasa (Department of Computer Science, Toyohashi University of Technology) and M. Hagiya (Department of Information Science, University of Tokyo). 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 host cli.com, a Sun-3 at Computational Logic, Inc., Austin, Texas. To obtain KCL, login as "ftp" with password "guest". 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/kcl.broadcast. The directory /pub/kcl/kcl.tar.Z-split contains a collection of files of about 200,000 bytes each whose "cat"enation is the file kcl.tar.Z. When connected to a directory containing these files, the Unix command "cat kcl.tar.Z-split* > kcl.tar.Z" will produce the file kcl.tar.Z, which is a compressed version of the file kcl.tar. The file /pub/kcl/compress.tar contains the code for compress. Use the command "uncompress kcl.tar.Z" to produce the file kcl.tar. Use the tar command on kcl.tar to build a directory structure containing the sources of KCL. At the end of this message is a sample Sun-3 installation. Alternative places from which KCL may be obtained by anoymous ftp are rascal.ics.utexas.edu and orville.nas.nasa.gov. Due to vagaries of network connectivity, some of these may provide MUCH better network service than cli.com. KCL ON TAPE Austin Code Works, 11100 Leafwood Ln., Austin TX 78750-3409 USA. Tel:(512) 258-0785. The cost is about $250 US. (includes emacs,kcl,and akcl) Payment can be made using a check on American bank, Visa or mastercard, or international money order. 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 at Department of Computer Science, Toyohashi University of Technology and Masami Hagiya at Department of Information Science, University of Tokyo) (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 Department of Computer Science Toyohashi University of Technology Toyohashi, 441, Japan BY: ___________________________________________ Masami Hagiya Department of Information Science University of Tokyo Tokyo, 113, JAPAN 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. A LaTeX version of the KCL Report may be found in the file /pub/kcl/kcl-report.tex. An on-line readable version may be found in the file /pub/kcl/kcl-report.doc. This report is available in paper form 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 original KCL Report was produced by the text-formatter KROFF (Kyoto ROFF), which is used locally within Kyoto University. Currently KROFF works only on printers available in Japan. The source of the report, with KROFF commands, is found in the file doc/report on the ftp tar file. 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%tutics.tut.junet%utokyo-relay.csnet@RELAY.CS.NET We have found them extremely responsive to bug reports and suggestions. MAILING LIST To be entered on an electronic mailing list for KCL, send a request to kcl-request@cli.com. Archives of the mailing list may be found in the file kcl-mail-archive in the same directory with the KCL sources. 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 split, compressed tar file tutorial% cd /usr/joe/kcl tutorial% ftp cli.com 220 cli FTP server (Version 4.15 Sat Nov 7 15:24:41 PST 1987) ready. Name: ftp Password: guest ftp>binary ftp>prompt ftp>cd /pub/kcl/kcl.tar.Z-split/ ftp>mget * ftp>quit Unsplit tutorial% cat kcl.tar.Z-split* > kcl.tar.Z tutorial% rm kcl.tar.Z-split* 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 boyer@cli.com wfs@carl.ma.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, MCC, or Computational Logic, Inc. 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 Last Update Thu Nov 10 11:10:50 CST 1988