home *** CD-ROM | disk | FTP | other *** search
/ ftp.pasteur.org/FAQ/ / ftp-pasteur-org-FAQ.zip / FAQ / lisp-faq / part7 < prev   
Encoding:
Internet Message Format  |  1997-08-14  |  18.5 KB

  1. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!news-out.internetmci.com!infeed2.internetmci.com!newsfeed.internetmci.com!nntp.info.ucla.edu!nntp.club.cc.cmu.edu!cantaloupe.srv.cs.cmu.edu!mkant
  2. From: mkant+@cs.cmu.edu (Mark Kantrowitz)
  3. Newsgroups: comp.lang.lisp,news.answers,comp.answers
  4. Subject: FAQ: Lisp Window Systems and GUIs 7/7 [Monthly posting]
  5. Supersedes: <LISP_7_868777228@CS.CMU.EDU>
  6. Followup-To: poster
  7. Date: 13 Aug 1997 07:17:28 GMT
  8. Organization: Carnegie-Mellon University, School of Computer Science
  9. Lines: 312
  10. Approved: news-answers-request@MIT.Edu
  11. Distribution: world
  12. Expires: 24 Sep 1997 07:00:20 GMT
  13. Message-ID: <LISP_7_871455620@CS.CMU.EDU>
  14. References: <LISP_6_871455620@CS.CMU.EDU>
  15. Reply-To: ai+lisp-faq@cs.cmu.edu
  16. NNTP-Posting-Host: glinda.oz.cs.cmu.edu
  17. Summary: X Window System, GUIs and other Window Systems in Lisp
  18. Xref: senator-bedfellow.mit.edu comp.lang.lisp:28929 news.answers:109685 comp.answers:27564
  19.  
  20. Archive-name: lisp-faq/part7
  21. Last-Modified: Fri Mar 22 16:00:46 1996 by Mark Kantrowitz
  22. Version: 1.54
  23. Maintainer: Mark Kantrowitz and Barry Margolin <ai+lisp-faq@cs.cmu.edu>
  24. URL: http://www.cs.cmu.edu/Web/Groups/AI/html/faqs/lang/lisp/top.html
  25. Size: 18249 bytes, 320 lines
  26.  
  27. ;;; ****************************************************************
  28. ;;; Lisp Window Systems and GUIs ***********************************
  29. ;;; ****************************************************************
  30. ;;; Written by Mark Kantrowitz and Barry Margolin
  31. ;;; lisp_7.faq 
  32.  
  33. This post contains Part 7 of the Lisp FAQ.
  34.  
  35. If you think of questions that are appropriate for this FAQ, or would
  36. like to improve an answer, please send email to us at ai+lisp-faq@cs.cmu.edu.
  37.  
  38. Topics Covered (Part 7):
  39.  
  40.   [7-1] How can I use the X Window System or other GUIs from Lisp?
  41.   [7-2] What Graphers/Browsers are available?
  42.  
  43. Search for \[#\] to get to question number # quickly.
  44.  
  45. ----------------------------------------------------------------
  46. Subject: [7-1] How can I use the X Window System or other GUIs from Lisp?
  47.  
  48. There are several GUI's and Lisp interfaces to the X Window System. Mailing
  49. lists for these systems are listed in the answer to question [4-7].
  50. Various vendors also offer their own interface-building packages.
  51.  
  52.    CLX provides basic Common Lisp/X functionality. It is a de facto standard
  53.    low-level interface to X, providing equivalent functionality to XLib, but
  54.    in Lisp. It is also a good source for comparing the foreign function calls
  55.    in various Lisps. Does *not* depend on CLOS.  Available free as part of the
  56.    X release in the contrib directory.  Also available by anonymous ftp from
  57.    ftp.x.org:/R5contrib/ as the files CLX.Manual.tar.Z and CLX.R5.02.tar.Z. 
  58.    [Note: The new version of CLX for X11R6 can be found (untarred) in
  59.       ftp.x.org:/pub/R6.1/contrib/lib/CLX/ 
  60.    with documentation in
  61.       ftp.x.org:/pub/R6.1/contrib/doc/CLX/ 
  62.    and includes some slight modifications for CLtL2 compatability. You
  63.    can get it in tarred form from the CMU AI Repository, Lisp section.]
  64.    Primary Interface Author: Robert W. Scheifler <rws@zermatt.lcs.mit.edu>
  65.    Send bug reports to bug-clx@expo.lcs.mit.edu. 
  66.    The 232 page manual is available in /pub/R5untarred/mit/hardcopy/CLX 
  67.    (PostScript format) and /pub/R5untarred/mit/doc/CLX (Interleaf source).
  68.  
  69.    CLIM (Common Lisp Interface Manager) is a portable, graphical user
  70.    interface toolkit originally developed by International Lisp
  71.    Associates, Symbolics, and Xerox PARC, and now under joint development
  72.    by several Lisp vendors, including Symbolics, Franz, Lucid, Illudium,
  73.    and Harlequin.  It is intended to be a portable successor of Symbolics
  74.    UIMS (Dynamic Windows, Presentations Types).  CLIM 2.0 also supports
  75.    more traditional toolkit-style programming.  It runs on Symbolics Lisp
  76.    Machines; Allegro, Lucid, and Harlequin on several Unix platforms;
  77.    Symbolics CLOE on 386/486 IBM PCs running Windows; and MCL on Apple
  78.    Macintoshes.  It is *not* free, and with the exception of
  79.    Macintoshes, if it is available it can be purchased from the vendor
  80.    of the Lisp system you are using.  For the Macintosh version write
  81.    to Illudium: 
  82.      Contact: Dennis Doughty - Doughty@ileaf.com
  83.      or contact: Bill York - york@parc.xerox.com
  84.    Illidium has signed a distribution agreement for MCL CLIM with
  85.    Lucid. [Contact Harlequin for information about Lucid.]
  86.    CLIM includes a general purpose grapher. The CLIM 2.0 SPECIFICATION
  87.    is available by anonymous ftp from ftp.franz.com:/pub/clim/clim.ps.Z.
  88.    To be added to the mailing list send mail to clim-request@bbn.com.
  89.  
  90.    CLUE (Common Lisp User-Interface Environment) is from TI, and extends CLX
  91.    to provide a simple, object-oriented toolkit (like Xt) library that uses
  92.    CLOS. Provides basic window classes, some stream I/O facilities, and a few
  93.    other utilities. Still pretty low level (it's a toolkit, not widget
  94.    library).  Available free by anonymous ftp from csc.ti.com:/pub/clue.tar.Z
  95.    Written by Kerry Kimbrough. Send bug reports to clue-bugs@dsg.csc.ti.com.
  96.  
  97.    CLIO (Common Lisp Interactive Objects) is a GUI from the people who created
  98.    CLUE. It provides a set of CLOS classes that represent the standard
  99.    components of an object-oriented user interface -- such as text, menus,
  100.    buttons, scroller, and dialogs.  It is included as part of the CLUE
  101.    distribution, along with some packages that use it, both sample and real.
  102.  
  103.    Allegro Common Windows provides a front end to CLX. Uses CLOS.
  104.    It is *not* free. Contact info@franz.com for more information.
  105.    [Intellicorp's KEE4.0 comes with Common Windows also. They've
  106.     implemented the CW spec to run on Lucid 4.0 on Sparcs, HP300/400s,
  107.     HP700/800s, and IBM RS6000s. Contact tait@intellicorp.com for more
  108.     information.]
  109.  
  110.    The LispWorks Toolkit is an extensible CLOS-based widget set that uses
  111.    CLX and CLUE. The LispWorks programming environment has been written
  112.    using the toolkit and includes: an Emacs-like editor, listener,
  113.    debugger, profiler, and operating system shell; browsers/graphers for
  114.    classes, generic functions, processes, windows, files, compilation
  115.    errors, source code systems, and setting LispWorks parameters; and an
  116.    interactive interface builder and complete online hypertext
  117.    documentation. Contact: lispworks-request@harlqn.co.uk
  118.  
  119.    CLM (Common Lisp Motif) and GINA (Generic Interactive Application) and
  120.    IB (Interface Builder). CLM runs Motif widgets in a separate C
  121.    process, with minimal work on the Lisp side and communicates between C
  122.    and Lisp using TCP sockets. Runs in Allegro CL, Sun CL, CMU CL, Lucid
  123.    CL, and Symbolics Genera. GINA uses CLOS.  Available free in the X
  124.    contrib directory or by anonymous ftp from either
  125.       ftp.x.org:/contrib (formerly export.lcs.mit.edu) or
  126.       ftp.gmd.de:/gmd/gina [129.26.8.84] 
  127.    as the files CLM+GINA.README, CLM2.2.tar.Z and GINA2.2.tar.Z.  CLM was
  128.    written by Andreas Baecker <baecker@gmd.de>, GINA by Mike Spenke
  129.    <spenke@gmd.de>, and IB by Thomas Berlage <berlage@gmd.de>.  
  130.    Contact Mike Spenke for more info. To be added to the mailing list,
  131.    send a message to gina-users-request@gmd.de.
  132.  
  133.    EW (Express Windows) is intended to mimic Symbolics' Dynamic Windows user
  134.    and programmer interfaces. It is available free in the Common Lisp
  135.    Repository as
  136.       ftp.cs.cmu.edu:/user/ai/lang/lisp/gui/ew/
  137.    It is no longer under active development. Runs on Sun/Lucid, Franz
  138.    Allegro, and Symbolics. Should port easily to other Lisps with CLX. 
  139.    Written by Andrew L. Ressler <aressler@oiscola.columbia.ncr.com>.
  140.  
  141.    Garnet is a large and flexible GUI. Lots of high-level features.  Does
  142.    *not* depend on CLOS, but does depend on CLX. Garnet (version 2.0 and
  143.    after) is now in the public domain, and has no licensing restrictions,
  144.    so it is available to all foreign sites and for commercial uses.
  145.    Detailed instructions for obtaining it by anonymous ftp are available
  146.    by anonymous ftp as
  147.       a.gp.cs.cmu.edu:/usr/garnet/garnet/README [128.2.242.7] 
  148.    Garnet includes the Lapidiary interactive design tool, C32 constraint
  149.    editor, spreadsheet object, Gilt Interface Builder, automatic display
  150.    management, two widget sets (Motif look-and-feel and Garnet
  151.    look-and-feel), support for gesture recognition, and automatic
  152.    constraint maintenance, application data layout and PostScript
  153.    generation. Runs in virtually any Common Lisp environment, including
  154.    Allegro, Lucid, CMU, and Harlequin Common Lisps on Sun, DEC, HP,
  155.    Apollo, IBM 6000, and many other machines.  Garnet helps implement
  156.    highly-interactive, graphical, direct manipulation programs for X/11
  157.    in Common Lisp.  Typical applications include: drawing programs
  158.    similar to Macintosh MacDraw, user interfaces for expert systems and
  159.    other AI applications, box and arrow diagram editors, graphical
  160.    programming languages, game user interfaces, simulation and process
  161.    monitoring programs, user interface construction tools, CAD/CAM
  162.    programs, etc. Contact Brad Myers (bam@a.gp.cs.cmu.edu) for more
  163.    information. Bug reports should be sent to garnet-bugs@cs.cmu.edu.
  164.    Administrative questions should be sent to garnet@cs.cmu.edu or
  165.    garnet-request@cs.cmu.edu. Garnet is discussed on the newsgroup
  166.    comp.windows.garnet (which is gatewayed to garnet-users@cs.cmu.edu for
  167.    those without access to netnews).
  168.  
  169.    LISP2WISH is a very simple demonstration of how to connect and
  170.    communicate SYNCHRONOUSLY between a lisp process and a C process
  171.    running a Tcl/Tk executable.  The demo uses the vanilla 'wish'
  172.    executable that is included with the Tcl/Tk distribution.  Tcl/Tk is a
  173.    very flexible system for building Graphical User Interfaces (GUIs),
  174.    with the look-and-feel of Motif.  One writes scripts in a high-level,
  175.    C-like language, and an interpreter evaluates the commands and passes
  176.    execution either to a built-in function (and there are many), or to
  177.    your own C routines.  Tcl/Tk is becoming increasingly popular because
  178.    of its ease of use, and because it is freely distributable (even
  179.    commercially, I believe).  For more information on Tcl/Tk, look on the
  180.    USENET newsgroup comp.lang.tcl, or get the distribution from the
  181.    archive (listed below) or ftp.cs.berkeley.edu.  The Tcl/Tk archive
  182.    also has many user-contributed extensions which make Tcl/Tk even more
  183.    desirable.  Tcl/Tk was originally written by Dr. John Ousterhout, at
  184.    Berkeley.  LISP2WISH lets you make a window/menu/drawing interface for
  185.    your lisp routines, where you can take advantage of all the stuff
  186.    written for Tcl/Tk (and build your own!).
  187.    LISP2WISH has only been tested under X-Windows and Lucid Common Lisp
  188.    4.0 and 4.1, but should work on other platforms that support Lucid
  189.    (or Allegro) and Tcl/Tk.  LISP2WISH is available at the Tcl/Tk archive
  190.       harbor.ecn.purdue.edu:/pub/tcl/lisp2wish6.tar.gz,
  191.    from the author through the WWW at the URL
  192.       http://www.cis.upenn.edu/~kaye/home.html
  193.    by anonymous ftp from 
  194.       ftp.cis.upenn.edu:/pub/kaye/lisp2wish6.tar.Z
  195.    or in the GUI section of the Lisp Repository as
  196.       ftp.cs.cmu.edu:/user/ai/lang/lisp/gui/lsp2wish/lsp2wish.tgz
  197.    For more information, contact Jonathan Kaye <kaye@linc.cis.upenn.edu>.
  198.  
  199.    LispView is a GUI written at Sun that does not use CLX.  Instead it
  200.    converts Xlib.h directly into Lucid foreign function calls. It is intended
  201.    to be fast and tight. Uses CLOS.  Available for anonymous ftp from
  202.       ftp.x.org:/contrib/lispview1.1 (formerly export.lcs.mit.edu) and
  203.       xview.ucdavis.edu:/pub/XView/LispView1.1 
  204.    Includes a general-purpose 2D grapher library.
  205.    Written by Hans Muller (hmuller@sun.com). Runs in Sun CL and Lucid CL.
  206.    Direct questions about the source provision to lispview@Eng.Sun.Com.
  207.    
  208.    WINTERP (Widget INTERPreter) is an application development environment
  209.    developed at HP. It enables the rapid prototyping of graphical
  210.    user-interfaces through direct manipulation of user interface objects
  211.    and their attached actions.  WINTERP provides an interface to the X11
  212.    toolkit (Xt) and the OSF/Motif widget set and a built-in RPC mechanism
  213.    for inter-application communication.  It includes an object-oriented
  214.    2.5D graphics and animation widget based on the Xtango path transition
  215.    animation system, the XmGraph graph browser (with graph nodes as
  216.    arbitrary WINTERP widgets), and GIF image support.  The interpreter is
  217.    based on David Betz's XLISP interpreter, which implements a small
  218.    subset of Common Lisp and runs on PCs, IBM RS/6000, Decstation 3100s, 
  219.    HP9000s, Sun3, Sparcs, SGI, and NeXT.  XLISP provides a simple 
  220.    Smalltalk-like object system, with OSF/Motif widgets as real XLISP
  221.    objects -- they can be specialized via subclassing, methods added
  222.    or altered, etc. WINTERP includes an interface to GNU-Emacs which
  223.    allows code to be developed and tested without leaving the editor.
  224.    WINTERP is a free-standing Lisp-based tool for setting up window
  225.    applications. WINTERP is available free in X contrib directory, or
  226.    by anonymous ftp from
  227.       ftp.x.org:/contrib/devel_tools/
  228.    as winterp-???.tar.gz (formerly export.lcs.mit.edu) where ??? is the
  229.    version number. The current version is 2.03 (X11r6 support).  If you
  230.    do not have Internet access you may request the source code to be
  231.    mailed to you by sending a message to winterp-source@netcom.com.
  232.    The WWW home page for WINTERP is accessible via the URL
  233.        http://www.eit.com/software/winterp/winterp.html
  234.    or mirrored on
  235.        file://ftp.x.org/contrib/devel_tools/winterp.html
  236.    Contact Niels Mayer <mayer@netcom.com> for more information. To be
  237.    added to the mailing list, send mail to winterp-request@netcom.com.
  238.  
  239.    Xgcl provides an interface to X Windows for GCL (GNU Common Lisp),
  240.    formerly Austin Kyoto Common Lisp (AKCL). It includes a low-level
  241.    interface to the Xlib routines, and an interface that provides
  242.    graphics, menus, and mouse interaction via functions that are called
  243.    from Lisp. Xgcl is built on top of GCL, and it is somewhat larger
  244.    (e.g. 6.7 MB for Xgcl vs. 4.9 MB for GCL) because it incorporates
  245.    Xlib.  To make Xgcl, you must first obtain and make GCL.  The code
  246.    was written by Gordon Novak, Hiep Nguyen, and William Schelter. Xgcl
  247.    is available by anonymous FTP from
  248.        math.utexas.edu:/pub/gcl/
  249.        ftp.cli.com:/pub/gcl/
  250.        ftp.cs.utexas.edu:/pub/novak/xgcl/
  251.    and on the Web from
  252.        http://www.cs.utexas.edu/users/novak
  253.    as the file xgcl-2.tgz. To use, put the xgcl-2.tgz file in the same
  254.    directory as gcl-1.1.tgz and uncompress it with
  255.        gzip -dc xgcl-2.tgz | tar xvf -
  256.    Then see the README in the directory xgcl-2. For more information,
  257.    write to Gordon Shaw Novak, Jr. <novak@cs.utexas.edu>.
  258.  
  259.    YYonX is a port of the YY system to X windows. Runs in Lucid CL, Allegro
  260.    CL, and Symbolics Genera. Supports kanjii.  Developed at Aoyama Gakuin
  261.    University. Available free by anonymous ftp from 
  262.       ftp.csrl.aoyama.ac.jp:/YY/
  263.    Written by Masayuki Ida <ida@cc.aoyama.ac.jp>
  264.  
  265.    Picasso is a CLOS based GUI, and is available from
  266.       postgres.berkeley.edu:/pub/Picasso-2.0 
  267.       toe.cs.berkeley.edu:/pub/picasso/ 
  268.    It runs on DecStation 3100s, Sun3 (SunOs), Sun4 (Sparc), and Sequent
  269.    Symmetry in Allegro CL. The file pub/xcl.tar.Z contains X-Common Lisp
  270.    interface routines. Send mail to picasso@postgres.berkeley.edu for
  271.    more information. [Picasso is no longer an actively supported system.]
  272.  
  273.    XIT (X User Interface Toolkit) is an object-oriented user interface
  274.    development environment for the X Window System based on Common Lisp,
  275.    CLOS, CLX, and CLUE.  It has been developed by the Research Group
  276.    DRUID at the Department of Computer Science of the University of
  277.    Stuttgart (druid@informatik.uni-stuttgart.de) as a framework for
  278.    Common Lisp/CLOS applications with graphical user interfaces for the X
  279.    Window System.  XIT contains user interface toolkits, including
  280.    general building blocks and mechanisms for building arbitrary user
  281.    interface elements and a set of predefined common elements (widgets),
  282.    as well as high-level interactive tools for constructing, inspecting,
  283.    and modifying user interfaces by means of direct manipulation.
  284.    Although the system kernel is quite stable, XIT is still under active
  285.    development.  XIT can be obtained free by anonymous ftp from
  286.    ftp.informatik.uni-stuttgart.de:/pub/xit/ [129.69.211.2]
  287.  
  288. ----------------------------------------------------------------
  289. Subject: [7-2] What Graphers/Browsers are available?
  290.  
  291. Most of the graphics toolkits listed above include graphers. In
  292. particular, CLIM, LispWorks, Garnet, and Lispview all include
  293. graphers. The ISI grapher used to be in fairly widely used, but the
  294. CLIM grapher seems to be overtaking it in popularity.
  295.  
  296. A simple grapher like the one described in "Lisp Lore" by Bromeley and
  297. Lamson is available by anonymous ftp from
  298.    ftp.csrl.aoyama.ac.jp:/graphers/ 
  299. as the file graphers.tar.Z.uu. It includes versions for CLX, Express
  300. Windows, NCW, CLUE, CLM/GINA, Common Windows, LispView, Winterp, CLIM
  301. and YY. Several implementations have a mouse sensitivity feature and
  302. others have implementation-specific features.  A copy has been made
  303. available from the Lisp Utilities Repository. For further information,
  304. contact Masayuki Ida <ida@csrl.aoyama.ac.jp>.
  305.  
  306. Grasper-CL is a system for viewing and manipulating graph-structured
  307. information. Grasper-CL includes procedures for graph construction,
  308. modification, and queries as well as a menu-driven, interactive,
  309. layout and drawing package (implemented using CLIM) that allows graphs
  310. to be constructed, modified, and viewed through direct pictorial
  311. manipulation. Grasper-CL nodes include simple geometric figures, such
  312. as circles, rectangles, and diamonds, as well as user-defined icons.
  313. Grasper-CL links include piecewise linear and arbitrarily curved
  314. arrows between nodes.  User-definable actions can be associated with
  315. every graphical object.  The Grasper-CL system consists of several
  316. different components: a core procedure library for programmatically
  317. manipulating the graph abstract datatype, a graph-display module for
  318. producing drawings of graphs, a graph editor that allows users to
  319. interactively draw and edit arbitrary graphs, and a suite of automatic
  320. graph-layout algorithms. Grasper-CL is available under license from
  321. SRI; contact lowrance@ai.sri.com for licensing information.  For
  322. additional technical information see
  323.    P. D. Karp, J. D. Lowrance, T. M. Strat, and D. E. Wilkins, "The
  324.    Grasper-CL Graph Management System", LISP and Symbolic Computation: An
  325.    International Journal, Kluwer Academic Publishers, 7:251-290, 1994.
  326. and the Grasper-CL home page,
  327.    http://www.ai.sri.com/~grasper/
  328.  
  329. ----------------------------------------------------------------
  330. ;;; *EOF*
  331.  
  332.