[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Garnet V3.0 release



-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
-*-*-*-  Announcing The Official Release Of Version 3.0 of Garnet -*-*-*-*-*-
-*-*-*-   			      vvvvvvvvv			  -*-*-*-*-*-
-*-*-*-   >>>>>>>>>>> NOW RUNS ON THE MACINTOSH  <<<<<<<<<<<<<<<< -*-*-*-*-*-
-*-*-*-   			      ^^^^^^^^^			  -*-*-*-*-*-
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

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.  See also
	http://www.cs.cmu.edu:8001/Web/Groups/garnet/garnet-home.html

CHANGES FROM VERSION 2.2:
-------------------------

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.  There
have been a number of bug fixes, however.

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.

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 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.

* 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 3.0 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/FTPINSTR.UNIX
or 
	/usr/garnet/garnet/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/FTPINSTR.UNIX
	ftp://a.gp.cs.cmu.edu/usr/garnet/garnet/FTPINSTR.MAC