home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / comp / sys / amiga / programm / 13110 < prev    next >
Encoding:
Internet Message Format  |  1992-09-07  |  11.1 KB

  1. Xref: sparky comp.sys.amiga.programmer:13110 comp.os.msdos.programmer:9086 comp.ai:3341 comp.lang.lisp:2372
  2. Path: sparky!uunet!zaphod.mps.ohio-state.edu!magnus.acs.ohio-state.edu!usenet.ins.cwru.edu!agate!dog.ee.lbl.gov!network.ucsd.edu!cogsci!crl!hartung
  3. From: hartung@crl.ucsd.edu (Jeff Hartung)
  4. Newsgroups: comp.sys.amiga.programmer,comp.os.msdos.programmer,comp.ai,comp.lang.lisp
  5. Subject: Re: PD Common Lisp for Amiga, PC? (long)
  6. Summary: KCL/AKCL source code can be ftp'd
  7. Keywords: Common LISP free source code
  8. Message-ID: <1559@cogsci.ucsd.EDU>
  9. Date: 5 Sep 92 18:21:33 GMT
  10. References: <Btyo7E.IxH@news.udel.edu> <3EWCr*F12@emcamiga.UUCP>
  11. Sender: news@cogsci.ucsd.EDU
  12. Distribution: na
  13. Organization: University of California, San Diego
  14. Lines: 294
  15.  
  16. Hi.  A few years ago I was in a LISP class and we used Kyoto Common LISP
  17. (KCL).  I checked, and the site that had the source code to KCL,
  18. rascal.ics.utexas.edu, still has it, plus patches to bring it up to the most
  19. recent version.  Now, we had this compiled on Sun and VAX machines running
  20. UNIX.  I don't know it the code can be coerced to make on a PC or Amiga, but
  21. the price is certaqinly right. :-)
  22.  
  23. Anyhow, here's the AKCL.README file from rascal's /pub directory:
  24.  
  25.  
  26.  --Jeff Hartung--      
  27.  Disclaimer: My opinions only, etc., etc., BLAH! BLAH! BLAH!...
  28.  InterNet - hartung@crl.ucsd.edu         BITNET - hartung@ucsd
  29.  UUCP - ucsd!crl.ucsd.edu!hartung
  30. ---------------------------------CUT HERE---------------------------------
  31. Description of AKCL system.
  32.  
  33. OVERVIEW:
  34.  
  35. The AKCL system contains original files and change files (usually V/*
  36. files).  The change files are then combined with files in the original
  37. KCL distribution.  The latter is the June 1987 version.  The utility
  38. merge, takes files from the original distribution and modifies them
  39. according to a prescription in a `change file'.  The change files
  40. reside in the directory V.  The enhancements include enhancements to
  41. the lisp compiler, loader, garbage collector and to the basic C code.
  42. If installed properly NOTHING in the original kcl directory should be
  43. overwritten.  Files which have not changed will have only a link copy
  44. in the akcl directory, and files which do change will have a changed
  45. copy in the akcl directory, and an unchanged file in the kcl
  46. directory.  To ensure that you do not accidentally alter a file in the
  47. original directory you might wish to make the files there unwritable.
  48. You do not need to do a make in the kcl directory.
  49.  
  50.  
  51. OBTAINING SOURCES:
  52. -----------------                   
  53. * There are source files on rascal.ics.utexas.edu:pub/akcl-XX.tar.Z
  54. You probably want the highest XX version number.  For example
  55. akcl-1-605.tar.Z would allow you to build the version 1-605 of AKCL.  In
  56. the following this compressed tar file is simply referred to as
  57. akcl.tar.Z.   You will also need to obtain the original kcl distribution
  58. of June 1987.  That is referred to as kcl.tar.Z and is also available
  59. on rascal.   An alternate source for these files is cli.com:akcl/akcl-XX.tar.Z
  60. In general the bandwidth to rascal is higher than to cli.com.
  61. Rascal's address is rascal.ics.utexas.edu (128.83.138.20).
  62.                    
  63. * If you cannot obtain these files via internet, a cartridge tape (sun
  64. compatible) or diskettes containing akcl, and kcl sources may be
  65. obtained for $250 US plus shipping, from J. Schelter, 1715
  66. Barnswallow, Autin TX 78746.  This would be in standard tar format.
  67. Some machines on which akcl compiles are 386 under System V (eg
  68. Microport), Sun's (sparc,sun3's), HP under hpux and 4.3, Dec mips ultrix,
  69. Sgi mips irix.
  70.  
  71. MAKING THE SYSTEM:
  72. ==================
  73. To make the whole system, if you have obtained akcl.tar.Z and
  74. kcl.tar.Z
  75.  
  76. UNCOMPRESS and UNTAR the SOURCES:
  77. --------------------------------
  78.  
  79. Change to a directory in which you wish to put the kcl and akcl
  80. subdirectories.  Make sure the two files kcl.tar.Z and akcl.tar.Z are
  81. in your current directory.    When you extract the files make sure the write
  82. file write dates are as in the distribution--make needs this.
  83.  
  84. % mkdir kcl
  85. % (cd kcl ; uncompress -c ../kcl.tar.Z | tar  xvf -)
  86. % mkdir akcl
  87. % cd akcl
  88. % uncompress -c ../akcl.tar.Z | tar  xvf -
  89.  
  90.       
  91. ADD MACHINE DEFINITIONS TO MAKEFILES:
  92. ------------------------------------
  93.  
  94. Determine the NAME of your machine by looking in the MACHINES file (eg
  95. sun3-os4).  Also remember where you untarred kcl.tar.Z (eg
  96. /public/kcl)
  97.  
  98.     % add-defs sun3-os4 /public/kcl
  99.  
  100.     (in general % add-defs NAME DIRECTORY-WHERE-KCL-IS)
  101.  
  102.     You should finally be ready to go!
  103.  
  104. RUNNING MAKE:
  105. ------------
  106.  
  107.     % make -f Smakefile 
  108.  
  109. NOTE: Smakefile is a special makefile which causes make to be run
  110. twice, the first time building a saved_kcl using some interpreted
  111. code, and the second time compiling itself.  If this does not run
  112. twice you will be using a good deal of interpreted code as well as a
  113. combination of old and new compiler, which while sufficient to compile
  114. the new compiler, would not be good for general use.  If you later
  115. change files it will be sufficient to just use the regular makefile
  116. (which has by now been slightly altered).
  117.  
  118. The make should continue without error.   There may be occasional
  119. warnings from the C compiler, but all files should compile successfully
  120. producing .o files.
  121.  
  122. The V/* change files will only be used if they are newer (normally the
  123. case) than the existing files.  If you have modified files in the akcl
  124. directory, eg. c/array.c, but wish merge to overwrite that with its
  125. merged version, you could for example % touch V/c/array.c.  Building
  126. akcl successfuly through the second pass, will mail a version info
  127. message to akcl so we know which cpu, c compiler and os levels are
  128. working properly, as well as printing out a message "Make of AKCL xxx
  129. completed", where xxx stands for the version number.
  130.  
  131. When it has finally finished you may invoke AKCL by using
  132.  
  133. TRY IT OUT:
  134. ----------
  135.  
  136. % xbin/kcl
  137. AKCL (Austin Kyoto Common Lisp)  Version(1.65) Wed Sep 21 00:52:31 CDT 1988
  138. Contains Enhancements by W. Schelter
  139. >(+ 2 3)
  140.  
  141. >5
  142.  
  143.  
  144. COPY THE COMMAND SCRIPT:
  145. -----------------------
  146.  
  147.     * You should copy xbin/kcl to /usr/local/bin or some place on users
  148.     search paths.   This is so that users may conveniently invoke the saved
  149.     image with a first arg equal to the directory where the image resides.
  150.     (some things like faslink, autoload,.. need to know the system directory).
  151.  
  152.  
  153. ELIMINATE SOME FILES?
  154. --------------------
  155.  
  156. What to keep if you have no space!  The only files which are ESSENTIAL
  157. to running of AKCL COMMON LISP once you have built the system (if you are
  158. using sfasl, as is default on a sun eg).
  159.   
  160.     unixport/saved_kcl
  161.     /usr/local/bin/akcl                (copy of xbin/akcl)
  162.  
  163.     Also if you are able to use sfasl, you may even % strip saved_kcl.
  164. Of course keeping sources, documentation, etc. is desirable.
  165.     doc/DOC
  166.     doc/DOC-keys.el
  167. And there are a few unloaded files */*.lisp which are useful to keep.
  168. For example lsp/make.lisp.
  169.  
  170.  
  171. DOCUMENTATION:
  172. ==============
  173.    If you use gnu emacs, a convenient method for viewing documentation
  174. of common lisp functions (or functions in an extended system), is
  175. provided by the doc/find-doc.el file.  This will be installed when you
  176. do make in the doc directory.  Adding the following to your .emacs
  177. file will allow you to use C-h d to find documentation.
  178.  
  179. (autoload 'find-doc "find-doc" nil t)
  180. (global-set-key "d" 'find-doc)
  181. (visit-doc-file "/public/akcl/doc/DOC")
  182.  
  183. See the file find-doc.el for more information.
  184. Otherwise you may use the describe command inside lisp.
  185. For example (describe 'print) will print out information about
  186. print.   You may also peruse the file doc/DOC.
  187.  
  188.  
  189. INSTALL:
  190. =======
  191. After the system has been built, in the main akcl directory
  192.  
  193. % make install 
  194.  
  195. will copy the command to execute kcl to the LBINDIR,
  196. and will also attempt to install the documentation interface
  197. for gnu emacs.   You will have to have write permission in the
  198. emacs directory, and LBINDIR for this, so you may need to
  199. be super user.
  200.  
  201.  
  202. TROUBLE SHOOTING (some common problems reported):
  203. ----------------   
  204.  
  205. 1) Did you extract the files with the original write dates--make
  206. depends heavily on this?
  207.  
  208. 2) Did you use -O on a compiler which puts out bad code?  Any time you
  209. change the settings or use a new c compiler this is a tricky point.
  210.  
  211. 3) A sample transcript from a correct make is included under
  212. doc/sample-make.  If yours compiles less often or does things
  213. differently, something is wrong, probably with dates or the clock on
  214. the server or something.
  215.  
  216. 4) If you can't save an image, try doing so on the file server rather
  217. than a client.
  218.  
  219. 5) Doing the make on a client with the main files on a server, has
  220. sometimes caused random breakage.  The large temp files used by the C
  221. compiler seem to sometimes get transferred incorrectly.  Solution: use
  222. the server for the compile.
  223.  
  224. 6) Did you make changes in the .defs or .h files, other than just
  225. commenting out a CC=gcc line?
  226.  
  227.  
  228. CHANGING THINGS: MAYBE EDIT TWO FILES:
  229. --------------------
  230.  
  231. Normally you should not need to edit ANY files.  There may be some
  232. parameter sizes you wish to change or if you don't have gcc where
  233. we have made that the default, then see CC below.
  234.  
  235.  
  236. EDIT the appropriate h/NAME.defs file.   These are definitions to
  237. be included in the various makefiles.
  238.  
  239. For example if the `NAME' of your machine is sun3-os4.
  240.  
  241. % emacs h/sun3-os4.defs
  242.  
  243.    * CC: set C compiler options.  For example, if you are using the GNU
  244.      C compiler:
  245.  
  246.      CC = gcc -msoft-float -DVOL=volatile -I$(AKCLDIR)/o
  247.  
  248.          Or, if you are using the conventional UNIX C compiler:
  249.  
  250.      CC = cc -DVOL= -I. -I$(AKCLDIR)/o
  251.      
  252.    * ODIR_DEBUG:
  253.      
  254.      ODIR_DEBUG= -g
  255.  
  256.      If you want files in the main c source compiled with debugging
  257.      information.   Note this is incompatible with OFLAGS= -O on
  258.      some compilers.   Size will be smaller without -g, but you
  259.      are then helpless in the face of problems.
  260.      
  261.    * INITFORM: The normal thing is to just have the one form
  262.      required for fast loading.
  263.  
  264.     INITFORM=(si::build-symbol-table)
  265.  
  266.  
  267. -----------
  268.  
  269. EDIT the file h/NAME.h  (eg h/sun3-os4.h)
  270.  
  271. (Actually you probably don't need to change it)
  272.  
  273. This file will be included by virtually every compilation of C
  274. files, except the translated C produced by kcl.
  275.  
  276. % emacs h/sun3-os4.h
  277.  
  278.       if you wish to change a parameter such as MAXPAGE 16384 established
  279.       in bsd.h (ie. number of 2000 byte pages you want as your absolute max
  280.       swap space).   MAXPAGE must be a power of 2.
  281.  
  282.       #undef MAXPAGE
  283.       #define MAXPAGE (2 * 16384)
  284.  
  285.       You may similarly redefine VSSIZE the maximum size for the value
  286.       stack (running very deep recursion interpreted may well require this).
  287.  
  288.  
  289.  
  290. DISCLAIMER:
  291. ----------
  292.  
  293. W. Schelter, the University of Texas, and other parties provide this
  294. program on an "as is" basis without warranty of any kind, either
  295. expressed or implied, including, but not limited to, the implied
  296. warranties of merchantability and fitness for a particular purpose.
  297.  
  298.  
  299. Bill Schelter 
  300. wfs@math.utexas.edu
  301.  
  302. See the file doc/contributors for a partial list of people who have
  303. made helpful contributions to ports etc.
  304. ---------------------------------CUT HERE---------------------------------
  305. -- 
  306.  --Jeff Hartung--      
  307.  Disclaimer: My opinions only, etc., etc., BLAH! BLAH! BLAH!...
  308.  InterNet - hartung@crl.ucsd.edu         BITNET - hartung@ucsd
  309.  UUCP - ucsd!crl.ucsd.edu!hartung
  310.