Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ iconc(1) — Ultrix WS 2.0 VAX

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cc(1)

icont(1)

ld(1)

m4(1)

prof(1)

monitor(3)

ICONC(1)

NAME

iconc − compile and link Icon programs

SYNOPSIS

iconc [ option ... ] file ... 

DESCRIPTION

Iconc is a compiler for Version 5 of the Icon programming language.  Compilation consists of four phases: translation, linking, assembling, and loading. During translation, each Icon source file is translated into an intermediate language; during linking, the intermediate language files are combined and a single assembly code output file is produced which is then assembled; during loading, the assembled program is loaded with the Icon runtime system libraries, producing an executable file. Unless the −o option is specified, the name of the resulting executable file is formed by deleting the suffix of the first file named on the command line. 

Files whose names end in ‘.icn’ are assumed to be Icon source programs; they are translated, and the intermediate code is left in two files of the same name with ‘.u1’ and ‘.u2’ substituted for ‘.icn’.  The intermediate code files are normally deleted when compilation has finished.  Files whose names end in ‘.u1’ or ‘.u2’ are assumed to be intermediate code files from a previous translation (only one should be named — the other is assumed); these files are included in the linking phase after any ‘.icn’ files have been translated.  Files whose names end in ‘.c’ or ‘.o’ are assumed to be external functions.  Any ‘.c’ file is compiled using cc(1) to produce a ‘.o’ file. A ‘.u1’, ‘.u2’, ‘.c’, or ‘.o’ file that is explicitly named is not deleted.

The following options are recognized by iconc.

−c Suppress the linking and loading phases.  The intermediate code files are not deleted. 

−m Preprocess each ‘.icn’ source file with the m4(1) macro processor before translation.

−o output
Name the executable file output.

−s Suppress any 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 the program is executed.  Normally, &trace has an initial value of 0. 

−u Issue warning messages for undeclared identifiers in the program.  The warnings are issued during the linking phase. 

When an Icon program is executed, a number of environment variables are examined to determine certain execution parameters.  The values assigned to these variables should be numbers.  The variables that affect execution and the interpretations of their values are as follows:

TRACE
Initialize the value of &trace.  If this variable has a value, it overrides the translation-time −t option. 

NBUFS
The number of i/o buffers to use for files. When a file is opened, it is assigned an i/o buffer if one is available and the file is not a tty. If no buffer is available, the file is not buffered. &input, &output, and &errout are buffered if buffers are available.  On VAX systems, ten buffers are allocated initially; on PDP-11 systems, five buffers are allocated initially. 

NOERRBUF
If set, &errout is not buffered. 

STRSIZE
The initial size of the string space, in bytes. The string space grows if necessary, but it never shrinks. On VAX systems, the string space is initially 51,200 bytes; on PDP-11 systems, 10,240 bytes initially.

HEAPSIZE
The initial size of the heap, in bytes. The heap grows if necessary, but it never shrinks. On VAX systems, the heap is initially 51,200 bytes; on PDP-11 systems, 10,240 bytes initially.

NSTACKS
The number of stacks initially available for co-expressions. On VAX systems, four stacks are initially allocated; on PDP-11 systems, two stacks are initially allocated. More are automatically allocated if needed.  It is unwise to set NSTACKS to 1. 

STKSIZE
The size of each co-expression stack, in words. On VAX systems, stacks are normally 2000 words; on PDP-11 systems, stacks are normally 1000 words.

PROFILE
Turn on execution profiling of the runtime system. The value of this variable specifies the sampling resolution, in words. If the value is zero, profiling is not done. When a profiled program finishes, a file named ‘mon.out’ is created containing the results of the profile. The program prof(1) can be used to examine the results. This produces a profile of the runtime system, not the user program.

FILES

mon.outresults of profiling
v5g/cmp/bin/utranicon translator
v5g/cmp/bin/ulinkicon linker
v5g/cmp/bin/libi.aicon runtime library

SEE ALSO

The Icon Programming Language, Ralph E. Griswold and Madge T. Griswold, Prentice-Hall Inc., Englewood Cliffs, New Jersey, 1983. 

Installation and Maintenance Guide for Release 5g of Icon, Department of Computer Science, The University of Arizona, March 1983. 

cc(1), icont(1), ld(1), m4(1), prof(1), monitor(3)

BUGS

Because of the way that co-expressions are implemented, there is a possibility that programs in which they are used may malfunction mysteriously. 

Integer overflow on multiplication is not detected. 

If the −m option is used, line numbers reported in error messages or tracing messages are from the file after, not before, preprocessing. 

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026