4.3BSD/usr/contrib/icon/docs/version5.9

Compare this file to the similar file:
Show the results in this format:

.so tmac.tr
.sv |1.25i
.de Ip
.IP \(bu \w'\(bu'u+1n
..
.LP
.ce 10
\f3Version 5.9 of Icon\fR
.sp 2
Ralph E. Griswold, Robert K. McConeghy, and William H. Mitchell
.sp
August 22, 1984
.ce 0
.sp 1
.PP
Version 5.9 of Icon is a modification of Version 5.8 of Icon.
The \*U implementation runs on both PDP-11s and VAXs. This document
is a brief summary of Version 5.9. See also References 1, 2, and 3.
.Un
.SH
Changes
.LP
.in 5n
.Ip
An optional language extension provides sets as a built-in data type [3].
.Ip
The Icon compiler has been deleted, leaving only the interpreter.
A ``personalized interpreter'' facility has been added to allow individuals to maintain
customized versions of the Icon run-time system [5].
This facility replaces the former use of
external functions with the Icon compiler to augment the function
repertoire of Icon.
.Ip
The implementation of the table data type has been redone to
increase the efficiency of table lookup.
.Ip
There is a new keyword, \*M&options\fR, whose value is a string listing
the options used for installing Icon at the local site [3, 4].
.Ip
Considerable work has been done throughout the Icon system to
improve the quality of the code and to remove nonportable
constructs.
.Ip
The source code has been commented extensively.
.Ip
A number of minor bugs have been fixed.
.Ip
The Icon program library has beed reorganized and new material has been
added to it [6].
.Ip
The Icon distribution hierarchy has been reorganized and new material
has been added to aid in testing and porting to new computers [4].
.in 0
.SH
User Impacts
.LP
.in 5n
.Ip
Persons who formerly used the Icon compiler with external functions
will need to convert to personalized interpreters.
.Ip
The internal organization of tables is different from earlier
implementations. For example, if
\*Mt\fR is a table,
the order of elements generated by \*M!t\fR generally is different from before.
Similarly, the value of \*M?t\fR is likely to be different.
.Ip
The functionality of some components of the Icon program library
has been changed.
.in 0
.bp
.SH
Known Bugs
.PP
This list ennumerates all known bugs in Version 5.8 of Icon.
If you find a bug that is not in this list, please contact us.
.LP
.in 5n
.Ip
The translator does not detect arithmetic overflow in conversion of
numeric literals. Very large numeric literals may have incorrect values.
.Ip
Integer overflow on multiplication and exponentiation are not detected
during execution.
This may occur during type conversion.
.Ip
Line numbers may be wrong in diagnostic messages related to lines with continued
quoted literals.
.Ip
In some cases, trace messages may show the return of subscripted
values, such as \*M&null\^[2]\fR, that would be erroneous if they were
dereferenced.
.Ip
File names are truncated to 14 characters by some versions of UNIX.  If such a truncation
deletes part of the terminating \*M.icn\fR of a file that
is input to the translator,
mysterious diagnostic
messages may occur during linking.
.Ip
On PDP-11s, list blocks can contain no more than 4090 elements.  List
blocks are created when the \*Mlist()\fR function is called, when
literal lists are specified, and when the \*Msort()\fR function
converts a table into a list.  It should be noted that it is possible
for a list to grow to beyond 4090 elements; the limitation is only
upon the size of the list when it is created.
.Ip
There is a bug in the 4.1bsd \*Mfopen()\fR routine that under certain
conditions returns a \*MFILE\fR pointer that is out of range when
one tries to open too many files.
On systems where this bug is present, it may manifest itself in the form of
run-time Error 304 when one tries to open too many files.
(On 4.1bsd systems this limit is usually 20 files.)
.Ip
If one has an expression such as \*Mx := create \*(El \fR in a loop, and
\*Mx\fR is not a global variable, the unreferenceable expression stacks
generated by each successive \*Mcreate\fR operation are not
garbage collected.  This problem can be circumvented
by making \*Mx\fR a global variable or by assigning a value to \*Mx\fR before
the \*Mcreate\fR operation, e.g., \*Mx := &null; x := create \*(El  \fR.
.Ip
Overflow of a co-expression stack due to excessive recursion is not detected
and may cause mysterious program malfunction.
.Ip
Program malfunction may occur if \*Mdisplay()\fR is used in a co-expression.
.Ip
The garbage collector was designed for machines with small
address spaces and as such is not well-suited for
machines like the VAX.  No empirical studies have been made,
but it is suspected that performance of the garbage collector
could be improved substantially on the VAX.  In particular, if
the user attempts to create a very large data object that will
not fit into memory, (such as a million-element list), it takes
the system an inordinately long time to determine that the object can
not be allocated.
.in 0
.SH
References
.LP
1. Griswold, Ralph E. \fIAn Overview of the Icon Programming Language\fR.
Technical Report TR 83-3a, Department of Computer Science, The
University of Arizona. May 1983.
.LP
2. Griswold, Ralph E. and Madge T. Griswold.
\fIThe Icon Programming Language\fR. Prentice-Hall Inc., Englewood
Cliffs, New Jersey. 1983.
.LP
3. Griswold, Ralph E., Robert K. McConeghy, and William H. Mitchell. \fIExtensions
to Version 5 of the Icon Programming Language\fR.
Technical Report TR 84-10a,
Department of
Computer Science, The University of Arizona.
August 1984.
.LP
4. Griswold, Ralph E. and William H. Mitchell. \fIInstallation and
Maintenance Guide for Version 5.9 of Icon\fR, Technical Report
TR 84-13, Department of Computer Science, The University of
Arizona. August 1984.
.LP
5. Griswold, Ralph E., Robert K. McConeghy, and William H. Mitchell.
\fIPersonalized Interpreters for Icon\fR. Technical Report TR 84-14,
Department of Computer Science, The University of Arizona. August 1984.
.LP
6. Griswold, Ralph E. \fIThe Icon Program Library\fR. Technical Report
TR 84-12, Department of Computer Science, The University of Arizona.
August 1984.