From bam+@cs.cmu.edu Mon Jun 27 19:01:32 EDT 1994 Article: 13217 of comp.lang.lisp Xref: glinda.oz.cs.cmu.edu comp.windows.garnet:765 comp.lang.lisp:13217 comp.lang.lisp.mcl:5868 Newsgroups: comp.windows.garnet,comp.lang.lisp,comp.lang.lisp.mcl Path: honeydew.srv.cs.cmu.edu!bam From: bam+@cs.cmu.edu (Brad Myers) Subject: Garnet for the Macintosh Message-ID: Followup-To: comp.windows.garnet Sender: news@cs.cmu.edu (Usenet News System) Nntp-Posting-Host: bam.garnet.cs.cmu.edu Organization: School of Computer Science, Carnegie Mellon Date: Mon, 20 Jun 1994 21:28:56 GMT Lines: 150 -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- -*-*-*- Announcing The ALPHA Release Of Version 3.0 of Garnet -*-*-*-*-*- -*-*-*- vvvvvvvvv -*-*-*-*-*- -*-*-*- >>>>>>>>>>> NOW RUNS ON THE MACINTOSH <<<<<<<<<<<<<<<< -*-*-*-*-*- -*-*-*- ^^^^^^^^^ -*-*-*-*-*- -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- >> THIS IS JUST THE ALPHA RELEASE. You might wait for the beta or >> official release if you are concerned about robustness. Garnet is a comprehensive user interface development environment for Lisp. It has run on Unix and X/11 for about 6 years, and this release announces the availability on the Macintosh using the native Macintosh QuickDraw and operating system. The intention is to provide a free, portable toolkit for user interface development in Lisp. In particular, we expect that all current Garnet Unix applications should run on the Macintosh without change, and applications written on the Macintosh version should work on the Unix version. Note, however, that we have NOT created or interfaced to the Macintosh widgets so on the Macintosh you will still have to use Garnet or Motif look-and-feel widgets. We hope that some users will address this. For those unfamiliar with Garnet, it contains two complete widgets sets implemented in Lisp, and a full set of interactive tools including an interface builder. More details about Garnet are available in the Garnet FAQ: ftp://a.gp.cs.cmu.edu/usr/garnet/garnet/FAQ which is posted periodically. The primary change for version 3.0 is that Garnet now works on the Macintosh. Current Unix users of Garnet will not see much difference between version 2.2 and 3.0, but you will need to get the new version and recompile if you want to port your software to the Macintosh. To run the Macintosh version of Garnet, you need to have System 7.0 or later, Macintosh Common Lisp (MCL) version 2.0.1 or later, and at least 8Mb of RAM. The system takes about 10 megabytes of disk space on a Mac, not including the documentation (which takes an additional 8 megabytes). We find that performance of Garnet on MCL is acceptable on Quadra's, and fine on a Quadra 840 A/V. It is really too slow on a Mac II. To do anything useful, you probably need 12mb of memory. A PowerPC Mac does not work well for Lisp (see discussion on comp.lang.lisp.mcl). With your help, we hope to improve the performance so it runs on smaller machines. For the current Unix users of Garnet 2.2, there are a few minor changes to the system for version 3.0, some of which are NOT BACKWARDS COMPATIBLE! * All Garnet files have been updated to adhere to the new lisp standards defined in Common Lisp the Language Second Edition. This involved changes to package definitions, export statements, and removal of Garnet's binding of excl::*cltl1-in-package-compatibility-p* and comp:*cltl1-compile-file- toplevel-compatibility-p* in Allegro lisp. If your lisp files used to rely on Garnet to set up a CLTL1-compatible environment, you may have to either bring your files up-to-date to the new standard or declare the old initializations yourself. * We removed support for "#\" specification of modified characters, and now support only keyword forms of modified characters. For example, all occurrences of #\control-c should be converted to :CONTROL-c, as specified in the Garnet 2.2 Interactors manual. The reason for this change is that the CHAR-BITS function which in some lisps (like Allegro) would report special properties of characters (like whether they are modified by a control key) has been explicitly removed from the CLTL2 specification. * The :face slot of font objects can now take a list of keywords. In previous versions of Garnet, the only allowed values for the :face slot were :roman, :bold, :italic, and :bold-italic. In Garnet 3.0, you can also supply the value '(:bold :italic) (independent of order). For the Mac version, you can supply any single element or any consistent combination of :roman, :bold, :italic, :bold-italic, :plain, :condense, :extend, :outline, :shadow, or :underline. * Now :omit-title-bar-p parameters are in both kinds of scrolling-windows. * The interface to declaring constant information about fonts and colors is incomplete in this release of Garnet 3.0 Alpha. Thus, many formulas that would have previously been eliminated in your system may not be eliminated by this version of Garnet, since display-dependent information is now stored in a new control schema named opal::DEVICE-INFO. At minimum, to eliminate font and color formulas, you will have to commit to not changing display of the lisp session in which the font and color information was obtained by declaring the :current-device slot of opal::DEVICE-INFO constant. In particular, you would not be able to make an executable lisp image of Garnet after declaring the display information constant, since restarting the Garnet image requires reinitializing the display to a new value. * Since the Mac limits the number of characters in file names, we had to change the names of seven gadget files, where the names of the duplicates have been truncated to 31 characters: motif-prop-sheet-win-loader.lis motif-scrolling-labeled-box-loa motif-scrolling-labeled-box.lis motif-scrolling-menu-loader.lis motif-scrolling-window-loader.l scrolling-input-string-loader.l scrolling-labeled-box-loader.li If you plan to run your application on the Mac, you should use the function user::garnet-load (described in the Garnet 2.2 Overview manual) whenever you are loading gadgets, instead of using LOAD directly. GARNET-LOAD will automatically map the standard Garnet file name that you supply into the list of truncated filenames for the Mac. GARNET-LOAD also does the correct thing under Unix. * The internal representation of opal:white-fill has been changed. Previously, opal:white-fill was considered one of the "gray stippled" bitmaps, and had a foreground-color of black, but was drawn entirely in its background-color of white. This confused some applications like color palettes that relied on the :foreground-color slot of filling-style objects for their color. To accommodate users' intuition, opal:white-fill is now considered to be a "solid color" filling-style, with a :foreground-color of white. Opal:white-fill is no longer associated with the halftone filling-styles. * Top-level loader files, including garnet-loader.lisp, are now loaded into the :COMMON-LISP-USER package. The CLTL2 standard and most lisps have one package named :COMMON-LISP-USER with a nickname of :USER, and one package named :COMMON-LISP with a nickname of :LISP. We have added Lucid-specific code at the top of garnet-loader.lisp and garnet-compiler.lisp that adjust the nicknames of Lucid's :USER and :LISP packages to accommodate the new CLTL2-compatible files. * The multi-selection now supports selections across multiple windows. As described in the comments at the top of the file, you should have a multi-graphics-selection gadget in each window, and each should have the :other-multi-graphics-selection slot set with a list of ALL the multi-graphics-selection gadgets. Then, each gadget's :value will reflect selections in all windows. This change should not affect current users (it is backwards compatible). A known bug is that the selection order is NOT preserved across multiple windows (you can't tell which object was selected first or last). Also, you cannot drag objects from one window to another. FTP INSTRUCTIONS: ----------------- To retrieve this new version of Garnet, anonymous FTP to a.gp.cs.cmu.edu (128.2.242.7) and retrieve /usr/garnet/garnet/alpha/FTPINSTR.UNIX or /usr/garnet/garnet/alpha/FTPINSTR.MAC (or both). These are plain text files with complete instructions. You can view these files using Mosaic or another World-wide Web client, as: ftp://a.gp.cs.cmu.edu/usr/garnet/garnet/alpha/FTPINSTR.UNIX ftp://a.gp.cs.cmu.edu/usr/garnet/garnet/alpha/FTPINSTR.MAC