Newsgroups: comp.windows.garnet,comp.lang.lisp,comp.lang.lisp.mcl,comp.answers,news.answers Subject: Garnet Toolkit Frequently Asked Questions Followup-To: comp.windows.garnet Summary: Garnet User Interface Development Environment for Lisp Approved: news-answers-request@MIT.EDU Archive-name: garnet-faq Last-modified: June 17, 1994--BAM Posting-Frequency: bi-monthly -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- Frequently Asked Questions (FAQ) about Garnet. This file is stored as: ftp://a.gp.cs.cmu.edu/usr/garnet/garnet/FAQ ------------------------------------------------------------------------ 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 do all the acronyms stand for? [12] 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. It helps you create graphical, interactive user interfaces for your software. Garnet 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 yet ready for release.) - 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 NOTE: We are currently working on the ALPHA version of 3.0, which supports the Macintosh. To get the ALPHA release, use the directory path /usr/garnet/garnet/alpha/ instead of the above. Now, follow the directions in the README file. 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 -- under the Garnet Information menu. ------------------------------------------------------------------------ [3] Does Garnet run on a Macintosh or a PC? The Macintosh version of Garnet is in early Alpha test. You can FTP it if you want to help us debug it. We expect an official release later this summer. There are no plans for a PC version. 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]). ------------------------------------------------------------------------ [4] Which forms of Lisp does Garnet work in? On the Macintosh, we only support MCL Version 2.0.1. On Unix, we support every Lisp that we have come across which has a 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. (See also question [6].) ------------------------------------------------------------------------ [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 -_.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)? For information about MCL (including whether and when it will work on the PowerPC), consult the Internet bboard comp.lang.lisp.mcl. There is also an FTP site: cambridge.apple.com:/pub/MCL2/ and a FAQ about MCL which is stored on cambridge.apple.com:/pub/MCL2/contrib/faq. Macintosh Common Lisp is sold by Apple and is available from the Apple Programmers and Developers Association (APDA). To order MCL, and to get a free catalog featuring over 300 other Apple programming products, contact: APDA Apple Computer, Inc 20525 Mariani Ave. Cupertino, CA 95014 800-282-APDA (800-282-2732), toll-free in the USA 800-637-0029, toll-free in Canada 716-871-6555, international 716-871-6511, fax APDA (Applelink) APDA@applelink.apple.com (internet) A.DEVELOPER3 (GEnie) 76666,2405 (Compuserve) APDA Sale (America Online) MCL is also available from APDA programs in many countries. Contact your local Apple office for more information. In Germany, try: Thilo Bretschneider Promo GmbH Waterloohain 6-8 D-22769 Hamburg, Germany Applelink: GER.APDA Internet: GER.APDA@applelink.apple.com phone: 49-40-43-13-60-66 fax: 49-40-43-13-60-60 MCL is also available from SFA (Software Frameworks Association, formerly called MADA), an independent nonprofit organization dedicated to promoting the use of object technology in software development. Several levels of membership are available. SFA members may purchase MCL at a special discount. For more information, please contact SFA at: Software Frameworks Association Suite 202-B 10062 Miller Ave. Cupertino, CA 95014 408-253-2765 (phone) 408-253-2767 (fax) FRAMEWORKS@applelink.apple.com (email) ------------------------------------------------------------------------ [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. There are no plans for a CLOS version of Garnet, although we are thinking about easier mechanisms to link Garnet objects and an application's CLOS objects. ------------------------------------------------------------------------ [10] When will there be a C or C++ version of Garnet? We are currently working on the design for a C++ version of Garnet. This will be developed in collaboration with researchers from Georgia Tech, USC/ISI, and others. We are especially interested in corporate sponsors of this effort. If you would like to help and influence the C++ version of Garnet, please let us know. ------------------------------------------------------------------------ [11] 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 Characterized by a Allowing GEM Complete Remarkable Graphics and Coverage of Yield Events Code and Manager Contains a AGATE: Cornucopia of A Creative Gesture-recognizer Constructs, because it And Can Trainer by Create Example Complex, Correct Constraints that are MARQUISE: Constructed Mostly Clearly and Automated, Concretely, and Remarkably Communicated using Quick Columns of User Cells, that are Interface Constantly Software Calculated so they Environment Change Continuously, and Cancel Confusion. ------------------------------------------------------------------------ [12] 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, such as Mosaic. 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:8001/Web/Groups/garnet/garnet-home.html 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), 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/