| 1 | File: ReadMe -[Tue Mar 29 22:03:29 1983 by jkf]- |
| 2 | Location: the root of the lisp distribution tree |
| 3 | |
| 4 | This directory contains a Makefile which can will direct the |
| 5 | initial construction and installation of the Franz Lisp system. After the |
| 6 | lisp system is installed, the Makefiles in the subdirectories should be |
| 7 | used directly when modifications are made to either piece of code. |
| 8 | |
| 9 | The lisp system consists of these parts: |
| 10 | 1) lisp - lisp interpreter |
| 11 | 2) liszt - lisp compiler |
| 12 | 3) lxref - lisp cross reference program |
| 13 | 4) library of files - collection of lisp files. Some are already loaded |
| 14 | into lisp. Others are loaded on demand. Still others are just |
| 15 | contributed files. |
| 16 | 5) on-line manual - the lisp manual formatted for lineprinter or terminal |
| 17 | perusal. The lisp 'help' command refers to this manual |
| 18 | 6) lisp manual - the troff input form for the lisp manual. If you can |
| 19 | run troff or nroff at your site then you can generate a lisp manual |
| 20 | from the files in this directory. |
| 21 | 7) pearl AI database program - this is a contributed program. More details |
| 22 | can be found in the file pearl/ReadMe. This program will not |
| 23 | be generated automatically by the Makefile in this directory. |
| 24 | If disk space is short, the pearl subdirectory may be removed |
| 25 | and it won't affect any other programs. |
| 26 | |
| 27 | To build lisp, follow these steps: |
| 28 | |
| 29 | 1) Run './lispconf' to describe the system you will be building lisp for. |
| 30 | Just type './lispconf' and it will describe the possible |
| 31 | configurations. Typically, when lisp is distributed it is configured |
| 32 | to run under 4.1c on a vax. |
| 33 | |
| 34 | Look in franz/h/config.h. You may want to alter some of the |
| 35 | configuration parameters before you start. |
| 36 | |
| 37 | 2) Look at the path name defaults in the Makefiles in the various |
| 38 | source directories ({franz,liszt}/{vax,68k},utils,lisplib). |
| 39 | You can modify these defaults if you like. It is suggested |
| 40 | that you leave the lisp library in /usr/lib/lisp. |
| 41 | Most code doesn't really depend on where the library is, |
| 42 | just as long as when the system is built, the directory |
| 43 | name is known. However, some application programs may depend on the |
| 44 | library being in /usr/lib/lisp. |
| 45 | |
| 46 | 3) If this is a distribution of lisp source (as opposed to a complete |
| 47 | 4.x distribution) then you will want to copy the |
| 48 | lisp library files in lisplib into the lisp library (typically |
| 49 | /usr/lib/lisp). [If you don't want to use /usr/lib/lisp change |
| 50 | the value of LibDir in the Makefile]. Now type |
| 51 | make copylibrary |
| 52 | and the library files in lisplib will be copied to the lisp |
| 53 | library. If an error message occurs, it may be that you don't |
| 54 | have permissions to write in the lisp library. If this is the |
| 55 | case, fix the permissions and type 'make copylibrary' again. |
| 56 | |
| 57 | 4) If you have a working lisp system, then you may be able to bring the |
| 58 | system up quickly. Type |
| 59 | make fast |
| 60 | and the Makefile will attempt to build a new lisp, liszt, and lxref |
| 61 | and place them in franz/mylisp, liszt/nliszt and liszt/lxref respectively. |
| 62 | [See Note 1 below.] |
| 63 | If it fails, then you may just have to start from scratch, see step 5. |
| 64 | If it works, go to step 6. |
| 65 | |
| 66 | 5) To make the entire lisp system, interpreter and compiler, from scratch, |
| 67 | type: |
| 68 | make slow |
| 69 | This may take three to four hours on an unloaded vax. |
| 70 | See Note 1 below. |
| 71 | |
| 72 | 6) once the files are made, type |
| 73 | make install |
| 74 | and new versions of lisp, liszt and lxref (the compiler cross reference |
| 75 | program) will be installed in ObjDir. |
| 76 | |
| 77 | 7) If you've changed where files live, then you should change the defaults |
| 78 | in each of the makefiles: liszt/Makefile, franz/Makefile, doc/Makefile |
| 79 | and /usr/lib/lisp/Makefile. |
| 80 | |
| 81 | |
| 82 | Note 1: Two files which are necessary yet which are not distributed |
| 83 | are the assembler and linking loader. The assembler is required by |
| 84 | liszt after it has compiled a file, the loader is required by the 'cfasl' |
| 85 | and 'ffasl' functions. These programs are expected to be in |
| 86 | /usr/lib/lisp/as and /usr/lib/lisp/nld. The Makefile will copy |
| 87 | them from /bin/as and /bin/ld. If you are running a Berkeley vax |
| 88 | distribution, this is ok. If you are using non-berkeley as or ld |
| 89 | then you will have to get a copy of the berkeley as or ld and place |
| 90 | them in /usr/lib/lisp yourself. We don't distribute them because |
| 91 | they require a Unix license and because we want to avoid distributing |
| 92 | object files. |
| 93 | |
| 94 | Note 2: For 68000 systems, we can distribute source for the assembler, |
| 95 | by agreement with MIT, Megatest Corp and Sun Microsystems. As an aid |
| 96 | to constructing the lisp system on machines with limited memory or swap |
| 97 | space, you may have received the assembly language output of the |
| 98 | compiler for the lisp library and compiler itself. The 68k compiler |
| 99 | starts out running as 1.25 Megabytes and will grow larger as it retains |
| 100 | macros and other information about the functions it is compiling. |
| 101 | (This may be impossible on certain systems.) |
| 102 | |
| 103 | The .s files are distributed in files of the form x68k.38.58.*. The |
| 104 | source for the assembler is in a file called lispas. In any case, you |
| 105 | should still say "cat * | sh", in order to create the appropriate |
| 106 | files. To construct the assembler, assemble the .s files, and contruct |
| 107 | the lisp system quickly, say "make fromasm" instead of "make slow". |
| 108 | |
| 109 | |
| 110 | Changes: |
| 111 | Look in franz/ChangeLog and liszt/ChangeLog for a blow by blow description |
| 112 | of bug fixes and new features. Also the file lispnews in this directory |
| 113 | describes changes to lisp which affect the user. This file is most |
| 114 | easily read with 'mail -f lispnews'. |
| 115 | |
| 116 | The major changes are described next. |
| 117 | |
| 118 | opus 38: the reader has changed quite a bit. It now uses symbolic |
| 119 | syntax codes and it provides infix macros. |
| 120 | The lisp library files have been reorganized in order to make |
| 121 | lisp bootstrapable. |
| 122 | |
| 123 | Future bug fixes: |
| 124 | When you find bugs in Lisp or Liszt, mail a letter to franz-bugs@berkeley |
| 125 | or ucbvax!franz-bugs. |
| 126 | We will mail bug fixes to the franz-composers mailing list. To get on |
| 127 | this mailing list, mail a letter to franz-friends-request@berkeley or |
| 128 | ucbvax!franz-friends-request. |
| 129 | |
| 130 | Documentation: |
| 131 | The source (troff form, with -me macros) for the Franz Lisp Manual is |
| 132 | in the doc subdirectory. There is a line printer printable version |
| 133 | in lisplib/manual (which is most likely copied to /usr/lib/lisp/manual). |
| 134 | There is also a system manual which may be of interest to people who |
| 135 | want to modify the lisp system or just understand how it works. The file |
| 136 | is doc/franz.n. |
| 137 | |
| 138 | |
| 139 | The meanings of the default directories and paths in the Makefiles |
| 140 | in this directory tree (and LibDir) |
| 141 | |
| 142 | LibDir : [/usr/lib/lisp] |
| 143 | directory containing the lisp library sources, some of which |
| 144 | are required to build a lisp system. Change this with caution, |
| 145 | Some programs may depend on it being /usr/lib/lisp |
| 146 | |
| 147 | DestObjDir : [/usr/ucb] |
| 148 | place to put the lisp and liszt that we build. Note that for |
| 149 | the liszt -r flag to work, the lisp interpreter must be in |
| 150 | /usr/ucb |
| 151 | |
| 152 | ObjDir: Directory containing existing lisp and liszt (if they exist). |
| 153 | if they don't exist, then you will do a 'make slow' and the value |
| 154 | of ObjDir doesn't matter |
| 155 | |
| 156 | LispDist: [/usr/src/cmd/lispdist] |
| 157 | directory to build distribution in. |
| 158 | |
| 159 | CcodeDir: [../franz] |
| 160 | location of C coded kernel as seen from the liszt directory |
| 161 | |
| 162 | CopyTo : used as the destination directory of some of the commands in |
| 163 | the makefile. it has a different meaning in each. |
| 164 | |
| 165 | |