BSD 4_4 development
[unix-history] / usr / src / old / lisp / ReadMe
CommitLineData
02f811f2
C
1File: ReadMe -[Tue Mar 29 22:03:29 1983 by jkf]-
2Location: the root of the lisp distribution tree
3
4 This directory contains a Makefile which can will direct the
5initial construction and installation of the Franz Lisp system. After the
6lisp system is installed, the Makefiles in the subdirectories should be
7used 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
27To build lisp, follow these steps:
28
291) 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
372) 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
463) 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
574) 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
665) 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
726) 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
777) 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
82Note 1: Two files which are necessary yet which are not distributed
83are the assembler and linking loader. The assembler is required by
84liszt after it has compiled a file, the loader is required by the 'cfasl'
85and 'ffasl' functions. These programs are expected to be in
86/usr/lib/lisp/as and /usr/lib/lisp/nld. The Makefile will copy
87them from /bin/as and /bin/ld. If you are running a Berkeley vax
88distribution, this is ok. If you are using non-berkeley as or ld
89then you will have to get a copy of the berkeley as or ld and place
90them in /usr/lib/lisp yourself. We don't distribute them because
91they require a Unix license and because we want to avoid distributing
92object files.
93
94Note 2: For 68000 systems, we can distribute source for the assembler,
95by agreement with MIT, Megatest Corp and Sun Microsystems. As an aid
96to constructing the lisp system on machines with limited memory or swap
97space, you may have received the assembly language output of the
98compiler for the lisp library and compiler itself. The 68k compiler
99starts out running as 1.25 Megabytes and will grow larger as it retains
100macros and other information about the functions it is compiling.
101(This may be impossible on certain systems.)
102
103The .s files are distributed in files of the form x68k.38.58.*. The
104source for the assembler is in a file called lispas. In any case, you
105should still say "cat * | sh", in order to create the appropriate
106files. To construct the assembler, assemble the .s files, and contruct
107the lisp system quickly, say "make fromasm" instead of "make slow".
108
109
110Changes:
111 Look in franz/ChangeLog and liszt/ChangeLog for a blow by blow description
112of bug fixes and new features. Also the file lispnews in this directory
113describes changes to lisp which affect the user. This file is most
114easily read with 'mail -f lispnews'.
115
116The 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
123Future 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
130Documentation:
131 The source (troff form, with -me macros) for the Franz Lisp Manual is
132in the doc subdirectory. There is a line printer printable version
133in 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
135want to modify the lisp system or just understand how it works. The file
136is doc/franz.n.
137
138
139The meanings of the default directories and paths in the Makefiles
140in this directory tree (and LibDir)
141
142LibDir : [/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
147DestObjDir : [/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
152ObjDir: 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
156LispDist: [/usr/src/cmd/lispdist]
157 directory to build distribution in.
158
159CcodeDir: [../franz]
160 location of C coded kernel as seen from the liszt directory
161
162CopyTo : used as the destination directory of some of the commands in
163 the makefile. it has a different meaning in each.
164
165