|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.