Newsgroups: comp.lang.lisp.x
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!howland.reston.ans.net!ix.netcom.com!netcom.com!mayer
From: mayer@netcom.com (Niels P. Mayer)
Subject: Re: XLisp for Unix? Sights?
Message-ID: <mayerCzL70v.Bs1@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
References: <3aof0a$jf1@netnews.upenn.edu>
Distribution: inet
Date: Sun, 20 Nov 1994 22:12:30 GMT
Lines: 231

In article <3aof0a$jf1@netnews.upenn.edu>, vecsler@widget.seas.upenn.edu (Richa$
> Does anyone know any ftp or FAQ's for XLisp on Unix?
> Does such a sight exist?
> I'm assuming I can just download the source code itself
> and then instantiate it on my Unix platform.  Where do I
> find this code?
>
> Equally as important, I'm looking for documentation on XLisp.
> I haven't found books available.  Any sights I can check on-line?

Check out WINTERP 2.0 -- it has many Unix extensions, a high level object
oriented interface to X/Motif, high-level object oriented
graphics/animation, asynchronous unix subprocesses, synchronous unix
subprocess, unix domain or inet domain 'eval' server and simple client
programs allowing other programs to talk to WINTERP's eval server.

See the WINTERP Copyright file for info on obtaining other XLISP variants,
such as XLISP-PLUS and XLISP-STAT, both of which run on unix.  XLISP-PLUS
is typically available by anonymous ftp from
glia.biostr.washington.edu:/pub/xlisp/xlisp???.tar.Z

The WINTERP distribution contains a bunch of XLISP and WINTERP
documentation, as well as Tim Mikkelsen's Xlisp 2.0 Reference manual and
Jeff Prothero's documentation on Xlisp internals. These are also available
on-line via the WWW from the WINTERP Home page
http://www.eit.com/software/winterp ...

For more information on WINTERP, here's da blurb:

--------------------

        WINTERP -- THE OSF/MOTIF WIDGET INTERPRETER
   
	by  Niels Mayer (mayer@eit.com, http://www.eit.com/people/mayer.html)
            Enterprise Integration Technologies
            800 El Camino Real, Fourth Floor
            Menlo Park, CA 94025

	WWW Home Page: http://www.eit.com/software/winterp/winterp.html
	Anonymous FTP: ftp://ftp.x.org/contrib/devel_tools/winterp-2.XX.tar.gz
		       (where XX represents the latest version, currently 03)
	Mailing List: winterp-request@netcom.com

WINTERP is the OSF/Motif *W*idget *INTERP*reter, an application development
environment enabling rapid prototyping of graphical user-interfaces (GUI)
through the interactive programmatic manipulation of user interface objects
and their attached actions.  WINTERP is also an excellent platform for
delivering extensible or customizable applications.  By embedding a small,
efficient Lisp interpreter with UI primitives within the delivered
application, users and system integrators can tailor the static and dynamic
layout of the UI, UI/application dialogue, and application functionality.

WINTERP is a good tool for learning and experimenting with the capabilities
of the OSF/Motif UI toolkit, allowing UI designers to more easily play "what
if" games with different interface styles.  WINTERP's implementation
provides a compromise between the prototyping and extensibility advantages of
Lisp environments, and the inefficiency and expenses of delivering Unix
applications under environments such as Common Lisp.  Typically, prototyping
and customization are done entirely in interpreted Lisp; for delivery,
efficiency-critical low-level code may be written in C and is easily exported
to the interpreter as a new primitive.

WINTERP was first made publicly available on the X11r4 "contrib"
distribution and new releases have appeared on the X11r5 and X11r6
distribution.  The recent X11r6 release of WINTERP 2.0 significantly
improves on previous releases by providing a variety of developer tools and
libraries for increased productivity.  Improved functionality is delivered via
object-oriented graphics and 2.5D animation, asynchronous subprocesses, the
XmGraph widget (for creating directed acyclic graphs, trees, and
direct-manipulation displays), the Table widget (GUI layout using tbl(1)-style
specifications), GIF support, etc.

WINTERP's interpreter is based on David Betz, Tom Almy, Luke Tierney et al's
XLISP-PLUS.  The interpreter's Smalltalk-inspired object system enables a
truly object oriented interface to the X11 toolkit Intrinsics (Xt) and the
OSF/Motif widget set.  WINTERP's use of a real programming language for
customization/prototyping allows WINTERP based applications to be much more
flexible than applications using lower-level and less-general languages
provided by the X resource database, Brunecky&Widget Creation Library
(WCL), OSF/Motif's UIL (user interface language), and Ousterhout's TCL/Tk.
Furthermore, the use of object-orientation at a fundamental level within the
application UI code allows WINTERP-based applications to scale more
effectively than other languages.

WINTERP 2.0 features an object-oriented 2.5D graphics and animation "widget"
based on John Stasko's Xtango path transition paradigm.  Both for static and
dynamic graphics, this high-level interface simplifies and abstracts away much
of the low-level drudgery required to create 2.5 D graphics interfaces --
smooth, flicker free display updates occur as complex nonrectangular graphical
objects move around and obscure and uncover each other.  Animation composition
operations allow multiple individual shapes to all move "simultaneously"
through sequences of animation frames.  The graphics are pixel-independent and
easily resizable, scalable and zoomable.  Each primitive graphics image class
supports its own set of class specific animation and movement methods, while
some operations (e.g.  movement, fill, etc) are polymorphic.  The following
primitive objects are supported:

	o Line (w/ color, forward-arrow, backward-arrow, bidirectional-arrow,
	  thickness, and style options);
	o Rectangle (w/ color, fill options);
	o Circle (w/ color, fill options);
	o Ellipse (w/ color, fill options);
	o Polygon (w/ color, fill options);
	o Polyline (w/ color, forward-arrow, backward-arrow, bidirectional-
	  arrow, line style, line-thickness options);
	o Spline (w/ color, line-style and line-thickness options)
	o Text (w/ font, color, and centering options)
	o Bitmaps and Bitmap movies
	o GIF images.

The primitive graphics classes may also be contained in a composite image
class, which provides a grouping and layering principle for new classes
presenting multiple images.  Composite images allow the construction of
independent layers of animation objects which may be operated on in groups.

WINTERP's graphics capabilities enable simple game-style animation,
employing multiple layers of arbitrarily shaped objects.  Furthermore,
application-specific interactive-graphics capabilities may be encapsulated
into a new Widget-Class.  This significantly simplifies the creation and
integration of new graphics widgets into the system -- these special widgets
look like normal Motif widgets to the rest of the system.

To enable GUI-applications based on existing Unix facilities,
WINTERP provides primitives for collecting data from Unix processes, and
facilities for interacting with other Unix processes.  These facilities make
it possible to glue together existing Unix functionality into a GUI based
application with a relatively small amount of WINTERP-Lisp "glue".
WINTERP2.0 features the ability to run multiple interactive, asynchronous
Unix subprocesses without blocking GUI interactivity.  This feature is useful
for creating GUI interfaces to existing terminal-based programs, and can also
be used for connecting to interactive network services and databases.

An environment similar to WINTERP's already exists in the Gnu-Emacs text
editor -- WINTERP was strongly influenced by Gnu-Emacs's successful design.
In Gnu-Emacs, a mini-Lisp interpreter is used to extend the editor to provide
text-browser style interfaces to a number of Unix applications (e.g.  e-mail
user agents, directory browsers, debuggers, etc.).  Whereas Emacs-Lisp enables
the creation of new applications by tying together C Implemented primitives
operating on text-buffer UI objects, WINTERP-Lisp ties together operations
on graphical UI objects implemented by the Motif widgets.  Both achieve a high
degree of customizability that is common for systems implemented in Lisp,
while still attaining the speed of execution and (relatively) small size
associated with C-implemented applications.

==========
WINTERP FEATURES:
==========

	o Free with non-restrictive copyright -- available via anonymous ftp
	  from ftp.x.org, directory contrib/devel_tools, file
	  winterp-2.XX.tar.gz.
	o Portable -- entirely implemented via machine independent C source
	  and X11/Xt/Motif libraries.
	o OSF/Motif widgets are real XLISP objects widgets can be specialized
	  via subclassing, methods added or altered, etc.
	o Automatic storage management (via garbage collection) of Motif/Xt/X
	  data, animation and graphics data, and application resources.
	o Contains facilities for simple "direct manipulation" of UI
	  components.
	o Interface to Gnu Emacs's lisp-mode allows code to be developed and
	  tested without leaving the editor.
	o Interactive programming also available in the "WINTERP Control
	  Panel", with editing taking place in a Motif text widget controlled
	  by WINTERP.
	o Built-in RPC mechanism for inter-application communications,
	  implemented via serverized, event-driven Lisp interpreter.
	o XmGraph widget for creating directed acyclic graphs, trees, and
	  direct-manipulation displays.
	o Table widget allows constraint-based GUI static layout using
	  tbl(1)-style specifications.

----------
REFERENCES ON WINTERP, AND ITS COMPONENTS:
----------

David Michael Betz.  "XLISP: An Object-oriented Lisp (version 2.1)"
Unpublished documentation accompanying the public release of Xlisp software.
David Michael Betz, P.O.  Box 144, Peterborough, NH 03458, April, 1989.

Olaf Heimburger.  "Elche Im Winter -- Interaktive X-Applicationbuilder unter
Lisp -- Elk und WINTERP." iX, July 1991, pp 64-68.

Niels P.  Mayer, Allan W.  Shepherd and Allan J.  Kuchinsky.  "Winterp: An
object-oriented, rapid prototyping, development and delivery environment for
building extensible applications with the OSF/Motif UI Toolkit." In
Proceedings Xhibition '90, X Window System and Open Systems Technical
Conference, San Jose, CA, May 1990, pp 49-64.

Niels P.  Mayer, Allan W.  Shepherd and Allan J.  Kuchinsky.  The WINTERP
Widget INTERPreter -- An Application Prototyping and Extension Environment for
OSF/Motif.  In Proceedings X Into The Future, The European X Users Group
Autumn Conference 1990, Surrey, UK, September 1990, pp.  33-55.

Niels P.  Mayer.  The WINTERP Widget INTERPreter -- A Lisp Prototyping and
Extension Environment for OSF/Motif-based Applications and User-Interfaces.
Lisp Pointers, ACM SIGPLAN, Volume IV, Number 1, pp 45-60.

Niels P.  Mayer.  The WINTERP OSF/Motif Widget INTERPreter -- A graphical
user-interface language for rapid prototyping and delivering extensible
applications.  In Proceedings Motif '91, First Annual International Motif
Users Meeting, Washington DC, December 1991, pp.  248-269.

John T.  Stasko.  The Path-Transition Paradigm: A Practical Methodology for
Adding Animation to Program Interfaces.  Journal of Visual Languages and
Computing.  (date, volume, page, publisher info unknown).

Don Libes.  Expect: Curing Those Uncontrollable Fits of Interaction,
Proceedings of the Summer 1990 USENIX Conference, Anaheim, CA, June 11-15,
1990.

----------
PAPERS DESCRIBING APPLICATIONS WRITTEN USING WINTERP:
----------

Allan Shepherd, Niels Mayer, and Allan Kuchinsky.  STRUDEL: An Extensible
Electronic Conversation Toolkit.  In David Marca and Geoffrey Bock, editors,
GROUPWARE: Software for Computer-Supported Cooperative Work, IEEE Computer
Society Press, 1992, pp.  505-518.  (originally, in proceedings Conference on
Computer-Supported Cooperative Work, Los Angeles, October 1990, pp.  93-104.)

Jay Glicksman, Glenn Kramer, and Niels Mayer.  "Internet Publishing via the
World Wide Web".  In proceedings Groupware '94, August 1994.  San Jose, CA.

------------------------------------------------------------------------------

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
= Niels Mayer ..... mayer@eit.com .... http://www.eit.com/people/mayer.html =
=  Multimedia Engineering Collaboration Environment (MM authoring for WWW)  =
=  Enterprise Integration Technologies, 800 El Camino Real, Menlo Park, CA  =
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

