Search the FAQ Archives

3 - A - B - C - D - E - F - G - H - I - J - K - L - M
N - O - P - Q - R - S - T - U - V - W - X - Y - Z - Internet FAQ Archives

FAQ: Lisp Window Systems and GUIs 7/7 [Monthly posting]

( Part1 - Part2 - Part3 - Part4 - Part5 - Part6 - Part7 - MultiPage )
[ Usenet FAQs | Web FAQs | Documents | RFC Index | Neighborhoods ]
Archive-name: lisp-faq/part7
Last-Modified: Fri Mar 22 16:00:46 1996 by Mark Kantrowitz
Version: 1.54
Maintainer: Mark Kantrowitz and Barry Margolin <>
Size: 18249 bytes, 320 lines

See reader questions & answers on this topic! - Help others by sharing your knowledge
;;; ****************************************************************
;;; Lisp Window Systems and GUIs ***********************************
;;; ****************************************************************
;;; Written by Mark Kantrowitz and Barry Margolin
;;; lisp_7.faq 

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

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 by anonymous ftp from as the files CLX.Manual.tar.Z and CLX.R5.02.tar.Z. [Note: The new version of CLX for X11R6 can be found (untarred) in with documentation in and includes some slight modifications for CLtL2 compatability. You can get it in tarred form from the CMU AI Repository, Lisp section.] Primary Interface Author: Robert W. Scheifler <> Send bug reports to 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 - or contact: Bill York - Illidium has signed a distribution agreement for MCL CLIM with Lucid. [Contact Harlequin for information about Lucid.] CLIM includes a general purpose grapher. The CLIM 2.0 SPECIFICATION is available by anonymous ftp from To be added to the mailing list send mail to 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 Written by Kerry Kimbrough. Send bug reports to 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 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 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: 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 (formerly or [] as the files CLM+GINA.README, CLM2.2.tar.Z and GINA2.2.tar.Z. CLM was written by Andreas Baecker <>, GINA by Mike Spenke <>, and IB by Thomas Berlage <>. Contact Mike Spenke for more info. To be added to the mailing list, send a message to EW (Express Windows) is intended to mimic Symbolics' Dynamic Windows user and programmer interfaces. It is available free in the Common Lisp Repository as 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 <>. 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 as [] 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 ( for more information. Bug reports should be sent to Administrative questions should be sent to or Garnet is discussed on the newsgroup (which is gatewayed to for those without access to netnews). LISP2WISH is a very simple demonstration of how to connect and communicate SYNCHRONOUSLY between a lisp process and a C process running a Tcl/Tk executable. The demo uses the vanilla 'wish' executable that is included with the Tcl/Tk distribution. Tcl/Tk is a very flexible system for building Graphical User Interfaces (GUIs), with the look-and-feel of Motif. One writes scripts in a high-level, C-like language, and an interpreter evaluates the commands and passes execution either to a built-in function (and there are many), or to your own C routines. Tcl/Tk is becoming increasingly popular because of its ease of use, and because it is freely distributable (even commercially, I believe). For more information on Tcl/Tk, look on the USENET newsgroup comp.lang.tcl, or get the distribution from the archive (listed below) or The Tcl/Tk archive also has many user-contributed extensions which make Tcl/Tk even more desirable. Tcl/Tk was originally written by Dr. John Ousterhout, at Berkeley. LISP2WISH lets you make a window/menu/drawing interface for your lisp routines, where you can take advantage of all the stuff written for Tcl/Tk (and build your own!). LISP2WISH has only been tested under X-Windows and Lucid Common Lisp 4.0 and 4.1, but should work on other platforms that support Lucid (or Allegro) and Tcl/Tk. LISP2WISH is available at the Tcl/Tk archive, from the author through the WWW at the URL by anonymous ftp from or in the GUI section of the Lisp Repository as For more information, contact Jonathan Kaye <>. 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 (formerly and Includes a general-purpose 2D grapher library. Written by Hans Muller ( Runs in Sun CL and Lucid CL. Direct questions about the source provision to lispview@Eng.Sun.Com. WINTERP (Widget INTERPreter) is an application development environment developed at HP. It enables the rapid prototyping of graphical user-interfaces through direct manipulation of user interface objects and their attached actions. WINTERP provides an interface to the X11 toolkit (Xt) and the OSF/Motif widget set and a built-in RPC mechanism for inter-application communication. It includes an object-oriented 2.5D graphics and animation widget based on the Xtango path transition animation system, the XmGraph graph browser (with graph nodes as arbitrary WINTERP widgets), and GIF image support. The interpreter is based on David Betz's XLISP interpreter, which implements a small subset of Common Lisp and runs on PCs, IBM RS/6000, Decstation 3100s, HP9000s, Sun3, Sparcs, SGI, and NeXT. XLISP provides a simple Smalltalk-like object system, with OSF/Motif widgets as real XLISP objects -- they can be specialized via subclassing, methods added or altered, etc. WINTERP includes an interface to GNU-Emacs which allows code to be developed and tested without leaving the editor. WINTERP is a free-standing Lisp-based tool for setting up window applications. WINTERP is available free in X contrib directory, or by anonymous ftp from as winterp-???.tar.gz (formerly where ??? is the version number. The current version is 2.03 (X11r6 support). If you do not have Internet access you may request the source code to be mailed to you by sending a message to The WWW home page for WINTERP is accessible via the URL or mirrored on file:// Contact Niels Mayer <> for more information. To be added to the mailing list, send mail to Xgcl provides an interface to X Windows for GCL (GNU Common Lisp), formerly Austin Kyoto Common Lisp (AKCL). It includes a low-level interface to the Xlib routines, and an interface that provides graphics, menus, and mouse interaction via functions that are called from Lisp. Xgcl is built on top of GCL, and it is somewhat larger (e.g. 6.7 MB for Xgcl vs. 4.9 MB for GCL) because it incorporates Xlib. To make Xgcl, you must first obtain and make GCL. The code was written by Gordon Novak, Hiep Nguyen, and William Schelter. Xgcl is available by anonymous FTP from and on the Web from as the file xgcl-2.tgz. To use, put the xgcl-2.tgz file in the same directory as gcl-1.1.tgz and uncompress it with gzip -dc xgcl-2.tgz | tar xvf - Then see the README in the directory xgcl-2. For more information, write to Gordon Shaw Novak, Jr. <>. 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 Written by Masayuki Ida <> Picasso is a CLOS based GUI, and is available from 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 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 ( 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 []
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 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 <>. Grasper-CL is a system for viewing and manipulating graph-structured information. Grasper-CL includes procedures for graph construction, modification, and queries as well as a menu-driven, interactive, layout and drawing package (implemented using CLIM) that allows graphs to be constructed, modified, and viewed through direct pictorial manipulation. Grasper-CL nodes include simple geometric figures, such as circles, rectangles, and diamonds, as well as user-defined icons. Grasper-CL links include piecewise linear and arbitrarily curved arrows between nodes. User-definable actions can be associated with every graphical object. The Grasper-CL system consists of several different components: a core procedure library for programmatically manipulating the graph abstract datatype, a graph-display module for producing drawings of graphs, a graph editor that allows users to interactively draw and edit arbitrary graphs, and a suite of automatic graph-layout algorithms. Grasper-CL is available under license from SRI; contact for licensing information. For additional technical information see P. D. Karp, J. D. Lowrance, T. M. Strat, and D. E. Wilkins, "The Grasper-CL Graph Management System", LISP and Symbolic Computation: An International Journal, Kluwer Academic Publishers, 7:251-290, 1994. and the Grasper-CL home page, ---------------------------------------------------------------- ;;; *EOF*

User Contributions:

Comment about this article, ask questions, or add new information about this topic:

Part1 - Part2 - Part3 - Part4 - Part5 - Part6 - Part7 - MultiPage

[ Usenet FAQs | Web FAQs | Documents | RFC Index ]

Send corrections/additions to the FAQ Maintainer:

Last Update March 27 2014 @ 02:11 PM