From: Mark Kantrowitz
Subject: FAQ: Lisp Window Systems and GUIs 7/7 [Monthly posting]
Date: 
Message-ID: <lisp_7.faq_758494454@cs.cmu.edu>
Archive-name: lisp-faq/part7
Last-Modified: Mon Nov 15 15:59:37 1993 by Mark Kantrowitz
Version: 1.40

;;; ****************************************************************
;;; Lisp Window Systems and GUIs ***********************************
;;; ****************************************************************
;;; Written by Mark Kantrowitz and Barry Margolin
;;; lisp_7.faq -- 12058 bytes

This post contains Part 7 of the Lisp FAQ.

If you think of questions that are appropriate for this FAQ, or would
like to improve an answer, please send email to us at ········@think.com.

Topics Covered (Part 7):
  [7-1] How can I use the X Window System or other GUIs from Lisp?
  [7-2] What Graphers/Browsers are available?

Search for \[#\] to get to question number # quickly.
----------------------------------------------------------------
Subject: [7-1] How can I use the X Window System or other GUIs from Lisp?

There are several GUI's and Lisp interfaces to the X Window System. Mailing
lists for these systems are listed in the answer to question [4-7].
Various vendors also offer their own interface-building packages.

   CLX provides basic Common Lisp/X functionality. It is a de facto standard
   low-level interface to X, providing equivalent functionality to XLib, but
   in Lisp. It is also a good source for comparing the foreign function calls
   in various Lisps. Does *not* depend on CLOS.  Available free as part of the
   X release in the contrib directory.  Also available from
   ftp.x.org:/contrib (formerly export.lcs.mit.edu) as the files
   CLX.Manual.tar.Z and CLX.R5.02.tar.Z. 
   Primary Interface Author: Robert W. Scheifler <···@zermatt.lcs.mit.edu>
   Send bug reports to ·······@expo.lcs.mit.edu. 
   The 232 page manual is available in /pub/R5untarred/mit/hardcopy/CLX 
   (PostScript format) and /pub/R5untarred/mit/doc/CLX (Interleaf source).

   CLIM (Common Lisp Interface Manager) is a portable, graphical user
   interface toolkit originally developed by International Lisp
   Associates, Symbolics, and Xerox PARC, and now under joint development
   by several Lisp vendors, including Symbolics, Franz, Lucid, Illudium,
   and Harlequin.  It is intended to be a portable successor of Symbolics
   UIMS (Dynamic Windows, Presentations Types).  CLIM 2.0 also supports
   more traditional toolkit-style programming.  It runs on Symbolics Lisp
   Machines; Allegro, Lucid, and Harlequin on several Unix platforms;
   Symbolics CLOE on 386/486 IBM PCs running Windows; and MCL on Apple
   Macintoshes.  It is *not* free, and with the exception of
   Macintoshes, if it is available it can be purchased from the vendor
   of the Lisp system you are using.  For the Macintosh version write
   to Illudium: 
     Contact: Dennis Doughty - ·······@ileaf.com
     or contact: Bill York - ····@lucid.com
   Illidium has signed a distribution agreement for MCL CLIM with
   Lucid, so you can also get it from Lucid at ·····@lucid.com,
   415-329-8400. (Lucid also has a license to distribute MCL itself.)
   CLIM includes a general purpose grapher. The CLIM 2.0 SPECIFICATION
   is available by anonymous ftp from ftp.uu.net:vendor/franz/clim/clim.ps.Z.
   To be added to the mailing list send mail to ············@bbn.com.

   CLUE (Common Lisp User-Interface Environment) is from TI, and extends CLX
   to provide a simple, object-oriented toolkit (like Xt) library that uses
   CLOS. Provides basic window classes, some stream I/O facilities, and a few
   other utilities. Still pretty low level (it's a toolkit, not widget
   library).  Available free by anonymous ftp from csc.ti.com:pub/clue.tar.Z
   Written by Kerry Kimbrough. Send bug reports to ·········@dsg.csc.ti.com.

   CLIO (Common Lisp Interactive Objects) is a GUI from the people who created
   CLUE. It provides a set of CLOS classes that represent the standard
   components of an object-oriented user interface -- such as text, menus,
   buttons, scroller, and dialogs.  It is included as part of the CLUE
   distribution, along with some packages that use it, both sample and real.

   Allegro Common Windows provides a front end to CLX. Uses CLOS.
   It is *not* free. Contact ····@franz.com for more information.
   [Intellicorp's KEE4.0 comes with Common Windows also. They've
    implemented the CW spec to run on Lucid 4.0 on Sparcs, HP300/400s,
    HP700/800s, and IBM RS6000s. Contact ····@intellicorp.com for more
    information.]

   The LispWorks Toolkit is an extensible CLOS-based widget set that uses
   CLX and CLUE. The LispWorks programming environment has been written
   using the toolkit and includes: an Emacs-like editor, listener,
   debugger, profiler, and operating system shell; browsers/graphers for
   classes, generic functions, processes, windows, files, compilation
   errors, source code systems, and setting LispWorks parameters; and an
   interactive interface builder and complete online hypertext
   documentation. Contact: ·················@harlqn.co.uk

   CLM (Common Lisp Motif) and GINA (Generic Interactive Application) and
   IB (Interface Builder). CLM runs Motif widgets in a separate C
   process, with minimal work on the Lisp side and communicates between C
   and Lisp using TCP sockets. Runs in Allegro CL, Sun CL, CMU CL, Lucid
   CL, and Symbolics Genera. GINA uses CLOS.  Available free in the X
   contrib directory or by anonymous ftp from either
      ftp.x.org:/contrib (formerly export.lcs.mit.edu) or
      ftp.gmd.de:/gmd/gina [129.26.8.90] 
   as the files CLM+GINA.README, CLM2.2.tar.Z and GINA2.2.tar.Z.  CLM was
   written by Andreas Baecker <·······@gmdzi.gmd.de>, GINA by Mike Spenke
   <······@gmdzi.gmd.de>, and IB by Thomas Berlage <·······@gmdzi.gmd.de>.  
   Contact Mike Spenke for more info. To be added to the mailing list,
   send a message to ··················@gmdzi.gmd.de.

   EW (Express Windows) is intended to mimic Symbolics' Dynamic Windows user
   and programmer interfaces. It is available free in the ew/ subdirectory of
   the Lisp Utilities repository.  It is no longer under active development.
   Runs on Sun/Lucid, Franz Allegro, and Symbolics. Should port easily to
   other Lisps with CLX. 
   Written by Andrew L. Ressler <········@oiscola.columbia.ncr.com>.

   Garnet is a large and flexible GUI. Lots of high-level features.  Does
   *not* depend on CLOS, but does depend on CLX. Garnet (version 2.0 and
   after) is now in the public domain, and has no licensing restrictions,
   so it is available to all foreign sites and for commercial uses.
   Detailed instructions for obtaining it by anonymous ftp are available
   by anonymous ftp from a.gp.cs.cmu.edu [128.2.242.7] as the file
   /usr/garnet/garnet/README.  Garnet includes the Lapidiary interactive
   design tool, C32 constraint editor, spreadsheet object, Gilt
   Interface Builder, automatic display management, two 
   widget sets (Motif look-and-feel and Garnet look-and-feel), support for
   gesture recognition, and automatic constraint maintenance, application
   data layout and PostScript generation. Runs in virtually any Common
   Lisp environment, including Allegro, Lucid, CMU, and Harlequin Common
   Lisps on Sun, DEC, HP, Apollo, IBM 6000, and many other machines.
   Garnet helps implement highly-interactive, graphical, direct
   manipulation programs for X/11 in Common Lisp.  Typical applications
   include: drawing programs similar to Macintosh MacDraw, user interfaces
   for expert systems and other AI applications, box and arrow diagram
   editors, graphical programming languages, game user interfaces,
   simulation and process monitoring programs, user interface construction
   tools, CAD/CAM programs, etc. Contact Brad Myers (···@a.gp.cs.cmu.edu)
   for more information. Bug reports should be sent to ···········@cs.cmu.edu.
   Administrative questions should be sent to ······@cs.cmu.edu or
   ··············@cs.cmu.edu. Garnet is discussed on the newsgroup
   comp.windows.garnet (which is gatewayed to ············@cs.cmu.edu for
   those without access to netnews). 

   LispView is a GUI written at Sun that does not use CLX.  Instead it
   converts Xlib.h directly into Lucid foreign function calls. It is intended
   to be fast and tight. Uses CLOS.  Available for anonymous ftp from
      ftp.x.org:contrib/lispview1.1 (formerly export.lcs.mit.edu) and
      xview.ucdavis.edu:pub/XView/LispView1.1 
   Includes a general-purpose 2D grapher library.
   Written by Hans Muller (·······@sun.com). Runs in Sun CL and Lucid CL.
   Direct questions about the source provision to ········@Eng.Sun.Com.
   
   WINTERP (Widget INTERPreter) was developed at HP and uses the Xtoolkit and
   Motif widget set. It is based on David Betz's XLISP interpreter, which is a
   small subset of Common Lisp that runs on IBM PCs. Runs on DecStation 3100,
   HP9000s, Sun3, Sparcs.  It is a free-standing Lisp-based tool for setting
   up window applications. Available free in X contrib directory, or by
   anonymous ftp from ftp.x.org:contrib/winterp-???.tar.Z (formerly
   export.lcs.mit.edu) where ??? is the version number.  If you do not
   have Internet access you may request the source code to be mailed
   to you by sending a message to ··············@netcom.com. Contact
   Niels Mayer ·····@netcom.com for more information.   

   YYonX is a port of the YY system to X windows. Runs in Lucid CL, Allegro
   CL, and Symbolics Genera. Supports kanjii.  Developed at Aoyama Gakuin
   University. Available free by anonymous ftp from ftp.csrl.aoyama.ac.jp:YY/
   Written by Masayuki Ida <···@cc.aoyama.ac.jp>

   Picasso is a CLOS based GUI, and is available from
      postgres.berkeley.edu:/pub/Picasso-2.0 
      toe.cs.berkeley.edu:pub/picasso/ 
   It runs on DecStation 3100s, Sun3 (SunOs), Sun4 (Sparc), and Sequent
   Symmetry in Allegro CL. The file pub/xcl.tar.Z contains X-Common Lisp
   interface routines. Send mail to ·······@postgres.berkeley.edu for
   more information. [Picasso is no longer an actively supported system.]

   XIT (X User Interface Toolkit) is an object-oriented user interface
   development environment for the X Window System based on Common Lisp,
   CLOS, CLX, and CLUE.  It has been developed by the Research Group
   DRUID at the Department of Computer Science of the University of
   Stuttgart (·····@informatik.uni-stuttgart.de) as a framework for
   Common Lisp/CLOS applications with graphical user interfaces for the X
   Window System.  XIT contains user interface toolkits, including
   general building blocks and mechanisms for building arbitrary user
   interface elements and a set of predefined common elements (widgets),
   as well as high-level interactive tools for constructing, inspecting,
   and modifying user interfaces by means of direct manipulation.
   Although the system kernel is quite stable, XIT is still under active
   development.  XIT can be obtained free by anonymous ftp from
   ftp.informatik.uni-stuttgart.de (129.69.211.2) in the directory
   /pub/xit/.

----------------------------------------------------------------
Subject: [7-2] What Graphers/Browsers are available?

Most of the graphics toolkits listed above include graphers. In
particular, CLIM, Lispworks, Garnet, and Lispview all include
graphers. The ISI grapher used to be in fairly widely used, but the
CLIM grapher seems to be overtaking it in popularity.

A simple grapher like the one described in "Lisp Lore" by Bromeley and
Lamson is available by anonymous ftp from
   ftp.csrl.aoyama.ac.jp:graphers/ 
as the file graphers.tar.Z.uu. It includes versions for CLX, Express
Windows, NCW, CLUE, CLM/GINA, Common Windows, LispView, Winterp, CLIM
and YY. Several implementations have a mouse sensitivity feature and
others have implementation-specific features.  A copy has been made
available from the Lisp Utilities Repository. For further information,
contact Masayuki Ida <···@csrl.aoyama.ac.jp>.

----------------------------------------------------------------
;;; *EOF*