summaryrefslogtreecommitdiff
path: root/doc/relnotes.htm
diff options
context:
space:
mode:
Diffstat (limited to 'doc/relnotes.htm')
-rw-r--r--doc/relnotes.htm142
1 files changed, 92 insertions, 50 deletions
diff --git a/doc/relnotes.htm b/doc/relnotes.htm
index ae6bf1f..9466806 100644
--- a/doc/relnotes.htm
+++ b/doc/relnotes.htm
@@ -1,7 +1,7 @@
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
- <TITLE>Release Notes for Version 9.4.3 of Icon</TITLE>
+ <TITLE>Release Notes for Version 9.5 of Icon</TITLE>
<LINK REL="STYLESHEET" TYPE="text/css" HREF="istyle.css">
<LINK REL="SHORTCUT ICON" HREF="shortcut.gif">
</HEAD>
@@ -10,78 +10,118 @@
<P><A HREF="http://www.cs.arizona.edu/icon/"> <IMG SRC="wwwcube.gif"
ALT="[Icon home]" WIDTH=128 HEIGHT=144 BORDER=0 ALIGN=RIGHT> </A>
-<H1> Release Notes for Version 9.4.3 of Icon </H1>
+<H1> Release Notes for Version 9.5 of Icon </H1>
<P> Gregg M. Townsend
<BR> <SMALL> Department of Computer Science </SMALL>
<BR> <SMALL> The University of Arizona </SMALL>
-<P> <SMALL> www.cs.arizona.edu/icon/v943/relnotes.htm
-<BR> Last updated November 10, 2005 </SMALL>
-<!-- $Id: relnotes.htm,v 1.49 2005/11/10 23:02:06 gmt Exp $ -->
+<P> <SMALL> www.cs.arizona.edu/icon/v950/relnotes.htm
+<BR> Last updated April 12, 2010</SMALL>
+<!-- $Id: relnotes.htm,v 1.74 2010/04/12 20:39:24 gmt Exp $ -->
<H2> Introduction </H2>
-<P> Version 9.4.3 of Icon is a minor update to version 9.4.2 of Icon.
-It incorporates configuration, documentation, and library updates.
+<P> Version 9.5.0 of Icon is an update of version 9.4.3 of Icon.
+It incorporates configuration, documentation, and library changes.
Some minor bugs have been fixed.
+Support has been added for "external values" created by
+user C functions.
-<P> The Icon language is unchanged, and this Unix implementation
-remains compatible at the source level with Icon 9.3 for Windows.
-
-<H2> Changes in version 9.4.3 </H2>
+<H2> Changes in version 9.5 </H2>
<P> Notable changes in this latest version are listed here.
Some code cleanup work and documentation editing
has also been done.
-<H3> Configurations </H3>
+<H3> External Values </H3>
+
+<P> External code incorporated by <CODE>loadfunc()</CODE> can now create
+and return to Icon code opaque values that can be stored and passed
+on subsequent calls.
+This is similar to a feature of the early Macintosh ProIcon implementation.
+See <A HREF=extlvals.htm>External Values</A> for more information.
+
+<H3> Build Environment </H3>
+
+<P> This version of Icon is the first to deliberately move beyond the
+1989 C standard and make use of features of the 1999 C standard,
+specifically the "struct hack".
+Consequently, a C99 (or newer) compiler is now required to build Icon.
+
+<H3> Cygwin Configuration </H3>
+
+<P> The <CODE>cygwin</CODE> configuration has improved, partially through
+removal of unneeded special cases now that Cygwin better approximates Unix.
+External functions can now be loaded using <CODE>loadfunc()</CODE>.
+
+<P> In addition to the <CODE>cygwin</CODE> configuration, which uses
+Windows graphics, there is now a new <CODE>xcygwin</CODE> configuration
+that uses the X window system.
-<P> The system-specific Icon configurations have been reorganized and renamed;
-new names focus on operating systems rather than CPU architectures.
-The several BSD configurations have been merged into one.
+<H3> Implementation Cleanup</H3>
-<P> The <CODE>macintosh</CODE> configuration now supports the
-<CODE>loadfunc</CODE> function. This configuration has also been
-revised to anticipate Apple's announced migration to the x86 architecture.
+<P> Large amounts of conditionalized dead code, including the old Icon
+compiler, have been removed from the source code.
-<P> A new <A HREF=port.htm>porting guide</A> has been written, and a new
-<CODE>posix</CODE> configuration has been added
-as a starting point in constructing new ports.
+<P> All platforms now use POSIX threads for context switching instead of
+system- and processor-dependent assembly language code.
+
+<H3> Minor Fixes </H3>
+
+<P> The <CODE>loadfunc()</CODE> implementation now specifies to the system
+that C globals are to be shared with and among loaded functions.
+
+<P> The command <CODE>icon nonexistent.icn</CODE> no longer leaves debris
+in the /tmp directory.
+
+<P> The maximum length of a file name has been increased from 256 to 512
+characters.
+
+<P> Table copying in the Sparc (Solaris) configuration was fixed by
+coding a workaround to avoid a GCC 4.2.2 struct assignment bug.
<H3> Library changes </H3>
-<P> As usual, several files in the Icon program library have been
-added or edited. The core library files, however, remain stable.
+<P> As usual, some files in the Icon program library have been
+added or edited, but the core library files remain stable.
Notable changes include:
<PRE>
-procs/dijkstra new procedures implement Dijkstra's control structures
-procs/html add procedure for canonicalization of paths
-procs/matrix2 new procedures for matrix manipulation
-procs/nestlist new procedures for representing nested lists as strings
-procs/printf add %e format and fix a rounding problem
-
-progs/noise new program for producing a random bitstream
-progs/unclog improve logic for combining adjacent entries
-
-gprogs/dlgvu improve coverage map; allow altitude in GPS data
-gprogs/gallery faster thumbnail loading for JPEG images
-gprogs/img many new features
-gprogs/sier better color choices
-gprogs/trkvu accept GPS track logs with altitude as the last field
+procs/echo New procedure for interpolating variables in strings.
+procs/printf Rewrite parts to fix several bugs, and add test.
+procs/random Improve thoroughness of randomize().
+
+progs/diffsum Handle output of "cvs diff".
+progs/unclog Handle CVS branches; fix indentation.
+progs/weblinks Add option to sort output by referencing page.
+
+gprogs/breakout Make the ball large enough to see.
+gprogs/gallery Treat -wnnn and -hnnn options as *minimums*.
+gprogs/gallery Handle spaces embedded in JPEG filenames.
+gprogs/kaleid Add delay to prevent runaway on fast CPUs.
+gprogs/spider Add shortcuts, opt-in logging, congratulatory display.
+gprogs/trkvu Limit file legend to onscreen files.
+gprogs/tron New video game inspired by Tron.
+
+packs/loadfuncpp Add C++ interface package.
+packs/icondb Add MySQL interface package.
+
+gpacks/weaving Add "halftone" weaving program htweav.icn.
</PRE>
-The undocumented <CODE>save</CODE> function, which only worked
-on a few platforms, has been removed.
+<H3> Documentation Additions </H3>
+
+<P> Two new documentation pages, <A HREF="cfuncs.htm">Loading C functions</A>
+and <A HREF="extlvals.htm">External Values</A>, have been added.
<H2> Earlier feature additions </H2>
-<P> These features appeared in earlier releases of Icon that followed
-publication of the Icon books.
+<P> These features appeared in earlier releases of Icon
+but subsequent to publication of the Icon books.
<H3> Millions of colors </H3>
<SMALL> (new with version 9.4.2 of Icon) </SMALL>
@@ -102,7 +142,7 @@ which in another form allows a small Icon program to be embedded
within a shell script.
See the <A HREF="icon.txt">man page</A> for details.
The traditional <A HREF="icont.txt"><CODE>icont</CODE></A> command
-remains available for less specialized purposes.
+remains available when more flexibility is needed.
<H3> Path searching </H3>
<SMALL> (new with version 9.4.0 of Icon) </SMALL>
@@ -116,7 +156,7 @@ The Icon translator and linker search these paths when looking for
<P> The Icon program library is now searched automatically, but
<CODE>LPATH</CODE> and <CODE>IPATH</CODE> can still be set to control
the search order.
-For version 9.4, the effective path in each case is:
+The effective path in each case is:
<OL>
<LI> The current directory
<LI> Any directories named by the environment variable
@@ -201,13 +241,15 @@ for an overview of the available Icon documentation.
<H2> Acknowledgments </H2>
-<P>
-Arthur Eschenlauer contributed the <CODE>matrix2</CODE>
-and <CODE>nestlist</CODE> libraries.
-Frank Lhota contributed the <CODE>dijkstra</CODE> library.
-Nolan Clayton contributed revisions to the <CODE>img</CODE> program.
-Michael Glass contributed revisions to the <CODE>printf</CODE> procedure.
-Chris Tenaglia and Andreas Almroth contributed configuration files.
+<P> Carl Sturtivant inspired and participated in the development
+of external values. He also contributed the <CODE>loadfuncpp</CODE>
+and <CODE>icondb</CODE> packages.
+Eduardo Ochs contributed the <CODE>tron</CODE> game.
+Charles L. Hethcoat III contributed the <CODE>echo</CODE> procedure.
+Carl Sturtivant and Steve Waldo supplied numerous Cygwin improvements.
+Cheyenne Wills improved the flexibility of the configuration process.
+Clint Jeffery fixed an ancient linking bug.
+Robert Shiplett and Jonathan Kaye helped with testing.
<P> <HR>