Annotation of 43BSD/contrib/icon/docs/version5.9, revision 1.1.1.1

1.1       root        1: .so tmac.tr
                      2: .sv |1.25i
                      3: .de Ip
                      4: .IP \(bu \w'\(bu'u+1n
                      5: ..
                      6: .LP
                      7: .ce 10
                      8: \f3Version 5.9 of Icon\fR
                      9: .sp 2
                     10: Ralph E. Griswold, Robert K. McConeghy, and William H. Mitchell
                     11: .sp
                     12: August 22, 1984
                     13: .ce 0
                     14: .sp 1
                     15: .PP
                     16: Version 5.9 of Icon is a modification of Version 5.8 of Icon.
                     17: The \*U implementation runs on both PDP-11s and VAXs. This document
                     18: is a brief summary of Version 5.9. See also References 1, 2, and 3.
                     19: .Un
                     20: .SH
                     21: Changes
                     22: .LP
                     23: .in 5n
                     24: .Ip
                     25: An optional language extension provides sets as a built-in data type [3].
                     26: .Ip
                     27: The Icon compiler has been deleted, leaving only the interpreter.
                     28: A ``personalized interpreter'' facility has been added to allow individuals to maintain
                     29: customized versions of the Icon run-time system [5].
                     30: This facility replaces the former use of
                     31: external functions with the Icon compiler to augment the function
                     32: repertoire of Icon.
                     33: .Ip
                     34: The implementation of the table data type has been redone to
                     35: increase the efficiency of table lookup.
                     36: .Ip
                     37: There is a new keyword, \*M&options\fR, whose value is a string listing
                     38: the options used for installing Icon at the local site [3, 4].
                     39: .Ip
                     40: Considerable work has been done throughout the Icon system to
                     41: improve the quality of the code and to remove nonportable
                     42: constructs.
                     43: .Ip
                     44: The source code has been commented extensively.
                     45: .Ip
                     46: A number of minor bugs have been fixed.
                     47: .Ip
                     48: The Icon program library has beed reorganized and new material has been
                     49: added to it [6].
                     50: .Ip
                     51: The Icon distribution hierarchy has been reorganized and new material
                     52: has been added to aid in testing and porting to new computers [4].
                     53: .in 0
                     54: .SH
                     55: User Impacts
                     56: .LP
                     57: .in 5n
                     58: .Ip
                     59: Persons who formerly used the Icon compiler with external functions
                     60: will need to convert to personalized interpreters.
                     61: .Ip
                     62: The internal organization of tables is different from earlier
                     63: implementations. For example, if
                     64: \*Mt\fR is a table,
                     65: the order of elements generated by \*M!t\fR generally is different from before.
                     66: Similarly, the value of \*M?t\fR is likely to be different.
                     67: .Ip
                     68: The functionality of some components of the Icon program library
                     69: has been changed.
                     70: .in 0
                     71: .bp
                     72: .SH
                     73: Known Bugs
                     74: .PP
                     75: This list ennumerates all known bugs in Version 5.8 of Icon.
                     76: If you find a bug that is not in this list, please contact us.
                     77: .LP
                     78: .in 5n
                     79: .Ip
                     80: The translator does not detect arithmetic overflow in conversion of
                     81: numeric literals. Very large numeric literals may have incorrect values.
                     82: .Ip
                     83: Integer overflow on multiplication and exponentiation are not detected
                     84: during execution.
                     85: This may occur during type conversion.
                     86: .Ip
                     87: Line numbers may be wrong in diagnostic messages related to lines with continued
                     88: quoted literals.
                     89: .Ip
                     90: In some cases, trace messages may show the return of subscripted
                     91: values, such as \*M&null\^[2]\fR, that would be erroneous if they were
                     92: dereferenced.
                     93: .Ip
                     94: File names are truncated to 14 characters by some versions of UNIX.  If such a truncation
                     95: deletes part of the terminating \*M.icn\fR of a file that
                     96: is input to the translator,
                     97: mysterious diagnostic
                     98: messages may occur during linking.
                     99: .Ip
                    100: On PDP-11s, list blocks can contain no more than 4090 elements.  List
                    101: blocks are created when the \*Mlist()\fR function is called, when
                    102: literal lists are specified, and when the \*Msort()\fR function
                    103: converts a table into a list.  It should be noted that it is possible
                    104: for a list to grow to beyond 4090 elements; the limitation is only
                    105: upon the size of the list when it is created.
                    106: .Ip
                    107: There is a bug in the 4.1bsd \*Mfopen()\fR routine that under certain
                    108: conditions returns a \*MFILE\fR pointer that is out of range when
                    109: one tries to open too many files.
                    110: On systems where this bug is present, it may manifest itself in the form of
                    111: run-time Error 304 when one tries to open too many files.
                    112: (On 4.1bsd systems this limit is usually 20 files.)
                    113: .Ip
                    114: If one has an expression such as \*Mx := create \*(El \fR in a loop, and
                    115: \*Mx\fR is not a global variable, the unreferenceable expression stacks
                    116: generated by each successive \*Mcreate\fR operation are not
                    117: garbage collected.  This problem can be circumvented
                    118: by making \*Mx\fR a global variable or by assigning a value to \*Mx\fR before
                    119: the \*Mcreate\fR operation, e.g., \*Mx := &null; x := create \*(El  \fR.
                    120: .Ip
                    121: Overflow of a co-expression stack due to excessive recursion is not detected
                    122: and may cause mysterious program malfunction.
                    123: .Ip
                    124: Program malfunction may occur if \*Mdisplay()\fR is used in a co-expression.
                    125: .Ip
                    126: The garbage collector was designed for machines with small
                    127: address spaces and as such is not well-suited for
                    128: machines like the VAX.  No empirical studies have been made,
                    129: but it is suspected that performance of the garbage collector
                    130: could be improved substantially on the VAX.  In particular, if
                    131: the user attempts to create a very large data object that will
                    132: not fit into memory, (such as a million-element list), it takes
                    133: the system an inordinately long time to determine that the object can
                    134: not be allocated.
                    135: .in 0
                    136: .SH
                    137: References
                    138: .LP
                    139: 1. Griswold, Ralph E. \fIAn Overview of the Icon Programming Language\fR.
                    140: Technical Report TR 83-3a, Department of Computer Science, The
                    141: University of Arizona. May 1983.
                    142: .LP
                    143: 2. Griswold, Ralph E. and Madge T. Griswold.
                    144: \fIThe Icon Programming Language\fR. Prentice-Hall Inc., Englewood
                    145: Cliffs, New Jersey. 1983.
                    146: .LP
                    147: 3. Griswold, Ralph E., Robert K. McConeghy, and William H. Mitchell. \fIExtensions
                    148: to Version 5 of the Icon Programming Language\fR.
                    149: Technical Report TR 84-10a,
                    150: Department of
                    151: Computer Science, The University of Arizona.
                    152: August 1984.
                    153: .LP
                    154: 4. Griswold, Ralph E. and William H. Mitchell. \fIInstallation and
                    155: Maintenance Guide for Version 5.9 of Icon\fR, Technical Report
                    156: TR 84-13, Department of Computer Science, The University of
                    157: Arizona. August 1984.
                    158: .LP
                    159: 5. Griswold, Ralph E., Robert K. McConeghy, and William H. Mitchell.
                    160: \fIPersonalized Interpreters for Icon\fR. Technical Report TR 84-14,
                    161: Department of Computer Science, The University of Arizona. August 1984.
                    162: .LP
                    163: 6. Griswold, Ralph E. \fIThe Icon Program Library\fR. Technical Report
                    164: TR 84-12, Department of Computer Science, The University of Arizona.
                    165: August 1984.

unix.superglobalmegacorp.com

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