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

Re: KCL Installation on SUN 3 with SUN OS 4.0.3

For release sun os 4.0 you need to use AKCL (also available on rascal).

There are a number of things which are fixed.

Inserting file /public/akcl/README
---Begin File /public/akcl/README---
Description of AKCL system.


The AKCL system contains change files (usually V/* files) together
with a method for combining these with the original KCL distribution.
The latter is the June 1987 version.  The utility merge, takes files
from the original distribution and modifies them according to a
prescription in a `change file'.  The change files reside in the
directory V.  The enhancements include enhancements to the lisp
compiler, loader, and to the basic C code.  If installed properly
NOTHING in the original kcl directory should be overwritten.  Files
which have not changed will have only a link copy in the akcl directory,
and files which do change will have a changed copy in the akcl
directory, and an unchanged file in the kcl directory.  To ensure that
you do not accidentally alter a file in the original directory you
might wish to make the files there unwritable.  You do not need
to do a make in the kcl directory.

* There are source files on cli.com:akcl/akcl-XX.tar.Z You probably
want the highest XX version number.  For example akcl-1-65.tar.Z would
allow you to build the version 1.65 of AKCL.  In the following the
compressed tar file is simply referred to as akcl.tar.Z You will also
need to obtain the original kcl distribution of June 1987.  That is
referred to as kcl.tar.Z and is also available on cli.com.   An alternate
source for these files is rascal.ics.utexas.edu (
* If you cannot obtain these files via internet, a cartridge tape (sun
compatible) or diskettes containing akcl, and kcl sources may be
obtained for $250 US plus shipping, from J. Schelter, 1715
Barnswallow, Autin TX 78746.  This would be in standard tar format.
Some machines on which akcl compiles are 386 under System V (eg
Microport), Sun's (sparc,sun3's), HP under hpux and 4.3.  An older
version of sources is also available from Austin Code Works, 11100
Leafwood Ln., Austin TX 78750.  Tel:(512) 258-0785.

To make the whole system, if you have obtained akcl.tar.Z and


Change to a directory in which you wish to put the kcl and akcl
subdirectories.  Make sure the two files kcl.tar.Z and akcl.tar.Z are
in your current directory.    When you extract the files make sure the write
file write dates are as in the distribution--make needs this.

% mkdir kcl
% (cd kcl ; uncompress -c ../kcl.tar.Z | tar  xvf -)
% mkdir akcl
% cd akcl
% uncompress -c ../akcl.tar.Z | tar  xvf -


Determine the NAME of your machine by looking in the MACHINES file.

EDIT the appropriate h/NAME.defs file.   These are definitions to
be included in the various makefiles.

For example if the `NAME' of your machine is sun3-os4.

% emacs h/sun3-os4.defs

   * MAINDIR: the directory called kcl where you just untarred kcl.tar.Z

   MAINDIR = /usr/local/src/kcl

   * CC: set C compiler options.  For example, if you are using the GNU
     C compiler:

     CC = gcc -msoft-float -DVOL=volatile -I$(AKCLDIR)/o

         Or, if you are using the conventional UNIX C compiler:

     CC = cc -DVOL= -I. -I$(AKCLDIR)/o
     ODIR_DEBUG= -g

     If you want files in the main c source compiled with debugging
     information.   Note this is incompatible with OFLAGS= -O on
     some compilers.   Size will be smaller without -g, but you
     are then helpless in the face of problems.
   * INITFORM: if you desire to have kcl documentation files available
     on-line within the LISP environment, rather than using an external
     documentation tool such as find-doc.el, add (load "../lsp/setdoc.lsp")
     as follows:

    INITFORM=(si::build-symbol-table)(load "../lsp/setdoc.lsp")


EDIT the file h/NAME.h  (eg h/sun3-os4.h)

(Actually you probably don't need to change it)

This file will be included by virtually every compilation of C
files, except the translated C produced by kcl.

% emacs h/sun3-os4.h

      if you wish to change a parameter such as MAXPAGE 16384 established
      in bsd.h (ie. number of 2000 byte pages you want as your absolute max
      swap space)

      #undef MAXPAGE
      #define MAXPAGES 32000

      You may similarly redefine VSSIZE the maximum size for the value
      stack (running very deep recursion interpreted may well require this).

   Install the edited changes you have made by doing:

	% add-defs sun3-os4

	(in general % add-defs NAME )

	You should finally be ready to go!


	% make -f Smakefile 

NOTE: Smakefile is a special makefile which causes make to be run
twice, the first time building a saved_kcl using the original
compiler, and the second time compiling our modified compiler with the
original compiler.  If this does not run twice you will be using the
old compiler.  If you later change files it will be sufficient to just
use the regular makefile (which has by now been slightly altered).

The make should continue without error.   There may be occasional
warnings from the C compiler, but all files should compile successfully
producing .o files.

The V/* change files will only be used if they are newer (normally the
case) than the existing files.  If you have modified files in the akcl 
directory, eg. c/array.c, but wish merge to overwrite that with its
merged version, you could for example % touch V/c/array.c

When it has finally finished you may invoke AKCL by using


% xbin/kcl
AKCL (Austin Kyoto Common Lisp)  Version(1.65) Wed Sep 21 00:52:31 CDT 1988
Contains Enhancements by W. Schelter
>(+ 2 3)



	* You should copy xbin/kcl to /usr/local/bin or some place on users
	search paths.   This is so that users may conveniently invoke the saved
	image with a first arg equal to the directory where the image resides.
	(some things like faslink, autoload,.. need to know the system directory).


What to keep if you have no space!  The only files which are ESSENTIAL
to running of AKCL COMMON LISP once you have built the system (if you are
using sfasl, as is default on a sun eg).
    /usr/local/bin/kcl                (copy of xbin/kcl)

    Also if you are able to use sfasl, you may even % strip saved_kcl.
Of course keeping sources, documentation, etc. is desirable.

   If you use gnu emacs, a convenient method for viewing documentation
of common lisp functions (or functions in an extended system),
is provided by the doc/find-doc.el file.   This will be installed
when you do in the main directory, or in the doc directory.
Adding the following to your .emacs file will allow you to
use C-h d to find documentation.

(autoload 'find-doc "find-doc" nil t)
(global-set-key "d" 'find-doc)
(visit-doc-file "/public/akcl/doc/DOC")

See the file find-doc.el for more information. 

After the system has been built, in the main akcl directory

% make install 

will copy the command to execute kcl to the LBINDIR,
and will also attempt to install the documentation interface
for gnu emacs.   You will have to have write permission in the
emacs directory, and LBINDIR for this, so you may need to
be super user.

1) Did you extract the files with the original write dates--make depends heavily on this?
2) Did you use -O on a compiler which puts out bad code?   Any time you change
   the settings or use a new c compiler this is a tricky point.
3) A sample transcript from a correct make is included under doc/sample-make.
   If yours compiles less often or does things differently, something is wrong,
   probably with dates or the clock on the server or something.
4) If you can't save an image, try doing so on the file server rather than a client.


W. Schelter, the University of Texas, and other parties provide this
program on an "as is" basis without warranty of any kind, either
expressed or implied, including, but not limited to, the implied
warranties of merchantability and fitness for a particular purpose.

Bill Schelter 

See the file doc/contributors for a partial list of people who have
made helpful contributions to ports etc.---End File /public/akcl/README---