4.3BSD/usr/contrib/icon/docs/tr84-13

.so tmac.tr
.DA "August 24, 1984; Revised October 12, 1984"
.TR 84-13a
.Gr
.TL
Installation and Maintenance Guide
.br
for Version 5.9 of Icon
.AU
Ralph E. Griswold
.AU
William H. Mitchell
.AE
.tr *\(**
.PP
This document describes how to install Version 5.9 of the Icon programming
language [1, 2].
The distribution of Version 5.9 contains source code for Icon itself,
documentation, sample programs and tests, the Icon program library [3],
the procedures from the Icon book [1], test suites to aid in
porting Icon [4, 5], and various support material.
.PP
The installation procedure for Icon is simple; it requires unloading the
distribution tape onto the target machine, the setting of
site-specific constants, and the compilation of the Icon
system itself.
Read Sections 1 and 2 of this document and the overview of Version 5.9 [2]
before beginning the installation process.
.PP
If Version 5.9 is being installed at a site that is running Version 5.8,
read Section 3.2 before beginning the installation process.
.NH 1
System Requirements
.PP
This distribution of Version 5 Icon is targeted for VAX-11s
and PDP-11s (with separate instruction and data spaces)
running the UNIX\u\s-2*\s0\d operating system. This distribution package has been tested
.FS
\u\s-2*\s0\dUNIX is a trademark of AT&T Bell Laboratories
.FE
under V7 and 4.2bsd, and no problems should be encountered when installing
Icon under one of these versions of UNIX.
.PP
When the system is unloaded, it requires about 2,700 kilobytes of disk space.
During compilation, about 3,700 kilobytes are required.
To install subsidiary components and test the entire system, about 4,800
kilobytes are required.
After the removal of unnecessary files,
about 3,800 kilobytes are required.
These figures vary slightly depending upon the logical organization of
a particular file system.
.PP
Additional space can be saved by omitting the Icon program library,
test programs, and so on. See Sections 6.1, 6.2, and Appendix A
for more information about
the directories on the distribution tape. On systems with severely
limited disk space, source code also can be deleted after Icon is installed.
.NH 1
Installation Procedure
.NH 2
Unloading the Distribution Tape
.PP
The system is distributed as a \fItar\fR archive on magnetic tape.
The \fItar\fR
hierarchy is rooted at the directory \*Mv5g\fR.
If you already have a \*Mv5g\fR directory from an earlier version of
Icon, you may wish to move this old directory to a new location, such
as \*Mv5g.old\fR.
.PP
Mount the distribution tape
and do a \fIcd\fR to the directory that is to hold
the system hierarchy.
.PP
The precise
\fItar\fR command to unload the distribution
tape depends on the local environment.
On a 4.\fIn\fRbsd VAX with a 1600 bpi distribution tape, the following
command should extract the contents of the tape:
.Ds
tar x
.De
On a V7 PDP-11 with a 1600 bpi distribution tape, use:
.Ds
tar xfb /dev/rmt0 20
.De
For example, if the system is to reside at \*M/usr/src/local/icon/v5g\fR on a VAX,
type:
.Ds
cd /usr/src/local
mkdir icon
cd icon
tar x
.De
.LP
\fINote\fR: File names used in the following sections usually are relative to
the root directory for the Icon hierarchy. For example, if
the Icon system is unloaded as described above, the root directory
is
.Ds
/usr/src/local/icon/v5g
.De
and
the file name \*Mv5g/bin/Makefile\fR refers to
.Ds
/usr/src/local/icon/v5g/bin/Makefile
.De
.NH 2
Configuring the Icon System
.PP
The installer must perform a site-specific configuration of the Icon
system. This configuration is done by the shell script
\*MIcon\-setup\fR.
\*MIcon\-setup\fR accepts a number of parameters and modifies
several source files to produce a ready-to-compile Icon system tailored
as specified by the parameters.
.PP
Before \*MIcon\-setup\fR
modifies a file, it copies a generic version of the
file into place and works on it. Thus, \*MIcon\-setup\fR can be run a number
of times and only the last run has any lasting effect.
\*MIcon\-setup\fR is like any other UNIX command and thus all of its
arguments must be specified on one logical command line.
\*MIcon\-setup\fR has the following synopsis:
.IP \*MIcon\-setup
.nf
{\-vax\fR,\*M\-pdp11\fR,\*M\-port}
\-host\ \fIstring\fP
[\-sets]
[\-xpx]
[\-hz\ \fIrate\fP]
[\-nofp]
[\-interpex]
[\-vfork]
[\-usg]
[\-ibin\ \fIlibrary directory for Icon\fP]
[\-iconx\ \fIlocation of the Icon interpreter\fP]
[\-debug\*M]
.fi
.LP
The parameters have the following meanings:
.IP \*M\-vax\fR,\fP\ \ \-pdp11\fR,\fP\ \ \fRor\fP\ \ \-port\fR
.br
These are mutually exclusive options that control the selection of
machine-dependent portions of code. Select one as appropriate.
\*M\-port\fR is used to set up Icon for transporting to a computer
for which it previously has not been implemented.
.IP \*M\-host\fR\ \ \fIstring\fR
.br
The Icon system has a keyword, \*M&host\fR, whose value should be the
name of the host machine where the system is running. On some systems,
notably 4.2bsd, System III, and System V, it is possible to
determine the name of the system at run-time via a system call.
On other systems, 4.1bsd for example,
the file \*M/usr/include/whoami.h\fR contains
the name of the host in a \*M#define\fR statement.
On 4.2bsd, specify \*Mgethost\fR for \fIstring\fR.
This causes the \fIgethostname(2)\fR function to be used.
On System III, System V, or some other system that
supports the \fIuname\fR(2) system call, specify \*Muname\fR for
\fIstring\fR. On a system with a \*M/usr/include/whoami.h\fR
file that has a \*M#define\fR for \*Msysname\fR, then specify
\*Mwhoami\fR for \fIstring\fR. If none of these
are available on your machine, or to give \*M&host\fR some
value besides that of the machine name, specify an arbitrary
string (quotes around it may be needed) for \fIstring\fR, for
example: \*M\-host\fR\ \ \*MUNIX\fR.
.IP \*M\-sets\fR
.br
This parameter incorporates code to support the set data type, an extension to standard Version 5 that
is described in [6].
This extension adds about 3 kilobytes to the size of the run-time system.
.IP \*M\-xpx\fR
.br
This parameter incorporates a number of other extensions to standard Version 5 as described in [6].
These extensions add about 2 kilobytes to the size of the Icon run-time system.
.IP \*M\-hz\fR\ \ \fIrate\fR
.br
This parameter specifies the cycle rate of the electrical environment.
The rate defaults to 60 Hz.
\*M\-hz\fR does not need to be specified in a 60-Hz electrical environment. If the
rate is incorrect, the value of \*M&time\fR will be wrong.
.IP \*M\-nofp\fR
.br
Specify this on a PDP-11 that does not have
floating-point hardware.
.IP \*M\-interpex\fR
.br
Specify this option on a 4.\fIn\fRbsd system. This option
causes the use of a feature of the \fIexec\fR(2) system call to make
interpretable files directly executable.
Do \fInot\fR specify this option on other systems.
.IP \*M\-vfork\fR
.br
Specify this option if the operating system supports the \fIvfork(2)\fR
system call; this should be specified for 4.\fIn\fRbsd systems.
.IP \*M\-usg\fR
.br
Specify this option to adapt for minor incompatibilities between V7 UNIX systems
and UNIX Software Group UNIX systems. In particular, specify this
for System III or System V UNIX.
.IP \*M\-ibin\ \fIdirectory\fR
.br
The directory \*Mbin\fR
contains executable versions of the Icon translator (\*Mitran\fR), the Icon
linker (\*Milink\fR),
and the run-time system (\*Miconx\fR). The path name of this directory is built
into \*Micont\fR, the program that controls the
translation of Icon programs. By default, the fully qualified name
of \*Mbin\fR is used for \*M\-ibin\fR.
Specifying \*M\-ibin\fR
causes \*Micont\fR to use the specified
directory as its library directory. If an alternate directory is
specified, after the Icon system is built,
copy \*Mv5g/bin/itran\fR, \*Mv5g/bin/ilink\fR, \*Mv5g/bin/iconx\fR,
and \*Mv5g/bin/iconx.hdr\fR
into the specified directory.
.IP \*M\-iconx\ \fIinterpreter-location\fR
.br
By default, the \fIinterpreter-location\fR is the fully qualified
name of \*Mv5g/bin/iconx\fR. If \*M\-ibin\fR is specified, then
\fIinterpreter-location\fR defaults to \fIibin-directory/\*Miconx\fR.
See Section 3.2 for considerations in chosing the location of the interpreter.
If the fully qualified name of \*Miconx\fR is longer than 29 characters
and \*M\-interpex\fR is specified, \*MIcon\-setup\fR considers the
name to be erroneous. If this happens, consult Section 3.1.
If an alternate location is specified for \*Miconx\fR, after
the Icon system is built, copy \*Mv5g/bin/iconx\fR to the
specified location.
.IP \*M\-debug\fR
.br
This option enables some debugging code; it normally is not used.
.LP
The only required options are \*M\-host\fR and one of \*M\-vax\fR, \*M\-pdp11\fR,
or \*M\-port\fR.
For example, on a VAX running 4.2bsd, use
.Ds
Icon\-setup \-vax \-interpex \-host gethost \-vfork
.De
.PP
On a PDP-11 without floating-point hardware, running Version 7 UNIX,
and on which \*M&host\fR is to be \*MUNIX Version 7\fR, use
.Ds
Icon\-setup \-pdp11 \-nofp \-host "Unix Version 7"
.De
On a VAX running System V in a 50-Hz electrical
environment, on which the library directory for Icon is to be
\*M/usr/lib/icon\fR,
the Icon interpreter is to reside at \*M/usr/bin/iconx\fR,
and all language extensions are to be included, use
.Ds
.in 0
Icon\-setup \-vax \-hz 50 \-sets \-xpx \-host uname \-usg \-ibin /usr/lib/icon \-iconx /usr/bin/iconx
.De
.NH 2
Compiling Icon
.PP
The Icon distribution tape contains no executable binary files and no
object files, so the system must be completely recompiled from the
source. After running \*MIcon\-setup\fR,
compile the system by doing a \fImake\fR.
The complete system construction process is:
.Ds
cd v5g
Icon\-setup \fIappropriate arguments\fP
make Icon
.De
.NH 2
Installing Icon for Public Use
.PP
A copy of
\*Mv5g/bin/icont\fR may be placed in a public
directory such as \*M/usr/bin\fR or \*M/usr/local\fR to provide general user
access to Icon.
If \*M\-ibin\fR and/or \*M-iconx\fR are specified in \*MIcon\-setup\fR,
copy the appropriate files to the specified location. For example,
if the last \*MIcon-setup\fR specification in Section 2.2 were used,
the following would be done:
.Ds
cd v5g/bin
cp itran ilink iconx iconx.hdr /usr/lib/icon
cp iconx /usr/bin/icon
.De
.PP
The manual pages \*Micont.1\fR and \*Micon\-pi.1\fR in \*Mv5g/docs\fR
may be copied
into \*M/usr/man/man1\fR.
.NH 2
Testing Icon
.PP
At this point, Icon system should be working.
To test the system,
.Ds
cd v5g
make Stdtest
.De
which runs a number of standard test programs in the directory \*Mv5g/samples\fR
and compares them to results from a VAX-11.
While these tests are not exhaustive, any major installation problems
should show up when they are run.
The output of the sample program \*Mhello.icn\fR is certain to
be different, since it contains time and site-specific code.
.PP
The sets and experimental extensions can be tested by
.Ds
cd v5g
make Settest
.De
and
.Ds
cd v5g
make Xpxtest
.De
respectively.
Alternatively, all the tests may be run by
.Ds
cd v5g
make Alltest
.De
There is also a battery of tests in the directory \*Mv5g/test\fR. These can
be run, if desired, by
.Ds
cd v5g/test
make Std
.De
There are also entries in the \*MMakefile\fR in the \*Mtest\fR directory for
\*MSet\fR, \*MXpx\fR, and \*MAll\fR.
See [5] for information on interpreting the results of these tests.
.PP
There are other tests in \*Mv5g/port\fR. See [5] for details.
.NH 1
Special Installation Considerations
.NH 2
Direct Execution of Interpretable Files
.PP
When an Icon program is processed by the translator
and linker using the \fIicont\fR command, the result is a file
containing opcodes and data in a format that the Icon interpreter
understands. Rather than having the user ``execute'' this interpretable file
by running the Icon interpreter with the file as an argument, the
Icon system uses one of two methods to make the interpretable
files appear to be directly executable.
.PP
In 4.1bsd and 4.2bsd systems, a feature of \fIexec\fR(2)
system call can be used to enable the interpretable file produced by
the linker to appear to be directly executable. When \fIexec\fR
is called with a file to execute, it examines the first two
characters of the file. If the first two characters are \*M#!\fR, \fIexec\fR
assumes that the next argument on the line is the name of a
program for which the file is to serve as input. The program
then is executed with the named file (the file that is being ``executed'')
as its argument. Thus, instead of having to run the Icon interpreter with the
interpretable file as input, the interpretable file can be executed directly.
.PP
An alternative method is used on systems whose \fIexec\fR(2) system
call doesn't have this feature. An executable file is prepended
to the data used by the interpreter. The executable portion of the
file merely runs the Icon interpreter with the file
itself and any supplied arguments as the arguments for the interpreter.
.PP
If \*M\-interpex\fR is
specified for \*MIcon\-setup\fR, the former method is used,
otherwise, the latter method is used. The first method is
preferable in that the interpretable files are smaller and they
start executing more quickly.
.PP
There is a potential complication in using the first method.
The 4.1bsd and 4.2bsd \fIexec\fR(2) system calls
impose a length limitation of 29 characters on the name of
the program to be run. If the name exceeds 29 characters, execution
of the interpretable file fails.
For example, suppose the Icon
interpreter (\*Miconx\fR) on a system is located at
\*M/usr/csc/local/icon/v5g/bin/iconx\fR. This path name is longer
than 29 characters, and is thus unsuitable for inclusion in interpretable
files.
.PP
The length of the path to \*Miconx\fR is checked by \*MIcon-setup\fR and
the path above would be rejected.
.PP
One way to solve the problem is to link 
\*M/usr/csc/local/icon/v5g/bin/iconx\fR to \*M/usr/local/iconx\fR,
and have interpretable files reference \*M/usr/local/iconx\fR.
Two things need to be done to accomplish this.
First, find a location where a copy of \*Mbin/iconx\fR
can be referenced with a fully qualified path name that is no more than
29 characters long.
Second, when configuring the system using \*MIcon\-setup\fR, specify
the new location of \*Miconx\fR using the \*M\-iconx\fR option.
For example:
.Ds
Icon\-setup \fIother arguments\fP\ \-iconx /usr/local/iconx
.De
Be sure to place a copy of \*Miconx\fR in the specified location after
the system is completely built. It is also possible to get around
this problem by not specifying \*M\-interpex\fR and having Icon
prepend the executable header on interpretable files.
.NH 2
The Effect of Version Changes on Interpretable Files
.PP
An interpretable file produced by \*Micont\fR contains a path to the
interpreter, \*Miconx\fR.
Thus \*Miconx\fR cannot be moved without invalidating existing
interpretable files.
Furthermore, the interpreter for Version 5.9 is
incompatible with those for previous versions. If, for example,
Version 5.8 has been in use at a site and Version 5.9 is
installed with the new \*Miconx\fR at the same location as that
for Version 5.8, all previous interpretable files will be invalidated.
.PP
To avoid this, it may be desirable to retain \*Miconx\fR for Version
5.8 and put \*Miconx\fR for Version 5.9
at a new location,
such as \*M/usr/lib/icon/5.9/iconx\fR. See the \*M\-iconx\fR
option in Section 2.2.
.NH
Installing the Icon Program Library
.PP
The Icon program library is rooted in \*Mv5g/src\fR. After Icon has
been installed, the library can be installed by
.Ds
cd v5g
make Library
.De
See [3] for a description of program library hierarchy.
.PP
There are test programs for the library, which can be run by
.Ds
cd v5g
make Libtest
.De
These tests should be unnecessary if previous testing has been
successful, but they are included in case unexpected problems
arise. They also may be useful in resolving questions about
library programs.
Some tests of the library require the optional extensions that are
available in Version 5.9 and will malfunction if these extensions
are not installed.
The test of \fIfarb(6)\fR probably will produce output that is different
from the ``standard'' output, since it is dependent on the time of day.
.NH
Personalized Interpreters
.PP
Version 5.9 contains a facility for building personalized interpreters
for Icon that allow individuals to augment or modify the Icon
run-time system easily and quickly. See [7] for details.
To make this facility available for general user access, a copy of
\*Mv5g/icon\-pi\fR may be placed in a public area.
.PP
A sample personalized interpreter may be built by
.Ds
cd v5g
make Pidemo
.De
The result is a personalized interpreter in \*Mv5g/pidemo\fR. This
personalized interpreter contains the C functions from the
Icon program library. It may be tested by
.Ds
cd v5g
make Pitest
.De
This test compares the results produced locally by this personalized interpreter
to standard results. Differences should be expected. In addition, some
of the functions only are supported on VAXs. Tests of these will terminate
prematurely on a PDP-11.
.NH 1
Maintenance Information
.PP
The following sections contain information that is not needed to
install Icon, but which may be helpful in understanding the
organization of the system and in maintaining it.
.NH 2
System Layout
.PP
The Icon system has several top-level directories branching off from \*Mv5g\fR.
Only the directories marked with asterisks are
needed to build Icon:
.IP \*Mbin*\fR \w'\*Moperators*\fR'u+2n
Executable versions of various system components.
Source code for programs that control Icon translation also resides here.
.IP \*Mh*\fR
Header files that are included in other source files.
.IP \*Mtran*\fR
Source code for the Icon translator.
.IP \*Mlink*\fR
Source code for the Icon linker.
.IP \*Miconx*\fR
Source code for the Icon interpreter.
.IP \*Mfunctions*\fR
Source code for the Icon built-in functions.
.IP \*Moperators*\fR
Source code for the Icon operators.
.IP \*Mlib*\fR
Source code for run-time support routines that are directly callable from
an Icon program.
.IP \*Mrt*\fR
Source code for the Icon run-time system.
.IP \*Mpifuncs*\fR
Source code for the C functions in the Icon program library.
.IP \*Mpilib*\fR
Files used to build personalized interpreters.
.IP \*Msamples\fR
Sample programs and associated data.
.IP \*Mpidemo\fR
Sample personalized interpreter.
.IP \*Mdocs\fR
Documentation and manual pages.
.IP \*Msrc\fR
Source code for programs and procedures in the Icon program library [3].
.IP \*Mibin\fR
Application programs and games from the Icon program library.
.IP \*Milib\fR
Linkable code for procedures in the Icon program library.
.IP \*Mman\fR
Manual pages for the Icon program library.
.IP \*Mlibtest\fR
Tests for the Icon program library.
.IP \*Mbook\fR
Source code for procedures appearing in the Icon book [1].
.IP \*Mtest\fR
Tests programs that are more comprehensive than those in \*Msamples\fR.
.IP \*Mport\fR
Support material for transporting Version 5.9 to other computers [4, 5].
.LP
.NH 2
Disk Utilization
.PP
As mentioned earlier, not all of the directories on the distribution tape
are needed in order to install Icon.
Once Icon is working satisfactorily,
.Ds
cd v5g
make Clean
.De
can be used to remove
non-source files and test results.
Additional disk space can be saved by
deleting source code after the Icon system is built.
.PP
The following table shows the approximate amount of disk space needed
for the Icon system with the sets and experimental extensions included.
Phase 1 refers to building Icon proper. Phase 2 refers to the installation
of subsidiary components and testing in all directories.
This data was obtained on a VAX running 4.2bsd.
All figures are in kilobytes.
.nf
.sp 1
.ta 1.2i 2.4i 3.6i 4.8i
	as distributed	after phase 1	after phase 2	after clean up
.sp .8
.ta 1.8iR 3iR 4.2iR 5.4iR
\*Mbin*\fR	9	161	161	154
\*Mh*\fR	40	40	40	40
\*Mtran*\fR	192	295	295	192
\*Mlink*\fR	83	147	147	83
\*Miconx*\fR	54	172	172	54
\*Mfunctions*\fR	112	205	205	112
\*Moperators*\fR	88	167	167	88
\*Mlib*\fR	96	131	131	96
\*Mrt*\fR	157	267	267	157
\*Mpifuncs*\fR	14	14	26	14
\*Mpilib*\fR	6	261	261	261
\*Msamples\fR	48	49	65	49
\*Mpidemo\fR	1	1	446	446
\*Mdocs\fR	479	479	479	479
\*Msrc\fR	125	125	125	125
\*Mibin\fR	1	1	85	85
\*Milib\fR	1	1	143	143
\*Mman\fR	319	319	319	319
\*Mlibtest\fR	163	163	232	171
\*Mbook\fR	192	192	192	192
\*Mtest\fR	246	247	348	247
\*Mport\fR	257	260	454	260
.sp .8
total (including root)	2696	3714	4777	3784
.NH 2
Machine-Dependent Code
.PP
Since the same source is used to produce versions of Icon on both VAXs
and PDP-11s, as well as for porting to other computers,
the portions of the code that are machine dependent are
bracketed with preprocessor control statements to select sections
appropriate for each machine.
The setup options \*M\-vax\fR, \*M\-pdp11\fR, and \*M\-port\fR
define the preprocessor symbols \*MVAX\fR, \*MPDP11\fR, and \*MPORT\fR,
respectively.
.PP
Preprocessor control statements are used primarily to select appropriate
assembly
source code, but they also are used in a few cases for C source code.
In some cases where differences are extensive (as for assembler files),
the section of code for the VAX appears in its entirety
and is followed by the code for the PDP-11 in its entirety.
Preprocessor control statements for \*MPORT\fR bracket dummy
code sections that are filled in as part of the porting process.
.NH 2
Recompilation of System Components
.PP
There is a \*MMakefile\fR in \*Mv5g\fR for carrying out various tasks,
as described in preceding sections. This \*MMakefile\fR typically
performs corresponding \fImakes\fR in subdirectories.
.PP
The subdirectories \*Mv5g/iconx\fR, \*Mv5g/tran\fR, and \*Mv5g/link\fR
each contain code for a single component of Icon.
Doing a \fImake\fR in any of these directories causes
the particular component to be remade. The resulting component may then
be copied into the \*Mv5g/bin\fR directory.
.PP
The subdirectories \*Mv5g/functions\fR, \*Mv5g/lib\fR, \*Mv5g/operators\fR, and \*Mv5g/rt\fR
each contain source code for a
part of the Icon run-time system. The Icon interpreter,
\*Miconx\fR, is formed by linking all the run-time subroutines together with
the routines in \*Mv5g/iconx\fR.
When changes are made to the run-time system, all affected
libraries must be rebuilt and then \*Miconx\fR must be rebuilt. For example,
if the files \*Mv5g/operators/bang.c\fR and \*Mv5g/functions/read.c\fR
have been modified,
the following sequence of commands rebuilds the system.
.Ds
.ta 1.75i
cd v5g/functions
make
cd ../operators
make
cd ../iconx
make
cp iconx ../bin	# copy new version of interpreter to bin
.De
Alternatively,
.Ds
cd v5g
make Icon
.De
has the same affect.
.PP
Note that if an alternate directory has been specified in \*MIcon-setup\fR
via the \*M\-ibin\fR option, the files in \*Mbin\fR must then be copied to
the alternate directory after the \fImake\fR.
.NH 2
PDP-11 Yacc Modifications for the Icon Translator
.PP
.ft R
This section is relevant only if modifications are to be made to
the Icon grammar,
which is contained in the file \*Mtran/icon.g\fR.
The version of Yacc distributed with VAX systems is large enough
to build the Icon parser, but it may be necessary to build a
version of Yacc with larger parameters on a PDP-11.
The following defined constants in the file \*Mdextern\fR (in
the \*Myacc\fR source directory)
should be given the values listed below.
Larger values are acceptable for all these constants, but
are not necessary.
.Ds
# ifdef HUGE
# define ACTSIZE 3000
# define MEMSIZE 6000
# define NSTATES 300
# define NTERMS 127
# define NPROD 200
# define NNONTERM 100
# define TEMPSIZE 1200
# define CNAMSZ 4100
# define LSETSIZE 200
# define WSETSIZE 200
# endif
.De
The constant
\*MHUGE\fR should be defined instead of \*MMEDIUM\fR
at the end of the file \*Myacc/files\fR.
Then Yacc should be rebuilt.
.NH 2
Obtaining Source Code Listings
.PP
Execution of the commands
.Ds
cd v5g
make Listall
.De
produces
listings of all source files for the Icon system proper on standard output.
Use the command
.Ds
cd v5g
make List
.De
to obtain listings of all such files that have been altered since the
last \*Mmake List\fR or \*Mmake Listall\fR.
.NH
Electronic Mail and Problem Reporting
.PP
A mailbox has been established to facilitate communication with
the Icon Project. Use the following
addresses for electronic mail:
.Ds
.ta 2.5i
\*Micon\-project.arizona@csnet\-relay\fR	(CSNET and ARPANET)
\*Marizona!icon\-project\fR	(Usenet and uucpnet)
.De
The Icon Project currently
has uucp connections established through \*Mnoao\fR, \*Mmcnc\fR,
\*Mihnp4\fR, and \*Mutah\-cs\fR.
.PP
If any problems are encountered with the Icon system,
send electronic mail or telephone the Icon Project at
602\-621\-6613.
If these forms of communication are not convenient, use the Trouble Report Forms supplied with
the distribution package.
.SH
Acknowledgements
.PP
Rob McConeghy and Steve Wampler made a number of contributions to
the procedures for installing and maintaining Icon.
.SH
References
.LP
1. Griswold, Ralph E. and Madge T. Griswold.
\fIThe Icon Programming Language\fR. Prentice-Hall Inc., Englewood
Cliffs, New Jersey. 1983.
.LP
2. Griswold, Ralph E., Robert K. McConeghy, and William H. Mitchell.
\fIVersion 5.9 of Icon\fR. Technical report, Department of Computer
Science, The University of Arizona. August 1984.
.LP
3. Griswold, Ralph E. \fIThe Icon Program Library\fR. Technical Report
TR 84-12, Department of Computer Science, The University of Arizona.
August 1984.
.LP
4. Mitchell, William H. \fIPorting the UNIX Implementation of Icon\fR.
Technical Report TR 83-10d, Department of Computer Science, The University
of Arizona. August 1984.
.LP
5. Griswold, Ralph E. \fIAn Overview of the Porting Process for Version 5.9
of Icon\fR.
Department of Computer Science, The University of Arizona. October 1984.
.LP
6. Griswold, Ralph E., Robert K. McConeghy, and William H. Mitchell. \fIExtensions
to Version 5 of the Icon Programming Language\fR.
Technical Report TR 84-10a,
Department of
Computer Science, The University of Arizona.
August 1984.
.LP
7. Griswold, Ralph E., Robert K. McConeghy, and William H. Mitchell.
\fIPersonalized Interpreters for Icon\fR. Technical Report TR 84-14,
Department of Computer Science, The University of Arizona. August 1984.
.Ap "Appendix A \(em Icon Hierarchy"
.sp 2
.ta .5i +.5i +.5i +.3i +.3i +.3i +.3i +.3i +.3i +.3i +.3i
.ds l \h'|2.5i'\fR
.nf
\*Mv5g\*lroot directory of the distribution
\*M	/bin\*l	binaries and command processor
\*M	/h\*l	header files
\*M	/tran\*l	translator
\*M	/link\*l	linker
\*M	/iconx\*l	interpreter
\*M	/functions\*l	built-in functions
\*M	/operators\*l	built-in operators
\*M	/rt\*l	run-time support
\*M	/lib\*l	execution library
\*M	/pifuncs\*l	C functions for personalized interpreters
\*M	/pilib\*l	library for personalized interpreters
\*M	/samples\*l	sample Icon programs
\*M		/distr\*l		standard test results
\*M		/local\*l		local test results
\*M	/pidemo\*l	sample personalized interpreter
\*M	/docs\*l	text for documents
\*M	/src\*l	source code for the Icon program library
\*M		/cmd\*l		Icon programs
\*M		/lib\*l		Icon procedures
\*M	/libtest\*l	test programs for the Icon program library
\*M		/distr\*l		standard test results
\*M		/local\*l		local test results
\*M	/ibin\*l	executable code for Icon library programs
\*M	/ilib\*l	linkable code for Icon program library procedures
\*M	/man\*l	manual pages
\*M		/man0\*l		text for front matter
\*M		/man1\*l		text for Section 1
\*M		/man2\*l		text for Section 2
\*M		/man3\*l		text for Section 3
\*M		/man6\*l		text for Section 6
\*M		/man7\*l		text for Section 7
\*M		/man8\*l		text for Section 8
\*M		/cat0\*l		formatted pages for front matter
\*M		/cat1\*l		formatted pages for Section 1
\*M		/cat2\*l		formatted pages for Section 2
\*M		/cat3\*l		formatted pages for Section 3
\*M		/cat6\*l		formatted pages for Section 6
\*M		/cat7\*l		formatted pages for Section 7
\*M		/cat8\*l		formatted pages for Section 8
\*M	/test\*l	test battery
\*M		/distr\*l		standard test results
\*M		/local\*l		local test results
\*M	/book\*l	procedures from the Icon book
\*M		/01\*l		procedures from Chapter 1
\*M		/02\*l		procedures from Chapter 2
\*M		/03\*l		procedures from Chapter 3
\*M		/04\*l		procedures from Chapter 4
\*M		/05\*l		procedures from Chapter 5
\*M		/06\*l		procedures from Chapter 6
\*M		/07\*l		procedures from Chapter 7
\*M		/08\*l		procedures from Chapter 8
\*M		/09\*l		procedures from Chapter 9
\*M		/10\*l		procedures from Chapter 10
\*M		/11\*l		procedures from Chapter 11
\*M		/12\*l		procedures from Chapter 12
\*M		/13\*l		procedures from Chapter 13
\*M		/14\*l		procedures from Chapter 14
\*M		/15\*l		procedures from Chapter 15
\*M		/16\*l		procedures from Chapter 16
\*M		/17\*l		procedures from Chapter 17
\*M		/18\*l		procedures from Chapter 18
\*M		/19\*l		procedures from Chapter 19
\*M		/20\*l		procedures from Chapter 20
\*M		/f\*l		procedures from Appendix F
\*M	/port\*l		porting tests
\*M		/distr\*l			standard test results
\*M		/local\*l			local test results
.Ap "Appendix B \(em Listing of Distributed Icon Files"
.de Ta
.ps 8
.vs 10
.ta 1.1i 2.2i 3.3i 4.4i 5.5i
..
.sp 1
.PP
Files names followed by a slash are directories. Asterisks identify
executable files (shell scripts).
.sp
.Ds
Icon-setup*	functions/	lib/	pifuncs/	test/
Makefile	h/	libtest/	pilib/	tran/
Pimakefile.gen	ibin/	link/	port/
bin/	icon-pi.gen*	man/	rt/
book/	iconx/	operators/	samples/
docs/	ilib/	pidemo/	src/
.Dd
bin:
Makefile	Makefile.gen	icont.c	ixhdr.c
.Dd
book:
01/	08/	13/	18/	alpha.ls
02/	09/	14/	19/	f/
04/	10/	15/	20/	page.ls
05/	11/	16/	Makefile
07/	12/	17/	READ.ME
.Dd
book/01:
countm1.icn	hello1.icn	hello3.icn	hello5.icn	locate2.icn
countm2.icn	hello2.icn	hello4.icn	locate1.icn
.Dd
book/02:
break1.icn	break2.icn	break3.icn	next.icn
.Dd
book/04:
balop.icn	inset2.icn	minmax2.icn	vbars.icn	wordlist1.icn
icwrite.icn	lmark.icn	powers.icn	word1.icn	words1.icn
inset1.icn	minmax1.icn	section.icn	word2.icn
.Dd
book/05:
array.icn	get.icn	tabwords1.icn	wordlen.icn	wordlist2.icn
.Dd
book/07:
exor1.icn	expr2.icn	fib2.icn	fword2.icn
expr1.icn	fib1.icn	fword1.icn	nword.icn
.Dd
book/08:
maxel.icn	words2.icn
.Dd
book/09:
copy1.icn	copy2.icn	copy3.icn
.Dd
book/10:
display.icn	shuffle1.icn
.Dd
book/11:
fibseq1.icn	mark.icn	rtl.icn
genword.icn	marker.icn	to.icn
.Dd
book/12:
tabwords2.icn	words3.icn
.Dd
book/13:
alt.icn	equalseq.icn	every.icn	filter1.icn	inter.icn
.Dd
book/14:
8q.icn	cross1.icn	limit1.icn	limit3.icn	stars.icn
break4.icn	cross2.icn	limit2.icn	posint.icn
.Dd
book/15:
abc.icn	arbno.icn	parsexp.icn	recexp.icn	tab.icn
arb.icn	lmatch.icn	rarb.icn	shades.icn
.Dd
book/16:
eq.icn	lgraph.icn	stree.icn	visit.icn
ldag.icn	ltree.icn	teq.icn
.Dd
book/17:
close.icn	disp.icn	reverse.icn	shuffle2.icn	swap.icn
.Dd
book/18:
add1.icn	add2.icn	add3.icn	mpy.icn
.Dd
book/19:
drv.icn	form1.icn	symadd.icn
fix.icn	form2.icn	symop.icn
.Dd
book/20:
rsg1.icn
.Dd
book/f:
8qp.icn	both.icn	fact.icn	infix.icn	rotate.icn
abcd.icn	btree.icn	filerev.icn	large.icn	rsg2.icn
acker1.icn	cdigit.icn	filter2.icn	lastline.icn	rsg3.icn
acker2.icn	charimage.icn	filter3.icn	limit4.icn	seqimage.icn
ackertr.icn	complex.icn	first.icn	locate3.icn	space.icn
allbal1.icn	dashes.icn	fixfunc.icn	nchars.icn	symmpy.icn
allbal2.icn	delete1.icn	form3.icn	oddline.icn	symsub.icn
allbal3.icn	delete2.icn	gener.icn	palseq.icn	tabwords3.icn
aver.icn	depth.icn	genpos.icn	pause.icn	tcopy.icn
bincop.icn	enrepl.icn	gensubstr.icn	qseq.icn	uscore.icn
boldface.icn	exor2.icn	hexcvt.icn	repalt.icn	vcount.icn
.Dd
docs:
Makefile	icont.1	tr83-10a.roff	tr84-11	tr84-14
READ.ME	porting	tr83-10b.roff	tr84-11a.roff	version5.9
cover	reportform	tr83-10c.roff	tr84-11b.roff
distpack	tmac.tr	tr83-3	tr84-12
icon-pi.1	tr83-10	tr84-10	tr84-13
.Dd
functions:
Makefile	exit.c	member.c	reads.c	tab.c
abs.c	find.c	move.c	real.c	table.c
any.c	get.c	numeric.c	repl.c	trim.c
bal.c	image.c	open.c	reverse.c	type.c
center.c	insert.c	pop.c	right.c	upto.c
close.c	integer.c	pos.c	seq.c	write.c
collect.c	left.c	proc.c	set.c	writes.c
copy.c	list.c	pull.c	sort.c
cset.c	many.c	push.c	stop.c
delete.c	map.c	put.c	string.c
display.c	match.c	read.c	system.c
.Dd
h:
Makefile	ctype.h	gc.h	pnames.h
config.h	defs.s	keyword.h	record.h
config.h.gen	err.h	pdef.h	rt.h
.Dd
ibin:
\&.placeholder
.Dd
iconx:
Makefile	init.c	main.c	pstop.s
Makefile.gen	interp.s	pstart.s	start.s
.Dd
ilib:
\&.placeholder
.Dd
lib:
Makefile	coret.s	esusp.s	limit.c	pfail.s
bscan.c	create.c	field.c	llist.c	pret.s
coact.s	efail.s	invoke.s	lsusp.s	psusp.s
cofail.s	escan.c	keywd.c	mkrec.c
.Dd
libtest:
Functest*	t-collate.dat	t-gener.dat	t-loadmap	t-shuffile.dat
Makefile	t-collate.icn	t-gener.icn	t-math.icn	t-shuffle.dat
Proctest*	t-complex.dat	t-getenv.icn	t-parens	t-shuffle.icn
Proctest.gen*	t-complex.icn	t-gpack.dat	t-patterns.dat	t-size.dat
Prog1test*	t-cppp	t-gpack.icn	t-patterns.icn	t-size.icn
Prog2test*	t-cppp.dat	t-gset	t-pdae.dat	t-snapshot.dat
READ.ME	t-cross.dat	t-i-psort.dat	t-pdae.icn	t-snapshot.icn
distr/	t-csgen.dat	t-i-split	t-pdco.dat	t-structs.dat
func.tlist	t-deal.dat	t-i-split.dat	t-pdco.icn	t-structs.icn
local/	t-delam	t-i-trfil	t-queens.dat	t-strutil.dat
pdef.h	t-delam.dat	t-i-trfil.dat	t-radcon.dat	t-strutil.icn
proc.tlist	t-delamc	t-i-xref.dat	t-radcon.icn	t-tablc.dat
prog1.tlist	t-delamc.dat	t-image.dat	t-roffcmds.dat	t-tablw.dat
prog2.tlist	t-edscript.dat	t-image.icn	t-rsg.dat	t-trig.icn
sizes.c	t-escape.dat	t-iscope.icn	t-seek.icn	t-trim.dat
t-bitops.dat	t-escape.icn	t-labels.dat	t-segment.dat	t-ttyctl.icn
t-bitops.icn	t-farb.dat	t-lam	t-segment.icn	t-ttyinit.dat
t-bold.dat	t-fset	t-lam.dat	t-seqimage.dat	t-ttyinit.icn
t-bold.icn	t-gcomp	t-ll.dat	t-seqimage.icn	t-worm
.Dd
libtest/distr:
bitops.out	escape.out	i-xref.out	pdco.out	snapshot.out
bold.out	farb.out	image.out	queens.out	structs.out
collate.out	fset.out	iscope.out	radcon.out	strutil.out
complex.out	gcomp.out	labels.out	roffcmds.out	tablc.out
cppp.out	gener.out	lam.out	rsg.out	tablw.out
cross.out	getenv.out	ll.out	seek.out	trig.out
csgen.out	gpack.out	loadmap.out	segment.out	trim.out
deal.out	gset.out	math.out	seqimage.out	ttyctl.out
delam.out	i-psort.out	parens.out	shuffile.out	ttyinit.out
delamc.out	i-split.out	patterns.out	shuffle.out	worm.out
edscript.out	i-trfil.out	pdae.out	size.out
.Dd
libtest/local:
\&.placeholder
.Dd
link:
Makefile	glob.c	lcode.c	lsym.c
builtin.c	ilink.c	llex.c	opcode.c
datatype.h	ilink.h	lmem.c	opcode.h
.Dd
man:
Makefile	cat3/	man0/	man6/	tmac.an.new
cat0/	cat6/	man1/	man7/	tmac.an6n
cat1/	cat7/	man2/	man8/	tmac.an6t
cat2/	cat8/	man3/	tmac.an	tmac.ilib
.Dd
man/cat0:
ptx	toc
.Dd
man/cat1:
cppp.1	fset.1	i-trfil.1	loadmap.1	tablc.1
csgen.1	gcomp.1	i-xref.1	parens.1	tablw.1
delam.1	gset.1	labels.1	roffcmds.1	trim.1
delamc.1	i-psort.1	lam.1	rsg.1
edscript.1	i-split.1	ll.1	shuffile.1
.Dd
man/cat2:
bitops.2	escape.2	patterns.2	segment.2	snapshot.2
bold.2	gener.2	pdae.2	seqimage.2	structs.2
collate.2	gpack.2	pdco.2	shuffle.2	strutil.2
complex.2	image.2	radcon.2	size.2	ttyinit.2
.Dd
man/cat3:
getenv.3	math.3	trig.3
iscope.3	seek.3	ttyctl.3
.Dd
man/cat6:
cross.6	deal.6	farb.6	queens.6	worm.6
.Dd
man/cat7:
i-hier.7
.Dd
man/cat8:
lman.8	uman.8
.Dd
man/man0:
ptx.in	toc.in	toc2	toc4	toc6	toc8
ptxx	toc1	toc3	toc5	toc7
.Dd
man/man1:
cppp.1	fset.1	i-trfil.1	loadmap.1	tablc.1
csgen.1	gcomp.1	i-xref.1	parens.1	tablw.1
delam.1	gset.1	labels.1	roffcmds.1	trim.1
delamc.1	i-psort.1	lam.1	rsg.1
edscript.1	i-split.1	ll.1	shuffile.1
.Dd
man/man2:
bitops.2	escape.2	patterns.2	segment.2	snapshot.2
bold.2	gener.2	pdae.2	seqimage.2	structs.2
collate.2	gpack.2	pdco.2	shuffle.2	strutil.2
complex.2	image.2	radcon.2	size.2	ttyinit.2
.Dd
man/man3:
getenv.3	math.3	trig.3
iscope.3	seek.3	ttyctl.3
.Dd
man/man6:
cross.6	deal.6	farb.6	queens.6	worm.6
.Dd
man/man7:
i-hier.7
.Dd
man/man8:
lman.8	uman.8
.Dd
operators:
Makefile	lconcat.c	mult.c	numle.c	sect.c
asgn.c	lexeq.c	neg.c	numlt.c	size.c
bang.c	lexge.c	neqv.c	numne.c	subsc.c
cat.c	lexgt.c	nonnull.c	plus.c	swap.c
compl.c	lexle.c	null.c	power.c	tabmat.c
diff.c	lexlt.c	number.c	random.c	toby.c
div.c	lexne.c	numeq.c	rasgn.c	unioncs.c
eqv.c	minus.c	numge.c	refresh.c	value.c
inter.c	mod.c	numgt.c	rswap.c
.Dd
pidemo:
\&.placeholder
.Dd
pifuncs:
Makefile	iscope.c	seek.c	ttyctl.c
getenv.c	math.c	trig.c
.Dd
pilib:
Makefile	Pilib*
.Dd
port:
Linkchecker*	basis4.icn	esusp1.icn	lsusp1.icn	roman.icn
Linktest.gen*	basis5.icn	esusp2.icn	meander.icn	rsg.icn
Makefile	basis6.icn	fail.tlist	prefix.icn	seqimage.icn
Runtest.gen*	basis7.icn	fail1.icn	pret.tlist	set1.tlist
Runtestall*	basis8.icn	fail2.icn	pret1.icn	suspend.tlist
Trantest.gen*	btrees.icn	gc.tlist	pret2.icn	suspend1.icn
arith.tlist	cross.icn	gc1.icn	pret3.icn	suspend2.icn
arith1.icn	display.tlist	gc2.icn	proto.icn	wordcount.icn
basis.tlist	display1.icn	hello.icn	psusp.tlist
basis1.icn	display2.icn	lit.icn	psusp1.icn
basis2.icn	distr/	local/	psusp2.icn
basis3.icn	esusp.tlist	lsusp.tlist	recogn.icn
.Dd
port/distr:
arith1.out	cross.u2	lit.u1	proto.u1	rsg.ux
basis1.out	cross.ux	lit.u2	proto.u2	seqimage.u1
basis2.out	display1.out	lit.ux	proto.ux	seqimage.u2
basis3.out	display2.out	lsusp1.out	psusp1.out	seqimage.ux
basis4.out	esusp1.out	meander.u1	psusp2.out	suspend1.out
basis5.out	esusp2.out	meander.u2	recogn.u1	suspend2.out
basis6.out	fail1.out	meander.ux	recogn.u2	wordcount.u1
basis7.out	fail2.out	prefix.u1	recogn.ux	wordcount.u2
basis8.out	gc1.out	prefix.u2	roman.u1	wordcount.ux
btrees.u1	gc2.out	prefix.ux	roman.u2
btrees.u2	hello.u1	pret1.out	roman.ux
btrees.ux	hello.u2	pret2.out	rsg.u1
cross.u1	hello.ux	pret3.out	rsg.u2
.Dd
port/local:
\&.placeholder
.Dd
rt:
Makefile	cvpos.c	doasgn.c	host.c	pow.c
addmem.c	cvreal.c	dump.c	ldfps.s	putstr.c
alc.c	cvstr.c	equiv.c	lexcmp.c	qtos.c
anycmp.c	dblocks.c	exp.c	locate.c	setbound.s
arith.s	defany.c	fail.s	log.c	strprc.c
cplist.c	defcset.c	floor.c	memb.c	suspend.s
csv.s	deffile.c	gc.c	mkint.c	sweep.c
ctype.c	defint.c	gcollect.s	mkreal.c	trace.c
cvcset.c	defshort.c	gcvt.c	mksubs.c
cvint.c	defstr.c	getstr.c	numcmp.c
cvnum.c	deref.c	hash.c	outimage.c
.Dd
samples:
Makefile	diffwords.icn	parallel.dat	recogn.icn	sieve.icn
Test.gen*	distr/	parallel.icn	roman.dat	std.tlist
btrees.dat	hello.dat	pdco.dat	roman.icn	wordcount.dat
btrees.icn	hello.icn	pdco.icn	seqimage.dat	wordcount.icn
cross.dat	local/	prefix.dat	seqimage.icn	xpx.tlist
cross.icn	meander.dat	prefix.icn	set.tlist
diffwords.dat	meander.icn	recogn.dat	sieve.dat
.Dd
samples/distr:
btrees.out	hello.out	pdco.out	roman.out	wordcount.out
cross.out	meander.out	prefix.out	seqimage.out
diffwords.out	parallel.out	recogn.out	sieve.out
.Dd
samples/local:
\&.placeholder
.Dd
src:
Makefile	cmd/	lib/
.Dd
src/cmd:
Makefile	delam.icn	gset.icn	lam.icn	rsg.icn
Makefile.gen	delamc.icn	i-psort.icn	ll.icn	shuffile.icn
cppp.icn	edscript.icn	i-split.icn	loadmap.icn	tablc.icn
cross.icn	farb.icn	i-trfil.icn	parens.icn	tablw.icn
csgen.icn	fset.icn	i-xref.icn	queens.icn	trim.icn
deal.icn	gcomp.icn	labels.icn	roffcmds.icn	worm.icn
.Dd
src/lib:
Makefile	complex.icn	patterns.icn	seqimage.icn	strutil.icn
Makefile.gen	escape.icn	pdae.icn	shuffle.icn	ttyinit.icn
bitops.icn	gener.icn	pdco.icn	size.icn
bold.icn	gpack.icn	radcon.icn	snapshot.icn
collate.icn	image.icn	segment.icn	structs.icn
.Dd
test:
Makefile	std10.icn	std30.icn	std50.icn	std70.icn
READ.ME	std11.icn	std31.icn	std51.icn	std71.icn
Test.gen*	std12.icn	std32.icn	std52.icn	std72.icn
buildt.icn	std13.icn	std33.icn	std53.icn	std73.icn
dismem.icn	std14.icn	std34.icn	std54.icn	std74.icn
distr/	std15.icn	std35.icn	std55.icn	std75.icn
local/	std16.icn	std36.icn	std56.icn	std76.icn
set.tlist	std17.icn	std37.icn	std57.icn	std77.icn
set01.icn	std18.icn	std38.icn	std58.icn	std78.icn
set02.icn	std19.icn	std39.icn	std59.icn	std79.icn
std.tlist	std20.icn	std40.icn	std60.icn	std80.icn
std01.icn	std21.icn	std41.icn	std61.icn	std81.icn
std02.icn	std22.icn	std42.icn	std62.icn	std82.icn
std03.icn	std23.icn	std43.icn	std63.icn	std83.icn
std04.icn	std24.icn	std44.icn	std64.icn	std84.icn
std05.icn	std25.icn	std45.icn	std65.icn	std85.icn
std06.icn	std26.icn	std46.icn	std66.icn	xpx.tlist
std07.icn	std27.icn	std47.icn	std67.icn	xpx01.icn
std08.icn	std28.icn	std48.icn	std68.icn	xpx02.icn
std09.icn	std29.icn	std49.icn	std69.icn	xpx03.icn
.Dd
test/distr:
set01.out	std17.out	std35.out	std53.out	std71.out
set02.out	std18.out	std36.out	std54.out	std72.out
std01.out	std19.out	std37.out	std55.out	std73.out
std02.out	std20.out	std38.out	std56.out	std74.out
std03.out	std21.out	std39.out	std57.out	std75.out
std04.out	std22.out	std40.out	std58.out	std76.out
std05.out	std23.out	std41.out	std59.out	std77.out
std06.out	std24.out	std42.out	std60.out	std78.out
std07.out	std25.out	std43.out	std61.out	std79.out
std08.out	std26.out	std44.out	std62.out	std80.out
std09.out	std27.out	std45.out	std63.out	std81.out
std10.out	std28.out	std46.out	std64.out	std82.out
std11.out	std29.out	std47.out	std65.out	std83.out
std12.out	std30.out	std48.out	std66.out	std84.out
std13.out	std31.out	std49.out	std67.out	std85.out
std14.out	std32.out	std50.out	std68.out	xpx01.out
std15.out	std33.out	std51.out	std69.out	xpx02.out
std16.out	std34.out	std52.out	std70.out	xpx03.out
.Dd
test/local:
\&.placeholder
.Dd
tran:
Makefile	err.c	lex.c	mktoktab.icn	sym.h
Makefile.gen	icon.g	lex.h	optab	synerr.h
char.c	itran.c	lfile.h	optab.c	token.h
char.h	itran.h	lnklist.c	parse.c	tokens
code.c	keyword.c	mem.c	pscript	toktab.c
code.h	keywords	mkkeytab.icn	sym.c	tree.h
.De