Commit | Line | Data |
---|---|---|
8cd1624b CH |
1 | November 9, 1977 |
2 | ||
3 | This directory contains the source necessary to make a new pi. | |
4 | Many of the files in this directory were linked to files with the same | |
5 | name in the directory ../pxp, but the links were broken by tp. | |
6 | There is a binary of pi here that should work immediately. | |
7 | If 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 | |
9 | call, you can simply reassemble the floating point interpreter and | |
10 | reload pi via | |
11 | load -i | |
12 | ||
13 | To print a copy of pi: printpi | |
14 | To make a new pi: makepi | |
15 | ||
16 | Read the file ../SETUP before you bother with any of this. | |
17 | ||
18 | The compiler made by makepi is suitable for running on an 11/45 or 11/70 | |
19 | which has hardware floating point. If you don't have hardware floating | |
20 | point, it is not possible to run separate I/D using the standard interpreter. | |
21 | Standard version 6 UNIX does not have the needed system call to allow | |
22 | it to fetch the floating point opcode from instruction space, and the | |
23 | mfpi instruction doesn't work on 11/70's. A simple system change to add | |
24 | a "mfpi" system call is explained in ../SETUP; the floating point interpreter | |
25 | which uses this system call is in ../fpterp. | |
26 | ||
27 | This tape does not contain a Pascal system which will run on | |
28 | 11/34's or 11/40's. Chuck and I were misinformed that | |
29 | 11/34's would have sep I/D so we went to a one pass compiler scheme. | |
30 | It should be possible to make a smaller "pi" or a two pass "pi" without | |
31 | a 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" | |
33 | was two rather much smaller passes. | |
34 | ||
35 | The 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 | ||
49 | In addition, the scripts here run with a shell that has a "set" command | |
50 | to enable automatic timing of commands. You can comment out the lines | |
51 | of the form | |
52 | set ... | |
53 | without any harm, or make a null set shell script. | |
54 | Other local shell features used here are the alias "cd" for chdir and | |
55 | the syntax "$*" expanding to all the arguments, i.e. "$1 $2 $3 ...". | |
56 | ||
57 | Note: it is normal for the grammar to have a number of shift/reduce | |
58 | conflicts; a message of the form | |
59 | ||
60 | conflicts: 16 shift/reduce | |
61 | ||
62 | (or worse) from yacc is to be expected. | |
63 | ||
64 | Defining the variable DEBUG on the first line of the file 0.h allows | |
65 | the 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 | ||
74 | As this option makes a much larger compiler it is not normally recommended. | |
75 | ||
76 | The syntactic error recovery relatively new code. | |
77 | It has not been as thoroughly tested as the rest of the system. | |
78 | ||
79 | Please let me know of any problems with Pascal, especially with the | |
80 | error recovery. I would be glad to hear of any problems, as well as | |
81 | any 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 |