Crud Factory Icon ----------------- An implementation of the Icon programming language, based on the "official" source distribution at http://www.cs.arizona.edu/icon/ Unlike the "official" distribution, Crud Factory Icon is configured with the GNU autotools. With the exception of some files associated with the GNU autotools and included if you clone the Mercurial repository, the materials herein are in the public domain. The README file for the "official" Icon distribution is included here as README.icon-project ========== To build from the Mercurial sources, you can do something like libtoolize autoreconf --install ./configure make make install or, if you prefer, libtoolize autoreconf --install mkdir build cd build ../configure make make install Some documentation, including public domain PDFs of the textbooks for Icon users that old-timers have on their bookshelves, is available for download at http://bitbucket.org/chemoelectric/cficon/downloads and also at http://www.cs.arizona.edu/icon/ ========== Why Crud Factory Icon? Icon is one of the oldest languages a person is likely to encounter these days on the Internet, and yet it has been afraid to change its ancient habits. For years and years the "official" and Unicon (http://unicon.org) implementations of Icon have adhered to file arrangements, configuration mechanisms, etc., that are familiar to Icon users and at the same time difficult to manage and use on Unix-like systems. One finds relative locations of files and programs hardcoded in. Environment variables are used that also are used by other programs that, while not as old as Icon, are immensely more firmly established than Icon and therefore rightly "own" those variables. A person does not worry that setting environment variables for Python is going to break Zshell or Korn shell; but setting Icon's "FPATH" will do exactly that. If a tradition causes obvious harm, it is time to examine and perhaps abandon that tradition. Abandonment of harmful traditions is the core reason for Crud Factory Icon to exist. This is not an Icon made to please Icon veterans, but to please people who configure and compile source packages on Unix-like systems. The "make Configure name=" mechanism is gone, its place taken by GNU autotools. The names of key environment variables can be set at configuration time, and default to harmless values, such as "ICON_FPATH". Files are installed in places familiar not to longtime Icon users, but instead familiar to users of GNU autotools. But other changes may come later, and may be for different reasons.