

                  Common Lisp User Interface Environment (CLUE)
                                                                          
            Copyright (C) 1988, 1989, Texas Instruments Incorporated



Related Systems

    CLUE relies upon two other systems --- CLX and CLOS.

    CLX,  the  Common  Lisp  X  Interface,  may  be  found  in  the  X11
    distribution from  MIT  (see  lib/CLX/*).   CLUE  requires R3 CLX or
    later.

    CLOS, the Common Lisp Object  System, is a draft  standard extension
    to ANSI  Common  Lisp  for  object-oriented  programming.  Xerox PCL
    (Portable Common  Loops)  is  an  implementation  of  CLOS  which is
    available  publicly   at   no   cost   by   sending   a  request  to
    CommonLoops.pa@xerox.com.  Sources for a simple implementation of  a
    CLOS subset called  Clos-Kludge are  included in  the CLUE directory
    (see clue/clos-kludge/*).  Clos-Kludge is sufficient for simple CLUE
    programming, but it is neither supported nor recommended.
 


Installation

    Use  the   functions   compile-clue   and   load-clue   in  the file
    clue/defsystem.l.

    Note: Because Clos-Kludge uses DEFSTRUCT  and CLX windows are  built
    using DEFSTRUCT, no CLX changes are required when using Clos-Kludge.
    When using other (better) CLOS implementations, CLX must be modified
    to use DEFCLASS for window  and drawable types.  How  you accomplish
    this depends on which  version of CLX  you are using.   With R3 CLX,
    you must compile  and load  clue/clos-patch.l immediately  after the
    CLX/dependent.l  file.   See  the  functions  compile-clos-clx   and
    load-clos-clx  functions   in   clue/defsystem.l.    R4   CLX   will
    automatically use DEFCLASS for window, etc.  if it is compiled in an
    environment containing  CLOS.   Thus,  with  R4  CLX, no changes are
    typically needed before  building CLX.   However, this  depends upon
    parts  of   CLX   which   may   be   implementation-dependent   (see
    def-clx-class in CLX/depdefs.l).



Examples

    Two sets of examples  are provided to  demonstrate the use  of CLUE.
    See the directory clue/examples/*.

    clue/examples/menu.l implements  a  simple  pop-up  menu and several
    related  functions.   See  clue/doc/examples.text  for  a   detailed
    description of these examples.

    The directory clue/examples/old/* contains examples from  a previous
    CLUE release.   These  examples  are  somewhat  obsolete and are not
    supported.  They  do  not  use  recent  CLUE features and are poorly
    documented, and not all of  them are carefully designed  and tested.
    Sources in clue/examples/old/* implement  a set of  contact classes.
    See the  functions  compile-clue-examples  and load-clue-examples in
    clue/examples/old/defsystem.l.  Sources in  clue/examples/old/demo/*
    implement a  set  of  demo  functions,  using  the  example  contact
    classes.  See the functions compile-clue-demo and  load-clue-demo in
    clue/examples/old/demo/defsystem.l.



Documentation

    The directory clue/doc/* contains several documents describing CLUE.

    CLUE.PS, CLUE.TEX

        The CLUE specification which  defines all CLUE  features.  LaTeX
        and PostScript versions are included.

    EXAMPLES.TEXT

        Describes  the   example   in  clue/examples/menu.l.  First-time
        readers should have first read The Quick and Dirty Guide To CLUE
        and should have some familiarity with the CLUE specification.

    RELEASE.<release#>

        Release notes for  the current  and previous  versions of  CLUE.
        The highest <release#> identifies the version of the software in
        these  directories.    The   release   notes  contain  important
        information which must be read before using CLUE.

    TURBO-CLUE.PS, TURBO-CLUE.TEX

        The Quick and Dirty Guide To CLUE.  This tutorial introduces the
        novice CLUE programmer to  the CLUE way  of life with  examples,
        advice, installation notes, and exercises.  LaTeX and PostScript
        versions are included.





