[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Kyoto Common Lisp

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 [],
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

                          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).

	SUN2 (OS2, 3) SUN3 (OS3)
	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
--------------------------- cut here ----------------------------

                               LICENSE AGREEMENT
                               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.


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

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.


  DATE:  _________________________________________

  BY:  ___________________________________________

  TITLE:  ________________________________________

  ADDRESS:  ______________________________________


  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 ------------------------


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.
	Ryogae-cho-dori Takeya-machi Sagaru,
	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.


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:


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
220 rascal FTP server (Version 4.7 Sun Sep 14 12:44:57 PDT 1986) ready.
Name: ftp
Password: guest
ftp>get /pub/kcl.tar.Z kcl.tar.Z

        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)

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():

	char filename[256];

	coerce_to_filename(vs_base[0], filename);

	memory_save(kcl_self, filename);
	/*  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

	#	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