BSD 2 development
[unix-history] / .ref-BSD-1 / pi / READ_ME
CommitLineData
8cd1624b
CH
1November 9, 1977
2
3This directory contains the source necessary to make a new pi.
4Many of the files in this directory were linked to files with the same
5name in the directory ../pxp, but the links were broken by tp.
6There is a binary of pi here that should work immediately.
7If you have floating point or with the simple system change in
8../READ_ME. If you have to give a different number to the system
9call, you can simply reassemble the floating point interpreter and
10reload pi via
11 load -i
12
13To print a copy of pi: printpi
14To make a new pi: makepi
15
16Read the file ../SETUP before you bother with any of this.
17
18The compiler made by makepi is suitable for running on an 11/45 or 11/70
19which has hardware floating point. If you don't have hardware floating
20point, it is not possible to run separate I/D using the standard interpreter.
21Standard version 6 UNIX does not have the needed system call to allow
22it to fetch the floating point opcode from instruction space, and the
23mfpi instruction doesn't work on 11/70's. A simple system change to add
24a "mfpi" system call is explained in ../SETUP; the floating point interpreter
25which uses this system call is in ../fpterp.
26
27This tape does not contain a Pascal system which will run on
2811/34's or 11/40's. Chuck and I were misinformed that
2911/34's would have sep I/D so we went to a one pass compiler scheme.
30It should be possible to make a smaller "pi" or a two pass "pi" without
31a great deal of effort. Earlier versions of the translator
32"pi" were small enough to run without separate I/D, and a still earlier "pc"
33was two rather much smaller passes.
34
35The following non-standard programs are needed to compile pi:
36
37 rmtree Remove a subtree of the directory system
38 mvall Move a named group of files to a specified directory
39 cc Version 7 C compiler
40 lnall Make links to a number of files in a specified
41 target directory
42 squash reduce object file size for library
43 not needed, just speeds loading and reduces
44 library size
45 mkstr Program to process C source putting error messages
46 into an error message file
47 eyacc Modified yacc
48
49In addition, the scripts here run with a shell that has a "set" command
50to enable automatic timing of commands. You can comment out the lines
51of the form
52 set ...
53without any harm, or make a null set shell script.
54Other local shell features used here are the alias "cd" for chdir and
55the syntax "$*" expanding to all the arguments, i.e. "$1 $2 $3 ...".
56
57Note: it is normal for the grammar to have a number of shift/reduce
58conflicts; a message of the form
59
60 conflicts: 16 shift/reduce
61
62(or worse) from yacc is to be expected.
63
64Defining the variable DEBUG on the first line of the file 0.h allows
65the following debugging options
66
67 c print generated code
68 y dump namelist
69 E trace basic syntactic error recovery
70 F full trace syn err rec
71 A super full trace ...
72 U prevent unique symbol insertion in error recovery
73
74As this option makes a much larger compiler it is not normally recommended.
75
76The syntactic error recovery relatively new code.
77It has not been as thoroughly tested as the rest of the system.
78
79Please let me know of any problems with Pascal, especially with the
80error recovery. I would be glad to hear of any problems, as well as
81any local modifications which you find necessary or desirable.
82
83 Bill Joy
84 Computer Science Division
85 EECS Department
86 University of California, Berkeley
87 Berkeley, California 94704
88
89 Office: (415) 642-4948
90 Home: (415) 524-4510