Annotation of 43BSD/contrib/icon/docs/tr84-13, revision 1.1.1.1

1.1       root        1: .so tmac.tr
                      2: .DA "August 24, 1984; Revised October 12, 1984"
                      3: .TR 84-13a
                      4: .Gr
                      5: .TL
                      6: Installation and Maintenance Guide
                      7: .br
                      8: for Version 5.9 of Icon
                      9: .AU
                     10: Ralph E. Griswold
                     11: .AU
                     12: William H. Mitchell
                     13: .AE
                     14: .tr *\(**
                     15: .PP
                     16: This document describes how to install Version 5.9 of the Icon programming
                     17: language [1, 2].
                     18: The distribution of Version 5.9 contains source code for Icon itself,
                     19: documentation, sample programs and tests, the Icon program library [3],
                     20: the procedures from the Icon book [1], test suites to aid in
                     21: porting Icon [4, 5], and various support material.
                     22: .PP
                     23: The installation procedure for Icon is simple; it requires unloading the
                     24: distribution tape onto the target machine, the setting of
                     25: site-specific constants, and the compilation of the Icon
                     26: system itself.
                     27: Read Sections 1 and 2 of this document and the overview of Version 5.9 [2]
                     28: before beginning the installation process.
                     29: .PP
                     30: If Version 5.9 is being installed at a site that is running Version 5.8,
                     31: read Section 3.2 before beginning the installation process.
                     32: .NH 1
                     33: System Requirements
                     34: .PP
                     35: This distribution of Version 5 Icon is targeted for VAX-11s
                     36: and PDP-11s (with separate instruction and data spaces)
                     37: running the UNIX\u\s-2*\s0\d operating system. This distribution package has been tested
                     38: .FS
                     39: \u\s-2*\s0\dUNIX is a trademark of AT&T Bell Laboratories
                     40: .FE
                     41: under V7 and 4.2bsd, and no problems should be encountered when installing
                     42: Icon under one of these versions of UNIX.
                     43: .PP
                     44: When the system is unloaded, it requires about 2,700 kilobytes of disk space.
                     45: During compilation, about 3,700 kilobytes are required.
                     46: To install subsidiary components and test the entire system, about 4,800
                     47: kilobytes are required.
                     48: After the removal of unnecessary files,
                     49: about 3,800 kilobytes are required.
                     50: These figures vary slightly depending upon the logical organization of
                     51: a particular file system.
                     52: .PP
                     53: Additional space can be saved by omitting the Icon program library,
                     54: test programs, and so on. See Sections 6.1, 6.2, and Appendix A
                     55: for more information about
                     56: the directories on the distribution tape. On systems with severely
                     57: limited disk space, source code also can be deleted after Icon is installed.
                     58: .NH 1
                     59: Installation Procedure
                     60: .NH 2
                     61: Unloading the Distribution Tape
                     62: .PP
                     63: The system is distributed as a \fItar\fR archive on magnetic tape.
                     64: The \fItar\fR
                     65: hierarchy is rooted at the directory \*Mv5g\fR.
                     66: If you already have a \*Mv5g\fR directory from an earlier version of
                     67: Icon, you may wish to move this old directory to a new location, such
                     68: as \*Mv5g.old\fR.
                     69: .PP
                     70: Mount the distribution tape
                     71: and do a \fIcd\fR to the directory that is to hold
                     72: the system hierarchy.
                     73: .PP
                     74: The precise
                     75: \fItar\fR command to unload the distribution
                     76: tape depends on the local environment.
                     77: On a 4.\fIn\fRbsd VAX with a 1600 bpi distribution tape, the following
                     78: command should extract the contents of the tape:
                     79: .Ds
                     80: tar x
                     81: .De
                     82: On a V7 PDP-11 with a 1600 bpi distribution tape, use:
                     83: .Ds
                     84: tar xfb /dev/rmt0 20
                     85: .De
                     86: For example, if the system is to reside at \*M/usr/src/local/icon/v5g\fR on a VAX,
                     87: type:
                     88: .Ds
                     89: cd /usr/src/local
                     90: mkdir icon
                     91: cd icon
                     92: tar x
                     93: .De
                     94: .LP
                     95: \fINote\fR: File names used in the following sections usually are relative to
                     96: the root directory for the Icon hierarchy. For example, if
                     97: the Icon system is unloaded as described above, the root directory
                     98: is
                     99: .Ds
                    100: /usr/src/local/icon/v5g
                    101: .De
                    102: and
                    103: the file name \*Mv5g/bin/Makefile\fR refers to
                    104: .Ds
                    105: /usr/src/local/icon/v5g/bin/Makefile
                    106: .De
                    107: .NH 2
                    108: Configuring the Icon System
                    109: .PP
                    110: The installer must perform a site-specific configuration of the Icon
                    111: system. This configuration is done by the shell script
                    112: \*MIcon\-setup\fR.
                    113: \*MIcon\-setup\fR accepts a number of parameters and modifies
                    114: several source files to produce a ready-to-compile Icon system tailored
                    115: as specified by the parameters.
                    116: .PP
                    117: Before \*MIcon\-setup\fR
                    118: modifies a file, it copies a generic version of the
                    119: file into place and works on it. Thus, \*MIcon\-setup\fR can be run a number
                    120: of times and only the last run has any lasting effect.
                    121: \*MIcon\-setup\fR is like any other UNIX command and thus all of its
                    122: arguments must be specified on one logical command line.
                    123: \*MIcon\-setup\fR has the following synopsis:
                    124: .IP \*MIcon\-setup
                    125: .nf
                    126: {\-vax\fR,\*M\-pdp11\fR,\*M\-port}
                    127: \-host\ \fIstring\fP
                    128: [\-sets]
                    129: [\-xpx]
                    130: [\-hz\ \fIrate\fP]
                    131: [\-nofp]
                    132: [\-interpex]
                    133: [\-vfork]
                    134: [\-usg]
                    135: [\-ibin\ \fIlibrary directory for Icon\fP]
                    136: [\-iconx\ \fIlocation of the Icon interpreter\fP]
                    137: [\-debug\*M]
                    138: .fi
                    139: .LP
                    140: The parameters have the following meanings:
                    141: .IP \*M\-vax\fR,\fP\ \ \-pdp11\fR,\fP\ \ \fRor\fP\ \ \-port\fR
                    142: .br
                    143: These are mutually exclusive options that control the selection of
                    144: machine-dependent portions of code. Select one as appropriate.
                    145: \*M\-port\fR is used to set up Icon for transporting to a computer
                    146: for which it previously has not been implemented.
                    147: .IP \*M\-host\fR\ \ \fIstring\fR
                    148: .br
                    149: The Icon system has a keyword, \*M&host\fR, whose value should be the
                    150: name of the host machine where the system is running. On some systems,
                    151: notably 4.2bsd, System III, and System V, it is possible to
                    152: determine the name of the system at run-time via a system call.
                    153: On other systems, 4.1bsd for example,
                    154: the file \*M/usr/include/whoami.h\fR contains
                    155: the name of the host in a \*M#define\fR statement.
                    156: On 4.2bsd, specify \*Mgethost\fR for \fIstring\fR.
                    157: This causes the \fIgethostname(2)\fR function to be used.
                    158: On System III, System V, or some other system that
                    159: supports the \fIuname\fR(2) system call, specify \*Muname\fR for
                    160: \fIstring\fR. On a system with a \*M/usr/include/whoami.h\fR
                    161: file that has a \*M#define\fR for \*Msysname\fR, then specify
                    162: \*Mwhoami\fR for \fIstring\fR. If none of these
                    163: are available on your machine, or to give \*M&host\fR some
                    164: value besides that of the machine name, specify an arbitrary
                    165: string (quotes around it may be needed) for \fIstring\fR, for
                    166: example: \*M\-host\fR\ \ \*MUNIX\fR.
                    167: .IP \*M\-sets\fR
                    168: .br
                    169: This parameter incorporates code to support the set data type, an extension to standard Version 5 that
                    170: is described in [6].
                    171: This extension adds about 3 kilobytes to the size of the run-time system.
                    172: .IP \*M\-xpx\fR
                    173: .br
                    174: This parameter incorporates a number of other extensions to standard Version 5 as described in [6].
                    175: These extensions add about 2 kilobytes to the size of the Icon run-time system.
                    176: .IP \*M\-hz\fR\ \ \fIrate\fR
                    177: .br
                    178: This parameter specifies the cycle rate of the electrical environment.
                    179: The rate defaults to 60 Hz.
                    180: \*M\-hz\fR does not need to be specified in a 60-Hz electrical environment. If the
                    181: rate is incorrect, the value of \*M&time\fR will be wrong.
                    182: .IP \*M\-nofp\fR
                    183: .br
                    184: Specify this on a PDP-11 that does not have
                    185: floating-point hardware.
                    186: .IP \*M\-interpex\fR
                    187: .br
                    188: Specify this option on a 4.\fIn\fRbsd system. This option
                    189: causes the use of a feature of the \fIexec\fR(2) system call to make
                    190: interpretable files directly executable.
                    191: Do \fInot\fR specify this option on other systems.
                    192: .IP \*M\-vfork\fR
                    193: .br
                    194: Specify this option if the operating system supports the \fIvfork(2)\fR
                    195: system call; this should be specified for 4.\fIn\fRbsd systems.
                    196: .IP \*M\-usg\fR
                    197: .br
                    198: Specify this option to adapt for minor incompatibilities between V7 UNIX systems
                    199: and UNIX Software Group UNIX systems. In particular, specify this
                    200: for System III or System V UNIX.
                    201: .IP \*M\-ibin\ \fIdirectory\fR
                    202: .br
                    203: The directory \*Mbin\fR
                    204: contains executable versions of the Icon translator (\*Mitran\fR), the Icon
                    205: linker (\*Milink\fR),
                    206: and the run-time system (\*Miconx\fR). The path name of this directory is built
                    207: into \*Micont\fR, the program that controls the
                    208: translation of Icon programs. By default, the fully qualified name
                    209: of \*Mbin\fR is used for \*M\-ibin\fR.
                    210: Specifying \*M\-ibin\fR
                    211: causes \*Micont\fR to use the specified
                    212: directory as its library directory. If an alternate directory is
                    213: specified, after the Icon system is built,
                    214: copy \*Mv5g/bin/itran\fR, \*Mv5g/bin/ilink\fR, \*Mv5g/bin/iconx\fR,
                    215: and \*Mv5g/bin/iconx.hdr\fR
                    216: into the specified directory.
                    217: .IP \*M\-iconx\ \fIinterpreter-location\fR
                    218: .br
                    219: By default, the \fIinterpreter-location\fR is the fully qualified
                    220: name of \*Mv5g/bin/iconx\fR. If \*M\-ibin\fR is specified, then
                    221: \fIinterpreter-location\fR defaults to \fIibin-directory/\*Miconx\fR.
                    222: See Section 3.2 for considerations in chosing the location of the interpreter.
                    223: If the fully qualified name of \*Miconx\fR is longer than 29 characters
                    224: and \*M\-interpex\fR is specified, \*MIcon\-setup\fR considers the
                    225: name to be erroneous. If this happens, consult Section 3.1.
                    226: If an alternate location is specified for \*Miconx\fR, after
                    227: the Icon system is built, copy \*Mv5g/bin/iconx\fR to the
                    228: specified location.
                    229: .IP \*M\-debug\fR
                    230: .br
                    231: This option enables some debugging code; it normally is not used.
                    232: .LP
                    233: The only required options are \*M\-host\fR and one of \*M\-vax\fR, \*M\-pdp11\fR,
                    234: or \*M\-port\fR.
                    235: For example, on a VAX running 4.2bsd, use
                    236: .Ds
                    237: Icon\-setup \-vax \-interpex \-host gethost \-vfork
                    238: .De
                    239: .PP
                    240: On a PDP-11 without floating-point hardware, running Version 7 UNIX,
                    241: and on which \*M&host\fR is to be \*MUNIX Version 7\fR, use
                    242: .Ds
                    243: Icon\-setup \-pdp11 \-nofp \-host "Unix Version 7"
                    244: .De
                    245: On a VAX running System V in a 50-Hz electrical
                    246: environment, on which the library directory for Icon is to be
                    247: \*M/usr/lib/icon\fR,
                    248: the Icon interpreter is to reside at \*M/usr/bin/iconx\fR,
                    249: and all language extensions are to be included, use
                    250: .Ds
                    251: .in 0
                    252: Icon\-setup \-vax \-hz 50 \-sets \-xpx \-host uname \-usg \-ibin /usr/lib/icon \-iconx /usr/bin/iconx
                    253: .De
                    254: .NH 2
                    255: Compiling Icon
                    256: .PP
                    257: The Icon distribution tape contains no executable binary files and no
                    258: object files, so the system must be completely recompiled from the
                    259: source. After running \*MIcon\-setup\fR,
                    260: compile the system by doing a \fImake\fR.
                    261: The complete system construction process is:
                    262: .Ds
                    263: cd v5g
                    264: Icon\-setup \fIappropriate arguments\fP
                    265: make Icon
                    266: .De
                    267: .NH 2
                    268: Installing Icon for Public Use
                    269: .PP
                    270: A copy of
                    271: \*Mv5g/bin/icont\fR may be placed in a public
                    272: directory such as \*M/usr/bin\fR or \*M/usr/local\fR to provide general user
                    273: access to Icon.
                    274: If \*M\-ibin\fR and/or \*M-iconx\fR are specified in \*MIcon\-setup\fR,
                    275: copy the appropriate files to the specified location. For example,
                    276: if the last \*MIcon-setup\fR specification in Section 2.2 were used,
                    277: the following would be done:
                    278: .Ds
                    279: cd v5g/bin
                    280: cp itran ilink iconx iconx.hdr /usr/lib/icon
                    281: cp iconx /usr/bin/icon
                    282: .De
                    283: .PP
                    284: The manual pages \*Micont.1\fR and \*Micon\-pi.1\fR in \*Mv5g/docs\fR
                    285: may be copied
                    286: into \*M/usr/man/man1\fR.
                    287: .NH 2
                    288: Testing Icon
                    289: .PP
                    290: At this point, Icon system should be working.
                    291: To test the system,
                    292: .Ds
                    293: cd v5g
                    294: make Stdtest
                    295: .De
                    296: which runs a number of standard test programs in the directory \*Mv5g/samples\fR
                    297: and compares them to results from a VAX-11.
                    298: While these tests are not exhaustive, any major installation problems
                    299: should show up when they are run.
                    300: The output of the sample program \*Mhello.icn\fR is certain to
                    301: be different, since it contains time and site-specific code.
                    302: .PP
                    303: The sets and experimental extensions can be tested by
                    304: .Ds
                    305: cd v5g
                    306: make Settest
                    307: .De
                    308: and
                    309: .Ds
                    310: cd v5g
                    311: make Xpxtest
                    312: .De
                    313: respectively.
                    314: Alternatively, all the tests may be run by
                    315: .Ds
                    316: cd v5g
                    317: make Alltest
                    318: .De
                    319: There is also a battery of tests in the directory \*Mv5g/test\fR. These can
                    320: be run, if desired, by
                    321: .Ds
                    322: cd v5g/test
                    323: make Std
                    324: .De
                    325: There are also entries in the \*MMakefile\fR in the \*Mtest\fR directory for
                    326: \*MSet\fR, \*MXpx\fR, and \*MAll\fR.
                    327: See [5] for information on interpreting the results of these tests.
                    328: .PP
                    329: There are other tests in \*Mv5g/port\fR. See [5] for details.
                    330: .NH 1
                    331: Special Installation Considerations
                    332: .NH 2
                    333: Direct Execution of Interpretable Files
                    334: .PP
                    335: When an Icon program is processed by the translator
                    336: and linker using the \fIicont\fR command, the result is a file
                    337: containing opcodes and data in a format that the Icon interpreter
                    338: understands. Rather than having the user ``execute'' this interpretable file
                    339: by running the Icon interpreter with the file as an argument, the
                    340: Icon system uses one of two methods to make the interpretable
                    341: files appear to be directly executable.
                    342: .PP
                    343: In 4.1bsd and 4.2bsd systems, a feature of \fIexec\fR(2)
                    344: system call can be used to enable the interpretable file produced by
                    345: the linker to appear to be directly executable. When \fIexec\fR
                    346: is called with a file to execute, it examines the first two
                    347: characters of the file. If the first two characters are \*M#!\fR, \fIexec\fR
                    348: assumes that the next argument on the line is the name of a
                    349: program for which the file is to serve as input. The program
                    350: then is executed with the named file (the file that is being ``executed'')
                    351: as its argument. Thus, instead of having to run the Icon interpreter with the
                    352: interpretable file as input, the interpretable file can be executed directly.
                    353: .PP
                    354: An alternative method is used on systems whose \fIexec\fR(2) system
                    355: call doesn't have this feature. An executable file is prepended
                    356: to the data used by the interpreter. The executable portion of the
                    357: file merely runs the Icon interpreter with the file
                    358: itself and any supplied arguments as the arguments for the interpreter.
                    359: .PP
                    360: If \*M\-interpex\fR is
                    361: specified for \*MIcon\-setup\fR, the former method is used,
                    362: otherwise, the latter method is used. The first method is
                    363: preferable in that the interpretable files are smaller and they
                    364: start executing more quickly.
                    365: .PP
                    366: There is a potential complication in using the first method.
                    367: The 4.1bsd and 4.2bsd \fIexec\fR(2) system calls
                    368: impose a length limitation of 29 characters on the name of
                    369: the program to be run. If the name exceeds 29 characters, execution
                    370: of the interpretable file fails.
                    371: For example, suppose the Icon
                    372: interpreter (\*Miconx\fR) on a system is located at
                    373: \*M/usr/csc/local/icon/v5g/bin/iconx\fR. This path name is longer
                    374: than 29 characters, and is thus unsuitable for inclusion in interpretable
                    375: files.
                    376: .PP
                    377: The length of the path to \*Miconx\fR is checked by \*MIcon-setup\fR and
                    378: the path above would be rejected.
                    379: .PP
                    380: One way to solve the problem is to link 
                    381: \*M/usr/csc/local/icon/v5g/bin/iconx\fR to \*M/usr/local/iconx\fR,
                    382: and have interpretable files reference \*M/usr/local/iconx\fR.
                    383: Two things need to be done to accomplish this.
                    384: First, find a location where a copy of \*Mbin/iconx\fR
                    385: can be referenced with a fully qualified path name that is no more than
                    386: 29 characters long.
                    387: Second, when configuring the system using \*MIcon\-setup\fR, specify
                    388: the new location of \*Miconx\fR using the \*M\-iconx\fR option.
                    389: For example:
                    390: .Ds
                    391: Icon\-setup \fIother arguments\fP\ \-iconx /usr/local/iconx
                    392: .De
                    393: Be sure to place a copy of \*Miconx\fR in the specified location after
                    394: the system is completely built. It is also possible to get around
                    395: this problem by not specifying \*M\-interpex\fR and having Icon
                    396: prepend the executable header on interpretable files.
                    397: .NH 2
                    398: The Effect of Version Changes on Interpretable Files
                    399: .PP
                    400: An interpretable file produced by \*Micont\fR contains a path to the
                    401: interpreter, \*Miconx\fR.
                    402: Thus \*Miconx\fR cannot be moved without invalidating existing
                    403: interpretable files.
                    404: Furthermore, the interpreter for Version 5.9 is
                    405: incompatible with those for previous versions. If, for example,
                    406: Version 5.8 has been in use at a site and Version 5.9 is
                    407: installed with the new \*Miconx\fR at the same location as that
                    408: for Version 5.8, all previous interpretable files will be invalidated.
                    409: .PP
                    410: To avoid this, it may be desirable to retain \*Miconx\fR for Version
                    411: 5.8 and put \*Miconx\fR for Version 5.9
                    412: at a new location,
                    413: such as \*M/usr/lib/icon/5.9/iconx\fR. See the \*M\-iconx\fR
                    414: option in Section 2.2.
                    415: .NH
                    416: Installing the Icon Program Library
                    417: .PP
                    418: The Icon program library is rooted in \*Mv5g/src\fR. After Icon has
                    419: been installed, the library can be installed by
                    420: .Ds
                    421: cd v5g
                    422: make Library
                    423: .De
                    424: See [3] for a description of program library hierarchy.
                    425: .PP
                    426: There are test programs for the library, which can be run by
                    427: .Ds
                    428: cd v5g
                    429: make Libtest
                    430: .De
                    431: These tests should be unnecessary if previous testing has been
                    432: successful, but they are included in case unexpected problems
                    433: arise. They also may be useful in resolving questions about
                    434: library programs.
                    435: Some tests of the library require the optional extensions that are
                    436: available in Version 5.9 and will malfunction if these extensions
                    437: are not installed.
                    438: The test of \fIfarb(6)\fR probably will produce output that is different
                    439: from the ``standard'' output, since it is dependent on the time of day.
                    440: .NH
                    441: Personalized Interpreters
                    442: .PP
                    443: Version 5.9 contains a facility for building personalized interpreters
                    444: for Icon that allow individuals to augment or modify the Icon
                    445: run-time system easily and quickly. See [7] for details.
                    446: To make this facility available for general user access, a copy of
                    447: \*Mv5g/icon\-pi\fR may be placed in a public area.
                    448: .PP
                    449: A sample personalized interpreter may be built by
                    450: .Ds
                    451: cd v5g
                    452: make Pidemo
                    453: .De
                    454: The result is a personalized interpreter in \*Mv5g/pidemo\fR. This
                    455: personalized interpreter contains the C functions from the
                    456: Icon program library. It may be tested by
                    457: .Ds
                    458: cd v5g
                    459: make Pitest
                    460: .De
                    461: This test compares the results produced locally by this personalized interpreter
                    462: to standard results. Differences should be expected. In addition, some
                    463: of the functions only are supported on VAXs. Tests of these will terminate
                    464: prematurely on a PDP-11.
                    465: .NH 1
                    466: Maintenance Information
                    467: .PP
                    468: The following sections contain information that is not needed to
                    469: install Icon, but which may be helpful in understanding the
                    470: organization of the system and in maintaining it.
                    471: .NH 2
                    472: System Layout
                    473: .PP
                    474: The Icon system has several top-level directories branching off from \*Mv5g\fR.
                    475: Only the directories marked with asterisks are
                    476: needed to build Icon:
                    477: .IP \*Mbin*\fR \w'\*Moperators*\fR'u+2n
                    478: Executable versions of various system components.
                    479: Source code for programs that control Icon translation also resides here.
                    480: .IP \*Mh*\fR
                    481: Header files that are included in other source files.
                    482: .IP \*Mtran*\fR
                    483: Source code for the Icon translator.
                    484: .IP \*Mlink*\fR
                    485: Source code for the Icon linker.
                    486: .IP \*Miconx*\fR
                    487: Source code for the Icon interpreter.
                    488: .IP \*Mfunctions*\fR
                    489: Source code for the Icon built-in functions.
                    490: .IP \*Moperators*\fR
                    491: Source code for the Icon operators.
                    492: .IP \*Mlib*\fR
                    493: Source code for run-time support routines that are directly callable from
                    494: an Icon program.
                    495: .IP \*Mrt*\fR
                    496: Source code for the Icon run-time system.
                    497: .IP \*Mpifuncs*\fR
                    498: Source code for the C functions in the Icon program library.
                    499: .IP \*Mpilib*\fR
                    500: Files used to build personalized interpreters.
                    501: .IP \*Msamples\fR
                    502: Sample programs and associated data.
                    503: .IP \*Mpidemo\fR
                    504: Sample personalized interpreter.
                    505: .IP \*Mdocs\fR
                    506: Documentation and manual pages.
                    507: .IP \*Msrc\fR
                    508: Source code for programs and procedures in the Icon program library [3].
                    509: .IP \*Mibin\fR
                    510: Application programs and games from the Icon program library.
                    511: .IP \*Milib\fR
                    512: Linkable code for procedures in the Icon program library.
                    513: .IP \*Mman\fR
                    514: Manual pages for the Icon program library.
                    515: .IP \*Mlibtest\fR
                    516: Tests for the Icon program library.
                    517: .IP \*Mbook\fR
                    518: Source code for procedures appearing in the Icon book [1].
                    519: .IP \*Mtest\fR
                    520: Tests programs that are more comprehensive than those in \*Msamples\fR.
                    521: .IP \*Mport\fR
                    522: Support material for transporting Version 5.9 to other computers [4, 5].
                    523: .LP
                    524: .NH 2
                    525: Disk Utilization
                    526: .PP
                    527: As mentioned earlier, not all of the directories on the distribution tape
                    528: are needed in order to install Icon.
                    529: Once Icon is working satisfactorily,
                    530: .Ds
                    531: cd v5g
                    532: make Clean
                    533: .De
                    534: can be used to remove
                    535: non-source files and test results.
                    536: Additional disk space can be saved by
                    537: deleting source code after the Icon system is built.
                    538: .PP
                    539: The following table shows the approximate amount of disk space needed
                    540: for the Icon system with the sets and experimental extensions included.
                    541: Phase 1 refers to building Icon proper. Phase 2 refers to the installation
                    542: of subsidiary components and testing in all directories.
                    543: This data was obtained on a VAX running 4.2bsd.
                    544: All figures are in kilobytes.
                    545: .nf
                    546: .sp 1
                    547: .ta 1.2i 2.4i 3.6i 4.8i
                    548:        as distributed  after phase 1   after phase 2   after clean up
                    549: .sp .8
                    550: .ta 1.8iR 3iR 4.2iR 5.4iR
                    551: \*Mbin*\fR     9       161     161     154
                    552: \*Mh*\fR       40      40      40      40
                    553: \*Mtran*\fR    192     295     295     192
                    554: \*Mlink*\fR    83      147     147     83
                    555: \*Miconx*\fR   54      172     172     54
                    556: \*Mfunctions*\fR       112     205     205     112
                    557: \*Moperators*\fR       88      167     167     88
                    558: \*Mlib*\fR     96      131     131     96
                    559: \*Mrt*\fR      157     267     267     157
                    560: \*Mpifuncs*\fR 14      14      26      14
                    561: \*Mpilib*\fR   6       261     261     261
                    562: \*Msamples\fR  48      49      65      49
                    563: \*Mpidemo\fR   1       1       446     446
                    564: \*Mdocs\fR     479     479     479     479
                    565: \*Msrc\fR      125     125     125     125
                    566: \*Mibin\fR     1       1       85      85
                    567: \*Milib\fR     1       1       143     143
                    568: \*Mman\fR      319     319     319     319
                    569: \*Mlibtest\fR  163     163     232     171
                    570: \*Mbook\fR     192     192     192     192
                    571: \*Mtest\fR     246     247     348     247
                    572: \*Mport\fR     257     260     454     260
                    573: .sp .8
                    574: total (including root) 2696    3714    4777    3784
                    575: .NH 2
                    576: Machine-Dependent Code
                    577: .PP
                    578: Since the same source is used to produce versions of Icon on both VAXs
                    579: and PDP-11s, as well as for porting to other computers,
                    580: the portions of the code that are machine dependent are
                    581: bracketed with preprocessor control statements to select sections
                    582: appropriate for each machine.
                    583: The setup options \*M\-vax\fR, \*M\-pdp11\fR, and \*M\-port\fR
                    584: define the preprocessor symbols \*MVAX\fR, \*MPDP11\fR, and \*MPORT\fR,
                    585: respectively.
                    586: .PP
                    587: Preprocessor control statements are used primarily to select appropriate
                    588: assembly
                    589: source code, but they also are used in a few cases for C source code.
                    590: In some cases where differences are extensive (as for assembler files),
                    591: the section of code for the VAX appears in its entirety
                    592: and is followed by the code for the PDP-11 in its entirety.
                    593: Preprocessor control statements for \*MPORT\fR bracket dummy
                    594: code sections that are filled in as part of the porting process.
                    595: .NH 2
                    596: Recompilation of System Components
                    597: .PP
                    598: There is a \*MMakefile\fR in \*Mv5g\fR for carrying out various tasks,
                    599: as described in preceding sections. This \*MMakefile\fR typically
                    600: performs corresponding \fImakes\fR in subdirectories.
                    601: .PP
                    602: The subdirectories \*Mv5g/iconx\fR, \*Mv5g/tran\fR, and \*Mv5g/link\fR
                    603: each contain code for a single component of Icon.
                    604: Doing a \fImake\fR in any of these directories causes
                    605: the particular component to be remade. The resulting component may then
                    606: be copied into the \*Mv5g/bin\fR directory.
                    607: .PP
                    608: The subdirectories \*Mv5g/functions\fR, \*Mv5g/lib\fR, \*Mv5g/operators\fR, and \*Mv5g/rt\fR
                    609: each contain source code for a
                    610: part of the Icon run-time system. The Icon interpreter,
                    611: \*Miconx\fR, is formed by linking all the run-time subroutines together with
                    612: the routines in \*Mv5g/iconx\fR.
                    613: When changes are made to the run-time system, all affected
                    614: libraries must be rebuilt and then \*Miconx\fR must be rebuilt. For example,
                    615: if the files \*Mv5g/operators/bang.c\fR and \*Mv5g/functions/read.c\fR
                    616: have been modified,
                    617: the following sequence of commands rebuilds the system.
                    618: .Ds
                    619: .ta 1.75i
                    620: cd v5g/functions
                    621: make
                    622: cd ../operators
                    623: make
                    624: cd ../iconx
                    625: make
                    626: cp iconx ../bin        # copy new version of interpreter to bin
                    627: .De
                    628: Alternatively,
                    629: .Ds
                    630: cd v5g
                    631: make Icon
                    632: .De
                    633: has the same affect.
                    634: .PP
                    635: Note that if an alternate directory has been specified in \*MIcon-setup\fR
                    636: via the \*M\-ibin\fR option, the files in \*Mbin\fR must then be copied to
                    637: the alternate directory after the \fImake\fR.
                    638: .NH 2
                    639: PDP-11 Yacc Modifications for the Icon Translator
                    640: .PP
                    641: .ft R
                    642: This section is relevant only if modifications are to be made to
                    643: the Icon grammar,
                    644: which is contained in the file \*Mtran/icon.g\fR.
                    645: The version of Yacc distributed with VAX systems is large enough
                    646: to build the Icon parser, but it may be necessary to build a
                    647: version of Yacc with larger parameters on a PDP-11.
                    648: The following defined constants in the file \*Mdextern\fR (in
                    649: the \*Myacc\fR source directory)
                    650: should be given the values listed below.
                    651: Larger values are acceptable for all these constants, but
                    652: are not necessary.
                    653: .Ds
                    654: # ifdef HUGE
                    655: # define ACTSIZE 3000
                    656: # define MEMSIZE 6000
                    657: # define NSTATES 300
                    658: # define NTERMS 127
                    659: # define NPROD 200
                    660: # define NNONTERM 100
                    661: # define TEMPSIZE 1200
                    662: # define CNAMSZ 4100
                    663: # define LSETSIZE 200
                    664: # define WSETSIZE 200
                    665: # endif
                    666: .De
                    667: The constant
                    668: \*MHUGE\fR should be defined instead of \*MMEDIUM\fR
                    669: at the end of the file \*Myacc/files\fR.
                    670: Then Yacc should be rebuilt.
                    671: .NH 2
                    672: Obtaining Source Code Listings
                    673: .PP
                    674: Execution of the commands
                    675: .Ds
                    676: cd v5g
                    677: make Listall
                    678: .De
                    679: produces
                    680: listings of all source files for the Icon system proper on standard output.
                    681: Use the command
                    682: .Ds
                    683: cd v5g
                    684: make List
                    685: .De
                    686: to obtain listings of all such files that have been altered since the
                    687: last \*Mmake List\fR or \*Mmake Listall\fR.
                    688: .NH
                    689: Electronic Mail and Problem Reporting
                    690: .PP
                    691: A mailbox has been established to facilitate communication with
                    692: the Icon Project. Use the following
                    693: addresses for electronic mail:
                    694: .Ds
                    695: .ta 2.5i
                    696: \*Micon\-project.arizona@csnet\-relay\fR       (CSNET and ARPANET)
                    697: \*Marizona!icon\-project\fR    (Usenet and uucpnet)
                    698: .De
                    699: The Icon Project currently
                    700: has uucp connections established through \*Mnoao\fR, \*Mmcnc\fR,
                    701: \*Mihnp4\fR, and \*Mutah\-cs\fR.
                    702: .PP
                    703: If any problems are encountered with the Icon system,
                    704: send electronic mail or telephone the Icon Project at
                    705: 602\-621\-6613.
                    706: If these forms of communication are not convenient, use the Trouble Report Forms supplied with
                    707: the distribution package.
                    708: .SH
                    709: Acknowledgements
                    710: .PP
                    711: Rob McConeghy and Steve Wampler made a number of contributions to
                    712: the procedures for installing and maintaining Icon.
                    713: .SH
                    714: References
                    715: .LP
                    716: 1. Griswold, Ralph E. and Madge T. Griswold.
                    717: \fIThe Icon Programming Language\fR. Prentice-Hall Inc., Englewood
                    718: Cliffs, New Jersey. 1983.
                    719: .LP
                    720: 2. Griswold, Ralph E., Robert K. McConeghy, and William H. Mitchell.
                    721: \fIVersion 5.9 of Icon\fR. Technical report, Department of Computer
                    722: Science, The University of Arizona. August 1984.
                    723: .LP
                    724: 3. Griswold, Ralph E. \fIThe Icon Program Library\fR. Technical Report
                    725: TR 84-12, Department of Computer Science, The University of Arizona.
                    726: August 1984.
                    727: .LP
                    728: 4. Mitchell, William H. \fIPorting the UNIX Implementation of Icon\fR.
                    729: Technical Report TR 83-10d, Department of Computer Science, The University
                    730: of Arizona. August 1984.
                    731: .LP
                    732: 5. Griswold, Ralph E. \fIAn Overview of the Porting Process for Version 5.9
                    733: of Icon\fR.
                    734: Department of Computer Science, The University of Arizona. October 1984.
                    735: .LP
                    736: 6. Griswold, Ralph E., Robert K. McConeghy, and William H. Mitchell. \fIExtensions
                    737: to Version 5 of the Icon Programming Language\fR.
                    738: Technical Report TR 84-10a,
                    739: Department of
                    740: Computer Science, The University of Arizona.
                    741: August 1984.
                    742: .LP
                    743: 7. Griswold, Ralph E., Robert K. McConeghy, and William H. Mitchell.
                    744: \fIPersonalized Interpreters for Icon\fR. Technical Report TR 84-14,
                    745: Department of Computer Science, The University of Arizona. August 1984.
                    746: .Ap "Appendix A \(em Icon Hierarchy"
                    747: .sp 2
                    748: .ta .5i +.5i +.5i +.3i +.3i +.3i +.3i +.3i +.3i +.3i +.3i
                    749: .ds l \h'|2.5i'\fR
                    750: .nf
                    751: \*Mv5g\*lroot directory of the distribution
                    752: \*M    /bin\*l binaries and command processor
                    753: \*M    /h\*l   header files
                    754: \*M    /tran\*l        translator
                    755: \*M    /link\*l        linker
                    756: \*M    /iconx\*l       interpreter
                    757: \*M    /functions\*l   built-in functions
                    758: \*M    /operators\*l   built-in operators
                    759: \*M    /rt\*l  run-time support
                    760: \*M    /lib\*l execution library
                    761: \*M    /pifuncs\*l     C functions for personalized interpreters
                    762: \*M    /pilib\*l       library for personalized interpreters
                    763: \*M    /samples\*l     sample Icon programs
                    764: \*M            /distr\*l               standard test results
                    765: \*M            /local\*l               local test results
                    766: \*M    /pidemo\*l      sample personalized interpreter
                    767: \*M    /docs\*l        text for documents
                    768: \*M    /src\*l source code for the Icon program library
                    769: \*M            /cmd\*l         Icon programs
                    770: \*M            /lib\*l         Icon procedures
                    771: \*M    /libtest\*l     test programs for the Icon program library
                    772: \*M            /distr\*l               standard test results
                    773: \*M            /local\*l               local test results
                    774: \*M    /ibin\*l        executable code for Icon library programs
                    775: \*M    /ilib\*l        linkable code for Icon program library procedures
                    776: \*M    /man\*l manual pages
                    777: \*M            /man0\*l                text for front matter
                    778: \*M            /man1\*l                text for Section 1
                    779: \*M            /man2\*l                text for Section 2
                    780: \*M            /man3\*l                text for Section 3
                    781: \*M            /man6\*l                text for Section 6
                    782: \*M            /man7\*l                text for Section 7
                    783: \*M            /man8\*l                text for Section 8
                    784: \*M            /cat0\*l                formatted pages for front matter
                    785: \*M            /cat1\*l                formatted pages for Section 1
                    786: \*M            /cat2\*l                formatted pages for Section 2
                    787: \*M            /cat3\*l                formatted pages for Section 3
                    788: \*M            /cat6\*l                formatted pages for Section 6
                    789: \*M            /cat7\*l                formatted pages for Section 7
                    790: \*M            /cat8\*l                formatted pages for Section 8
                    791: \*M    /test\*l        test battery
                    792: \*M            /distr\*l               standard test results
                    793: \*M            /local\*l               local test results
                    794: \*M    /book\*l        procedures from the Icon book
                    795: \*M            /01\*l          procedures from Chapter 1
                    796: \*M            /02\*l          procedures from Chapter 2
                    797: \*M            /03\*l          procedures from Chapter 3
                    798: \*M            /04\*l          procedures from Chapter 4
                    799: \*M            /05\*l          procedures from Chapter 5
                    800: \*M            /06\*l          procedures from Chapter 6
                    801: \*M            /07\*l          procedures from Chapter 7
                    802: \*M            /08\*l          procedures from Chapter 8
                    803: \*M            /09\*l          procedures from Chapter 9
                    804: \*M            /10\*l          procedures from Chapter 10
                    805: \*M            /11\*l          procedures from Chapter 11
                    806: \*M            /12\*l          procedures from Chapter 12
                    807: \*M            /13\*l          procedures from Chapter 13
                    808: \*M            /14\*l          procedures from Chapter 14
                    809: \*M            /15\*l          procedures from Chapter 15
                    810: \*M            /16\*l          procedures from Chapter 16
                    811: \*M            /17\*l          procedures from Chapter 17
                    812: \*M            /18\*l          procedures from Chapter 18
                    813: \*M            /19\*l          procedures from Chapter 19
                    814: \*M            /20\*l          procedures from Chapter 20
                    815: \*M            /f\*l           procedures from Appendix F
                    816: \*M    /port\*l                porting tests
                    817: \*M            /distr\*l                       standard test results
                    818: \*M            /local\*l                       local test results
                    819: .Ap "Appendix B \(em Listing of Distributed Icon Files"
                    820: .de Ta
                    821: .ps 8
                    822: .vs 10
                    823: .ta 1.1i 2.2i 3.3i 4.4i 5.5i
                    824: ..
                    825: .sp 1
                    826: .PP
                    827: Files names followed by a slash are directories. Asterisks identify
                    828: executable files (shell scripts).
                    829: .sp
                    830: .Ds
                    831: Icon-setup*    functions/      lib/    pifuncs/        test/
                    832: Makefile       h/      libtest/        pilib/  tran/
                    833: Pimakefile.gen ibin/   link/   port/
                    834: bin/   icon-pi.gen*    man/    rt/
                    835: book/  iconx/  operators/      samples/
                    836: docs/  ilib/   pidemo/ src/
                    837: .Dd
                    838: bin:
                    839: Makefile       Makefile.gen    icont.c ixhdr.c
                    840: .Dd
                    841: book:
                    842: 01/    08/     13/     18/     alpha.ls
                    843: 02/    09/     14/     19/     f/
                    844: 04/    10/     15/     20/     page.ls
                    845: 05/    11/     16/     Makefile
                    846: 07/    12/     17/     READ.ME
                    847: .Dd
                    848: book/01:
                    849: countm1.icn    hello1.icn      hello3.icn      hello5.icn      locate2.icn
                    850: countm2.icn    hello2.icn      hello4.icn      locate1.icn
                    851: .Dd
                    852: book/02:
                    853: break1.icn     break2.icn      break3.icn      next.icn
                    854: .Dd
                    855: book/04:
                    856: balop.icn      inset2.icn      minmax2.icn     vbars.icn       wordlist1.icn
                    857: icwrite.icn    lmark.icn       powers.icn      word1.icn       words1.icn
                    858: inset1.icn     minmax1.icn     section.icn     word2.icn
                    859: .Dd
                    860: book/05:
                    861: array.icn      get.icn tabwords1.icn   wordlen.icn     wordlist2.icn
                    862: .Dd
                    863: book/07:
                    864: exor1.icn      expr2.icn       fib2.icn        fword2.icn
                    865: expr1.icn      fib1.icn        fword1.icn      nword.icn
                    866: .Dd
                    867: book/08:
                    868: maxel.icn      words2.icn
                    869: .Dd
                    870: book/09:
                    871: copy1.icn      copy2.icn       copy3.icn
                    872: .Dd
                    873: book/10:
                    874: display.icn    shuffle1.icn
                    875: .Dd
                    876: book/11:
                    877: fibseq1.icn    mark.icn        rtl.icn
                    878: genword.icn    marker.icn      to.icn
                    879: .Dd
                    880: book/12:
                    881: tabwords2.icn  words3.icn
                    882: .Dd
                    883: book/13:
                    884: alt.icn        equalseq.icn    every.icn       filter1.icn     inter.icn
                    885: .Dd
                    886: book/14:
                    887: 8q.icn cross1.icn      limit1.icn      limit3.icn      stars.icn
                    888: break4.icn     cross2.icn      limit2.icn      posint.icn
                    889: .Dd
                    890: book/15:
                    891: abc.icn        arbno.icn       parsexp.icn     recexp.icn      tab.icn
                    892: arb.icn        lmatch.icn      rarb.icn        shades.icn
                    893: .Dd
                    894: book/16:
                    895: eq.icn lgraph.icn      stree.icn       visit.icn
                    896: ldag.icn       ltree.icn       teq.icn
                    897: .Dd
                    898: book/17:
                    899: close.icn      disp.icn        reverse.icn     shuffle2.icn    swap.icn
                    900: .Dd
                    901: book/18:
                    902: add1.icn       add2.icn        add3.icn        mpy.icn
                    903: .Dd
                    904: book/19:
                    905: drv.icn        form1.icn       symadd.icn
                    906: fix.icn        form2.icn       symop.icn
                    907: .Dd
                    908: book/20:
                    909: rsg1.icn
                    910: .Dd
                    911: book/f:
                    912: 8qp.icn        both.icn        fact.icn        infix.icn       rotate.icn
                    913: abcd.icn       btree.icn       filerev.icn     large.icn       rsg2.icn
                    914: acker1.icn     cdigit.icn      filter2.icn     lastline.icn    rsg3.icn
                    915: acker2.icn     charimage.icn   filter3.icn     limit4.icn      seqimage.icn
                    916: ackertr.icn    complex.icn     first.icn       locate3.icn     space.icn
                    917: allbal1.icn    dashes.icn      fixfunc.icn     nchars.icn      symmpy.icn
                    918: allbal2.icn    delete1.icn     form3.icn       oddline.icn     symsub.icn
                    919: allbal3.icn    delete2.icn     gener.icn       palseq.icn      tabwords3.icn
                    920: aver.icn       depth.icn       genpos.icn      pause.icn       tcopy.icn
                    921: bincop.icn     enrepl.icn      gensubstr.icn   qseq.icn        uscore.icn
                    922: boldface.icn   exor2.icn       hexcvt.icn      repalt.icn      vcount.icn
                    923: .Dd
                    924: docs:
                    925: Makefile       icont.1 tr83-10a.roff   tr84-11 tr84-14
                    926: READ.ME        porting tr83-10b.roff   tr84-11a.roff   version5.9
                    927: cover  reportform      tr83-10c.roff   tr84-11b.roff
                    928: distpack       tmac.tr tr83-3  tr84-12
                    929: icon-pi.1      tr83-10 tr84-10 tr84-13
                    930: .Dd
                    931: functions:
                    932: Makefile       exit.c  member.c        reads.c tab.c
                    933: abs.c  find.c  move.c  real.c  table.c
                    934: any.c  get.c   numeric.c       repl.c  trim.c
                    935: bal.c  image.c open.c  reverse.c       type.c
                    936: center.c       insert.c        pop.c   right.c upto.c
                    937: close.c        integer.c       pos.c   seq.c   write.c
                    938: collect.c      left.c  proc.c  set.c   writes.c
                    939: copy.c list.c  pull.c  sort.c
                    940: cset.c many.c  push.c  stop.c
                    941: delete.c       map.c   put.c   string.c
                    942: display.c      match.c read.c  system.c
                    943: .Dd
                    944: h:
                    945: Makefile       ctype.h gc.h    pnames.h
                    946: config.h       defs.s  keyword.h       record.h
                    947: config.h.gen   err.h   pdef.h  rt.h
                    948: .Dd
                    949: ibin:
                    950: \&.placeholder
                    951: .Dd
                    952: iconx:
                    953: Makefile       init.c  main.c  pstop.s
                    954: Makefile.gen   interp.s        pstart.s        start.s
                    955: .Dd
                    956: ilib:
                    957: \&.placeholder
                    958: .Dd
                    959: lib:
                    960: Makefile       coret.s esusp.s limit.c pfail.s
                    961: bscan.c        create.c        field.c llist.c pret.s
                    962: coact.s        efail.s invoke.s        lsusp.s psusp.s
                    963: cofail.s       escan.c keywd.c mkrec.c
                    964: .Dd
                    965: libtest:
                    966: Functest*      t-collate.dat   t-gener.dat     t-loadmap       t-shuffile.dat
                    967: Makefile       t-collate.icn   t-gener.icn     t-math.icn      t-shuffle.dat
                    968: Proctest*      t-complex.dat   t-getenv.icn    t-parens        t-shuffle.icn
                    969: Proctest.gen*  t-complex.icn   t-gpack.dat     t-patterns.dat  t-size.dat
                    970: Prog1test*     t-cppp  t-gpack.icn     t-patterns.icn  t-size.icn
                    971: Prog2test*     t-cppp.dat      t-gset  t-pdae.dat      t-snapshot.dat
                    972: READ.ME        t-cross.dat     t-i-psort.dat   t-pdae.icn      t-snapshot.icn
                    973: distr/ t-csgen.dat     t-i-split       t-pdco.dat      t-structs.dat
                    974: func.tlist     t-deal.dat      t-i-split.dat   t-pdco.icn      t-structs.icn
                    975: local/ t-delam t-i-trfil       t-queens.dat    t-strutil.dat
                    976: pdef.h t-delam.dat     t-i-trfil.dat   t-radcon.dat    t-strutil.icn
                    977: proc.tlist     t-delamc        t-i-xref.dat    t-radcon.icn    t-tablc.dat
                    978: prog1.tlist    t-delamc.dat    t-image.dat     t-roffcmds.dat  t-tablw.dat
                    979: prog2.tlist    t-edscript.dat  t-image.icn     t-rsg.dat       t-trig.icn
                    980: sizes.c        t-escape.dat    t-iscope.icn    t-seek.icn      t-trim.dat
                    981: t-bitops.dat   t-escape.icn    t-labels.dat    t-segment.dat   t-ttyctl.icn
                    982: t-bitops.icn   t-farb.dat      t-lam   t-segment.icn   t-ttyinit.dat
                    983: t-bold.dat     t-fset  t-lam.dat       t-seqimage.dat  t-ttyinit.icn
                    984: t-bold.icn     t-gcomp t-ll.dat        t-seqimage.icn  t-worm
                    985: .Dd
                    986: libtest/distr:
                    987: bitops.out     escape.out      i-xref.out      pdco.out        snapshot.out
                    988: bold.out       farb.out        image.out       queens.out      structs.out
                    989: collate.out    fset.out        iscope.out      radcon.out      strutil.out
                    990: complex.out    gcomp.out       labels.out      roffcmds.out    tablc.out
                    991: cppp.out       gener.out       lam.out rsg.out tablw.out
                    992: cross.out      getenv.out      ll.out  seek.out        trig.out
                    993: csgen.out      gpack.out       loadmap.out     segment.out     trim.out
                    994: deal.out       gset.out        math.out        seqimage.out    ttyctl.out
                    995: delam.out      i-psort.out     parens.out      shuffile.out    ttyinit.out
                    996: delamc.out     i-split.out     patterns.out    shuffle.out     worm.out
                    997: edscript.out   i-trfil.out     pdae.out        size.out
                    998: .Dd
                    999: libtest/local:
                   1000: \&.placeholder
                   1001: .Dd
                   1002: link:
                   1003: Makefile       glob.c  lcode.c lsym.c
                   1004: builtin.c      ilink.c llex.c  opcode.c
                   1005: datatype.h     ilink.h lmem.c  opcode.h
                   1006: .Dd
                   1007: man:
                   1008: Makefile       cat3/   man0/   man6/   tmac.an.new
                   1009: cat0/  cat6/   man1/   man7/   tmac.an6n
                   1010: cat1/  cat7/   man2/   man8/   tmac.an6t
                   1011: cat2/  cat8/   man3/   tmac.an tmac.ilib
                   1012: .Dd
                   1013: man/cat0:
                   1014: ptx    toc
                   1015: .Dd
                   1016: man/cat1:
                   1017: cppp.1 fset.1  i-trfil.1       loadmap.1       tablc.1
                   1018: csgen.1        gcomp.1 i-xref.1        parens.1        tablw.1
                   1019: delam.1        gset.1  labels.1        roffcmds.1      trim.1
                   1020: delamc.1       i-psort.1       lam.1   rsg.1
                   1021: edscript.1     i-split.1       ll.1    shuffile.1
                   1022: .Dd
                   1023: man/cat2:
                   1024: bitops.2       escape.2        patterns.2      segment.2       snapshot.2
                   1025: bold.2 gener.2 pdae.2  seqimage.2      structs.2
                   1026: collate.2      gpack.2 pdco.2  shuffle.2       strutil.2
                   1027: complex.2      image.2 radcon.2        size.2  ttyinit.2
                   1028: .Dd
                   1029: man/cat3:
                   1030: getenv.3       math.3  trig.3
                   1031: iscope.3       seek.3  ttyctl.3
                   1032: .Dd
                   1033: man/cat6:
                   1034: cross.6        deal.6  farb.6  queens.6        worm.6
                   1035: .Dd
                   1036: man/cat7:
                   1037: i-hier.7
                   1038: .Dd
                   1039: man/cat8:
                   1040: lman.8 uman.8
                   1041: .Dd
                   1042: man/man0:
                   1043: ptx.in toc.in  toc2    toc4    toc6    toc8
                   1044: ptxx   toc1    toc3    toc5    toc7
                   1045: .Dd
                   1046: man/man1:
                   1047: cppp.1 fset.1  i-trfil.1       loadmap.1       tablc.1
                   1048: csgen.1        gcomp.1 i-xref.1        parens.1        tablw.1
                   1049: delam.1        gset.1  labels.1        roffcmds.1      trim.1
                   1050: delamc.1       i-psort.1       lam.1   rsg.1
                   1051: edscript.1     i-split.1       ll.1    shuffile.1
                   1052: .Dd
                   1053: man/man2:
                   1054: bitops.2       escape.2        patterns.2      segment.2       snapshot.2
                   1055: bold.2 gener.2 pdae.2  seqimage.2      structs.2
                   1056: collate.2      gpack.2 pdco.2  shuffle.2       strutil.2
                   1057: complex.2      image.2 radcon.2        size.2  ttyinit.2
                   1058: .Dd
                   1059: man/man3:
                   1060: getenv.3       math.3  trig.3
                   1061: iscope.3       seek.3  ttyctl.3
                   1062: .Dd
                   1063: man/man6:
                   1064: cross.6        deal.6  farb.6  queens.6        worm.6
                   1065: .Dd
                   1066: man/man7:
                   1067: i-hier.7
                   1068: .Dd
                   1069: man/man8:
                   1070: lman.8 uman.8
                   1071: .Dd
                   1072: operators:
                   1073: Makefile       lconcat.c       mult.c  numle.c sect.c
                   1074: asgn.c lexeq.c neg.c   numlt.c size.c
                   1075: bang.c lexge.c neqv.c  numne.c subsc.c
                   1076: cat.c  lexgt.c nonnull.c       plus.c  swap.c
                   1077: compl.c        lexle.c null.c  power.c tabmat.c
                   1078: diff.c lexlt.c number.c        random.c        toby.c
                   1079: div.c  lexne.c numeq.c rasgn.c unioncs.c
                   1080: eqv.c  minus.c numge.c refresh.c       value.c
                   1081: inter.c        mod.c   numgt.c rswap.c
                   1082: .Dd
                   1083: pidemo:
                   1084: \&.placeholder
                   1085: .Dd
                   1086: pifuncs:
                   1087: Makefile       iscope.c        seek.c  ttyctl.c
                   1088: getenv.c       math.c  trig.c
                   1089: .Dd
                   1090: pilib:
                   1091: Makefile       Pilib*
                   1092: .Dd
                   1093: port:
                   1094: Linkchecker*   basis4.icn      esusp1.icn      lsusp1.icn      roman.icn
                   1095: Linktest.gen*  basis5.icn      esusp2.icn      meander.icn     rsg.icn
                   1096: Makefile       basis6.icn      fail.tlist      prefix.icn      seqimage.icn
                   1097: Runtest.gen*   basis7.icn      fail1.icn       pret.tlist      set1.tlist
                   1098: Runtestall*    basis8.icn      fail2.icn       pret1.icn       suspend.tlist
                   1099: Trantest.gen*  btrees.icn      gc.tlist        pret2.icn       suspend1.icn
                   1100: arith.tlist    cross.icn       gc1.icn pret3.icn       suspend2.icn
                   1101: arith1.icn     display.tlist   gc2.icn proto.icn       wordcount.icn
                   1102: basis.tlist    display1.icn    hello.icn       psusp.tlist
                   1103: basis1.icn     display2.icn    lit.icn psusp1.icn
                   1104: basis2.icn     distr/  local/  psusp2.icn
                   1105: basis3.icn     esusp.tlist     lsusp.tlist     recogn.icn
                   1106: .Dd
                   1107: port/distr:
                   1108: arith1.out     cross.u2        lit.u1  proto.u1        rsg.ux
                   1109: basis1.out     cross.ux        lit.u2  proto.u2        seqimage.u1
                   1110: basis2.out     display1.out    lit.ux  proto.ux        seqimage.u2
                   1111: basis3.out     display2.out    lsusp1.out      psusp1.out      seqimage.ux
                   1112: basis4.out     esusp1.out      meander.u1      psusp2.out      suspend1.out
                   1113: basis5.out     esusp2.out      meander.u2      recogn.u1       suspend2.out
                   1114: basis6.out     fail1.out       meander.ux      recogn.u2       wordcount.u1
                   1115: basis7.out     fail2.out       prefix.u1       recogn.ux       wordcount.u2
                   1116: basis8.out     gc1.out prefix.u2       roman.u1        wordcount.ux
                   1117: btrees.u1      gc2.out prefix.ux       roman.u2
                   1118: btrees.u2      hello.u1        pret1.out       roman.ux
                   1119: btrees.ux      hello.u2        pret2.out       rsg.u1
                   1120: cross.u1       hello.ux        pret3.out       rsg.u2
                   1121: .Dd
                   1122: port/local:
                   1123: \&.placeholder
                   1124: .Dd
                   1125: rt:
                   1126: Makefile       cvpos.c doasgn.c        host.c  pow.c
                   1127: addmem.c       cvreal.c        dump.c  ldfps.s putstr.c
                   1128: alc.c  cvstr.c equiv.c lexcmp.c        qtos.c
                   1129: anycmp.c       dblocks.c       exp.c   locate.c        setbound.s
                   1130: arith.s        defany.c        fail.s  log.c   strprc.c
                   1131: cplist.c       defcset.c       floor.c memb.c  suspend.s
                   1132: csv.s  deffile.c       gc.c    mkint.c sweep.c
                   1133: ctype.c        defint.c        gcollect.s      mkreal.c        trace.c
                   1134: cvcset.c       defshort.c      gcvt.c  mksubs.c
                   1135: cvint.c        defstr.c        getstr.c        numcmp.c
                   1136: cvnum.c        deref.c hash.c  outimage.c
                   1137: .Dd
                   1138: samples:
                   1139: Makefile       diffwords.icn   parallel.dat    recogn.icn      sieve.icn
                   1140: Test.gen*      distr/  parallel.icn    roman.dat       std.tlist
                   1141: btrees.dat     hello.dat       pdco.dat        roman.icn       wordcount.dat
                   1142: btrees.icn     hello.icn       pdco.icn        seqimage.dat    wordcount.icn
                   1143: cross.dat      local/  prefix.dat      seqimage.icn    xpx.tlist
                   1144: cross.icn      meander.dat     prefix.icn      set.tlist
                   1145: diffwords.dat  meander.icn     recogn.dat      sieve.dat
                   1146: .Dd
                   1147: samples/distr:
                   1148: btrees.out     hello.out       pdco.out        roman.out       wordcount.out
                   1149: cross.out      meander.out     prefix.out      seqimage.out
                   1150: diffwords.out  parallel.out    recogn.out      sieve.out
                   1151: .Dd
                   1152: samples/local:
                   1153: \&.placeholder
                   1154: .Dd
                   1155: src:
                   1156: Makefile       cmd/    lib/
                   1157: .Dd
                   1158: src/cmd:
                   1159: Makefile       delam.icn       gset.icn        lam.icn rsg.icn
                   1160: Makefile.gen   delamc.icn      i-psort.icn     ll.icn  shuffile.icn
                   1161: cppp.icn       edscript.icn    i-split.icn     loadmap.icn     tablc.icn
                   1162: cross.icn      farb.icn        i-trfil.icn     parens.icn      tablw.icn
                   1163: csgen.icn      fset.icn        i-xref.icn      queens.icn      trim.icn
                   1164: deal.icn       gcomp.icn       labels.icn      roffcmds.icn    worm.icn
                   1165: .Dd
                   1166: src/lib:
                   1167: Makefile       complex.icn     patterns.icn    seqimage.icn    strutil.icn
                   1168: Makefile.gen   escape.icn      pdae.icn        shuffle.icn     ttyinit.icn
                   1169: bitops.icn     gener.icn       pdco.icn        size.icn
                   1170: bold.icn       gpack.icn       radcon.icn      snapshot.icn
                   1171: collate.icn    image.icn       segment.icn     structs.icn
                   1172: .Dd
                   1173: test:
                   1174: Makefile       std10.icn       std30.icn       std50.icn       std70.icn
                   1175: READ.ME        std11.icn       std31.icn       std51.icn       std71.icn
                   1176: Test.gen*      std12.icn       std32.icn       std52.icn       std72.icn
                   1177: buildt.icn     std13.icn       std33.icn       std53.icn       std73.icn
                   1178: dismem.icn     std14.icn       std34.icn       std54.icn       std74.icn
                   1179: distr/ std15.icn       std35.icn       std55.icn       std75.icn
                   1180: local/ std16.icn       std36.icn       std56.icn       std76.icn
                   1181: set.tlist      std17.icn       std37.icn       std57.icn       std77.icn
                   1182: set01.icn      std18.icn       std38.icn       std58.icn       std78.icn
                   1183: set02.icn      std19.icn       std39.icn       std59.icn       std79.icn
                   1184: std.tlist      std20.icn       std40.icn       std60.icn       std80.icn
                   1185: std01.icn      std21.icn       std41.icn       std61.icn       std81.icn
                   1186: std02.icn      std22.icn       std42.icn       std62.icn       std82.icn
                   1187: std03.icn      std23.icn       std43.icn       std63.icn       std83.icn
                   1188: std04.icn      std24.icn       std44.icn       std64.icn       std84.icn
                   1189: std05.icn      std25.icn       std45.icn       std65.icn       std85.icn
                   1190: std06.icn      std26.icn       std46.icn       std66.icn       xpx.tlist
                   1191: std07.icn      std27.icn       std47.icn       std67.icn       xpx01.icn
                   1192: std08.icn      std28.icn       std48.icn       std68.icn       xpx02.icn
                   1193: std09.icn      std29.icn       std49.icn       std69.icn       xpx03.icn
                   1194: .Dd
                   1195: test/distr:
                   1196: set01.out      std17.out       std35.out       std53.out       std71.out
                   1197: set02.out      std18.out       std36.out       std54.out       std72.out
                   1198: std01.out      std19.out       std37.out       std55.out       std73.out
                   1199: std02.out      std20.out       std38.out       std56.out       std74.out
                   1200: std03.out      std21.out       std39.out       std57.out       std75.out
                   1201: std04.out      std22.out       std40.out       std58.out       std76.out
                   1202: std05.out      std23.out       std41.out       std59.out       std77.out
                   1203: std06.out      std24.out       std42.out       std60.out       std78.out
                   1204: std07.out      std25.out       std43.out       std61.out       std79.out
                   1205: std08.out      std26.out       std44.out       std62.out       std80.out
                   1206: std09.out      std27.out       std45.out       std63.out       std81.out
                   1207: std10.out      std28.out       std46.out       std64.out       std82.out
                   1208: std11.out      std29.out       std47.out       std65.out       std83.out
                   1209: std12.out      std30.out       std48.out       std66.out       std84.out
                   1210: std13.out      std31.out       std49.out       std67.out       std85.out
                   1211: std14.out      std32.out       std50.out       std68.out       xpx01.out
                   1212: std15.out      std33.out       std51.out       std69.out       xpx02.out
                   1213: std16.out      std34.out       std52.out       std70.out       xpx03.out
                   1214: .Dd
                   1215: test/local:
                   1216: \&.placeholder
                   1217: .Dd
                   1218: tran:
                   1219: Makefile       err.c   lex.c   mktoktab.icn    sym.h
                   1220: Makefile.gen   icon.g  lex.h   optab   synerr.h
                   1221: char.c itran.c lfile.h optab.c token.h
                   1222: char.h itran.h lnklist.c       parse.c tokens
                   1223: code.c keyword.c       mem.c   pscript toktab.c
                   1224: code.h keywords        mkkeytab.icn    sym.c   tree.h
                   1225: .De

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.