summaryrefslogtreecommitdiff
path: root/doc/faq.htm
diff options
context:
space:
mode:
Diffstat (limited to 'doc/faq.htm')
-rw-r--r--doc/faq.htm102
1 files changed, 49 insertions, 53 deletions
diff --git a/doc/faq.htm b/doc/faq.htm
index 50175fc..ad3d10d 100644
--- a/doc/faq.htm
+++ b/doc/faq.htm
@@ -11,8 +11,8 @@
<H1>Frequently Asked Questions about the Icon programming language</H1>
<A HREF="http://www.cs.arizona.edu/icon/faq.htm">
www.cs.arizona.edu/icon/faq.htm</A>
-<BR>Last updated November 14, 2005<BR>
-<!-- $Id: faq.htm,v 1.45 2005/11/14 16:24:44 gmt Exp $ -->
+<BR>Last updated April 12, 2010<BR>
+<!-- $Id: faq.htm,v 1.57 2010/04/12 20:39:24 gmt Exp $ -->
<P><STRONG>Learning about Icon</STRONG><BR>
<A HREF="#whatsicon">A1. What is Icon?</A><BR>
@@ -124,12 +124,15 @@ What are Icon's distinguishing characteristics?</H3>
<H3><A NAME="library">A4.</A> What is the Icon program library?</H3>
<P>
The library is a collection of programs and procedures written in Icon.
-User contributions are welcome and form a significant portion of the library.
+User contributions form a significant portion of the library.
<P>
Library procedures effectively augment the built-in functions
available to an Icon program.
A wide variety of procedures currently exists, and most
graphically-based programs are built around library procedures.
+The <A HREF="http://www.cs.arizona.edu/icon/library/src/procs/core.icn">core</A>
+and <A HREF="http://www.cs.arizona.edu/icon/library/src/gprocs/graphics.icn">
+graphics core</A> modules are the most carefully vetted.
<P>
The programs in the library range from simple demonstrations to
handy tools to complex graphical applications.
@@ -161,6 +164,13 @@ Here are some good places to start.
<A HREF="http://www.nmt.edu/tcc/help/lang/icon/">
www.nmt.edu/tcc/help/lang/icon</A>
</UL>
+<P>
+For the graphics facilities:
+<UL>
+<LI> The Icon Project Overview:
+ <A href="http://www.cs.arizona.edu/icon/ftp/doc/ipd281.pdf">
+ www.cs.arizona.edu/icon/ftp/doc/ipd281.pdf</A>
+</UL>
<H3><A NAME="examples">A6.</A> Where are some simple examples?</H3>
<P>
@@ -203,7 +213,7 @@ describe subsequent changes.
Printed copies of the
<CITE>Language</CITE> and <CITE>Graphics</CITE> books
are available from Jeffery Systems
-(<A HREF="http://www.zianet.com/jeffery/books/">www.zianet.com/jeffery/books</A>).
+(<A HREF="http://unicon.org/books/">http://unicon.org/books/</A>).
All three books can be downloaded at no charge from the Icon books page,
<A HREF="http://www.cs.arizona.edu/icon/books.htm">
www.cs.arizona.edu/icon/books.htm</A>.
@@ -219,39 +229,39 @@ www.cs.arizona.edu/icon/library/ipl.htm</A>.
<P>
There is a large amount of additional information at the
Icon web site,
-<A HREF="http://www.cs.arizona.edu/icon/">www.cs.arizona.edu/icon</A>.
+<A HREF="http://www.cs.arizona.edu/icon/">www.cs.arizona.edu/icon</A>,
+including complete sets of back issues of the
+<A HREF="http://www.cs.arizona.edu/icon/inl/inl.htm">
+<CITE>Icon Newsletter</CITE></A> and
+<A HREF="http://www.cs.arizona.edu/icon/analyst/ia.htm">
+<CITE>Icon Analyst</CITE></A>.
<P><HR><H2>Implementations</H2>
<H3><A NAME="platforms">B1.</A> What platforms support Icon?</H3>
<P>
-Current implementations with graphics support
-are available for Unix (including Linux) and Windows.
-The Unix implementation also runs on Darwin,
-the Macintosh development environment, or the
+The current implementation of Icon is a Unix implementation.
+This includes Linux, BSD, Solaris, Macintosh, and the
<A HREF="http://www.cygwin.com/">Cygwin</A> environment under Windows.
-Older versions of Icon are available for some other systems.
+Version 9.5 of Icon has been tested on all these platforms.
+<P>
+Older versions are available for Windows and some other systems.
An alternative Java-based implementation for Unix,
<A HREF="http://www.cs.arizona.edu/icon/jcon/">Jcon</A>,
is also available.
+<P>
+None of these environments includes a window-based development environment.
+While Icon programs can open windows and use graphics,
+programming is done using Unix editors and other tools from a command shell.
<H3><A NAME="getstarted">B2.</A> How do I get started with Icon?</H3>
<P>
-Version 9.4.3 of Icon for <STRONG>Unix</STRONG> can be downloaded from
-<A HREF="http://www.cs.arizona.edu/icon/v943/">
-www.cs.arizona.edu/icon/v943</A>.
+The current version of Icon for Unix can be downloaded from
+<A HREF="http://www.cs.arizona.edu/icon/current/">
+www.cs.arizona.edu/icon/current</A>.
Source and binary packages are available, each with the
complete Icon program library.
<P>
-Version 9.3 of Icon for <STRONG>Windows</STRONG> is compatible
-at the source level with version 9.4.3.
-It can be downloaded from
-<A HREF="http://www.cs.arizona.edu/icon/v93w.htm">
-www.cs.arizona.edu/icon/v93w.htm</A>.
-The Version 9.4.3 library can be obtained separately from
-<A HREF="http://www.cs.arizona.edu/icon/v943/">
-www.cs.arizona.edu/icon/v943</A>.
-<P>
For older implementations, start at
<A HREF="http://www.cs.arizona.edu/icon/implver.htm">
www.cs.arizona.edu/icon/implver.htm</A>.
@@ -268,14 +278,11 @@ but a Unicode version of Jcon might be possible.
<H3><A NAME="iconc">B4.</A> What happened to the compiler?</H3>
<P>
-For a while, Unix distributions included both an interpreter and a compiler;
-but the interpreter is is usually fast enough even for production work, and
-most people found that using the compiler wasn't worth the extra compilation
-time or the hassles involved.
-We no longer advertise the compiler or produce binaries for it.
-It is still part of the source code distribution,
-and we have not deliberately broken it,
-but we no longer support it and we cannot offer help if problems arise.
+For a while, Unix distributions included both an interpreter and a compiler.
+The compiler was an interesting research project but it has not been
+maintained and is no longer supported.
+The interpreter is much easier to use and is generally quite fast enough,
+even for production applications.
<P><HR><H2>Administration</H2>
@@ -290,11 +297,9 @@ Department of Computer Science at the University of Arizona.
<H3><A NAME="updates">C2.</A> How often is the on-line material updated?</H3>
<P>
-New material is added when it's available.
-Established implementations usually are updated only when there's a
-new version.
-This typically is every year or two.
-The Icon program library is updated on a similar schedule.
+The Icon implementation is now in maintenance mode, with new releases
+produced only when necessary. This typically happens every few years when a
+change in the Gnu tools cause the source to stop building.
<H3><A NAME="lineage">C3.</A> Where did Icon come from?</H3>
<P>
@@ -329,7 +334,7 @@ but there's no good solution to that problem.
<P>
We continue to use Icon on a daily basis, but no significant changes
are planned.
-We expect to support the Unix version for the forseeable future,
+We expect to support the Unix version for the foreseeable future,
and to distribute ports to other systems as supplied by volunteers.
<P>
The Unicon project is developing an object-oriented language based on Icon.
@@ -364,10 +369,6 @@ For <STRONG>porting</STRONG> assistance
or <STRONG>Unix</STRONG> problems, contact
<A HREF="mailto:icon-project@cs.arizona.edu">icon-project@cs.arizona.edu</A>.
<LI>
-For problems with the <STRONG>Windows</STRONG> implementation,
-contact the implementor,
-<A HREF="mailto:jeffery@cs.nmsu.edu">jeffery@cs.nmsu.edu</A>.
-<LI>
For general information and additional documentation, visit the Icon web site:
<A HREF="http://www.cs.arizona.edu/icon/">www.cs.arizona.edu/icon</A>.
</UL>
@@ -398,26 +399,21 @@ A simple reference suffices, as in
it's not necessary to actually call it.
<P>
(Why does the linker remove unreferenced procedures?
-Because this can save <EM>huge</EM> amounts of memory for
-programs that use the library.)
+To <EM>significantly</EM> reduce the memory requirements of
+programs that use the library.
+There was a time when this mattered.)
<H3><A NAME="callc">E3.</A> How can I call a C function?</H3>
<P>
-You can't call an arbitrary C function,
-but if you're willing to write a function to Icon's specifications,
-there are two approaches.
-Under Unix, which provides <CODE>loadfunc()</CODE>,
-you can load one or more functions from a shared library,
-and then treat them as if they had been written in Icon.
+You can't call an arbitrary C function, but you can load and call one
+that is written to Icon's specifications.
+A tutorial appears in
+<a href="http://www.cs.arizona.edu/icon/analyst/backiss/IA36.pdf">
+Icon Analyst 36</a>.
Some examples can be found in the
<A HREF="http://www.cs.arizona.edu/icon/library/ccfuncs.htm">
<CODE>cfuncs</CODE></A> and
<CODE>packs/loadfuncs</CODE> directories of the Icon program library.
-The more cumbersome approach is to add code to the Icon interpreter
-and rebuild it; some hooks are provided for this purpose.
-Both approaches are discussed in <CITE>Calling C Functions from Icon</CITE>,
-<A HREF="http://www.cs.arizona.edu/icon/docs/ipd240.htm">
-www.cs.arizona.edu/icon/docs/ipd240.htm</A>.
<P>
The <A HREF="http://www.cs.arizona.edu/icon/jcon/">Jcon</A> implementation
allows Icon programs to call Java code that is written to Jcon specifications.