|
|
1.1 root 1: .ds M \fH
2: .de Ds
3: .nf
4: .in +.5i
5: .ft H
6: .sp .5
7: ..
8: .de De
9: .ft R
10: .in -.5i
11: .fi
12: .sp .5
13: ..
14: .TH ICONT 1 "The University of Arizona \- 5/27/86"
15: .SH NAME
16: icont \- process Icon programs
17: .SH SYNOPSIS
18: \*Micont\fR
19: [ option ... ] file ... [
20: \*M\-x\fR
21: arg ... ]
22: .SH DESCRIPTION
23: The program \*Micont\fR
24: is a command processor for running Version 6.0 Icon programs.
25: Used in its simplest form,
26: it produces a file suitable for interpretation by the Icon
27: interpreter.
28: Processing consists of two phases:
29: \fItranslation\fR
30: and
31: \fIlinking\fR.
32: During translation,
33: each Icon source file is translated into an intermediate language called \fIucode\fR;
34: during linking,
35: the one or more ucode files are combined and a single
36: \fIicode\fR file is produced.
37: Unless the
38: \*M\-o\fR
39: option is specified, the name of the resulting icode file is
40: formed by deleting the suffix of the first input file named on the
41: command line.
42: If the
43: \*M\-x\fR
44: argument is used,
45: the file is automatically executed by the interpreter
46: and any arguments following the
47: \*M\-x\fR
48: are passed as execution arguments to the Icon program itself.
49: .PP
50: Files whose names end in \*M.icn\fR are assumed to be Icon source programs.
51: These programs are translated, and the intermediate code is left in two ucode files of
52: the same name with \*M.u1\fR and \*M.u2\fR substituted for \*M.icn\fR.
53: The ucode code files normally are deleted when \*Micont\fR completes.
54: Files whose names end in \*M.u1\fR are assumed to refer to ucode
55: files from a previous translation; these files and the corresponding \*M.u2\fR
56: files are included in the linking phase after any \*M.icn\fR
57: files have been translated.
58: A \*M.u1\fR or \*M.u2\fR file that is explicitly named is not deleted.
59: Icon source programs may be read from standard input.
60: The argument
61: \*M\-\fR
62: signifies the use of standard input as a source file.
63: In this case, the ucode files are named \*Mstdin.u1\fR and \*Mstdin.u2\fR
64: and the icode file is named \*Mstdin\fR.
65: .PP
66: The following options are recognized by
67: \*Micont\fR:
68: .TP 4
69: \*M\-c\fR
70: Suppress the linking phase.
71: The ucode code files are not deleted.
72: .TP
73: \*M\-m\fR
74: Preprocess each \*M.icn\fR source file
75: with the \fIm4\^(1)\fR
76: macro processor before translation.
77: .TP
78: \*M\-o \fIoutput\fR
79: Name the icode file
80: \fIoutput\fR.
81: .TP
82: \*M\-s\fR
83: Suppress informative messages from the translator and
84: linker.
85: Normally, both informative messages and error messages are sent
86: to standard error output.
87: .TP
88: \*M\-t\fR
89: Arrange for \*M&trace\fR to have an initial value of \-1
90: when the program is executed.
91: Normally, \*M&trace\fR has an initial value of 0.
92: .TP
93: \*M\-u\fR
94: Issue warning messages for undeclared identifiers in the program.
95: The warnings are issued during the linking phase.
96: .PP
97: Icon has several tables related to the translation and linking
98: of programs.
99: These tables are large enough for most programs, but their sizes can be
100: changed, if necessary, by the \*M\-S\fR option. This option has the
101: form \*M\-S\^[cfgilrstCL]\fI n\fR, where the letter following the
102: \*MS\fR specifies the table and \fIn\fR is the number of storage units to
103: allocate for the table.
104: Some sizes depend on the size of the address space of the computer.
105: For this purpose, a VAX has a large address space,
106: while a PDP-11 has a small address space.
107: The tables and their default sizes for computers
108: with large and small memory sizes are:
109: .nf
110: .in +.5i
111: .sp
112: .ta .3i 2.5iR 3.3iR
113: \fIlarge small\fR
114: .sp .5
115: \*Mc\fR constant table 100 100
116: \*Mf\fR field table 100 100
117: \*Mg\fR global symbol table 200 200
118: \*Mi\fR identifier table 500 500
119: \*Ml\fR local symbol table 100 100
120: \*Mr\fR field table for records 100 100
121: \*Ms\fR string space 15,000 7,500
122: \*Mt\fR tree space 15,000 5,000
123: \*MC\fR code buffer 20,000 4,000
124: \*ML\fR labels 500 500
125: .sp
126: .in -.5i
127: .fi
128: The units depend on the table involved, but the default values can
129: be used as a general guide for appropriate settings of \*M\-S\fR
130: options without knowing the units.
131: .PP
132: The environment variable \*MIPATH\fR controls the location of files
133: specified in link directives. The value of \*MIPATH\fR should be a blank-separated
134: form \fIp1\0p2 \*(El\0 pn\fR where the \fIpi\fR name directories.
135: Each directory is searched in turn to locate files named in link
136: directives. The default value for \*MIPATH\fR is \*M.\fR , that is, the current
137: directory.
138: .PP
139: The icode
140: file produced by the Icon linker is
141: executable.
142: \fRFor example, the command
143: .nf
144: .in +.5i
145: \*M
146: .sp -.5
147: icont hello.icn
148: .ft R
149: .in -.5i
150: .sp .5
151: .fi
152: produces a file named \*Mhello\fR
153: that can be run by the command
154: .nf
155: .in +.5i
156: \*M
157: .sp -.5
158: hello
159: .ft R
160: .in -.5i
161: .sp .5
162: .fi
163: .PP
164: Arguments can be passed to the Icon program by following the program
165: name with the arguments. Any such arguments are passed to the main
166: procedure as a list of strings.
167: .PP
168: When an Icon program is executed, several environment variables
169: are examined to determine certain execution parameters.
170: The values assigned to these variables should be numbers.
171: The variables that affect execution
172: and the interpretations of their values are as follows:
173: .TP 4
174: \*MTRACE\fR
175: Initialize the value of \*M&trace\fR.
176: If this variable has a value, it overrides the translation-time
177: \*M\-t\fR
178: option.
179: .TP
180: \*MNBUFS\fR
181: The number of i/o buffers to use for files.
182: When a file is opened, it is assigned an i/o buffer if one is available
183: and the file is not a tty.
184: If no buffer is available, the file is not buffered.
185: \*M&input\fR, \*M&output\fR, and \*M&errout\fR are buffered if buffers
186: are available.
187: On large-memory systems, the default value of \fINBUFS\fR is 10.
188: On small-memory systems, it is 5.
189: .TP
190: \*MNOERRBUF\fR
191: If set, \*M&errout\fR is not buffered.
192: .TP
193: \*MICONCORE\fR
194: If set, a core dump is produced for error termination.
195: .TP
196: \*MSTRSIZE\fR
197: The initial size of the string space, in bytes.
198: The string space grows if necessary, but it never shrinks.
199: On large-memory systems, the default value of \*MSTRSIZE\fR is 51,200;
200: on small-memory systems, it is 10,240.
201: .TP
202: \*MHEAPSIZE\fR
203: The initial size of the allocated block region, in bytes.
204: The heap grows if necessary, but it never shrinks.
205: On large-memory systems, the default value of \*MHEAPSIZE\fR is 51,200;
206: on small-memory systems, it is 10,240.
207: .TP
208: \*MCOEXPSIZE\fR
209: The size, in words, of each co-expression block.
210: On large-memory systems, the default value of \*MCOEXPSIZE\fR is 2,000;
211: on small-memory systems, it is 1,000.
212: .TP
213: \*MMSTKSIZE\fR
214: The size, in words, of the main interpreter stack. On large-memory
215: systems, the default value of \*MMSTKSIZE\fR is 10,000;
216: on small-memory systems, it is 3,000.
217: .TP
218: \*MSTATSIZE\fR
219: The size, in bytes, of the static region in which co-expression blocks
220: are allocated. On large-memory systems, the default value of \*MSTATSIZE\fR
221: is 20,480; on small-memory systems, it is 1,024.
222: .TP
223: \*MSTATINCR\fR
224: The size of the increment used when the static region is expanded.
225: The default increment is one-fourth of the initial size of the static
226: region.
227: .SH FILES
228: .ta \w'\*Mitran\fR 'u
229: \*Micont\fR Icon command processor
230: .br
231: \*Mitran\fR Icon translator
232: .br
233: \*Milink\fR Icon linker
234: .br
235: \*Miconx\fR Icon run-time system
236: .br
237: .SH SEE ALSO
238: \fIThe Icon Programming Language\fR,
239: Ralph E. Griswold and Madge T. Griswold,
240: Prentice-Hall Inc.,
241: Englewood Cliffs, New Jersey,
242: 1983.
243: .LP
244: \fIVersion 6.0 of Icon\fR, Ralph E. Griswold, William H. Mitchell,
245: and Janalee O'Bagy,
246: TR 86-10,
247: Department of Computer Science, The University of Arizona,
248: May 1986.
249: .LP
250: m4\^(1), icon_pi(1)
251: .SH BUGS
252: .LP
253: Icode files do not stand alone; the Icon run-time system must be
254: present.
255: An icode
256: file produced on one system will not work on another system unless
257: the Icon run-time system is in the same place on both systems and
258: the run-time system is of the same version of Icon as the linker
259: that produced the icode file.
260: .LP
261: Stack overflow is checked using a heuristic that is not always effective.
262: .LP
263: If the
264: \*M\-m\fR
265: option is used,
266: line numbers reported in error messages or tracing messages
267: are from the file after, not before, preprocessing.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.