ICONT(1)

NAME
icont - translate Icon program

SYNOPSIS
icont [ option ... ] file ... [ -x arg ... ]

DESCRIPTION
Icont translates and links programs written in the Icon language. Translation produces ucode files, suffixed .u1 and .u2, which are linked to produce executable files. Icon executables are shell scripts containing binary data; this data is interpreted by iconx, which must be present at execution time.

File names ending in .icn are Icon source files; the .icn suffix may be omitted from command arguments. An argument of - reads from standard input. A name ending in .u, .u1, or .u2 selects both files of a ucode pair. The specified files are combined to produce a single program, which is named by removing the suffix from the first input file.

An argument of -x may appear after the file arguments to execute the linked program. Any subsequent arguments are passed to the program.

Ucode files produced by translation are normally deleted after linking. If the -c option is given, processing stops after translation and the ucode files are left behind. A directory of such files functions as a linkable library.

OPTIONS
The following options are recognized by icont:

-c  Stop after producing ucode files.

-f s
    Enable full string invocation by preserving unreferenced procedures during linking.

-o file
    Write the executable program to the specified file.

-p  Enable execution-time profiling; implied if ICONPROFILE is set and not empty.

-s  Suppress informative messages during translation and linking.

-t  Activate runtime tracing by arranging for &trace to have an initial value of -1 upon execution.

-u  Diagnose undeclared identifiers.

-v i
    Set verbosity level of informative messages to i.

-E  Direct the results of preprocessing to standard output and inhibit further processing.

-N  Don't embed iconx path in executable file.

-V  Announce version and configuration information on standard error.

TRANSLATION ENVIRONMENT
Two environment variables control file search paths during translation and linking. These variables contain blank- or colon-separated lists of directories to be searched after the current directory and before the standard library.

IPATH
    Directories to search for for ucode files specified in link directives and on the command line.

LPATH
    Directories to search for source files specified in preprocessor $include directives.

EXECUTION ENVIRONMENT
Several environment variables control the execution of an Icon program. Values in parentheses are the default values.

BLKSIZE (500000)
    The initial size, in bytes, of the allocated block region.

COEXPSIZE (2000)
    The size, in words, of each co-expression stack.

ICONCORE
    If set, a core dump is produced for error termination.

ICONPROFILE
    If set, specifies a file to which profiling data is written upon termination of a program linked with the -p option. The output reports timer ticks and visit counts for each line executed.

ICONX
    The location of iconx, the icon interpreter, overriding the value built into the executable by icont. Not required if the configuration is unchanged since build time or if iconx is in the same directory as the executable.

MSTKSIZE (10000)
    The size, in words, of the main interpreter stack for icont.

NOERRBUF
    By default, &errout is buffered. If this variable is set, &errout is not buffered.

QLSIZE (5000)
    The size, in bytes, of the region used for pointers to strings during garbage collection.

STRSIZE (500000)
    The initial size, in bytes, of the string space.

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

SEE ALSO
icon(1), a simpler command interface for embedding Icon programs in scripts.

The Icon Programming Language.
Griswold and Griswold, Peer-to-Peer, third edition, 1996.
http://www.cs.arizona.edu/icon/lb3.htm.

Graphics Programming in Icon.
Griswold, Jeffery, and Townsend, Peer-to-Peer, 1998.
http://www.cs.arizona.edu/icon/gb/index.htm.

The Icon Programming Language.
http://www.cs.arizona.edu/icon/.

CAVEATS

Icon executables are not self-sufficient, but require the iconx interpreter. When distributing an Icon program in executable form, include a copy of iconx in the same directory.