|
|
1.1 root 1: .so tmac.tr
2: .DA "August 24, 1984; Revised October 12, 1984"
3: .TR 84-13a
4: .Gr
5: .TL
6: Installation and Maintenance Guide
7: .br
8: for Version 5.9 of Icon
9: .AU
10: Ralph E. Griswold
11: .AU
12: William H. Mitchell
13: .AE
14: .tr *\(**
15: .PP
16: This document describes how to install Version 5.9 of the Icon programming
17: language [1, 2].
18: The distribution of Version 5.9 contains source code for Icon itself,
19: documentation, sample programs and tests, the Icon program library [3],
20: the procedures from the Icon book [1], test suites to aid in
21: porting Icon [4, 5], and various support material.
22: .PP
23: The installation procedure for Icon is simple; it requires unloading the
24: distribution tape onto the target machine, the setting of
25: site-specific constants, and the compilation of the Icon
26: system itself.
27: Read Sections 1 and 2 of this document and the overview of Version 5.9 [2]
28: before beginning the installation process.
29: .PP
30: If Version 5.9 is being installed at a site that is running Version 5.8,
31: read Section 3.2 before beginning the installation process.
32: .NH 1
33: System Requirements
34: .PP
35: This distribution of Version 5 Icon is targeted for VAX-11s
36: and PDP-11s (with separate instruction and data spaces)
37: running the UNIX\u\s-2*\s0\d operating system. This distribution package has been tested
38: .FS
39: \u\s-2*\s0\dUNIX is a trademark of AT&T Bell Laboratories
40: .FE
41: under V7 and 4.2bsd, and no problems should be encountered when installing
42: Icon under one of these versions of UNIX.
43: .PP
44: When the system is unloaded, it requires about 2,700 kilobytes of disk space.
45: During compilation, about 3,700 kilobytes are required.
46: To install subsidiary components and test the entire system, about 4,800
47: kilobytes are required.
48: After the removal of unnecessary files,
49: about 3,800 kilobytes are required.
50: These figures vary slightly depending upon the logical organization of
51: a particular file system.
52: .PP
53: Additional space can be saved by omitting the Icon program library,
54: test programs, and so on. See Sections 6.1, 6.2, and Appendix A
55: for more information about
56: the directories on the distribution tape. On systems with severely
57: limited disk space, source code also can be deleted after Icon is installed.
58: .NH 1
59: Installation Procedure
60: .NH 2
61: Unloading the Distribution Tape
62: .PP
63: The system is distributed as a \fItar\fR archive on magnetic tape.
64: The \fItar\fR
65: hierarchy is rooted at the directory \*Mv5g\fR.
66: If you already have a \*Mv5g\fR directory from an earlier version of
67: Icon, you may wish to move this old directory to a new location, such
68: as \*Mv5g.old\fR.
69: .PP
70: Mount the distribution tape
71: and do a \fIcd\fR to the directory that is to hold
72: the system hierarchy.
73: .PP
74: The precise
75: \fItar\fR command to unload the distribution
76: tape depends on the local environment.
77: On a 4.\fIn\fRbsd VAX with a 1600 bpi distribution tape, the following
78: command should extract the contents of the tape:
79: .Ds
80: tar x
81: .De
82: On a V7 PDP-11 with a 1600 bpi distribution tape, use:
83: .Ds
84: tar xfb /dev/rmt0 20
85: .De
86: For example, if the system is to reside at \*M/usr/src/local/icon/v5g\fR on a VAX,
87: type:
88: .Ds
89: cd /usr/src/local
90: mkdir icon
91: cd icon
92: tar x
93: .De
94: .LP
95: \fINote\fR: File names used in the following sections usually are relative to
96: the root directory for the Icon hierarchy. For example, if
97: the Icon system is unloaded as described above, the root directory
98: is
99: .Ds
100: /usr/src/local/icon/v5g
101: .De
102: and
103: the file name \*Mv5g/bin/Makefile\fR refers to
104: .Ds
105: /usr/src/local/icon/v5g/bin/Makefile
106: .De
107: .NH 2
108: Configuring the Icon System
109: .PP
110: The installer must perform a site-specific configuration of the Icon
111: system. This configuration is done by the shell script
112: \*MIcon\-setup\fR.
113: \*MIcon\-setup\fR accepts a number of parameters and modifies
114: several source files to produce a ready-to-compile Icon system tailored
115: as specified by the parameters.
116: .PP
117: Before \*MIcon\-setup\fR
118: modifies a file, it copies a generic version of the
119: file into place and works on it. Thus, \*MIcon\-setup\fR can be run a number
120: of times and only the last run has any lasting effect.
121: \*MIcon\-setup\fR is like any other UNIX command and thus all of its
122: arguments must be specified on one logical command line.
123: \*MIcon\-setup\fR has the following synopsis:
124: .IP \*MIcon\-setup
125: .nf
126: {\-vax\fR,\*M\-pdp11\fR,\*M\-port}
127: \-host\ \fIstring\fP
128: [\-sets]
129: [\-xpx]
130: [\-hz\ \fIrate\fP]
131: [\-nofp]
132: [\-interpex]
133: [\-vfork]
134: [\-usg]
135: [\-ibin\ \fIlibrary directory for Icon\fP]
136: [\-iconx\ \fIlocation of the Icon interpreter\fP]
137: [\-debug\*M]
138: .fi
139: .LP
140: The parameters have the following meanings:
141: .IP \*M\-vax\fR,\fP\ \ \-pdp11\fR,\fP\ \ \fRor\fP\ \ \-port\fR
142: .br
143: These are mutually exclusive options that control the selection of
144: machine-dependent portions of code. Select one as appropriate.
145: \*M\-port\fR is used to set up Icon for transporting to a computer
146: for which it previously has not been implemented.
147: .IP \*M\-host\fR\ \ \fIstring\fR
148: .br
149: The Icon system has a keyword, \*M&host\fR, whose value should be the
150: name of the host machine where the system is running. On some systems,
151: notably 4.2bsd, System III, and System V, it is possible to
152: determine the name of the system at run-time via a system call.
153: On other systems, 4.1bsd for example,
154: the file \*M/usr/include/whoami.h\fR contains
155: the name of the host in a \*M#define\fR statement.
156: On 4.2bsd, specify \*Mgethost\fR for \fIstring\fR.
157: This causes the \fIgethostname(2)\fR function to be used.
158: On System III, System V, or some other system that
159: supports the \fIuname\fR(2) system call, specify \*Muname\fR for
160: \fIstring\fR. On a system with a \*M/usr/include/whoami.h\fR
161: file that has a \*M#define\fR for \*Msysname\fR, then specify
162: \*Mwhoami\fR for \fIstring\fR. If none of these
163: are available on your machine, or to give \*M&host\fR some
164: value besides that of the machine name, specify an arbitrary
165: string (quotes around it may be needed) for \fIstring\fR, for
166: example: \*M\-host\fR\ \ \*MUNIX\fR.
167: .IP \*M\-sets\fR
168: .br
169: This parameter incorporates code to support the set data type, an extension to standard Version 5 that
170: is described in [6].
171: This extension adds about 3 kilobytes to the size of the run-time system.
172: .IP \*M\-xpx\fR
173: .br
174: This parameter incorporates a number of other extensions to standard Version 5 as described in [6].
175: These extensions add about 2 kilobytes to the size of the Icon run-time system.
176: .IP \*M\-hz\fR\ \ \fIrate\fR
177: .br
178: This parameter specifies the cycle rate of the electrical environment.
179: The rate defaults to 60 Hz.
180: \*M\-hz\fR does not need to be specified in a 60-Hz electrical environment. If the
181: rate is incorrect, the value of \*M&time\fR will be wrong.
182: .IP \*M\-nofp\fR
183: .br
184: Specify this on a PDP-11 that does not have
185: floating-point hardware.
186: .IP \*M\-interpex\fR
187: .br
188: Specify this option on a 4.\fIn\fRbsd system. This option
189: causes the use of a feature of the \fIexec\fR(2) system call to make
190: interpretable files directly executable.
191: Do \fInot\fR specify this option on other systems.
192: .IP \*M\-vfork\fR
193: .br
194: Specify this option if the operating system supports the \fIvfork(2)\fR
195: system call; this should be specified for 4.\fIn\fRbsd systems.
196: .IP \*M\-usg\fR
197: .br
198: Specify this option to adapt for minor incompatibilities between V7 UNIX systems
199: and UNIX Software Group UNIX systems. In particular, specify this
200: for System III or System V UNIX.
201: .IP \*M\-ibin\ \fIdirectory\fR
202: .br
203: The directory \*Mbin\fR
204: contains executable versions of the Icon translator (\*Mitran\fR), the Icon
205: linker (\*Milink\fR),
206: and the run-time system (\*Miconx\fR). The path name of this directory is built
207: into \*Micont\fR, the program that controls the
208: translation of Icon programs. By default, the fully qualified name
209: of \*Mbin\fR is used for \*M\-ibin\fR.
210: Specifying \*M\-ibin\fR
211: causes \*Micont\fR to use the specified
212: directory as its library directory. If an alternate directory is
213: specified, after the Icon system is built,
214: copy \*Mv5g/bin/itran\fR, \*Mv5g/bin/ilink\fR, \*Mv5g/bin/iconx\fR,
215: and \*Mv5g/bin/iconx.hdr\fR
216: into the specified directory.
217: .IP \*M\-iconx\ \fIinterpreter-location\fR
218: .br
219: By default, the \fIinterpreter-location\fR is the fully qualified
220: name of \*Mv5g/bin/iconx\fR. If \*M\-ibin\fR is specified, then
221: \fIinterpreter-location\fR defaults to \fIibin-directory/\*Miconx\fR.
222: See Section 3.2 for considerations in chosing the location of the interpreter.
223: If the fully qualified name of \*Miconx\fR is longer than 29 characters
224: and \*M\-interpex\fR is specified, \*MIcon\-setup\fR considers the
225: name to be erroneous. If this happens, consult Section 3.1.
226: If an alternate location is specified for \*Miconx\fR, after
227: the Icon system is built, copy \*Mv5g/bin/iconx\fR to the
228: specified location.
229: .IP \*M\-debug\fR
230: .br
231: This option enables some debugging code; it normally is not used.
232: .LP
233: The only required options are \*M\-host\fR and one of \*M\-vax\fR, \*M\-pdp11\fR,
234: or \*M\-port\fR.
235: For example, on a VAX running 4.2bsd, use
236: .Ds
237: Icon\-setup \-vax \-interpex \-host gethost \-vfork
238: .De
239: .PP
240: On a PDP-11 without floating-point hardware, running Version 7 UNIX,
241: and on which \*M&host\fR is to be \*MUNIX Version 7\fR, use
242: .Ds
243: Icon\-setup \-pdp11 \-nofp \-host "Unix Version 7"
244: .De
245: On a VAX running System V in a 50-Hz electrical
246: environment, on which the library directory for Icon is to be
247: \*M/usr/lib/icon\fR,
248: the Icon interpreter is to reside at \*M/usr/bin/iconx\fR,
249: and all language extensions are to be included, use
250: .Ds
251: .in 0
252: Icon\-setup \-vax \-hz 50 \-sets \-xpx \-host uname \-usg \-ibin /usr/lib/icon \-iconx /usr/bin/iconx
253: .De
254: .NH 2
255: Compiling Icon
256: .PP
257: The Icon distribution tape contains no executable binary files and no
258: object files, so the system must be completely recompiled from the
259: source. After running \*MIcon\-setup\fR,
260: compile the system by doing a \fImake\fR.
261: The complete system construction process is:
262: .Ds
263: cd v5g
264: Icon\-setup \fIappropriate arguments\fP
265: make Icon
266: .De
267: .NH 2
268: Installing Icon for Public Use
269: .PP
270: A copy of
271: \*Mv5g/bin/icont\fR may be placed in a public
272: directory such as \*M/usr/bin\fR or \*M/usr/local\fR to provide general user
273: access to Icon.
274: If \*M\-ibin\fR and/or \*M-iconx\fR are specified in \*MIcon\-setup\fR,
275: copy the appropriate files to the specified location. For example,
276: if the last \*MIcon-setup\fR specification in Section 2.2 were used,
277: the following would be done:
278: .Ds
279: cd v5g/bin
280: cp itran ilink iconx iconx.hdr /usr/lib/icon
281: cp iconx /usr/bin/icon
282: .De
283: .PP
284: The manual pages \*Micont.1\fR and \*Micon\-pi.1\fR in \*Mv5g/docs\fR
285: may be copied
286: into \*M/usr/man/man1\fR.
287: .NH 2
288: Testing Icon
289: .PP
290: At this point, Icon system should be working.
291: To test the system,
292: .Ds
293: cd v5g
294: make Stdtest
295: .De
296: which runs a number of standard test programs in the directory \*Mv5g/samples\fR
297: and compares them to results from a VAX-11.
298: While these tests are not exhaustive, any major installation problems
299: should show up when they are run.
300: The output of the sample program \*Mhello.icn\fR is certain to
301: be different, since it contains time and site-specific code.
302: .PP
303: The sets and experimental extensions can be tested by
304: .Ds
305: cd v5g
306: make Settest
307: .De
308: and
309: .Ds
310: cd v5g
311: make Xpxtest
312: .De
313: respectively.
314: Alternatively, all the tests may be run by
315: .Ds
316: cd v5g
317: make Alltest
318: .De
319: There is also a battery of tests in the directory \*Mv5g/test\fR. These can
320: be run, if desired, by
321: .Ds
322: cd v5g/test
323: make Std
324: .De
325: There are also entries in the \*MMakefile\fR in the \*Mtest\fR directory for
326: \*MSet\fR, \*MXpx\fR, and \*MAll\fR.
327: See [5] for information on interpreting the results of these tests.
328: .PP
329: There are other tests in \*Mv5g/port\fR. See [5] for details.
330: .NH 1
331: Special Installation Considerations
332: .NH 2
333: Direct Execution of Interpretable Files
334: .PP
335: When an Icon program is processed by the translator
336: and linker using the \fIicont\fR command, the result is a file
337: containing opcodes and data in a format that the Icon interpreter
338: understands. Rather than having the user ``execute'' this interpretable file
339: by running the Icon interpreter with the file as an argument, the
340: Icon system uses one of two methods to make the interpretable
341: files appear to be directly executable.
342: .PP
343: In 4.1bsd and 4.2bsd systems, a feature of \fIexec\fR(2)
344: system call can be used to enable the interpretable file produced by
345: the linker to appear to be directly executable. When \fIexec\fR
346: is called with a file to execute, it examines the first two
347: characters of the file. If the first two characters are \*M#!\fR, \fIexec\fR
348: assumes that the next argument on the line is the name of a
349: program for which the file is to serve as input. The program
350: then is executed with the named file (the file that is being ``executed'')
351: as its argument. Thus, instead of having to run the Icon interpreter with the
352: interpretable file as input, the interpretable file can be executed directly.
353: .PP
354: An alternative method is used on systems whose \fIexec\fR(2) system
355: call doesn't have this feature. An executable file is prepended
356: to the data used by the interpreter. The executable portion of the
357: file merely runs the Icon interpreter with the file
358: itself and any supplied arguments as the arguments for the interpreter.
359: .PP
360: If \*M\-interpex\fR is
361: specified for \*MIcon\-setup\fR, the former method is used,
362: otherwise, the latter method is used. The first method is
363: preferable in that the interpretable files are smaller and they
364: start executing more quickly.
365: .PP
366: There is a potential complication in using the first method.
367: The 4.1bsd and 4.2bsd \fIexec\fR(2) system calls
368: impose a length limitation of 29 characters on the name of
369: the program to be run. If the name exceeds 29 characters, execution
370: of the interpretable file fails.
371: For example, suppose the Icon
372: interpreter (\*Miconx\fR) on a system is located at
373: \*M/usr/csc/local/icon/v5g/bin/iconx\fR. This path name is longer
374: than 29 characters, and is thus unsuitable for inclusion in interpretable
375: files.
376: .PP
377: The length of the path to \*Miconx\fR is checked by \*MIcon-setup\fR and
378: the path above would be rejected.
379: .PP
380: One way to solve the problem is to link
381: \*M/usr/csc/local/icon/v5g/bin/iconx\fR to \*M/usr/local/iconx\fR,
382: and have interpretable files reference \*M/usr/local/iconx\fR.
383: Two things need to be done to accomplish this.
384: First, find a location where a copy of \*Mbin/iconx\fR
385: can be referenced with a fully qualified path name that is no more than
386: 29 characters long.
387: Second, when configuring the system using \*MIcon\-setup\fR, specify
388: the new location of \*Miconx\fR using the \*M\-iconx\fR option.
389: For example:
390: .Ds
391: Icon\-setup \fIother arguments\fP\ \-iconx /usr/local/iconx
392: .De
393: Be sure to place a copy of \*Miconx\fR in the specified location after
394: the system is completely built. It is also possible to get around
395: this problem by not specifying \*M\-interpex\fR and having Icon
396: prepend the executable header on interpretable files.
397: .NH 2
398: The Effect of Version Changes on Interpretable Files
399: .PP
400: An interpretable file produced by \*Micont\fR contains a path to the
401: interpreter, \*Miconx\fR.
402: Thus \*Miconx\fR cannot be moved without invalidating existing
403: interpretable files.
404: Furthermore, the interpreter for Version 5.9 is
405: incompatible with those for previous versions. If, for example,
406: Version 5.8 has been in use at a site and Version 5.9 is
407: installed with the new \*Miconx\fR at the same location as that
408: for Version 5.8, all previous interpretable files will be invalidated.
409: .PP
410: To avoid this, it may be desirable to retain \*Miconx\fR for Version
411: 5.8 and put \*Miconx\fR for Version 5.9
412: at a new location,
413: such as \*M/usr/lib/icon/5.9/iconx\fR. See the \*M\-iconx\fR
414: option in Section 2.2.
415: .NH
416: Installing the Icon Program Library
417: .PP
418: The Icon program library is rooted in \*Mv5g/src\fR. After Icon has
419: been installed, the library can be installed by
420: .Ds
421: cd v5g
422: make Library
423: .De
424: See [3] for a description of program library hierarchy.
425: .PP
426: There are test programs for the library, which can be run by
427: .Ds
428: cd v5g
429: make Libtest
430: .De
431: These tests should be unnecessary if previous testing has been
432: successful, but they are included in case unexpected problems
433: arise. They also may be useful in resolving questions about
434: library programs.
435: Some tests of the library require the optional extensions that are
436: available in Version 5.9 and will malfunction if these extensions
437: are not installed.
438: The test of \fIfarb(6)\fR probably will produce output that is different
439: from the ``standard'' output, since it is dependent on the time of day.
440: .NH
441: Personalized Interpreters
442: .PP
443: Version 5.9 contains a facility for building personalized interpreters
444: for Icon that allow individuals to augment or modify the Icon
445: run-time system easily and quickly. See [7] for details.
446: To make this facility available for general user access, a copy of
447: \*Mv5g/icon\-pi\fR may be placed in a public area.
448: .PP
449: A sample personalized interpreter may be built by
450: .Ds
451: cd v5g
452: make Pidemo
453: .De
454: The result is a personalized interpreter in \*Mv5g/pidemo\fR. This
455: personalized interpreter contains the C functions from the
456: Icon program library. It may be tested by
457: .Ds
458: cd v5g
459: make Pitest
460: .De
461: This test compares the results produced locally by this personalized interpreter
462: to standard results. Differences should be expected. In addition, some
463: of the functions only are supported on VAXs. Tests of these will terminate
464: prematurely on a PDP-11.
465: .NH 1
466: Maintenance Information
467: .PP
468: The following sections contain information that is not needed to
469: install Icon, but which may be helpful in understanding the
470: organization of the system and in maintaining it.
471: .NH 2
472: System Layout
473: .PP
474: The Icon system has several top-level directories branching off from \*Mv5g\fR.
475: Only the directories marked with asterisks are
476: needed to build Icon:
477: .IP \*Mbin*\fR \w'\*Moperators*\fR'u+2n
478: Executable versions of various system components.
479: Source code for programs that control Icon translation also resides here.
480: .IP \*Mh*\fR
481: Header files that are included in other source files.
482: .IP \*Mtran*\fR
483: Source code for the Icon translator.
484: .IP \*Mlink*\fR
485: Source code for the Icon linker.
486: .IP \*Miconx*\fR
487: Source code for the Icon interpreter.
488: .IP \*Mfunctions*\fR
489: Source code for the Icon built-in functions.
490: .IP \*Moperators*\fR
491: Source code for the Icon operators.
492: .IP \*Mlib*\fR
493: Source code for run-time support routines that are directly callable from
494: an Icon program.
495: .IP \*Mrt*\fR
496: Source code for the Icon run-time system.
497: .IP \*Mpifuncs*\fR
498: Source code for the C functions in the Icon program library.
499: .IP \*Mpilib*\fR
500: Files used to build personalized interpreters.
501: .IP \*Msamples\fR
502: Sample programs and associated data.
503: .IP \*Mpidemo\fR
504: Sample personalized interpreter.
505: .IP \*Mdocs\fR
506: Documentation and manual pages.
507: .IP \*Msrc\fR
508: Source code for programs and procedures in the Icon program library [3].
509: .IP \*Mibin\fR
510: Application programs and games from the Icon program library.
511: .IP \*Milib\fR
512: Linkable code for procedures in the Icon program library.
513: .IP \*Mman\fR
514: Manual pages for the Icon program library.
515: .IP \*Mlibtest\fR
516: Tests for the Icon program library.
517: .IP \*Mbook\fR
518: Source code for procedures appearing in the Icon book [1].
519: .IP \*Mtest\fR
520: Tests programs that are more comprehensive than those in \*Msamples\fR.
521: .IP \*Mport\fR
522: Support material for transporting Version 5.9 to other computers [4, 5].
523: .LP
524: .NH 2
525: Disk Utilization
526: .PP
527: As mentioned earlier, not all of the directories on the distribution tape
528: are needed in order to install Icon.
529: Once Icon is working satisfactorily,
530: .Ds
531: cd v5g
532: make Clean
533: .De
534: can be used to remove
535: non-source files and test results.
536: Additional disk space can be saved by
537: deleting source code after the Icon system is built.
538: .PP
539: The following table shows the approximate amount of disk space needed
540: for the Icon system with the sets and experimental extensions included.
541: Phase 1 refers to building Icon proper. Phase 2 refers to the installation
542: of subsidiary components and testing in all directories.
543: This data was obtained on a VAX running 4.2bsd.
544: All figures are in kilobytes.
545: .nf
546: .sp 1
547: .ta 1.2i 2.4i 3.6i 4.8i
548: as distributed after phase 1 after phase 2 after clean up
549: .sp .8
550: .ta 1.8iR 3iR 4.2iR 5.4iR
551: \*Mbin*\fR 9 161 161 154
552: \*Mh*\fR 40 40 40 40
553: \*Mtran*\fR 192 295 295 192
554: \*Mlink*\fR 83 147 147 83
555: \*Miconx*\fR 54 172 172 54
556: \*Mfunctions*\fR 112 205 205 112
557: \*Moperators*\fR 88 167 167 88
558: \*Mlib*\fR 96 131 131 96
559: \*Mrt*\fR 157 267 267 157
560: \*Mpifuncs*\fR 14 14 26 14
561: \*Mpilib*\fR 6 261 261 261
562: \*Msamples\fR 48 49 65 49
563: \*Mpidemo\fR 1 1 446 446
564: \*Mdocs\fR 479 479 479 479
565: \*Msrc\fR 125 125 125 125
566: \*Mibin\fR 1 1 85 85
567: \*Milib\fR 1 1 143 143
568: \*Mman\fR 319 319 319 319
569: \*Mlibtest\fR 163 163 232 171
570: \*Mbook\fR 192 192 192 192
571: \*Mtest\fR 246 247 348 247
572: \*Mport\fR 257 260 454 260
573: .sp .8
574: total (including root) 2696 3714 4777 3784
575: .NH 2
576: Machine-Dependent Code
577: .PP
578: Since the same source is used to produce versions of Icon on both VAXs
579: and PDP-11s, as well as for porting to other computers,
580: the portions of the code that are machine dependent are
581: bracketed with preprocessor control statements to select sections
582: appropriate for each machine.
583: The setup options \*M\-vax\fR, \*M\-pdp11\fR, and \*M\-port\fR
584: define the preprocessor symbols \*MVAX\fR, \*MPDP11\fR, and \*MPORT\fR,
585: respectively.
586: .PP
587: Preprocessor control statements are used primarily to select appropriate
588: assembly
589: source code, but they also are used in a few cases for C source code.
590: In some cases where differences are extensive (as for assembler files),
591: the section of code for the VAX appears in its entirety
592: and is followed by the code for the PDP-11 in its entirety.
593: Preprocessor control statements for \*MPORT\fR bracket dummy
594: code sections that are filled in as part of the porting process.
595: .NH 2
596: Recompilation of System Components
597: .PP
598: There is a \*MMakefile\fR in \*Mv5g\fR for carrying out various tasks,
599: as described in preceding sections. This \*MMakefile\fR typically
600: performs corresponding \fImakes\fR in subdirectories.
601: .PP
602: The subdirectories \*Mv5g/iconx\fR, \*Mv5g/tran\fR, and \*Mv5g/link\fR
603: each contain code for a single component of Icon.
604: Doing a \fImake\fR in any of these directories causes
605: the particular component to be remade. The resulting component may then
606: be copied into the \*Mv5g/bin\fR directory.
607: .PP
608: The subdirectories \*Mv5g/functions\fR, \*Mv5g/lib\fR, \*Mv5g/operators\fR, and \*Mv5g/rt\fR
609: each contain source code for a
610: part of the Icon run-time system. The Icon interpreter,
611: \*Miconx\fR, is formed by linking all the run-time subroutines together with
612: the routines in \*Mv5g/iconx\fR.
613: When changes are made to the run-time system, all affected
614: libraries must be rebuilt and then \*Miconx\fR must be rebuilt. For example,
615: if the files \*Mv5g/operators/bang.c\fR and \*Mv5g/functions/read.c\fR
616: have been modified,
617: the following sequence of commands rebuilds the system.
618: .Ds
619: .ta 1.75i
620: cd v5g/functions
621: make
622: cd ../operators
623: make
624: cd ../iconx
625: make
626: cp iconx ../bin # copy new version of interpreter to bin
627: .De
628: Alternatively,
629: .Ds
630: cd v5g
631: make Icon
632: .De
633: has the same affect.
634: .PP
635: Note that if an alternate directory has been specified in \*MIcon-setup\fR
636: via the \*M\-ibin\fR option, the files in \*Mbin\fR must then be copied to
637: the alternate directory after the \fImake\fR.
638: .NH 2
639: PDP-11 Yacc Modifications for the Icon Translator
640: .PP
641: .ft R
642: This section is relevant only if modifications are to be made to
643: the Icon grammar,
644: which is contained in the file \*Mtran/icon.g\fR.
645: The version of Yacc distributed with VAX systems is large enough
646: to build the Icon parser, but it may be necessary to build a
647: version of Yacc with larger parameters on a PDP-11.
648: The following defined constants in the file \*Mdextern\fR (in
649: the \*Myacc\fR source directory)
650: should be given the values listed below.
651: Larger values are acceptable for all these constants, but
652: are not necessary.
653: .Ds
654: # ifdef HUGE
655: # define ACTSIZE 3000
656: # define MEMSIZE 6000
657: # define NSTATES 300
658: # define NTERMS 127
659: # define NPROD 200
660: # define NNONTERM 100
661: # define TEMPSIZE 1200
662: # define CNAMSZ 4100
663: # define LSETSIZE 200
664: # define WSETSIZE 200
665: # endif
666: .De
667: The constant
668: \*MHUGE\fR should be defined instead of \*MMEDIUM\fR
669: at the end of the file \*Myacc/files\fR.
670: Then Yacc should be rebuilt.
671: .NH 2
672: Obtaining Source Code Listings
673: .PP
674: Execution of the commands
675: .Ds
676: cd v5g
677: make Listall
678: .De
679: produces
680: listings of all source files for the Icon system proper on standard output.
681: Use the command
682: .Ds
683: cd v5g
684: make List
685: .De
686: to obtain listings of all such files that have been altered since the
687: last \*Mmake List\fR or \*Mmake Listall\fR.
688: .NH
689: Electronic Mail and Problem Reporting
690: .PP
691: A mailbox has been established to facilitate communication with
692: the Icon Project. Use the following
693: addresses for electronic mail:
694: .Ds
695: .ta 2.5i
696: \*Micon\-project.arizona@csnet\-relay\fR (CSNET and ARPANET)
697: \*Marizona!icon\-project\fR (Usenet and uucpnet)
698: .De
699: The Icon Project currently
700: has uucp connections established through \*Mnoao\fR, \*Mmcnc\fR,
701: \*Mihnp4\fR, and \*Mutah\-cs\fR.
702: .PP
703: If any problems are encountered with the Icon system,
704: send electronic mail or telephone the Icon Project at
705: 602\-621\-6613.
706: If these forms of communication are not convenient, use the Trouble Report Forms supplied with
707: the distribution package.
708: .SH
709: Acknowledgements
710: .PP
711: Rob McConeghy and Steve Wampler made a number of contributions to
712: the procedures for installing and maintaining Icon.
713: .SH
714: References
715: .LP
716: 1. Griswold, Ralph E. and Madge T. Griswold.
717: \fIThe Icon Programming Language\fR. Prentice-Hall Inc., Englewood
718: Cliffs, New Jersey. 1983.
719: .LP
720: 2. Griswold, Ralph E., Robert K. McConeghy, and William H. Mitchell.
721: \fIVersion 5.9 of Icon\fR. Technical report, Department of Computer
722: Science, The University of Arizona. August 1984.
723: .LP
724: 3. Griswold, Ralph E. \fIThe Icon Program Library\fR. Technical Report
725: TR 84-12, Department of Computer Science, The University of Arizona.
726: August 1984.
727: .LP
728: 4. Mitchell, William H. \fIPorting the UNIX Implementation of Icon\fR.
729: Technical Report TR 83-10d, Department of Computer Science, The University
730: of Arizona. August 1984.
731: .LP
732: 5. Griswold, Ralph E. \fIAn Overview of the Porting Process for Version 5.9
733: of Icon\fR.
734: Department of Computer Science, The University of Arizona. October 1984.
735: .LP
736: 6. Griswold, Ralph E., Robert K. McConeghy, and William H. Mitchell. \fIExtensions
737: to Version 5 of the Icon Programming Language\fR.
738: Technical Report TR 84-10a,
739: Department of
740: Computer Science, The University of Arizona.
741: August 1984.
742: .LP
743: 7. Griswold, Ralph E., Robert K. McConeghy, and William H. Mitchell.
744: \fIPersonalized Interpreters for Icon\fR. Technical Report TR 84-14,
745: Department of Computer Science, The University of Arizona. August 1984.
746: .Ap "Appendix A \(em Icon Hierarchy"
747: .sp 2
748: .ta .5i +.5i +.5i +.3i +.3i +.3i +.3i +.3i +.3i +.3i +.3i
749: .ds l \h'|2.5i'\fR
750: .nf
751: \*Mv5g\*lroot directory of the distribution
752: \*M /bin\*l binaries and command processor
753: \*M /h\*l header files
754: \*M /tran\*l translator
755: \*M /link\*l linker
756: \*M /iconx\*l interpreter
757: \*M /functions\*l built-in functions
758: \*M /operators\*l built-in operators
759: \*M /rt\*l run-time support
760: \*M /lib\*l execution library
761: \*M /pifuncs\*l C functions for personalized interpreters
762: \*M /pilib\*l library for personalized interpreters
763: \*M /samples\*l sample Icon programs
764: \*M /distr\*l standard test results
765: \*M /local\*l local test results
766: \*M /pidemo\*l sample personalized interpreter
767: \*M /docs\*l text for documents
768: \*M /src\*l source code for the Icon program library
769: \*M /cmd\*l Icon programs
770: \*M /lib\*l Icon procedures
771: \*M /libtest\*l test programs for the Icon program library
772: \*M /distr\*l standard test results
773: \*M /local\*l local test results
774: \*M /ibin\*l executable code for Icon library programs
775: \*M /ilib\*l linkable code for Icon program library procedures
776: \*M /man\*l manual pages
777: \*M /man0\*l text for front matter
778: \*M /man1\*l text for Section 1
779: \*M /man2\*l text for Section 2
780: \*M /man3\*l text for Section 3
781: \*M /man6\*l text for Section 6
782: \*M /man7\*l text for Section 7
783: \*M /man8\*l text for Section 8
784: \*M /cat0\*l formatted pages for front matter
785: \*M /cat1\*l formatted pages for Section 1
786: \*M /cat2\*l formatted pages for Section 2
787: \*M /cat3\*l formatted pages for Section 3
788: \*M /cat6\*l formatted pages for Section 6
789: \*M /cat7\*l formatted pages for Section 7
790: \*M /cat8\*l formatted pages for Section 8
791: \*M /test\*l test battery
792: \*M /distr\*l standard test results
793: \*M /local\*l local test results
794: \*M /book\*l procedures from the Icon book
795: \*M /01\*l procedures from Chapter 1
796: \*M /02\*l procedures from Chapter 2
797: \*M /03\*l procedures from Chapter 3
798: \*M /04\*l procedures from Chapter 4
799: \*M /05\*l procedures from Chapter 5
800: \*M /06\*l procedures from Chapter 6
801: \*M /07\*l procedures from Chapter 7
802: \*M /08\*l procedures from Chapter 8
803: \*M /09\*l procedures from Chapter 9
804: \*M /10\*l procedures from Chapter 10
805: \*M /11\*l procedures from Chapter 11
806: \*M /12\*l procedures from Chapter 12
807: \*M /13\*l procedures from Chapter 13
808: \*M /14\*l procedures from Chapter 14
809: \*M /15\*l procedures from Chapter 15
810: \*M /16\*l procedures from Chapter 16
811: \*M /17\*l procedures from Chapter 17
812: \*M /18\*l procedures from Chapter 18
813: \*M /19\*l procedures from Chapter 19
814: \*M /20\*l procedures from Chapter 20
815: \*M /f\*l procedures from Appendix F
816: \*M /port\*l porting tests
817: \*M /distr\*l standard test results
818: \*M /local\*l local test results
819: .Ap "Appendix B \(em Listing of Distributed Icon Files"
820: .de Ta
821: .ps 8
822: .vs 10
823: .ta 1.1i 2.2i 3.3i 4.4i 5.5i
824: ..
825: .sp 1
826: .PP
827: Files names followed by a slash are directories. Asterisks identify
828: executable files (shell scripts).
829: .sp
830: .Ds
831: Icon-setup* functions/ lib/ pifuncs/ test/
832: Makefile h/ libtest/ pilib/ tran/
833: Pimakefile.gen ibin/ link/ port/
834: bin/ icon-pi.gen* man/ rt/
835: book/ iconx/ operators/ samples/
836: docs/ ilib/ pidemo/ src/
837: .Dd
838: bin:
839: Makefile Makefile.gen icont.c ixhdr.c
840: .Dd
841: book:
842: 01/ 08/ 13/ 18/ alpha.ls
843: 02/ 09/ 14/ 19/ f/
844: 04/ 10/ 15/ 20/ page.ls
845: 05/ 11/ 16/ Makefile
846: 07/ 12/ 17/ READ.ME
847: .Dd
848: book/01:
849: countm1.icn hello1.icn hello3.icn hello5.icn locate2.icn
850: countm2.icn hello2.icn hello4.icn locate1.icn
851: .Dd
852: book/02:
853: break1.icn break2.icn break3.icn next.icn
854: .Dd
855: book/04:
856: balop.icn inset2.icn minmax2.icn vbars.icn wordlist1.icn
857: icwrite.icn lmark.icn powers.icn word1.icn words1.icn
858: inset1.icn minmax1.icn section.icn word2.icn
859: .Dd
860: book/05:
861: array.icn get.icn tabwords1.icn wordlen.icn wordlist2.icn
862: .Dd
863: book/07:
864: exor1.icn expr2.icn fib2.icn fword2.icn
865: expr1.icn fib1.icn fword1.icn nword.icn
866: .Dd
867: book/08:
868: maxel.icn words2.icn
869: .Dd
870: book/09:
871: copy1.icn copy2.icn copy3.icn
872: .Dd
873: book/10:
874: display.icn shuffle1.icn
875: .Dd
876: book/11:
877: fibseq1.icn mark.icn rtl.icn
878: genword.icn marker.icn to.icn
879: .Dd
880: book/12:
881: tabwords2.icn words3.icn
882: .Dd
883: book/13:
884: alt.icn equalseq.icn every.icn filter1.icn inter.icn
885: .Dd
886: book/14:
887: 8q.icn cross1.icn limit1.icn limit3.icn stars.icn
888: break4.icn cross2.icn limit2.icn posint.icn
889: .Dd
890: book/15:
891: abc.icn arbno.icn parsexp.icn recexp.icn tab.icn
892: arb.icn lmatch.icn rarb.icn shades.icn
893: .Dd
894: book/16:
895: eq.icn lgraph.icn stree.icn visit.icn
896: ldag.icn ltree.icn teq.icn
897: .Dd
898: book/17:
899: close.icn disp.icn reverse.icn shuffle2.icn swap.icn
900: .Dd
901: book/18:
902: add1.icn add2.icn add3.icn mpy.icn
903: .Dd
904: book/19:
905: drv.icn form1.icn symadd.icn
906: fix.icn form2.icn symop.icn
907: .Dd
908: book/20:
909: rsg1.icn
910: .Dd
911: book/f:
912: 8qp.icn both.icn fact.icn infix.icn rotate.icn
913: abcd.icn btree.icn filerev.icn large.icn rsg2.icn
914: acker1.icn cdigit.icn filter2.icn lastline.icn rsg3.icn
915: acker2.icn charimage.icn filter3.icn limit4.icn seqimage.icn
916: ackertr.icn complex.icn first.icn locate3.icn space.icn
917: allbal1.icn dashes.icn fixfunc.icn nchars.icn symmpy.icn
918: allbal2.icn delete1.icn form3.icn oddline.icn symsub.icn
919: allbal3.icn delete2.icn gener.icn palseq.icn tabwords3.icn
920: aver.icn depth.icn genpos.icn pause.icn tcopy.icn
921: bincop.icn enrepl.icn gensubstr.icn qseq.icn uscore.icn
922: boldface.icn exor2.icn hexcvt.icn repalt.icn vcount.icn
923: .Dd
924: docs:
925: Makefile icont.1 tr83-10a.roff tr84-11 tr84-14
926: READ.ME porting tr83-10b.roff tr84-11a.roff version5.9
927: cover reportform tr83-10c.roff tr84-11b.roff
928: distpack tmac.tr tr83-3 tr84-12
929: icon-pi.1 tr83-10 tr84-10 tr84-13
930: .Dd
931: functions:
932: Makefile exit.c member.c reads.c tab.c
933: abs.c find.c move.c real.c table.c
934: any.c get.c numeric.c repl.c trim.c
935: bal.c image.c open.c reverse.c type.c
936: center.c insert.c pop.c right.c upto.c
937: close.c integer.c pos.c seq.c write.c
938: collect.c left.c proc.c set.c writes.c
939: copy.c list.c pull.c sort.c
940: cset.c many.c push.c stop.c
941: delete.c map.c put.c string.c
942: display.c match.c read.c system.c
943: .Dd
944: h:
945: Makefile ctype.h gc.h pnames.h
946: config.h defs.s keyword.h record.h
947: config.h.gen err.h pdef.h rt.h
948: .Dd
949: ibin:
950: \&.placeholder
951: .Dd
952: iconx:
953: Makefile init.c main.c pstop.s
954: Makefile.gen interp.s pstart.s start.s
955: .Dd
956: ilib:
957: \&.placeholder
958: .Dd
959: lib:
960: Makefile coret.s esusp.s limit.c pfail.s
961: bscan.c create.c field.c llist.c pret.s
962: coact.s efail.s invoke.s lsusp.s psusp.s
963: cofail.s escan.c keywd.c mkrec.c
964: .Dd
965: libtest:
966: Functest* t-collate.dat t-gener.dat t-loadmap t-shuffile.dat
967: Makefile t-collate.icn t-gener.icn t-math.icn t-shuffle.dat
968: Proctest* t-complex.dat t-getenv.icn t-parens t-shuffle.icn
969: Proctest.gen* t-complex.icn t-gpack.dat t-patterns.dat t-size.dat
970: Prog1test* t-cppp t-gpack.icn t-patterns.icn t-size.icn
971: Prog2test* t-cppp.dat t-gset t-pdae.dat t-snapshot.dat
972: READ.ME t-cross.dat t-i-psort.dat t-pdae.icn t-snapshot.icn
973: distr/ t-csgen.dat t-i-split t-pdco.dat t-structs.dat
974: func.tlist t-deal.dat t-i-split.dat t-pdco.icn t-structs.icn
975: local/ t-delam t-i-trfil t-queens.dat t-strutil.dat
976: pdef.h t-delam.dat t-i-trfil.dat t-radcon.dat t-strutil.icn
977: proc.tlist t-delamc t-i-xref.dat t-radcon.icn t-tablc.dat
978: prog1.tlist t-delamc.dat t-image.dat t-roffcmds.dat t-tablw.dat
979: prog2.tlist t-edscript.dat t-image.icn t-rsg.dat t-trig.icn
980: sizes.c t-escape.dat t-iscope.icn t-seek.icn t-trim.dat
981: t-bitops.dat t-escape.icn t-labels.dat t-segment.dat t-ttyctl.icn
982: t-bitops.icn t-farb.dat t-lam t-segment.icn t-ttyinit.dat
983: t-bold.dat t-fset t-lam.dat t-seqimage.dat t-ttyinit.icn
984: t-bold.icn t-gcomp t-ll.dat t-seqimage.icn t-worm
985: .Dd
986: libtest/distr:
987: bitops.out escape.out i-xref.out pdco.out snapshot.out
988: bold.out farb.out image.out queens.out structs.out
989: collate.out fset.out iscope.out radcon.out strutil.out
990: complex.out gcomp.out labels.out roffcmds.out tablc.out
991: cppp.out gener.out lam.out rsg.out tablw.out
992: cross.out getenv.out ll.out seek.out trig.out
993: csgen.out gpack.out loadmap.out segment.out trim.out
994: deal.out gset.out math.out seqimage.out ttyctl.out
995: delam.out i-psort.out parens.out shuffile.out ttyinit.out
996: delamc.out i-split.out patterns.out shuffle.out worm.out
997: edscript.out i-trfil.out pdae.out size.out
998: .Dd
999: libtest/local:
1000: \&.placeholder
1001: .Dd
1002: link:
1003: Makefile glob.c lcode.c lsym.c
1004: builtin.c ilink.c llex.c opcode.c
1005: datatype.h ilink.h lmem.c opcode.h
1006: .Dd
1007: man:
1008: Makefile cat3/ man0/ man6/ tmac.an.new
1009: cat0/ cat6/ man1/ man7/ tmac.an6n
1010: cat1/ cat7/ man2/ man8/ tmac.an6t
1011: cat2/ cat8/ man3/ tmac.an tmac.ilib
1012: .Dd
1013: man/cat0:
1014: ptx toc
1015: .Dd
1016: man/cat1:
1017: cppp.1 fset.1 i-trfil.1 loadmap.1 tablc.1
1018: csgen.1 gcomp.1 i-xref.1 parens.1 tablw.1
1019: delam.1 gset.1 labels.1 roffcmds.1 trim.1
1020: delamc.1 i-psort.1 lam.1 rsg.1
1021: edscript.1 i-split.1 ll.1 shuffile.1
1022: .Dd
1023: man/cat2:
1024: bitops.2 escape.2 patterns.2 segment.2 snapshot.2
1025: bold.2 gener.2 pdae.2 seqimage.2 structs.2
1026: collate.2 gpack.2 pdco.2 shuffle.2 strutil.2
1027: complex.2 image.2 radcon.2 size.2 ttyinit.2
1028: .Dd
1029: man/cat3:
1030: getenv.3 math.3 trig.3
1031: iscope.3 seek.3 ttyctl.3
1032: .Dd
1033: man/cat6:
1034: cross.6 deal.6 farb.6 queens.6 worm.6
1035: .Dd
1036: man/cat7:
1037: i-hier.7
1038: .Dd
1039: man/cat8:
1040: lman.8 uman.8
1041: .Dd
1042: man/man0:
1043: ptx.in toc.in toc2 toc4 toc6 toc8
1044: ptxx toc1 toc3 toc5 toc7
1045: .Dd
1046: man/man1:
1047: cppp.1 fset.1 i-trfil.1 loadmap.1 tablc.1
1048: csgen.1 gcomp.1 i-xref.1 parens.1 tablw.1
1049: delam.1 gset.1 labels.1 roffcmds.1 trim.1
1050: delamc.1 i-psort.1 lam.1 rsg.1
1051: edscript.1 i-split.1 ll.1 shuffile.1
1052: .Dd
1053: man/man2:
1054: bitops.2 escape.2 patterns.2 segment.2 snapshot.2
1055: bold.2 gener.2 pdae.2 seqimage.2 structs.2
1056: collate.2 gpack.2 pdco.2 shuffle.2 strutil.2
1057: complex.2 image.2 radcon.2 size.2 ttyinit.2
1058: .Dd
1059: man/man3:
1060: getenv.3 math.3 trig.3
1061: iscope.3 seek.3 ttyctl.3
1062: .Dd
1063: man/man6:
1064: cross.6 deal.6 farb.6 queens.6 worm.6
1065: .Dd
1066: man/man7:
1067: i-hier.7
1068: .Dd
1069: man/man8:
1070: lman.8 uman.8
1071: .Dd
1072: operators:
1073: Makefile lconcat.c mult.c numle.c sect.c
1074: asgn.c lexeq.c neg.c numlt.c size.c
1075: bang.c lexge.c neqv.c numne.c subsc.c
1076: cat.c lexgt.c nonnull.c plus.c swap.c
1077: compl.c lexle.c null.c power.c tabmat.c
1078: diff.c lexlt.c number.c random.c toby.c
1079: div.c lexne.c numeq.c rasgn.c unioncs.c
1080: eqv.c minus.c numge.c refresh.c value.c
1081: inter.c mod.c numgt.c rswap.c
1082: .Dd
1083: pidemo:
1084: \&.placeholder
1085: .Dd
1086: pifuncs:
1087: Makefile iscope.c seek.c ttyctl.c
1088: getenv.c math.c trig.c
1089: .Dd
1090: pilib:
1091: Makefile Pilib*
1092: .Dd
1093: port:
1094: Linkchecker* basis4.icn esusp1.icn lsusp1.icn roman.icn
1095: Linktest.gen* basis5.icn esusp2.icn meander.icn rsg.icn
1096: Makefile basis6.icn fail.tlist prefix.icn seqimage.icn
1097: Runtest.gen* basis7.icn fail1.icn pret.tlist set1.tlist
1098: Runtestall* basis8.icn fail2.icn pret1.icn suspend.tlist
1099: Trantest.gen* btrees.icn gc.tlist pret2.icn suspend1.icn
1100: arith.tlist cross.icn gc1.icn pret3.icn suspend2.icn
1101: arith1.icn display.tlist gc2.icn proto.icn wordcount.icn
1102: basis.tlist display1.icn hello.icn psusp.tlist
1103: basis1.icn display2.icn lit.icn psusp1.icn
1104: basis2.icn distr/ local/ psusp2.icn
1105: basis3.icn esusp.tlist lsusp.tlist recogn.icn
1106: .Dd
1107: port/distr:
1108: arith1.out cross.u2 lit.u1 proto.u1 rsg.ux
1109: basis1.out cross.ux lit.u2 proto.u2 seqimage.u1
1110: basis2.out display1.out lit.ux proto.ux seqimage.u2
1111: basis3.out display2.out lsusp1.out psusp1.out seqimage.ux
1112: basis4.out esusp1.out meander.u1 psusp2.out suspend1.out
1113: basis5.out esusp2.out meander.u2 recogn.u1 suspend2.out
1114: basis6.out fail1.out meander.ux recogn.u2 wordcount.u1
1115: basis7.out fail2.out prefix.u1 recogn.ux wordcount.u2
1116: basis8.out gc1.out prefix.u2 roman.u1 wordcount.ux
1117: btrees.u1 gc2.out prefix.ux roman.u2
1118: btrees.u2 hello.u1 pret1.out roman.ux
1119: btrees.ux hello.u2 pret2.out rsg.u1
1120: cross.u1 hello.ux pret3.out rsg.u2
1121: .Dd
1122: port/local:
1123: \&.placeholder
1124: .Dd
1125: rt:
1126: Makefile cvpos.c doasgn.c host.c pow.c
1127: addmem.c cvreal.c dump.c ldfps.s putstr.c
1128: alc.c cvstr.c equiv.c lexcmp.c qtos.c
1129: anycmp.c dblocks.c exp.c locate.c setbound.s
1130: arith.s defany.c fail.s log.c strprc.c
1131: cplist.c defcset.c floor.c memb.c suspend.s
1132: csv.s deffile.c gc.c mkint.c sweep.c
1133: ctype.c defint.c gcollect.s mkreal.c trace.c
1134: cvcset.c defshort.c gcvt.c mksubs.c
1135: cvint.c defstr.c getstr.c numcmp.c
1136: cvnum.c deref.c hash.c outimage.c
1137: .Dd
1138: samples:
1139: Makefile diffwords.icn parallel.dat recogn.icn sieve.icn
1140: Test.gen* distr/ parallel.icn roman.dat std.tlist
1141: btrees.dat hello.dat pdco.dat roman.icn wordcount.dat
1142: btrees.icn hello.icn pdco.icn seqimage.dat wordcount.icn
1143: cross.dat local/ prefix.dat seqimage.icn xpx.tlist
1144: cross.icn meander.dat prefix.icn set.tlist
1145: diffwords.dat meander.icn recogn.dat sieve.dat
1146: .Dd
1147: samples/distr:
1148: btrees.out hello.out pdco.out roman.out wordcount.out
1149: cross.out meander.out prefix.out seqimage.out
1150: diffwords.out parallel.out recogn.out sieve.out
1151: .Dd
1152: samples/local:
1153: \&.placeholder
1154: .Dd
1155: src:
1156: Makefile cmd/ lib/
1157: .Dd
1158: src/cmd:
1159: Makefile delam.icn gset.icn lam.icn rsg.icn
1160: Makefile.gen delamc.icn i-psort.icn ll.icn shuffile.icn
1161: cppp.icn edscript.icn i-split.icn loadmap.icn tablc.icn
1162: cross.icn farb.icn i-trfil.icn parens.icn tablw.icn
1163: csgen.icn fset.icn i-xref.icn queens.icn trim.icn
1164: deal.icn gcomp.icn labels.icn roffcmds.icn worm.icn
1165: .Dd
1166: src/lib:
1167: Makefile complex.icn patterns.icn seqimage.icn strutil.icn
1168: Makefile.gen escape.icn pdae.icn shuffle.icn ttyinit.icn
1169: bitops.icn gener.icn pdco.icn size.icn
1170: bold.icn gpack.icn radcon.icn snapshot.icn
1171: collate.icn image.icn segment.icn structs.icn
1172: .Dd
1173: test:
1174: Makefile std10.icn std30.icn std50.icn std70.icn
1175: READ.ME std11.icn std31.icn std51.icn std71.icn
1176: Test.gen* std12.icn std32.icn std52.icn std72.icn
1177: buildt.icn std13.icn std33.icn std53.icn std73.icn
1178: dismem.icn std14.icn std34.icn std54.icn std74.icn
1179: distr/ std15.icn std35.icn std55.icn std75.icn
1180: local/ std16.icn std36.icn std56.icn std76.icn
1181: set.tlist std17.icn std37.icn std57.icn std77.icn
1182: set01.icn std18.icn std38.icn std58.icn std78.icn
1183: set02.icn std19.icn std39.icn std59.icn std79.icn
1184: std.tlist std20.icn std40.icn std60.icn std80.icn
1185: std01.icn std21.icn std41.icn std61.icn std81.icn
1186: std02.icn std22.icn std42.icn std62.icn std82.icn
1187: std03.icn std23.icn std43.icn std63.icn std83.icn
1188: std04.icn std24.icn std44.icn std64.icn std84.icn
1189: std05.icn std25.icn std45.icn std65.icn std85.icn
1190: std06.icn std26.icn std46.icn std66.icn xpx.tlist
1191: std07.icn std27.icn std47.icn std67.icn xpx01.icn
1192: std08.icn std28.icn std48.icn std68.icn xpx02.icn
1193: std09.icn std29.icn std49.icn std69.icn xpx03.icn
1194: .Dd
1195: test/distr:
1196: set01.out std17.out std35.out std53.out std71.out
1197: set02.out std18.out std36.out std54.out std72.out
1198: std01.out std19.out std37.out std55.out std73.out
1199: std02.out std20.out std38.out std56.out std74.out
1200: std03.out std21.out std39.out std57.out std75.out
1201: std04.out std22.out std40.out std58.out std76.out
1202: std05.out std23.out std41.out std59.out std77.out
1203: std06.out std24.out std42.out std60.out std78.out
1204: std07.out std25.out std43.out std61.out std79.out
1205: std08.out std26.out std44.out std62.out std80.out
1206: std09.out std27.out std45.out std63.out std81.out
1207: std10.out std28.out std46.out std64.out std82.out
1208: std11.out std29.out std47.out std65.out std83.out
1209: std12.out std30.out std48.out std66.out std84.out
1210: std13.out std31.out std49.out std67.out std85.out
1211: std14.out std32.out std50.out std68.out xpx01.out
1212: std15.out std33.out std51.out std69.out xpx02.out
1213: std16.out std34.out std52.out std70.out xpx03.out
1214: .Dd
1215: test/local:
1216: \&.placeholder
1217: .Dd
1218: tran:
1219: Makefile err.c lex.c mktoktab.icn sym.h
1220: Makefile.gen icon.g lex.h optab synerr.h
1221: char.c itran.c lfile.h optab.c token.h
1222: char.h itran.h lnklist.c parse.c tokens
1223: code.c keyword.c mem.c pscript toktab.c
1224: code.h keywords mkkeytab.icn sym.c tree.h
1225: .De
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.