Archive-name: garnet-faq
Last-modified: October 4, 1996 -- BAM Posting-Frequency: occassionally See reader questions & answers on this topic! - Help others by sharing your knowledge -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- Frequently Asked Questions (FAQ) about Garnet. This file is stored as: ftp://a.gp.cs.cmu.edu/usr/garnet/garnet/ ------------------------------------------------------------------------ The following questions about Garnet are answered below: [1] What Is Garnet? [2] How do I get Garnet? [3] Does Garnet run on a Macintosh or a PC? [4] Which forms of Lisp does Garnet work in? [5] What hardware does Garnet run on? [6] How do I get CMU CL (a free, public domain lisp)? [7] How do I get MCL (Macintosh Common Lisp)? [8] I am having trouble getting CLX to work... [9] Why doesn't Garnet use CLOS? [10] When will there be a C or C++ version of Garnet? [11] What will happen to the Lisp version? [12] Why the change to C++? [13] What do all the acronyms stand for? [14] How can I learn more about Garnet? ------------------------------------------------------------------------ [1] What Is Garnet? Garnet is a user interface development environment for Common Lisp and X11 or Macintosh developed by the User Interface Software Group in the Human-Computer Interaction Institute at Carnegie Mellon University. Garnet helps you create graphical, interactive user interfaces for your software. It is a large scale system containing many features and parts. * Toolkit intrinsics: - A custom object-oriented programming system which uses a prototype-instance model. - A graphics layer that hides the differences between X/11 and Macintosh. - Automatic constraint maintenance: so properties of objects can depend on properties of other objects, and be automatically re-evaluated when the other objects change. The constraints can be arbitrary lisp expressions. - Built-in, high-level input event handling. - Support for gesture recognition - Widgets for multi-font, multi-line, mouse-driven text editing. - Optional automatic layout of application data into lists, tables, trees, or graphs. - Automatic generation of PostScript for printing. - Support for large-scale applications and data visualization. * Two complete widget sets: - One with a Motif look and feel implemented in Lisp, and one with a custom look and feel. * Interactive design tools for creating parts of the interface without writing code: - Gilt interface builder for creating dialog boxes - Lapidary interactive tool for creating new widgets and for drawing application-specific objects. - C32 spreadsheet system for specifying complex constraints. (The next parts are not being released.) - Jade automatic dialog box creation system. - Marquise interactive tool for specifying behaviors. ------------------------------------------------------------------------ [2] How do I get Garnet? Garnet is available for free by anonymous FTP. There is currently only one site from which it is available. To retrieve Garnet, ftp to a.gp.cs.cmu.edu (128.2.242.7). When asked to log in, use "anonymous", and your name as the password. Then change to the garnet directory (note the double garnet's) and get the README explanation file: ftp> cd /usr/garnet/garnet/ ftp> get README Now, follow the directions in the README file. ** If you are using the Macintosh, then please get the Garnet3.0r1.* ** versions of the files, which were fixed for the new version of MCL by ** Russell Almond. There are no restrictions on your use or redistribution of Garnet. NOTE: If you are reading this FAQ from Mosaic or another WWW client, you can get the README file and perform the ftp operations by selecting "Garnet FTP directory" off of the Garnet Home Page http://www.cs.cmu.edu/~garnet -- under the Garnet Information menu. ------------------------------------------------------------------------ [3] Does Garnet run on a Macintosh or a PC? The latest version of Garnet (V3.0) runs on the Macintosh. Programs written on either the Unix or Macintosh version should run pretty much without change on both kinds of computers. However, we do not have Macintosh-look-and-feel widget set, so applications on the Macintosh will still have to use either the Garnet or Motif look-and-feel widgets. There are no plans for a PC version of Garnet (but see the answer to question [10] below). The object and constraint system of Garnet, called KR, will work by itself on other systems, since it only uses straight CommonLisp and no window manager. You can FTP just the KR part and the KR manual from the standard Garnet distribution (see question [2]). ** If you are using the Macintosh, then please get the Garnet3.0r1.* ** versions of the files, which were fixed for the new version of MCL by ** Russell Almond. ------------------------------------------------------------------------ [4] Which forms of Lisp does Garnet work in? On the Macintosh, we know Garnet works on MCL Version 2.0.1. On Unix, Garnet runs on every Lisp that we have come across which has CLX (interface to X11), which currently includes Allegro, Lucid, CMU, Harlequin Lispworks, AKCL, CLISP and TI Explorer Lisps. It appears that AKCL and CLISP are quite slow. ------------------------------------------------------------------------ [5] What hardware does Garnet run on? Garnet runs on the Macintosh, or on any machine that has X11 and Common Lisp implementations. This is pretty much any workstation class machine, including Sun, DEC, HP, Apollo, IBM 6000, Silicon Graphics, etc. ------------------------------------------------------------------------ [6] How do I get CMU CL? CMU CL is a free, high-quality implementation of full Common Lisp which works on Suns and other hardware. CMU Common Lisp is a separate project unrelated to Garnet. Garnet does work in CMU CL, and the following information is from the standard CMU CL FAQ: CMU Common Lisp is free, and runs on Sparcs (Mach and SunOs), DecStation 3100 (Mach), IBM RT (Mach) and requires 16mb RAM, 25mb disk. It includes an incremental compiler, Hemlock emacs-style editor, source-code level debugger, code profiler and is mostly X3J13 compatible, including the new loop macro. It is available by anonymous ftp from any CMU CS machine, such as ftp.cs.cmu.edu [128.2.206.173], in the directory /afs/cs.cmu.edu/project/clisp/release. Login with username "anonymous" and "userid@host" (your email address) as password. Due to security restrictions on anonymous ftps (some of the superior directories on the path are protected against outside access), it is important to "cd" to the source directory with a single command. Don't forget to put the ftp into binary mode before using "get" to obtain the compressed/tarred files. The binary releases are contained in files of the form <version>-<machine>_<os>.tar.Z Other files in this directory of possible interest are *-source.tar.Z, which contains all the ".lisp" source files used to build the various versions. Use "dir" or "ls" to see what is available. Bug reports should be sent to cmucl-bugs@cs.cmu.edu. Please do not send CMU CL questions to the Garnet group: use cmucl-bugs@cs.cmu.edu instead. ------------------------------------------------------------------------ [7] How do I get MCL (Macintosh Common Lisp)? Macintosh Common Lisp is actively supported and developed by Digitool. Their web site is at http://www.digitool.com/ . Discussions about MCL are at news:comp.lang.lisp.mcl . Digitool also has an FTP site with patches and contributed code at ftp://ftp.digitool.com:/pub/mcl/ . ------------------------------------------------------------------------ [8] I am having trouble getting CLX to work... CLX should be supplied with every Common Lisp for Unix. If you have trouble with CLX, please contact your Lisp vendor. We can't help you. ------------------------------------------------------------------------ [9] Why doesn't Garnet use CLOS? CLOS is the standard Common Lisp Object System, and Garnet uses a custom object system (called KR) instead. There are a number of reasons for this. The main reason is that Garnet uses a prototype-instance model, rather than the conventional class-instance model supported by CLOS. We have found the prototype model to be more effective for user interface prototyping and construction. A second reason is performance: it appears that KR is more efficient than CLOS for most standard operations. Since we have control of KR, we can also optimize the performance of constraint satisfaction, which would require extra overhead in CLOS. ------------------------------------------------------------------------ [10] When will there be a C or C++ version of Garnet? The same group that developed Garnet, the User Interface Software group at CMU, is now developing a C++ tool instead. It is very similar to Garnet, and uses much of the same style of programming. The C++ version is called Amulet, and more information is available at http://www.cs.cmu.edu/~amulet or mail to amulet@cs.cmu.edu. Amulet has been released for general use, and there are projects all over the world using Amulet. If you like Garnet or its design, you will probably find Amulet's design appealing as well, and it runs much faster! Amulet currently runs on Unix X/11, Microsoft Windows 95 or NT, and the Macintosh, using a variety of C++ compilers. ------------------------------------------------------------------------ [11] What will happen to the Lisp version? The User Interface Software Group is sorry to report that we can no longer support Garnet. The staff people who knew about it have all left, and we must devote our efforts to Amulet, our new C++ toolkit (see [10]). However, a number of Garnet users are still active, so bug reports and questions to garnet-users@cs.cmu.edu or to the garnet newsgroup comp.windows.garnet are usually answered by a Garnet user. If someone is interested in maintaining Garnet and/or integrating the accummulated patches, please let us know. ------------------------------------------------------------------------ [12] Why the change to C++? Political reasons: * ARPA (our chief funding agency) said we should. * Many former Lisp users, both in companies and universities, have been "forced" to switch to C or C++ and the user-base for Garnet was shrinking. * We want to have a major impact on the way "real" user interfaces are programmed, and many people have not felt that things written in Lisp count as "real". * The popularity of tcl shows that C programmers are itching for interactive development of user interfaces, and we think Amulet will be technically better and easier to use. Technical reasons: * We have been repeatedly frustrated that we can create interesting little utilities really quickly in Garnet, but no-one wants to use them because (on Unix) the executable image is enormous (typically 12 to 30 megabytes). They take a lot of diskspace and a long time to load, and lots of memory to run. There have also been licensing issues about distributing Lisp images. * Speed: We spend 5 years and lots of effort optimizing our Lisp code, but it was still pretty slow on "conventional" machines. The initial version of the C++ version, with similar functionality, appears to be about THREE TIMES FASTER than the current Lisp version without any tuning at all. * Interfaces to interesting external stuff appears immediately in C but often never in Lisp. We want to use X extensions, OpenGL, Display Postscript, multimedia, IPC, network stuff, etc. There are still no extensions to CLX for many of the additions to X since R3. ------------------------------------------------------------------------ [13] What do all the acronyms stand for? GARNET: KR: CORAL: Generating an Knowledge Constraint-Based, Amalgam of Representation Object-Oriented Real-time, Relations Novel OPAL: And Editors and Object Language Toolkits Programming Aggregate C32: Layer JADE: CMU's Judgement-based Clever and LAPIDARY: Automatic Compelling Lisp-Based Dialog Contribution to Assistant for Editor Computer Science in Prototyping CommonLisp which is Interface Customizable and Designs GEM: Characterized by a Allowing Graphics and Complete Remarkable Events Coverage of Yield Manager Code and Contains a AGATE: AMULET: Cornucopia of A Automatic Creative Gesture-recognizer Manufacture of Constructs, because it And Usable and Can Trainer by Learnable Create Example Editors and Complex, Toolkits Correct Constraints that are MARQUISE: TALISMAN: Constructed Mostly Toolkit and Clearly and Automated, Application Concretely, and Remarkably Layer for Communicated using Quick Synchronous Columns of User Multiple-user Cells, that are Interface Access over a Constantly Software Network Calculated so they Environment Change Continuously, and SILK: Cancel Sketching Confusion. Interfaces Like Krazy ------------------------------------------------------------------------ [13] How can I learn more about Garnet? There is an Internet bulletin board called comp.windows.garnet on which Garnet is discussed. If you cannot access this, then the messages are repeated on the mailing list garnet-users@cs.cmu.edu. Send mail to garnet@cs.cmu.edu to be added if you cannot access the bulletin board. There is a World-wide Web page about Garnet which can be accessed via WWW browsers. It contains pictures of the Garnet developers, screen shots from some of your applications, abstracts and postscript for papers, and links to the Garnet FTP directories and other information. You can get to the Garnet page by opening the following URL from within your browser: http://www.cs.cmu.edu/~garnet The complete reference manuals for Garnet, which include a tour and tutorial, are available for anonymous FTP (see instructions above). The best overview article about Garnet appeared in IEEE Computer, vol. 23, No. 11., Nov, 1990. pp. 71-85. A number of old articles about Garnet were collected into a CMU Technical Report: "The Garnet Compendium: Collected Papers, 1989-1990" CMU-CS-90-154, August, 1990. A new compendium has been printed including 9 recent papers: "The Second Garnet Compendium: Collected Papers, 1990-1992" CMU-CS-93-108, February, 1993. To order either, send mail to reports@cs.cmu.edu. There have been about 35 refereed papers and 12 technical reports about Garnet so far, including papers in OOPSLA (88, 92), SIGCHI (89, 90, 91, 92, 93, 94, 95), ACM TOIS (July 90), Visual Computer (Feb 92), and UIST (89, 91, 92), and a complete bibliography is available on the Mosaic pages. The bibliography and the postscript for some articles are stored in the directory /usr/garnet/garnet/doc/papers/ User Contributions:
[ Usenet FAQs | Web FAQs | Documents | RFC Index ]
Send corrections/additions to the FAQ Maintainer: bam@cs.cmu.edu (Brad Myers)
Last Update March 27 2014 @ 02:11 PM
|
Comment about this article, ask questions, or add new information about this topic: