Gregg M. Townsend
Department of Computer Science
The University of Arizona
www.cs.arizona.edu/icon/v940/relnotes.htm
Last updated June 11, 2001
Version 9.4 of Icon is a modified and repackaged implementation based on version 9.3.2 of Icon. The changes make it easier to maintain, install, and use under Unix while retaining potential portability to other systems. Most significant are changes to path searching, described below, and the inclusion of the Icon program library as a standard part of all Unix source and binary distributions.
The Icon language is unchanged, and this 9.4 Unix implementation remains compatible at the source level with Icon 9.3 for Windows.
The function read()
recognizes
three kinds of line terminators when reading a file
opened in translated mode:
Windows (CR+LF), Macintosh (CR), or Unix (LF).
Consequently, text files created on one platform can be
read by an Icon program running on a different platform.
The files in a directory can be listed by opening the directory as a file.
Subsequent reads return the names of the files contained in the directory.
The names are returned in no particular order, and for Unix, the directories
"."
and ".."
are included.
Under Unix, colons (:
) may now separate directories in the
LPATH
and IPATH
environment variables as an
alternative to spaces.
The Icon translator and linker search these paths when looking for
$include
and link
files respectively.
The Icon program library is now searched automatically, but
LPATH
and IPATH
can still be set to control
the search order.
For version 9.4, the effective path in each case is:
Other changes affect the configuration of Icon at installation time and the way executable Icon programs locate the interpreter. These changes, which are transparent to most users, are discussed in more detail on the File Organization page.
Several areas of the Icon implementation have been cleaned up, in particular the run-time initialization code, and some obsolete configurations have been removed.
With one clearly marked exception, programs in the standard test suite now generate reproducible output.
The following problems have been corrected:
The program library has been incorporated into the main Icon source tree
and is routinely built along with icont
and iconx
.
Tests for most of the core library functions and loadable C functions have
been incorporated the standard test suite,
and some additional consistency tests were developed.
Numerous changes were made throughout the library to fix linking problems, to fix typos and formatting, and to support building via Makefiles.
Some files that were miscategorized as graphics or non-graphics have been moved. Duplicate files in the cfuncs and packs/loadfunc directories have been eliminated. Some other obsolete files were also removed.
Other significant changes were:
procs/datetime fixed dayoweek() to get all twelve months right procs/factors fixed divisors() to consistently return all factors fixed genfactors() for some failing cases added some minor optimizations procs/genrfncs added several new sequence generators procs/io modified to allow ":" as a path separator under Unix procs/lists fixed fatal bugs in lminlen() and lmaxlen() added several new list manipulation procedures procs/lstfncs added: procedures to produce lists from sequences procs/numbers fixed decimal() for values where remainder repeats procs/pdco added several new control operations procs/periodic added: procedures related to periodic sequences procs/permutat added: procedures for permutations procs/polynom added: manipulate multi-variate polynomials procs/pqueue added new priority queue procedures procs/rational added real2rat(v, p) #: convert real to rational added medrat(r1, r2) #: rational mediant procs/records added fieldnum(R, s) #: return index of field R.s procs/seqops replaced: procedures to manipulate T-sequences procs/strings modified fchars() to break ties lexically renamed permute() to permutes() cfuncs/icall.h fixed reading of misaligned doubles by RealVal() cfuncs/fpoll.c support fpoll() under BSD Unix flavors gprocs/drawlab modified to let the caller control the window size progs/htprep modified to improve quoting progs/ipatch modified to understand v9.4 headers as well as v9.3 progs/unclog added: program to reformat CVS logs gprogs/breakout added: a new breakout game gprogs/dlgvu modified to allow interruption while drawing labels gprogs/gallery modified to recognize some nonstandard JPEG files gpacks/tiger modified to allow interruption of drawing gpacks/xtiles fixed the usage message packs/loadfunc/cspace increased the default window size
See the documentation guide for an overview of the available Icon documentation.
For installation instructions, see Installing Binaries or Building from Source as appropriate.