Description of AKCL system. OVERVIEW: 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. OBTAINING SOURCES: ----------------- * 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 and rascal.ics.utexas.edu. * If you cannot obtain these files via internet, a tape containing akcl, kcl, gnu emacs and some hardcopy documentation may be ordered from Austin Code Works, 11100 Leafwood Ln., Austin TX 78750. Tel:(512) 258-0785. MAKING THE SYSTEM: ================== To make the whole system, if you have obtained akcl.tar.Z and kcl.tar.Z UNCOMPRESS and UNTAR the SOURCES: -------------------------------- Make sure the files the two files kcl.tar.Z and akcl.tar.Z are in your current directory. % mkdir kcl % (cd kcl ; uncompress -c ../kcl.tar.Z | tar xvf -) % mkdir akcl % cd akcl % uncompress -c ../kcl.tar.Z | tar xvf - MAYBE EDIT TWO FILES: -------------------- 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. % emacs h/sun3.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: 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. * SFASL and RSYM: For a sun3,sun4 or System V 386 machine, you probably want to leave SFASL and RSYM defined. RSYM = rsym SFASL = $(ODIR)/sfasl.o For other machines give them an empty definition. SFASL= RSYM= * 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.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.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 MAXPAGE 1000000 You may similarly redefine VSSIZE the maximum size for the value stack (running very deep recursion interpreted may well require this). ADD CHANGED DEFINITIONS TO MAKEFILES: ------------------------------------ Install the edited changes you have made by doing: % add-defs sun3 (in general % add-defs NAME ) You should finally be ready to go! RUNNING MAKE: ------------ % make -f Smakefile Warning: It will stop once with an error asking you to become super user to install cmpinclude.h If you cannot become super user, you may alternately do % make -f Smakefile "SU=SKIP" The system will make fine, but you will need a copy of cmpinclude.h in what ever directory you wish to do your lisp compiling. If it does stop asking you to become super user Error:1 su and make cmpinclude.h % su password: super-user-password # make cmpinclude.h # exit now resume by doing once again: % 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. When it has finally finished you may invoke AKCL by using TRY IT OUT: ---------- % 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) >5 COPY THE COMMAND SCRIPT: ----------------------- * You should copy xbin/kcl to /usr/local/bin or some place on users search paths. ELIMINATE SOME FILES? -------------------- 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). unixport/saved_kcl /usr/local/bin/kcl (copy of xbin/kcl) o/cmpinclude.h (copy of h/cmpinclude.h) h/cmpinclude.h /usr/include/cmpinclude.h Also if you are able to use sfasl, you may even strip saved_kcl. Of course keeping sources, documentation, etc. is desirable. DOCUMENTATION: ============== 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 "/usr2/akcl/doc/") See the file find-doc.el for more information. INSTALL: ======= 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. DISCLAIMER: ---------- 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 wfs@rascal.ics.utexas.edu See the file doc/contributors for a partial list of people who have made helpful contributions to ports etc.