
![[dragon masthead]](../dragonc.gif)
No. 45 - August 15, 1994
Contents
Version 9 of Icon
Version 9 of Icon now is available for MS-DOS, UNIX, and VMS. The UNIX and
VMS versions support Icon's graphics facilities under the X Window System.
Implementations for other platforms still are in progress.
New Features
The major changes in Version 9, and the ones that are responsible for our
assigning a new major version number, are in its graphics facilities.
There are many improvements in this area, including a portable font naming
system, facilities for drawing color images, and support for the GIF image
file format. We've also changed the names of the graphics functions, dropping
the initial X in anticipation of Version 9 implementations with graphics
that do not require X. There also are new and changed functions.
This is the first time in the development of Icon that we've made major
changes that are not upward compatible. We decided that the advantages of
the new graphics facilities outweigh the conversion problems. We have, however,
provided conversion aids.
There are other new features in Version 9; not earth-shaking ones, but small
useful things like being able to add many elements to a list at one time.
There's also support for dynamically loading C functions on some UNIX platforms.
Implementation Improvements
We've made several significant improvements to the implementation of Version
9 that will be helpful to users.
The Icon linker now eliminates declarations (notably procedures) that are
not referenced in a program. This may substantially reduce the size of icode
files, especially when packages of library procedures are linked but not
all the procedures in them are used.
The MS-DOS linker now creates .exe files, so that it is no longer necessary
to run iconx. (It still is necessary to have icon.exe on your path, but
that's transparent when you're running Icon programs.)
The UNIX implementation now uses shell headers to make icode files executable.
This substantially reduces the sizes of icode files on many platforms.
Icon Program Library
There's a new version of the Icon program library to go along with Version
9. It has many additions and improvements, and the graphics portion has
been updated to Version 9. The library also includes an improved interface
builder for platforms that support Icon's graphic facilities.
Should You Get Version 9?
We recommend that you get Version 9 when it's available for your platform.
The improvements in the implementation alone make the upgrade worthwhile.
We also suggest that you get the Version 9 Icon program library. It has
a wealth of material that's useful in its own right, as well as examples
of Icon programming techniques that are worth studying by novice and expert
alike. If you're planning to build graphics applications of any complexity,
the library is a virtual necessity, since it now contains many support procedures
to supplement the built-in repertoire.
As usual, Icon program material is available by FTP or on physical media.
See the order form at the end of this Newsletter.
Update Subscriptions
We offer update subscriptions to the source code for Icon and to the Icon
program library.
Source updates: If you're interested in the latest developments in
Icon, don't want to wait for the next official release, and are willing
to compile your own version of Icon, consider subscribing to the updates
to the source code. Updates are issued about three times a year. Each update
contains complete source code; you can start a subscription at any time.
Note: Present subscribers to the source-code updates already have
Version 9.
Library updates: Icon program library updates are incremental and are
based on the most recent official release of the library. Library updates
are issued about three times a year. Current subscribers already have most
of the material in the new Version 9 Icon program library. They will get
the remainder in their next update.
New subscribers to the library updates need Version 9 of the Icon program
library. New subscribers who do not order the Version 9 program library
and do not tell us they already have it will be sent the Version 9 library,
counted as two updates. (You can get the Version 9 program library by FTP,
but updates are available only by subscription.)
The Icon Analyst
We're now into the fifth year of The Icon Analyst, a newsletter that is
devoted to in-depth coverage of the Icon programming language.
The Analyst has articles on language features, programming techniques, and
aspects of the implementation. The Analyst is published six times a year.
An issue usually contains two or three lengthy articles, as well as programming
tips and other smaller items.
Among the articles planned for future issue of the Analyst are ones on random
numbers, string invocation, static and dynamic analysis of Icon programs,
and symbol manipulation.
We encourage serious users of Icon to subscribe to the Analyst. If you'd
like to see what an Analyst is like before subscribing, ask for a free sample
copy.
Back issues of the first four years are available as a package, but new
subscriptions can be started with any issue. Unless you tell us otherwise,
your new subscription will start with the most recently published issue.
See the order form at the end of this Newsletter.
BYTE Article on Icon
In case you haven't seen it, where was a short article on Icon in the May
1994 issue of BYTE magazine in the Some Assembly Required
feature.
The space available to us was quite limited, so we were able to present
only the high points of Icon. Nonetheless, you may find the article interesting
or useful for friends who want a brief summary of Icon.
We hope that BYTE will run an article on Icon's new graphics features in
an upcoming issue.
Icon RBBS
With the increased ease of access to Internet and FTP electronic e-mail,
our electronic bulletin board has had less use.
We're now to the point where we can no longer justify the expense and time
spent maintaining our RBBS. We haven't yet decided when we will discontinue
it, but if you use our RBBS to get Icon material, you should plan on alternative
methods in the future.
In the next section we're re-running an earlier article on how to get FTP
material via electronic mail.
FTP Files by Electronic Mail
If you have access to electronic mail but not to FTP, you now can get files
from our FTP area through electronic mail. Using a facility called ftpmail,
you can send a script of commands to our FTP site. The material specified
in these commands is sent back to you. You can get both directory listings
and files. Large files are automatically split into smaller pieces to facilitate
transfer.
To use ftpmail, send a message to
ftpmail@cs.arizona.edu
Your message must begin with the command open and end with the command quit.
(The subject field of the message is ignored.) There are a dozen or so commands
altogether. We'll list only the most basic ones here. You can get more information
by sending the following message:
open
help
quit
You'll get a UNIX-style manual page with all the particulars by return e-mail.
If you want the reply to go to a different address than the one you're sending
from, include the reply-to command in your message, as in
reply-to georgem@ece.foodom.edu
In fact, if you try ftpmail and don't get a reply, it's probably because
the return address as it appears in your message header doesn't work. (We
find that to be the case fairly frequently in mail sent to icon-project.)
If this happens, use reply-to, being careful to give a proper address.
In order to get directory listings and files, you'll need to specify where
they are. The cd (change directory) command does this. To get
to Icon material, start with
cd /icon
A directory listing of this area then can be obtained with
dir
The command get is used to get a file. In the Icon FTP area,
there are READ.ME files in almost all directories. Thus,
cd /icon
get READ.ME
gets you our top-level READ.ME file. Binary files, such as
archives and executables, are automatically encoded as ASCII text to allow
transfer via e-mail. The default encoding is uuencode. btoa encoding also
is available. The commands btoa and uuencode can be used to specify the
encoding you want. You'll need either uudecode or atob to convert encoded
files back into their binary form. The Icon program library contains a program
iidecode that has the same functionality as uudecode. It's
slow, but it should work on any platform.
Give ftpmail a try. If you have problems, send e-mail to icon-project@cs.arizona.edu
for assistance.
Graphics Credits
The image on the back cover of this Newsletter was created using Specular
TextureScape, an application that supports the construction of repeating
patterns.
Unlike most applications for creating repeating patterns, TextureScape works
with Postscript elements, has three-dimensional effects, and allows multiple
layers. The image on the back cover has two layers. The background one consists
of simple circles shaped with TextureScape facilities. The foreground layer
is composed of copies of the Icon logo.
Stereograms
The Icon auto-stereogram that we published in Issue 39 of the Newsletter
has provoked more comments and questions than anything else that's ever
appeared in this Newsletter. Some persons were able to see the image easily,
while others never could. We've even been accused (jokingly) of ruining
one reader's eyesight.
Most to the queries we've received have been about computer-generated stereograms
in general. We haven't kept up with the subject and don't know enough about
it to answer questions ourselves. There is, however, a lot of material on
stereograms available on Internet.
Tim Korb, one of the Icon pioneers, recommends the FAQ (frequently asked
questions with answers) that is available via Mosaic. It's at URL
http://mphh2.ph.man.ac.uk/gareth/nzfaq.html
Tim also sent along a simple ASCII stereogram done by "DR J" that
has an Arizona theme:
/^\ /^\ /^\ /^\
_ / \ _ / \ _ / \ _ / \ _
/ \_ \_ / \_/ \_ / \_ / \_ / \_ / \_ / \_
/ \ \ / \ \ / \ \ / \ / \
__/ \ __/ \ __/ \ __/ \ __/ \
xx \ /xx \ xx \ \ xx / \ xx / \ xx
x XX x \_ x XX \ x x XX \ x x XX \ x x XX _/ \ x XX
X XX-x-x-XxX--X XX-x--x-XxX-X XX-x---x-XxXX XX-x----x-XxX XX-x-----x- X XX
XxXX X XxX XxXX X XxX XxXX X XxX XxXX X XxX XxXX X Xx XxXX
XXxX __X XXxX __X XXxX __X XXxX __X XXxX __ XX
XX XX XX XX XX XX
__XX ______XX ______XX ______XX ______XX ______XX
To view this stereogram, put your nose close to the image, gradually move
away from it while keeping your eyes unfocused. The stereographic image
should "jump out" at some point, after which you can view it easily
until you change your focus of attention.
We welcome Icon-related stereograms for future inclusion in this Newsletter.
Language Archives
As we mentioned in Newsletter 44, we've made arrangements to transfer the
material that we have on SNOBOL, Icon, and related programming languages
to the Charles Babbage Institute.
We've already transferred some material, including paper correspondence
from the early 1960s through the late 1980s, as well as books and large
manuals. We're presently working on organizing older material to send.
This material is available as described in the following article by Bruce
Bruemmer.
Access to the Archival Collection at the Charles Babbage Institute
CBI's archival collection is open to all researchers, who are encouraged
to contact the archival staff prior to visiting CBI to ensure that relevant
materials are available and open to research. While every effort is made
to obtain archival materials without restrictions on use, some collections
must be restricted because of the nature of the information or the poor
physical condition of the records.
CBI's collection is cataloged on the Research Libraries Information Network
(RLIN) and the University of Minnesota's LUMINA catalog. LUMINA is accessible
from terminals on campus, through computer modems, or through the Internet.
Internet users can telnet the library catalog via pubinfo.ais.umn.edu or
the University of Minnesota Gopher (gopher.tc.umn.edu). More detailed information
on archival records is available through finding aids ranging from lists
of folders to databases that index items in a collection. No finding aid
is currently available for the Griswold Papers, but a more detailed list
will be developed as records are sent to CBI.
CBI's reading room is open during business hours from Monday through Friday,
and on Saturday by special arrangement. A copying service for paper, machine-readable,
and photographic formats is available. Same-day service is usually possible
for photocopies. Reproduction of photographic material requires five working
days.
Researchers unable to visit CBI directly may request photocopies delivered
by mail or fax, subject to a fee. CBI is experimenting with other techniques
of document delivery, such as the Internet transmission and interlibrary
loan of oral history transcripts. The University of Minnesota Libraries
Gopher soon will have a section devoted to CBI, and CBI's participation
in a World Wide Web server is under development.
CBI serves as an information clearinghouse for all archival collections
relating to the history of computing. In 1987 the archives published Resources
for the History of Computing, the first comprehensive research guide
to archival material held by repositories in the U.S. and Canada. CBI continues
to maintain information about other repositories' holdings, and researchers
have access to a file of finding aids on non-CBI collections.
CBI's archivist, Bruce Bruemmer, can be reached at:
Charles Babbage Institute
103 Walter Library
University of Minnesota
Minneapolis, MN 55455
voice: 612-624-5050
fax: 612-625-8054
e-mail: bruce@fs1.itdean.umn.edu
For more information about CBI, see the CBI
home page.
IClip
Editors' note: Art Eschenlauer has written an application that is based
on the standalone Version 8.0 Macintosh Icon. Here's his description.
IClip is a Macintosh application that "filters" text data on the
clipboard. The user copies text data onto the clipboard from within any
application, executes an IClip filter, and pastes the resulting text where
it is needed.
IClip filters can be programmed using the Macintosh stand-alone implementation
of the Icon programming language, Version 8.0. IClip filters are Icon programs
that are slightly modified after translation. Text data on the clipboard
serves as the standard input to the IClip filter, and, when execution is
completed, the standard output is copied to the clipboard as text data,
in place of the input data. (All other IClip operations, including file
I/O, work exactly as they do for iconx.) Thus, filters can be designed and
tested using iconx and subsequently converted to IClip-filter format. (Since
the Icon interpreter is part of the IClip application, iconx is not
required in addition to IClip in order to execute IClip filters.)
IClip does not support styled text. Bold, italic, underlining, superscripting
and subscripting information will be lost, although styling information
should not interfere with the operation of IClip. IClip is intended for
System 7.
IClip is not intended to be a "full-blown" Macintosh implementation
of Icon. Instead, its purpose is to make Icon's text-processing and computation
power available for clipboard-filtering tasks.
An Example
Consider a simple Icon program, reverse.icn, that reverses
the lines of an input file:
procedure main()
every writes(reverse(read()) )
end
This is translated using the command
icont reverse
producing the iconx document reverse. If you run reverse
and type
Able Was I Ere I Saw Elba
^D
the output is
ablE waS I erE I saW elbA
To convert reverse from an iconx document to an IClip filter-document, drag-and-drop
it onto the icon of the Icon to IClip program. Now, if you are using a word
processor (or whatever) and you copy
Able Was I Ere I Saw Elba
onto the clipboard and run reverse
ablE waS I erE I saW elbA
is placed onto the clipboard in its place. For convenience (under System
7), the reverse IClip filter-document can be put into the Apple
Menu Items folder and invoked simply by selecting reverse from
the Apple menu.
Editors' note: IClip can be obtained by FTP from cs.arizona.edu.
cd /icon/iclip to see what's there.
Phasing Out 5.25" Floppy Disks
Any organization that distributes software on physical media for many platforms
has a problem with the wide variety of media and recording formats that
are in common use.
Over a period of years, the Icon Project has provided different forms of
magnetic tape, data cartridges, and diskettes. In some cases, different
formats are necessary. For example, without special facilities, a Macintosh
cannot read a PC DOS diskette, and vice versa. To make matters worse, the
two systems have very different ideas of what a file is.
The variety of media and formats presents many problems. For example, the
Icon program library not only has to be written differently for the Macintosh
and MS-DOS, but different file formats, support scripts, and documentation
are needed. Then copies for distribution need to be made using different
equipment and procedures, different labels are needed, separate stocks must
be maintained, and so on. These are not challenging problems (except that
getting everything right is more difficult than it may appear), but they
take time and effort.
Such requirements for different platforms are unavoidable. But there are
problems even for a single platform. There was a time when low-density,
360 KB 5.25" floppy disks were the standard media for data exchange
on PCs. (We try to forget when there were single-sided versions of this
type of floppy.)
Then came high-density, 1.2 MB 5.25" floppies. These never caught on
in a big way, although many recent PCs have drives that can read them. The
Icon Project never distributed high-density 5.25" floppies, although
we had one potential customer who said he'd wait until we did. For all we
know, he may still be waiting.
Low-density, double-sided 720 KB 3.5" diskettes (hardly "floppy")
followed. They were attractive because of their smaller size, increased
capacity over low-density 5.25" floppies, and physical robustness.
3.5" diskettes made packaging for PCs much easier; not only were fewer
diskettes needed, but larger files could be accommodated on a single disk.
But we still had to provide 5.25" diskettes, so we had two kinds of
diskettes to worry about, with the kinds of problems mentioned above.
Next came high-density, 1.44 MB 3.5" diskettes, with the advantage
of even more space. But there were PCs that could read low-density 3.5"
diskettes that could not read the high-density ones. Fortunately, as far
as we know, all 3.5" drives that can read high-density 3.5" diskettes
also can read low-density ones.
There are a variety of other magnetic media, including higher-density 3.5"
diskettes, smaller, higher-density diskettes, dismountable disk packs, Bernoulli
disks, removable hard-disk cartridges, writable optical disks, and, of course
CD-ROM. Of these, only CD-ROM is suitable for general software distribution.
This is not to say that we've not been asked to provide Icon on some of
the other media.
Our immediate problem is more mundane. We can no longer afford to support
the variety of PC diskettes that we've provided in the past. If you look
at recent issues of the Newsletter, you'll see we've been shifting from
5.25" diskettes to 3.5" ones and, for those, toward high density.
We're now to the point of phasing out 5.25" floppies, as you'll see
on the order form at the end of this Newsletter.
Those of you who have PCs of recent manufacture may wonder what all the
fuss is about and why we didn't stop distributing 5.25" floppies long
ago. From a purely economic point, we should have (as most commercial companies
have done). But we know for a fact that we have users with only 5.25"
drives.
We even had one user with a PC that had only one floppy drive and no hard
disk. He couldn't use the floppy we sent him because the files were compressed
and he had no place to which to decompress them! Well, we can't do much
about that kind of problem -- without compression, we'd have to use 2 or
3 times as many diskettes as we do, and some uncompressed files are too
large to fit on a single diskette anyway.
With apologies for the inconvenience of those few users who have PCs with
only 5.25" drives, we've eliminated 5.25" floppies from all our
distributions except the executables for Version 9 of Icon for MS-DOS.
We're also be shifting toward high-density 3.5" diskettes as the default,
but we'll continue to provide low-density 3.5" diskettes for some distributions.
And we're beginning to see hints of an Icon CD-ROM on the horizon.
From Our Mail
![[from our mail logo]](../fom.gif)
How's the NT implementation of Icon coming?
Clint Jeffery has a beta-test version without graphics working. Executable
binaries are available via FTP to ftp.cs.arizona.edu; cd
/icon/binaries/nt.
In the last issue of the Newsletter you said implementations of Icon
with graphics capabilities were in progress for Windows and the Macintosh.
When will these be done?
Clint Jeffery, who is working on these implementations with his students,
reports considerable progress, but it's still too soon to say when they'll
be done.
When I try to execute
show := open("show", "x")
I get a run-time error that says "invalid argument to open".
What's going on?
You're trying to open a window in a version of Icon that doesn't support
graphics. The argument "x", derived from the original
X Window System implementation of graphics, requests a window. We admit
the error message is confusing, and in Version 9 an expression like this
simply fails if executed in a version of Icon that doesn't support graphics.
This is more reasonable, since failure in Icon generally is used for operations
that make sense in principle but that can't be carried out successfully.
Incidentally, in Version 9, "g" (graphics) is used
to open a window, but there also are higher-level graphics procedures for
opening windows.
What became of the ProIcon Group, which was listed on ProIcon literature
before ProIcon was discontinued as a commercial product?
The ProIcon Group was a joint venture between Catspaw, Inc. and The Bright
Forest Company. It was formed to develop, document, and market ProIcon.
The joint venture was dissolved when marketing of ProIcon ceased.
Isn't is a bit unusual to put a commercial application like ProIcon
in the public domain?
It's unusual, but not unprecedented. Usually when a commercial application
is discontinued, it's either replaced by a new version (for which a freely
available former version would be competition) or the company goes out of
business. It's also a considerable effort to put a former product in the
public domain and users of public-domain software may expect support for
it if it had a commercial origin. And, of course, former customers who paid
for the application when it was marketed commercially may feel cheated if
it becomes freely available.
The situation with respect to ProIcon was unusual. Both Catspaw, Inc. and
The Bright Forest Company have contributed to the Icon public-domain effort.
Catspaw, for example, contributed to the public-domain version of MS-DOS/386
Icon, and The Bright Forest Company contributes to this Newsletter and other
freely available documentation about Icon. Both organizations felt that
ProIcon was a good application that would better be available freely to
the programming community than simply being destroyed. Incidentally, sales
of ProIcon were discontinued well before it was placed in the public domain
to avoid misleading potential customers.
Where do I get support for ProIcon?
You can direct questions to the Icon Project, but we can't promise to help
you. A considerable amount of what you pay for a commercial software product
goes toward potential support, which may include help with learning the
application, debugging user programs, fixing application bugs, and even
adding new features. For a public-domain application, any support that's
available must be derived from other sources, such as the free contribution
of a person's time. There's only so much you can expect without paying for
it. The Icon Project does the best it can to support the public-domain software
it distributes, but it has very limited resources. In the case of ProIcon,
there's another problem. The Icon Project has no one with the knowledge
to deal with technical issues in Macintosh applications. We cannot even
recompile ProIcon, should a bug show up. On the other hand, ProIcon is a
well-written application that has been in use for a long time. We've had
very few requests for support since it was placed in the public domain.
Since The ProIcon application is now in the public domain, why isn't
the source code in the public domain also?
The source code contains proprietary components that are used in commercial
products that Catspaw, Inc. still markets. In addition, there are components
of ProIcon that were licensed from a third party that is no longer in business.
This does not mean that these components are no longer proprietary, but
locating their present owner, much less getting permission to place them
in the public domain, is not feasible.
Why hasn't ProIcon been brought up to a more current version?
There was a major change to the implementation of Icon after Version 8.0,
which is the ProIcon version. Updating ProIcon to a later version would
be a major effort for which very few persons are qualified. It
also would require access to the source code for ProIcon (see the question
and answer immediately preceding). It is extremely unlikely that ProIcon
will be upgraded. On the other hand, Version 8.0 is very solid and there
have been relatively few changes to the language since 8.0, except for the
addition of graphics facilities.
I would like to have ProIcon rebuilt to not enqueue high-level events.
Can you put me in touch with Catspaw?
Sorry, no. Part of the agreement that placed ProIcon in the public domain
was that Catspaw, Inc. would not be responsible for any future support or
development of ProIcon.
Ordering Icon Material
For information about ordering Icon program material and documentation,
check out ordering instructions. An order
form also is available.
![[back cover]](back45.gif)
© Copyright 1994 by Madge T. Griswold and Ralph E. Griswold. All
rights reserved.
Icon Newsletter
Icon home page