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
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
|
ICONT(1) UNIX Programmer's Manual ICONT(1)
NAME
icont - process Icon programs
SYNOPSIS
icont [ option ... ] file ... [ -x arg ... ]
DESCRIPTION
The program icont is a command processor for running Version
8 Icon programs. Used in its simplest form, it produces a
file suitable for interpretation by the Icon interpreter.
Processing consists of two phases: translation and linking.
During translation, each Icon source file is translated into
an intermediate language called ucode; during linking, the
one or more ucode files are combined and a single icode file
is produced. Unless the -o option is specified, the name of
the resulting icode file is formed by deleting the suffix of
the first input file named on the command line. If the -x
argument is used, the file is automatically executed by the
interpreter and any arguments following the -x are passed as
execution arguments to the Icon program itself.
Files whose names end in .icn are assumed to be Icon source
programs. The .icn suffix may be omitted; it will be sup-
plied automatically. These programs are translated, and the
intermediate code is left in two ucode files of the same
name with .u1 and .u2 substituted for .icn. The ucode files
normally are deleted when icont completes. Files whose
names end in .u1 are assumed to refer to ucode files from a
previous translation; these files and the corresponding .u2
files are included in the linking phase after any .icn files
have been translated. The suffix .u can be used in place of
.u1; in this case the 1 is supplied automatically. A .u1 or
.u2 file that is explicitly named is not deleted. Icon
source programs may be read from standard input. The argu-
ment - signifies the use of standard input as a source file.
In this case, the ucode files are named stdin.u1 and
stdin.u2 and the icode file is named stdin.
The following options are recognized by icont:
-c Suppress the linking phase. The ucode code files are
not deleted.
-m Preprocess each .icn source file with the m4(1) macro
processor before translation.
-o output
Name the icode file output.
-s Suppress informative messages from the translator and
linker. Normally, both informative messages and error
messages are sent to standard error output.
-t Arrange for &trace to have an initial value of -1 when
Printed 12/29/89Icon Project - 1/1/1990 - IPD109 1
ICONT(1) UNIX Programmer's Manual ICONT(1)
the program is executed. Normally, &trace has an ini-
tial value of 0.
-u Issue warning messages for undeclared identifiers in the
program. The warnings are issued during the linking
phase.
Icon has several tables related to the translation and link-
ing of programs. These tables are large enough for most
programs, but their sizes can be changed, if necessary, by
the -S option. This option has the form -S[cfgilnrstCFL]n,
where the letter following the S specifies the table and n
is the number of storage units to allocate for the table.
The tables and their default sizes are:
c constant table 100
f field table 100
g global symbol table 200
i identifier table 500
l local symbol table 100
n line number space 1000
r field table for records 100
s string space 20000
t tree space 15000
C code buffer 15000
F file names 10
L labels 500
The units depend on the table involved, but the default
values can be used as a general guide for appropriate set-
tings of -S options without knowing the units.
The environment variable IPATH controls the location of
files specified in link directives. The value of IPATH
should be a blank-separated string of the form p1 p2 ... pn
where the pi name directories. Each directory is searched
in turn to locate files named in link directives. The
default value for IPATH is . , that is, the current direc-
tory. The current path is always searched first, regardless
of the value of IPATH.
The icode file produced by the Icon linker is executable.
For example, the command
icont hello.icn
produces a file named hello that can be run by the command
hello
Arguments can be passed to the Icon program by following the
program name with the arguments. Any such arguments are
passed to the main procedure as a list of strings.
Printed 12/29/89Icon Project - 1/1/1990 - IPD109 2
ICONT(1) UNIX Programmer's Manual ICONT(1)
The location of iconx, the executor for icode files, is
built into an icode file when it is produced. This location
can be overridden by setting the environment variable ICONX
as described below. If ICONX is not set and iconx is not
found on the built-in path, PATH is searched for it.
When an Icon program is executed, several environment vari-
ables are examined to determine certain execution parame-
ters. Expect for ICONX, NOERRBUF, and ICONCORE, the values
assigned to these variables should be numbers. The vari-
ables that affect execution and the interpretations of their
values follow. Numbers in parentheses are the default
values.
ICONX
If this environment variable is set, it specifies the
location of iconx to use to execute an icode file.
TRACE
Initialize the value of &trace. If this variable has a
value, it overrides the translation-time -t option.
NOERRBUF
By default, &errout is buffered. If this variable is
set, &errout is not buffered.
ICONCORE
If set, a core dump is produced for error termination.
STRSIZE (65000)
The initial size of the string space, in bytes. The
string space grows if necessary, but it never shrinks.
HEAPSIZE (65000)
The initial size of the allocated block region, in
bytes. The block region grows if necessary, but it
never shrinks.
COEXPSIZE (2000)
The size, in words, of each co-expression block.
MSTKSIZE (10000)
The size, in words, of the main interpreter stack.
STATSIZE (20480)
The size, in bytes, of the static region in which co-
expression blocks are allocated. If co-expressions are
not implemented, the default size is 1024.
STATINCR
The size of the increment used when the static region is
expanded. The default increment is one-fourth of the
initial size of the static region.
Printed 12/29/89Icon Project - 1/1/1990 - IPD109 3
ICONT(1) UNIX Programmer's Manual ICONT(1)
QLSIZE (5000)
The size, in bytes, of the region used for pointers to
strings during garbage collection (fixed-regions imple-
mentations only).
MEMMON
The name of the output file for memory monitoring.
FILES
icont Icon command processor
iconx Icon executor
SEE ALSO
The Icon Programming Language, Ralph E. Griswold and Madge
T. Griswold, Prentice-Hall Inc., Englewood Cliffs, New Jer-
sey, 1983.
Version 8 of Icon, Ralph E. Griswold, TR 90-1, Department of
Computer Science, The University of Arizona, 1990.
m4(1), iconpi(1), iconvt(1)
ICONT(1) UNIX Programmer's Manual ICONT(1)
NAME
icont - process Icon programs
SYNOPSIS
icont [ option ... ] file ... [ -x arg ... ]
DESCRIPTION
The program icont is a command processor for running Version
8 Icon programs. Used in its simplest form, it produces a
file suitable for interpretation by the Icon interpreter.
Processing consists of two phases: translation and linking.
During translation, each Icon source file is translated into
an intermediate language called ucode; during linking, the
one or more ucode files are combined and a single icode file
is produced. Unless the -o option is specified, the name of
the resulting icode file is formed by deleting the suffix of
the first input file named on the command line. If the -x
argument is used, the file is automatically executed by the
interpreter and any arguments following the -x are passed as
execution arguments to the Icon program itself.
Files whose names end in .icn are assumed to be Icon source
programs. The .icn suffix may be omitted; it will be sup-
plied automatically. These programs are translated, and the
intermediate code is left in two ucode files of the same
name with .u1 and .u2 substituted for .icn. The ucode files
normally are deleted when icont completes. Files whose
names end in .u1 are assumed to refer to ucode files from a
previous translation; these files and the corresponding .u2
files are included in the linking phase after any .icn files
have been translated. The suffix .u can be used in place of
.u1; in this case the 1 is supplied automatically. A .u1 or
.u2 file that is explicitly named is not deleted. Icon
source programs may be read from standard input. The argu-
ment - signifies the use of standard input as a source file.
In this case, the ucode files are named stdin.u1 and
stdin.u2 and the icode file is named stdin.
The following options are recognized by icont:
-c Suppress the linking phase. The ucode code files are
not deleted.
-m Preprocess each .icn source file with the m4(1) macro
processor before translation.
-o output
Name the icode file output.
-s Suppress informative messages from the translator and
linker. Normally, both informative messages and error
messages are sent to standard error output.
-t Arrange for &trace to have an initial value of -1 when
Printed 12/29/89Icon Project - 1/1/1990 - IPD109 1
ICONT(1) UNIX Programmer's Manual ICONT(1)
the program is executed. Normally, &trace has an ini-
tial value of 0.
-u Issue warning messages for undeclared identifiers in the
program. The warnings are issued during the linking
phase.
Icon has several tables related to the translation and link-
ing of programs. These tables are large enough for most
programs, but their sizes can be changed, if necessary, by
the -S option. This option has the form -S[cfgilnrstCFL]n,
where the letter following the S specifies the table and n
is the number of storage units to allocate for the table.
The tables and their default sizes are:
c constant table 100
f field table 100
g global symbol table 200
i identifier table 500
l local symbol table 100
n line number space 1000
r field table for records 100
s string space 20000
t tree space 15000
C code buffer 15000
F file names 10
L labels 500
The units depend on the table involved, but the default
values can be used as a general guide for appropriate set-
tings of -S options without knowing the units.
The environment variable IPATH controls the location of
files specified in link directives. The value of IPATH
should be a blank-separated string of the form p1 p2 ... pn
where the pi name directories. Each directory is searched
in turn to locate files named in link directives. The
default value for IPATH is . , that is, the current direc-
tory. The current path is always searched first, regardless
of the value of IPATH.
The icode file produced by the Icon linker is executable.
For example, the command
icont hello.icn
produces a file named hello that can be run by the command
hello
Arguments can be passed to the Icon program by following the
program name with the arguments. Any such arguments are
passed to the main procedure as a list of strings.
Printed 12/29/89Icon Project - 1/1/1990 - IPD109 2
ICONT(1) UNIX Programmer's Manual ICONT(1)
The location of iconx, the executor for icode files, is
built into an icode file when it is produced. This location
can be overridden by setting the environment variable ICONX
as described below. If ICONX is not set and iconx is not
found on the built-in path, PATH is searched for it.
When an Icon program is executed, several environment vari-
ables are examined to determine certain execution parame-
ters. Expect for ICONX, NOERRBUF, and ICONCORE, the values
assigned to these variables should be numbers. The vari-
ables that affect execution and the interpretations of their
values follow. Numbers in parentheses are the default
values.
ICONX
If this environment variable is set, it specifies the
location of iconx to use to execute an icode file.
TRACE
Initialize the value of &trace. If this variable has a
value, it overrides the translation-time -t option.
NOERRBUF
By default, &errout is buffered. If this variable is
set, &errout is not buffered.
ICONCORE
If set, a core dump is produced for error termination.
STRSIZE (65000)
The initial size of the string space, in bytes. The
string space grows if necessary, but it never shrinks.
HEAPSIZE (65000)
The initial size of the allocated block region, in
bytes. The block region grows if necessary, but it
never shrinks.
COEXPSIZE (2000)
The size, in words, of each co-expression block.
MSTKSIZE (10000)
The size, in words, of the main interpreter stack.
STATSIZE (20480)
The size, in bytes, of the static region in which co-
expression blocks are allocated. If co-expressions are
not implemented, the default size is 1024.
STATINCR
The size of the increment used when the static region is
expanded. The default increment is one-fourth of the
initial size of the static region.
Printed 12/29/89Icon Project - 1/1/1990 - IPD109 3
ICONT(1) UNIX Programmer's Manual ICONT(1)
QLSIZE (5000)
The size, in bytes, of the region used for pointers to
strings during garbage collection (fixed-regions imple-
mentations only).
MEMMON
The name of the output file for memory monitoring.
FILES
icont Icon command processor
iconx Icon executor
SEE ALSO
The Icon Programming Language, Ralph E. Griswold and Madge
T. Griswold, Prentice-Hall Inc., Englewood Cliffs, New Jer-
sey, 1983.
Version 8 of Icon, Ralph E. Griswold, TR 90-1, Department of
Computer Science, The University of Arizona, 1990.
m4(1), iconpi(1), iconvt(1)
|