-
Notifications
You must be signed in to change notification settings - Fork 0
/
sunclu.README
202 lines (154 loc) · 8.95 KB
/
sunclu.README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
SUN CLU RELEASE 1.5
for Sun Workstations running Sun UNIX 4.2 and 4.3
Distribution of 26 May 1989
1 Notes
CLU is no longer licensed. See ~CLU/COPYRIGHT for distribution information.
If you have problems with this distribution, you can call Paul Johnson or
Dorothy Curtis at (617) 253-1945 to get help. If you find bugs, please tell us
about them, either in writing or by sending network mail to
PRJ@PM-PRJ.LCS.MIT.EDU and/or DCurtis@MESON.LCS.MIT.EDU. We do not have the
time or the staff for "releases"; you will have to either FTP a new copy or
request a distribution tape (for a fee) periodically. The sytem is quite
stable; no changes other than bug fixes are contemplated. We are now hard at
work on Argus, the distributed computing successor to CLU.
SUN CLU was been developed on a SUN-2 Workstation running Sun UNIX 4.2,
release 1.3 and release 2.0. It will work under other versions of the operating
system but it has not been tested under all of them. Let us know if you
encounter problems with this distribution that seem to be caused by operating
system version incompatibilities.
The released version is for a SUN-3 Workstation. See the file
~CLU/sun3.install for additional instructions on installing changed files and
building new executables.
The CLU Reference Manual is currently published by Springer-Verlag as a
monograph, ISBN 0-387-91253-3 or ISBN 3-540-91253-3. Formerly it was in their
Lecture Notes in Computer Science series, Number 114.
Real numbers are not implemented yet. There is currently a dummy ``real''
cluster. The compiler and linker will handle code which uses reals without any
complaints. However invoking ``real'' operations in a running program will not
produce the expected results. There is some chance that we may eventually
incorporate an outside implementation of reals but we do not have the staff to
develop the code ourselves at this time.
CLU modules cannot be linked into programs in other languages, nor can
modules written in other languages be linked with CLU programs. The parts of
the CLU system which are not written in CLU itself are written in 68000
assembly language using a special assembler developed for CLU. The assembler,
called asm, is included with this distribution. If it were absolutely necessary
you could hand-code CLU-compatible assembly routines. But BEWARE! There is
little or no documentation of the assembler or the system, but there are a
large number of rules that must be obeyed if the integrity of the system is to
be maintained. Avoid writing assembly language at all costs!
2 Installation
The system files and directories are set up to live under a single root
directory, and most system programs will not work reasonably if the files live
elsewhere. (The executable files in the exe directory may live anywhere,
however). There is some flexibility in where the CLU root directory can be
installed. The possibilities (in the order searched) are
1. the directory specified by the environment variable CLUHOME
2. the home directory, as listed in /etc/passwd, of user name CLU
3. /usr/local/lib/clu
4. /usr/lib/clu
5. /usr/clu
*** The compiler and linker may need to be relinked to get CLUHOME to work.
Any such directory can, of course, be a symbolic link to the real directory.
In the file/directory names in this and other CLU documents, ~CLU is used to
represent the CLU root directory. (In fact, this can be used within any CLU
program to refer to the root.)
There is one tar file on the tape. If you are using a tape device connected
directly to the SUN, you can extract the files by creating ~CLU, mounting the
tape, connecting to ~CLU, and issuing the command tar x
If the compiler and assembler do not work right off the tape:
- To get the compiler to work, delete ~CLU/cmp/state.??? and then run
~CLU/exe/clu. When you get the prompt "command(s): ", type "kill".
Check the file ~CLU/cmp/basic.junk to make sure there are no errors
(gcd_tab being undefined is OK), then delete it. To get the
assembler to work, delete ~CLU/asm/state.??? and then run
~CLU/exe/asm. When you get the prompt "FILE(S) = ", type "^D".
- If the debugger doesn't work off the tape, try recreating the basic
run-time system by deleting ~CLU/sys/basesys and
~CLU/sys/basesys.dump and then issuing the command ~CLU/exe/link
#init
If you want the executables in ~CLU/exe to live elsewhere, move them.
The entire system totals about 10Mb. If you only want a minimum
configuration, about 2Mb, only the following directories and files are
necessary:
~CLU
clu.hacks Information about special CLU features.
clu.info Information about the CLU compiler.
clu.opts Information about code optimizations.
clu.order Simple compiler command list.
linker.help Linker documentation.
stream.changes Additional stream operations.
system.intro Introduction to the debugging system.
system.names Names of modules used in the CLU system.
trace.cmnd_help Brief help message for trace package.
~CLU/bin
* Binaries for the run-time system.
~CLU/cmp
basic.types Only needed to recreate state.??? file.
state.??? Compiler state file.
~CLU/exe
clu The CLU compiler.
debug The CLU linker (debugging interface).
link The CLU linker (production interface).
~CLU/lib
short.help Brief description of library modules.
*.spc Interface specifications for many modules.
*.lib Compiler interface libraries.
~CLU/link
spcl_syms.txt Linker global symbols.
~CLU/sys
basesys Run-time system for DEBUG.
basesys.dump Database for DEBUG.
If you wish to hand-code CLU-compatible assembly routines, then the
following directories and files are necessary or useful (but see warning in
Section 1):
~CLU/asm
addr.defs Only needed to recreate state.?? file.
opcode.defs Ditto.
perm.defs Ditto.
state.?? ASM state file.
~CLU/dbg
dbg.doc DBG documentation.
~CLU/exe
asm The CLU assembler.
dbg CLU-oriented version of ADB.
Note: The sources to dbg are not included in this distribution. Contact us
if you need them. We may require a copy of your Unix source license.
If a real-time display editor with some special CLU features is desired,
then the following files are necesary or useful:
~CLU
ted.chart TED command chart.
ted.hlp Documentation about TED.
ted.press PRESS file of ted.hlp.
ted.vt100 VT100 termcap entries we use with TED.
~CLU/exe
ted A real-time editor written in CLU.
A few utilities that may be useful:
~CLU
calc.hlp CALC documentation.
compare.hlp COMPARE documentation.
~CLU/exe
calc Simple calculator.
compare Text/binary file comparison program.
gcdprt Print gc_dump and compiler binary files
liblst List modules in compiler library files.
For more system information:
~CLU/
howto.cons How to recreate system programs.
system.files More directory/file information.
3 Bugs
There appears to be a bug in the vadvise() system call. Normally the call
vadvise(VA_ANON) is issued prior to garbage collection. This informs the
system that the paging behavior of the program will not be easily predictable
and that a different page replacement algorithm should be used. A call to
vadvise(VA_NORM) is issued after garbage collection to return to a "normal"
paging strategy. Adding these calls to the SUN CLU garbage collector causes
non-deterministic failures due to random corruptions of the heap. The calls
are currently commented out in the garbage collector code. The result of
eliminating the vadvise() calls is that performance during garbage collection--
particularly when the heap is very large--may be much poorer than it ought to
be.
Table of Contents
1 Notes 1
2 Installation 1
3 Bugs 1